#plugins-dev-chat

1 messages · Page 146 of 1

celest thorn
#

you are just denying it everytime

#

thats why

#

lol

#

you need to check if there are certain stuff

#

else everyone would be denied

bright vine
#

if thats the case why is the human being able to speak to scps freely

celest thorn
bright vine
#

wait..

#

oh

celest thorn
#

you should block it only when its that certain human

bright vine
#

right

celest thorn
#

and then send it to the scps

bright vine
#

im blocking everyone and only sending all messages to scps

upper vapor
#

you can use the send & receive events
check for that player
on send, set channel: if channel == proximity ? scpchat : original
on receive: if channel == scp ? scpchat : original

bright vine
#

makes sense

upper vapor
#

same condition

bright vine
#

thank you so much guys

upper vapor
#

np

bright vine
#

ill send the code later when i get it finished so i can get some feedback

celest thorn
#

no problem :3

celest thorn
#

can you get how loud is a player speaking

upper vapor
#

check that plugin

#

decode received message, calc rms

bright vine
#

oh you mean channel

#

oops

#

i mean like

#

setting channel to scpchat doesnt work

#

you can check for it though yes

celest thorn
#

yes

upper vapor
#

right

bright vine
#

the players normally dont hear their own voice right

#

or do i have to prevent that as well lol

upper vapor
#

i have a receive patch as well

#

set the channel to round summary when an scp receives an scp chat message

icy knoll
celest thorn
#

i think im done im gonna close SL

upper vapor
#

you're done

#

it's over for you

#

*insert drama farmer youtube video thumbnail here*

bright vine
#

okay so

#

this works for me

#
        public override void OnPlayerSendingVoiceMessage(PlayerSendingVoiceMessageEventArgs ev)
        {
            if (ev.Message.Channel == VoiceChatChannel.ScpChat || active035.ContainsKey(ev.Player))
            {
                ev.IsAllowed = false;
                ev.Message.Channel = VoiceChatChannel.RoundSummary;

                foreach (Player listener in Player.ReadyList)
                {
                    if (listener.Team == Team.SCPs) listener.Connection.Send(ev.Message);
                    else if (active035.ContainsKey(listener)) listener.Connection.Send(ev.Message);
                }
            }
        }```
celest thorn
#

GG

bright vine
#

i did not need to do the received event since i just replaced all scp vc with roundsumamry

#

is that good?

celest thorn
#

idk test it with someone else

bright vine
#

that is a bit Tough

#

😭

upper vapor
#

me when

#

start 2 sl clients

bright vine
#

yeah i already did that

#

but if im talking ill hear myself so..

#

What if the voice comes out as like

upper vapor
#

yeah and?

bright vine
#

Weird

#

Or somethijng

celest thorn
#

idk

bright vine
#

I wont know

upper vapor
#

wdym 😭

bright vine
#

apparently the voice can get played twice

#

like a duplicated voice

upper vapor
#

it would sound garbled if you fucked up something with sending

bright vine
#

Yeah so the thing is

#

I cant hear that

#

So

#

Tough for me loL

celest thorn
#

WAIT

#

stalker is 100Gb

#

god

#

143.2

#

god

#

im not gonna play it

#

lol

bright vine
#

is it intentional that if you set IsAllowed to flase

#

false

#

here public override void OnPlayerPickingUpArmor(PlayerPickingUpArmorEventArgs ev)

#

then it would be disabled permanently because no ppl can pick it up now

#

is that intentional or

upper vapor
#

you need to

#

pickup.IsLocked = false

#

known bug

bright vine
#

oh

#

thank you!

upper vapor
#

np

restive turret
upper vapor
bright vine
#

how can i fix this?

stable cipher
bright vine
bright vine
#

ah i see

it does let you search but the event gets cancelled at the end upon completion anyway

worn gull
#

How can I check easily if a Cassie announcement is a ntf or ci spawn?

icy knoll
upper vapor
#

look at the...

#

nvm subtitles are handled separately

#

f

worn gull
#

It would be a lot of Contains() xd

upper vapor
#

if (ev.Words.StartsWith("MTFUNIT EPSILON 11 DESIGNATED"

#

might not work during holidays

#

you can check the stack trace and see if it's from WaveAnnouncementBase

spare zodiac
bright vine
#

how do.. i prevent an item from being locked

#

when i disallow the evnet

#

in OnPlayerUsingItem event

bright vine
#

nvm fixed it

bright vine
#

does anyone know whats the official list of colors

hearty shard
bright vine
#

like <color=# ...>

hearty shard
bright vine
#

no no like

hearty shard
#

use the Hex

bright vine
#

the official color list

hearty shard
#

you mean like

#

color=green

bright vine
#

yes, doesnt northwood only allow specific colors ingame?

upper vapor
hearty shard
#

depends

bright vine
#

and that includes the code

#

for text

hearty shard
#

where are you asking for it

#

which text

upper vapor
#

player info

hearty shard
#

hints/broadbasts?

bright vine
#

yeah hints

hearty shard
#

then any color works

bright vine
#

oh

hearty shard
#

its player info where its not all

bright vine
#

does the "specific colors" only apply to player info

#

ohh

#

okay thank you

hearty shard
#

i mean its also to badges

bright vine
#

badges are a part of player info so..

#

that makes sense

hearty shard
#

well badge is prevented to prevent faking being nw or using their colors
and thus custom info on player info is also disabled to prevent using that to add it

hearty shard
soft depot
eager herald
#

I need help on this: the max artificial health, what does it mean?

upper vapor
eager herald
#

ok thanks

upper vapor
#

np

eager herald
#

and how to use CreateAHPProcess

#

@upper vapor ? help!

upper vapor
#

Read the docs

#

It's explained well

eager herald
#

ok

cyan crown
upper vapor
#

blud got the grandpa music playing

cyan crown
#

to be honest it was peak since i was adding that feature at like 3 am

soft depot
restive turret
#

Me after GCS removes your server

upper vapor
#

good luck

#

-# i mean if you patch sending the hintmessage

restive turret
#

if (sendingHint)
dont()

upper vapor
#

exactly

#

wait wait wait

#

can we make a static dont function

#

that cancels anything you put in the if before it

restive turret
#

if you throw ye

restive turret
#

200IQ right

upper vapor
#

20000000000

restive turret
#

throw new DoNotRunException

soft depot
soft depot
keen halo
#

if (user is apart of this group)
anyone know how to get permission groups like that. ;o

royal mica
keen halo
#

Uhhh

royal mica
#

Cause technically both use the same

keen halo
#

I just wanna like know if a user is a mod for example

#

like they are in the mod group

royal mica
#

There is Player.UserGroup/ ReferenceHub.serverRoles.Group for their stuff, there you can get Name, permissions etc

#

if you have a group named mod then the Name will be mod

keen halo
#

Thank ya so much

bright vine
#

is there a way to create more texts than just hints and broadcasts

#

like what if i want to position texts

hearty shard
bright vine
#

are you serious

#

LOL

#

WAIT SO

hearty shard
#

or use text toys but thats not recommended if you want text on someones screen

bright vine
#

I HAVE TO CREATE A MESSAGE SYSTEM OR USE AN EXISTING ONE

hearty shard
#

if you want it in the world then go ahead

bright vine
#

yeah i want text on someones screen

#

waut

#

3d texts exists?

#

OMG

#

Thank You Spooky Eve!

hearty shard
#

TextToy

bright vine
#

Good call i was gonan ask what it is specificially

hearty shard
#

yea its for placing in the world, but for UI you should use hints

worthy rune
#

NW jump scare

icy knoll
#

weird seeing @upper vapor and @restive turret as blue...

burnt hearth
hearty shard
#

oh yuck more nw devs

upper vapor
hearty shard
#

:c

worthy rune
#

I just realized i still have the API Maintainer role

#

@karmic bobcat

upper vapor
royal mica
#

we lost another one o7_salute_respect

tepid sluice
#

here gonna be nw-dev-chat

upper vapor
#

északfa

tepid sluice
#

北木

royal mica
upper vapor
#

Hivatalos Kiszolgálógazda Assisztens

soft depot
#

I really wish NW would give us some sort of parenting solutions, even if terribly made, for common client side objects

upper vapor
#

find the magic lamp toomuchtrolling

bright vine
#

is there a method to unequip

#

i cant find it

#

nvm foujnd it

#

Item.Base.IsEquipped = false;

#

i found it for the first time without asking anyone wow

hearty shard
#

or CurrentItem

#

or something

bright vine
upper vapor
#

it's not gonna work

bright vine
#

how come?

#

it says i can get and set it

restive turret
upper vapor
#

can i kill this piece of garbage app

bright vine
#

...i see

celest thorn
celest thorn
restive turret
upper vapor
#

You must now quit SL development for eternity toomuchtrolling

bright vine
#

if i want to change an item, it would be destroying an item and adding a new item right?

bright vine
#

oh no i know

hearty shard
#

then?

cyan crown
upper vapor
#

Why would it destroy it

bright vine
#

if i want to change an item like L1, to something else like L3,

the way to do that is to remove the old item and add the new item right?

upper vapor
#

Inventory exists

bright vine
#

?

#

im confused, is there a better way?

upper vapor
#

You select an item from the Inventory

#

Why would you remove it

bright vine
#

so i can replace it with an "new item"

upper vapor
#

Right

#

Um

#

Well yeah, but you need to add it to the Inventory first

worn gull
#

@upper vapor @restive turret Congrat! 🥳

upper vapor
#

Then set it as the current item

bright vine
#

ok so i remove and then add

#

thank you

upper vapor
worn gull
#

Please make LabAPI better trollface

cyan crown
upper vapor
#

I'm gonna name it KelenföldAPI

restive turret
#

Oh oops

upper vapor
#

No

#

Xd

restive turret
#

I meant SLAPI

restive turret
worn gull
restive turret
cyan crown
#

😂

#

that's even worst

restive turret
#

:D

upper vapor
royal mica
cyan crown
royal mica
#

imagine you receive events on 3 rounds later 💀

royal mica
#

I hope you are not using Mirror xdx

cyan crown
restive turret
#

I suggested fishnet also

cyan crown
#

porting shit will require me to rewrite a lot of scripts and i'm lazy😼

restive turret
#

Ik

bright vine
#

@upper vapor i dont need Spawn() right?

upper vapor
#

Yes

#

What

bright vine
#

Yes as in i dont need spawn()

upper vapor
#

What spawn for items 😭

restive turret
#

Pickup?

upper vapor
#

You want to swap an item in the player's hand, no?

bright vine
#

yeah

#

yes

#

hang on

#

oh i didnt have to use pickup for that

#

Whoopsie daisy

upper vapor
#

Yeah

hearty shard
#

player.CurrentItem = player.AddItem(ItemType.Medkit)

bright vine
#

this would make the player equip it no? so im just adding that separately

hearty shard
#

if ur trying to equip, otherwise remove the assignment

bright vine
#

thank you guys again

warped prairie
#

This guy gets it

keen halo
#

Has the auto verification stuff

#

EVER worked

mild ice
#

Yes

keen halo
#

Not for me...

#

I always have to email

mild ice
#

:(

keen halo
#

:(

mild ice
#

If you've sent an email off already I can do it manually for you now kek

keen halo
#

Yes I have!!

#

:D

#

I was already verified I just had an IP change

mild ice
keen halo
#

Responded! <3

#

Thank you so much

mild ice
slate flume
#

"make it sound good with no artifacts" yeah and that's just math
It's about taking a sound wave, grabbing specific points in time from it, and interpolating a wave from that

#

Yep! I played the entire original trilogy
Haven't gotten to STALKER 2 yet tho

slate flume
worthy rune
#

ok im getting real dunning kruger from you rn

slate flume
slate flume
#

I just think audio processing isn't like fucking Everest, take some time to study it and it's not really that hard to understand

#

I learned as both a musician and a programmer a couple years ago

#

Albeit it's not like I learned everything in the field, just some of the important shit

worthy rune
#

doing audio processing with high level tools/apis is not hard, not to suggest thats what you did as idk what you did in your studies, im only referring to DSP which was what was originally mentioned. which i think is far removed from alot of other cs concepts

#

btw just because i think its hard shouldnt discourage anyone from trying to learn it. i do think labling it as easy or saying "difficulty is overblown" might give people an incorrect impression about it which can be damaging if it does turn out for someone to be difficult as then they might assume they are just stupid rather than the subject just being diffucult

slate flume
#

.

worthy rune
#

dont alot of disciplines fall under researched and documented are you suggesting all of them are easy?

slate flume
#

Math is essentially just another programming language

#

Once you learn a lot of the basic calculus a lot of the formulas are easy to understand

worthy rune
slate flume
#

And I think people have a tendency to overexaggerate or overcomplicate things to make themselves seem smarter

worthy rune
#

but then again they could of learnt alot since then

slate flume
#

I don't think I'm smart for knowing basic audio stuff because it's not that complicated and I think with the proper explanation a lot of programmers could learn it

warped prairie
slate flume
#

With an amount of a relative ease

unique crane
#

Me figuring out that predicate logic is essentially linq

restive turret
#

Me when I have to convert from math to prog-like lang than back to math

unique crane
#

Worse is math to normal words

worthy rune
slate flume
# worthy rune i dont doubt that, but sometimes things are alot more nuanced then understanding...

My opinion primarily stems from this:
I think when people have difficulties understanding a topic, oftentimes the problem is the way it's communicated rather than the actual topic at hand
A lot of people, whether they realize it or not, explain topics at times as if the other person already understands it rather than as if they're actually trying to teach it
It's something I've learned from school and textbooks and otherwise
I think generally speaking a lot of audio topics are plighted with the same issues of these "great mathematicians" never properly explaining or addressing the things that need it

worthy rune
slate flume
#

It helps an incredible amount to have that foundation

#

And it's not like audio processing is a cakewalk but I think it gets hyped up more than it should be

slate flume
#

"How do we create a wave out of these data points?" The answer is use math to interpolate the wave

worthy rune
worthy rune
slate flume
restive turret
worthy rune
slate flume
restive turret
#

A good teacher is usually a key to understand some of it

#

But if you don't get the "ahhh, it's clicked, i know!" in some cases well

slate flume
slate flume
#

My teacher for calc sucked so I spent more time studying the subject in my free time than I ever did doing the classwork

#

Bombed the homework but rocked the tests

restive turret
slate flume
restive turret
#

That's how I program most of the times

slate flume
#

I read the front page of the docs to get an idea and then just fuckin wing it

unique crane
#

Write and pray

static meteor
hollow remnant
#

how to create Role Appearance?

static meteor
restive turret
#

It might crash the server tho or something

slate flume
restive turret
#

If you do please send the server and player log

slate flume
#

And then send a fake network message when initially syncing role

restive turret
#

Because one time I crashed a full 30/30 server with my ".setfakerole Chaos_Maranduer ID"

restive turret
#

The funny is

#

There was nothing in server log

static meteor
#

Little Dumbass

restive turret
#

Car

hollow remnant
hollow remnant
slate flume
hollow remnant
static meteor
#

See how its used in the code

restive turret
#

This guy doesn't have access to GitHub on phone ClassDTroll1

cyan crown
static meteor
severe cave
static meteor
#

He's pretty orange

slate flume
hollow remnant
severe cave
slate flume
# hollow remnant oh my god

First referencehub is the player you want to fake sync the role for
Second referencehub is the person receiving the role
The visible role is the current role that the second referencehub sees
The networkwriter is the network writer
The return value is a roletypeid which determines what role the receiver actually sees

soft depot
slate flume
cyan crown
restive turret
soft depot
severe cave
restive turret
#

I also might be fucked it up because of the network writer

cyan crown
#

can't afford a cat right now

severe cave
soft depot
cyan crown
#

you woke him up duude

slate flume
restive turret
#

This car also parking

slate flume
soft depot
# cyan crown you woke him up duude

Her, and she’s been clawing my lap for like the past 15 minutes. I’m supposed to have fed dogs and horses by now BUT NOW THERES A SECOND CAR HERE 😭 😭 😭 😭

severe cave
restive turret
#

The cat or the room

severe cave
soft depot
soft depot
restive turret
#

Oh, white, grey and black

#

And pink

hollow remnant
#

this works correctly?pleaseee

soft depot
slate flume
severe cave
slate flume
#

hub.GetTeam()

#

It's built-in to the game

hollow remnant
restive turret
soft depot
severe cave
teal junco
#

Are a lot of the people here educated beyond the basics of their country

#

just wondering

restive turret
# soft depot Oh ok then

You can test and if you wish create a pr to cache it and after respawn / set role with ifpc set from catched

teal junco
restive turret
#

Or that is what i would do

slate flume
#

3 months ago

restive turret
slate flume
#

I was one of the youngest in my grade

teal junco
teal junco
slate flume
soft depot
restive turret
teal junco
teal junco
soft depot
#

I’m 17, been called unc for that, and I’m dual enrolled so I’m a giga ScientistNerd

severe cave
teal junco
severe cave
restive turret
teal junco
slate flume
teal junco
#

Keep up

teal junco
severe cave
soft depot
restive turret
restive turret
#

If my calculations are right

slate flume
#

I did it sucked ass

#

But I just hate school

severe cave
slate flume
soft depot
slate flume
#

How do you like school

soft depot
#

I love school

slate flume
restive turret
#

I like if it's telling me to go home

teal junco
soft depot
#

Hardest thing is writing essays, but you learn a lot more, even if you think you don’t need to

severe cave
slate flume
#

I was required to take college classes when I hit 9th grade

slate flume
#

I taught myself physics

#

@teal junco can back me up that I'm not bad at it

soft depot
teal junco
teal junco
slate flume
slate flume
severe cave
# slate flume I learn without school

Still a good choice but I just think what I study in classes are enough and I just revise at home or do the homework, and my teachers are nice guys so

soft depot
restive turret
#

Uni places close at 20:00 and last time when there was a party nearby i got told to that the places closing soon so do not go in again if i don't wanna get locked down

slate flume
#

I failed all my classes in college and became a dropout because I never did my homework

teal junco
slate flume
#

We were graded on our fucking notes

teal junco
slate flume
#

My test scores were amazing but I never did the damn homework

#

Homework is a big fucking scam

severe cave
slate flume
#

I showed them on tests that I know what I'm talking about

restive turret
#

Fun fact, i never learned any songs the teacher said i have to learn and memories

slate flume
#

And they were still like "Oh you need your mandatory practice"

#

Are we deadass?

#

If I know the topic why do I need to do a fuck ton of homework

teal junco
#

I'm graded on my notes for an AP but I think it makes a bit more sense because he wants to encourage us to study the books at all. He only grades us on having the outline of the book. But I dont expect to ever do that in college

slate flume
#

But I can tell you some college classes grade on notes

severe cave
teal junco
slate flume
teal junco
#

Some people (like you) don't need it to learn, and it sucks that you still have to do it

#

some people do need it to learn

slate flume
#

School sucks balls

soft depot
teal junco
#

unfortunately

slate flume
restive turret
soft depot
teal junco
#

they should have reverse 504 for geniuses

restive turret
severe cave
slate flume
teal junco
slate flume
#

Genuinely dreadful

restive turret
#

I always procrastinated doing homework

slate flume
#

My mental health was shit because of school

slate flume
#

Lmao

teal junco
severe cave
slate flume
#

Just git gud

#

I don't do a shit ton of homework so I get more free time than you

restive turret
teal junco
#

I hate the school system because it failed me abysmally in Middle school.

slate flume
#

My stats and probs course had mandatory vocabulary where we had to submit a handwritten list of vocab words and their definitions every week

teal junco
#

Luckily high school is better

slate flume
severe cave
teal junco
#

But I assume many people struggle in HS the way I did in Middle

slate flume
#

.

restive turret
#

Ye i don't wanna see that again until I'm prepared for it

severe cave
teal junco
#

I think you can't speak for other peoples personal experiences, and everyone experiences the world differently

slate flume
#

I live in a rural area so I never got access to really cool teachers or dope learning programs or anything else

#

Didn't help that I wasn't diagnosed with inattentive ADHD until like 10th grade

teal junco
#

Whatever issues ThatGuy has with school doesn't necessarily mean that it applies to you, or vice versa

restive turret
#

Im the xI'm either get this math subject or I will never able to learn this"

slate flume
severe cave
teal junco
#

Homework is a useful tool, but not everyone benefits from it the same way

teal junco
restive turret
slate flume
#

My old schools sucked

#

I ended up hanging with all the stoner kids last year

#

Had a blast

#

Still friends with them

severe cave
teal junco
severe cave
teal junco
#

Because smoking weed gets you "stoned"

slate flume
severe cave
#

Yes, ngl I still respect you for getting friends, but

#

If you are happy then thats cool

slate flume
#

Had almost no social life with it until last year

#

I still studied math and shit just I didn't hit it as hard

#

I'd actually hang out with people

#

So you were entirely correct lmao

#

I was just ribbing you

severe cave
#

What made you so into math tho? Like do you have a relative who is a math guy or something or you were just naturally interested in it

#

Or for pure knowledge

slate flume
#

I generally got really into anything we had around the house

teal junco
#

Holy, I remember learning Sigma notation with my dad at age like 8. Then I forgot it all lmao

slate flume
#

We had paper and pencils so I did a bunch of math

#

We had a piano so I learned music

teal junco
#

Damn

slate flume
#

We had a rubiks cube I found when I was like 8 so I learned that

restive turret
#

Lol

slate flume
#

I used to carry around a cheat sheet with all the algorithms I needed to memorize

restive turret
#

I got into programming because of my father

severe cave
teal junco
slate flume
teal junco
slate flume
#

Well at least until later in life when I got access to my dad's bookshelves

#

Read a great three part trilogy on the american civil war

teal junco
slate flume
#

I got into programming so I could cheat in video games

teal junco
#

but I know without it I would have infinitely more trouble with doing SL mods the first time around

severe cave
restive turret
#

And how a computer works (at that time)

slate flume
slate flume
#

I essentially learned from scratch the intuition behind different fields of mathematics

severe cave
#

Cuz if I want to learn a new topic I always go to the library in the city

slate flume
#

And other stuff I think

#

Cheat engine got me into learning assembly code

restive turret
#

Then somehow i only know that I started doing "programming" because I was gonna make a Minecraft map with command blocks and stuff

slate flume
#

Minecraft command blocks are a fun challenge

#

I made a physics engine in minecraft and that was my magnum opus

restive turret
#

1.12.2 was when I stopped, wasn't much but was good

slate flume
#

That was wild

restive turret
#

Then there was a 2 year when I actively RE'd Rainbow Six Siege so can create some tools for it and understanding how the game works

teal junco
#

Command blocks are great honestly

restive turret
#

I didn't know how half of the things worked so

teal junco
#

I love the new tools Mojang added to Minecraft

slate flume
#

I do kinda miss the simplicity of the old days

teal junco
restive turret
slate flume
#

1.7.10 was peak

#

Super Secret Settings why

restive turret
#

Million mods

teal junco
slate flume
restive turret
#

Yes

restive turret
#

I watched so many yt vids about modded mc

slate flume
#

I used to watch a lot of those

#

Only One Command videos

#

I ended up making my own

restive turret
#

The earlier was like 1.6.4

teal junco
restive turret
#

Or something

slate flume
#

I made an orbital strike only one command block that did a raycast to wherever you pointed and sent down a bunch of tnt on the location

slate flume
severe cave
slate flume
#

Things used to be so much less complicated

#

Nostalgia man

teal junco
soft depot
#

You guys ever GregTech?

slate flume
teal junco
#

achievements were "hardcoded" before, I think. But now theyre literally jsons

restive turret
soft depot
restive turret
#

Hard af

teal junco
soft depot
restive turret
#

Gtnh

restive turret
#

I played like modern and until Cleanroom

#

I also ordered terrafirmagreg

#

My best worst decision

slate flume
soft depot
#

I wanna do a gtnh playthrough, but I don’t got the time

#

I did beat nomifactory tho w a friend

slate flume
#

For whatever reason, I never got deep into minecraft modpacks

#

They never were really my jam

#

I fucking loved Doom 2016 though

teal junco
#

Vanilla with light mods was always my favorite

slate flume
soft depot
#

We should all do a compact claustrophobia playthrough sometime lmao

slate flume
#

I was never a huge minecraft guy unless it was about command blocks and redstone

restive turret
slate flume
#

Mindustry too

soft depot
#

I love making factories and automation, so my fav modpacks typically center around that

teal junco
slate flume
#

Shapez was one of the only factory games I fully completed

soft depot
#

I only don’t get burnt out with modded mc packs tho

slate flume
#

Shit was like crack

teal junco
restive turret
slate flume
#

I'm very picky when it comes to games

restive turret
#

Great great but nyeh

slate flume
#

Not a lot scratch the itch

restive turret
#

I like machines and stuff not cogwheel

soft depot
teal junco
restive turret
#

Fair

teal junco
#

but just generally am not a tech mod guy

restive turret
#

I'm more of a tech mod guy

#

Created a big af nuclear reactor too

soft depot
restive turret
#

Meka

soft depot
#

Mekanisms endgame is kinda ehhh ngl

restive turret
#

Ye

#

In the end I just blew up the reactor and left

slate flume
#

And immersive portals

#

Omg

#

Immersive portals is peak

soft depot
#

I've made so many nuclear nightmares

slate flume
#

I built the craziest fucking teleporting nightmare shits with immersive portals

soft depot
teal junco
restive turret
#

The other i like is botania

slate flume
teal junco
#

I do enjoy how ridiculously huge tnts expose whatever math Minecraft uses to calculate destruction

restive turret
#

Just because of the fight with gaia

soft depot
#

it rarely gets ported to newer versions though 😔

restive turret
restive turret
#

But effects was spot on ye

soft depot
#

exponential XP requirements is just sad cuz you never get to max without cheating

teal junco
soft depot
#

LOL

teal junco
#

So his chromebook was kinda fucked

teal junco
#

u can sorta make out the explosions

restive turret
#

Minecraft cracked his laptop

teal junco
restive turret
#

Lol

teal junco
#

More specifically my left hand index knuckle

hollow remnant
#

guys, how to change damage amount?

warped prairie
#

on what?

#

most things have a damagehandler iirc

hollow remnant
warped prairie
#

ehh im not too proficient on it, ill let sombody more knowledgeable answer it precicely

hollow remnant
worthy rune
hollow remnant
#

in PlayerHurtingEventArgs

worthy rune
#

could be that you need a publicized assembly

hollow remnant
worthy rune
#

actually checked and all you need todo is cast to StandardDamageHandler

hollow remnant
#

yeaaah

#

thank yoou green

worthy rune
#

nw

slate flume
#

It's odd but damagehandler doesn't actually come with .Damage

worthy rune
#

funnily enough, DamageHandlerBase only has one direct inheritor which is StandardDamageHandler

#

not sure why DamageHandlerBase needs to exist but maybe there was a reason at the time of creation

slate flume
#

Hey Riptide

#

I have a question

#

What causes the bug where player positions don't update

#

Is it a NW thing or a plugin thing

#

Or a server provider thing

worthy rune
#

is it the one involving StaticUnityUpdate?

slate flume
#

I got this sent to me

#

No clue how this happens

worthy rune
#

yeah i have seen something like this, for me the character controller component was null for one player, so one of the events subscribed to StaticUnityUpdate(or something named like that) was throwing due to the null CC. and since theres no try catch or anything none of the other movement updates work for any other players(but sometimes some players can still move since it depends when the error occurs)
I could not figure out why it was null other than reverting one of the last updates i had on the plugin. which was super weird as i didnt touch the CC in anyway and all i had done was add CustomInterestManagement so i could have vanish

#

although check your logs first to see if its the same issue, technically anything that throws in StaticUnityUpdate can cause this

slate flume
#

See that's interesting because this problem randomly cropped up on one of our two servers

#

They use the same plugin

worthy rune
#

i have seen other people have the same issue, i belive it can happen on vanilla but its pretty rare. how offten does this happen for you?

slate flume
#

This is the first time that I know of

worthy rune
#

ahh, could just be the base-game then

#

for me it was happening like every 12ish rounds

#

which was really terrible

slate flume
#

Well I'm gonna check out the localadminlogs and get back to you

#

Actually I remember seeing this before

#

It was months ago

#
[2025-10-15 23:24:11.716 +00:00] [STDOUT] NullReferenceException: Object reference not set to an instance of an object.
[2025-10-15 23:24:11.716 +00:00] [STDOUT]   at UnityEngine.Bindings.ThrowHelper.ThrowNullReferenceException (System.Object obj) [0x00018] in <0deee1b9576d40a7a211b55014778fa6>:0
[2025-10-15 23:24:11.716 +00:00] [STDOUT]   at UnityEngine.CharacterController.get_radius () [0x00006] in <80561691956e42ebafb647fbf7695776>:0
[2025-10-15 23:24:11.716 +00:00] [STDOUT]   at PlayerRoles.FirstPersonControl.FpcMotor.UpdatePosition (System.Boolean& sendJump) [0x00062] in <683b197cfbd14f82a3a00d90e64b9cac>:0
[2025-10-15 23:24:11.716 +00:00] [STDOUT]   at PlayerRoles.FirstPersonControl.FirstPersonMovementModule.UpdateMovement () [0x0001d] in <683b197cfbd14f82a3a00d90e64b9cac>:0
[2025-10-15 23:24:11.716 +00:00] [STDOUT]   at (wrapper delegate-invoke) <Module>.invoke_void()
[2025-10-15 23:24:11.716 +00:00] [STDOUT]   at PlayerRoles.FirstPersonControl.FirstPersonMovementModule+<>c.<Init>b__116_0 () [0x0000e] in <683b197cfbd14f82a3a00d90e64b9cac>:0
[2025-10-15 23:24:11.716 +00:00] [STDOUT]   at (wrapper delegate-invoke) <Module>.invoke_void()
[2025-10-15 23:24:11.716 +00:00] [STDOUT]   at StaticUnityMethods.Update () [0x00009] in <683b197cfbd14f82a3a00d90e64b9cac>:0
#

Does this mean I need to make a patch

worthy rune
#

yeah thats the one

#

in the past i had another more experienced dev try patching by trying to fix the character controller but had no luck in fixing it

slate flume
#

Is there a way to reproduce the issue?

worthy rune
#

today i would try maybe wrap the inside of PlayerRoles.FirstPersonControl.FpcMotor.UpdatePosition in a try catch and just deal with the logs(or maybe not log the error at all) when the issue occurs

worthy rune
slate flume
#

I could just null check the char controller and do an early return if it's null

worthy rune
#

yeah that should work too

#

wondering its an actual player thats its happening too or a maybe a player which was already destroyed, i guess you would find out as if its the former you would end up with 1 player every now and again thats unable to move

slate flume
#

Yeah if I do an early return it'll be one person unable to move it it's a regular player with a null charcontroller

#

But I suspect the problem is just that there's an FpcMotor that isn't properly cleaned up or is misattributed

#

But shrug no clue

worthy rune
slate flume
#

I'll add logging on the early return

#

Check reference hub, game object, ...

swift nexus
#

@worthy rune I have never seen this base game, are you sure it's not plugin related?

soft depot
#

try blocks are pretty tough with harmony but I did it once

slate flume
#

Could you not force the method call to be in a helper method that does the try catch

#

Well that's probably hacky

#

I have no idea how try catch is done in IL

soft depot
#

blocks

slate flume
#

But I'm not doing it here

#

I'm just gonna add null checking and log when it happens

soft depot
#

I can send my try finally patch stuff if you want

slate flume
slate flume
#

You're not addressing the actual problem

#

You're just making it not shit itself when it has a problem

soft depot
#

it seemed like Init was throwing the error tho

slate flume
#

The problem is in UpdatePosition

soft depot
#

the problem with unhandled exceptions is that they forcefully stop stuff

#

like if you throw an error in static unity update, it stops all later events

slate flume
#

Yes I know

#

That's why no one was able to move

slate flume
#
[2025-10-15 23:13:43.444 +00:00] Logging started.
[2025-10-15 23:13:43.444 +00:00] Timezone offset: +00:00
[2025-10-15 23:13:43.455 +00:00] Waiting for players...
[2025-10-15 23:13:43.513 +00:00] [STDOUT] Unloading 246 unused Assets to reduce memory usage. Loaded Objects now: 501197.
[2025-10-15 23:13:43.514 +00:00] [STDOUT] Total: 127.840351 ms (FindLiveObjects: 27.192829 ms CreateObjectMapping: 14.091361 ms MarkObjects: 85.338111 ms  DeleteObjects: 1.217700 ms)
[2025-10-15 23:13:43.514 +00:00] [STDOUT] Unloading 3 Unused Serialized files (Serialized files now loaded: 0)
[2025-10-15 23:13:43.514 +00:00] [STDOUT] NullReferenceException: Object reference not set to an instance of an object.
[2025-10-15 23:13:43.514 +00:00] [STDOUT]   at UnityEngine.Bindings.ThrowHelper.ThrowNullReferenceException (System.Object obj) [0x00018] in <0deee1b9576d40a7a211b55014778fa6>:0
[2025-10-15 23:13:43.514 +00:00] [STDOUT]   at UnityEngine.CharacterController.get_radius () [0x00006] in <80561691956e42ebafb647fbf7695776>:0
[2025-10-15 23:13:43.514 +00:00] [STDOUT]   at PlayerRoles.FirstPersonControl.FpcMotor.UpdatePosition (System.Boolean& sendJump) [0x00062] in <683b197cfbd14f82a3a00d90e64b9cac>:0
[2025-10-15 23:13:43.514 +00:00] [STDOUT]   at PlayerRoles.FirstPersonControl.FirstPersonMovementModule.UpdateMovement () [0x0001d] in <683b197cfbd14f82a3a00d90e64b9cac>:0
[2025-10-15 23:13:43.515 +00:00] [STDOUT]   at PlayerRoles.FirstPersonControl.FirstPersonMovementModule+<>c.<Init>b__116_0 () [0x0000e] in <683b197cfbd14f82a3a00d90e64b9cac>:0
[2025-10-15 23:13:43.515 +00:00] [STDOUT]   at (wrapper delegate-invoke) <Module>.invoke_void()
#

So it must've not properly cleaned up the FpcMotor from a previous round or something

worthy rune
slate flume
#

I was told the problem was persisting between restarts

slate flume
worthy rune
slate flume
#

I'm just gonna patch update position with a null check for character controller and run an early return if needed

#

No need to do logging if I already know the player doesn't exist

#

That should about do it

#

I'm so happy I learned transpilers

#

I <3 transpilers

slate flume
#

Code never works first try

#

I must be getting better at this stuff

#

God I hope I find more stuff to write transpilers for

#

I love them

soft depot
#

just rewrite the entire game 🙃

#

anyways, here's my untested method for creating a Try Catch block for a patch:

        /// <summary>
        /// Wraps a simple try catch block around a given method, can cause errors.
        /// </summary>
        /// <param name="instructions">The instructions to modify.</param>
        /// <param name="generator">The IL generator (if needed).</param>
        public static void WrapTryCatch(List<CodeInstruction> instructions, ILGenerator generator)
        {
            instructions[0].WithBlocks(new ExceptionBlock(ExceptionBlockType.BeginExceptionBlock));

            CodeInstruction retInstruction = instructions[instructions.Count - 1];

            Label retLabel = retInstruction.labels.Count > 0 ? retInstruction.labels[0] : generator.DefineLabel();

            instructions.InsertRange(instructions.Count - 2, [
                new CodeInstruction(OpCodes.Call, Method(typeof(Log), nameof(Log.Error), [typeof(object)])).WithBlocks(new ExceptionBlock(ExceptionBlockType.BeginCatchBlock)),
                new CodeInstruction(OpCodes.Leave, retLabel),
            ]);
        }
slate flume
#

Idk who needs it but if they do

soft depot
#

¯_(ツ)_/¯

slate flume
#

Why do you keep using ILGenerators

#

They're only needed if you're using a code matcher

#

You can remove the parameter

soft depot
#

they're what harmony provide, and you need them to declare locals or define labels???

#

what I sent isnt even a patch

#

just a static method

slate flume
#

Forgot about that

#

I just like codematcher imo

#

CodeMatchers are based

soft depot
#

anyways, if you want a schizophrenic project to work on, try ball aimbot or an effect API with parallelism and seamless integration of base game effects and custom effects where you can just code an effect to do something, define what type of inputs each parallel thing takes (like does it take in 2 floats for diff stats of effect?), and make it easy to use. And for ball aimbot, try making the aimbot hard to notice, but still hit you

soft depot
#

yea?

slate flume
#

Custom effects don't really sync that well

#

Afaik

#

That's what I've been told by others

soft depot
#

wdym?

slate flume
#

Like a lot of the effects don't sync with the client

soft depot
#

here I made this as a custom effect and it works fine

soft depot
slate flume
soft depot
#

you could either transpile SetIntensity or make your own handler for effects or something

soft depot
slate flume
#

Oh

#

I see now

#

I get what you mean

soft depot
#

so an EffectObject tracks all CustomEffects of its generic type and then the effects can do stuff to modify intensity whilst the EffectObject handles creating a "default intensity" and setting intensity

slate flume
#

You mean write an entirely custom effects API that can do things the server syncs with the client like setting size and things

soft depot
#

yea, so instead of making weird coroutines, just make it behave like an effect

#

here's another EffectObject

slate flume
soft depot
#

a custom one

slate flume
#

I use components

#

At least more often than not

soft depot
#

here are all the actual CustomEffect classes

#

so I could have an effect be disabled for like 30s and still have the EffectObject track all other CustomEffect instances and decrement their duration while the effect is disable, etc...

slate flume
#

Interesting

soft depot
#

I can also make an effect that makes TickingEffects run faster / slower

slate flume
#

I mean I kinda just make stuff that I need to use

#

I don't really need any of this

soft depot
#

here's an effect that only applies itself while some condition is true

soft depot
soft depot
#

here's an effect that lets you control its intensity every time you update it

slate flume
#

I mean I made an API for custom items

#

Cause I needed that

#

It was interesting trying to get a unique static dictionary working in a derived class

soft depot
#

so like say I want every person near you to give u 5% movement boost, I just add an effect to foreach nearby players and update the EffectObject with a unity spherical collider or something (I can also just manually edit a normal CustomEffects intensity)

slate flume
#

It was a bit roundabout but it was fun

slate flume
soft depot
soft depot
# slate flume So you essentially just use it as a component?

I guess? Cuz it's all generics I added a bunch of helper methods, but if you knew the generic, you'd just go to a Dictionary<Player, List<IEffectObject>> (all EffectObjects inherit IEffectObject so I can all classify them as something), cast the IEffectObject to your generic, add a CustomEffect to the EffectObjects effects List, then just call EffectObject<>::UpdateIntensity();

#

anyways I have all these dictionaries of methods so I can just use a custom enum (CustomEffectType) and use that enum like Exiled

slate flume
#

Nice

soft depot
#

I even did this whole thing where I made a Parser class that, given a CustomEffect<T> and some strings as parameters, would get the type of the ctor of that custom effect, TryParse all the inputs, then construct the effect

#

that way I could make this API seamless with a SSS RA thing I have

teal junco
#

this is cool

#

this is awesome

#

wtf

soft depot
#

you just select an EffectObject (like MovementBoost), select a CustomEffect (like additive), the menu would find the parameters to create the effect, create a list of settings for you to input them, then when you hit add effect, would create the effect and add it

slate flume
#

This feels like a lot of work

#

I respect that

soft depot
#

anything for trolling Trolley

slate flume
#

Feels a little excessive for what most people need though lol

soft depot
#

now I can make anybody have the Fade effect with a sinusoidal intensity, and it took 0 effort compared to any other effect, the API did it all for me (so like adding 1 feature added the feature to ALL effects)

slate flume
#

I mean a lot of these effects could just be like one component you add to a player

soft depot
#

but let's say you wanted to stack them lol

#

you'd get conflicts easily with individual components

soft depot
#

but EffectObject<T> acts as a handler for everything

soft depot
#

well when one effect component triggers something, how does it know where to get the intensity from and modify it?

#

does it just assume it's the only thing affecting others?

soft depot
#

let's try to be more specific with wording, do you think EffectObject<T> could be a component, or CustomEffect<T> could be a component?

slate flume
slate flume
soft depot
#

well sure I could make components for my custom effects, but I wanted custom effect modifiers

#

but with this API I can make any custom effect, and have it utilize the work I've already made for all the other effect modifiers

slate flume
#

Add a public property

#

And change the property of the component

soft depot
#

yknow, I should rename CustomEffect<T> to EffectModifier<T>

#

that'd be a LOT clearer

slate flume
#

And if you really needed you could have a base component with any common implementations that you derive effects from

soft depot
#

anyways, you're saying EffectObject<T> could be a component, which it can, but with the current system it's a Dict lookup and a foreach instead of a GetComponent call

slate flume
#

I avoid GetComponent calls

soft depot
#

fair enough, but why would I want it to be a component?

#

the only active stuff it does it update duration on modifiers, which can be handled easily with a coroutine

slate flume
#

My main point is just what you're describing seems really excessive, no offense
Maybe it works great for your purposes but I feel like it could really be simplified

#

I respect the time and effort

#

It just seems like a lot for so little

soft depot
#

well how would I define custom effect modifers and custom effect requirements?

slate flume
#

I have items that give special effects and things but I've never had any need to merge those into one huge API

soft depot
#

like for my Size effect, I made an interface, I3DEffect, where only a modifier with that interface can apply to that effect (at least via the SSS RA)

soft depot
#

I think the funniest thing I made for this API was having it so base game effects are just defined like so

#

so if I need an effect to use this API for some reason, I just define it like so

slate flume
#

It's just interesting that you came across the need to make all of this

#

Seems niche

soft depot
#

well I wanted parallelism with modifiers, and the ability to make effect objects use those modifiers whenever I want

#

so no more yellow candy removing movement boost shenanigans

#

it's just a 10% for 8s or whatever