#plugins-dev-chat
1 messages ยท Page 37 of 1
so how?
You could drop the primary key column and re-create it. All the ids should then be reassigned in order.
However this is probably a bad idea in most situations. If you have other tables that have foreign keys to this table then it will definitely not work.
There is no reason to care about what number is that
Primary key is used to make rows unique
im know
but i wanna reset it
because it doesnt have foreign key in other table connected with this
alter table foo AUTO_INCREMENT = 1
its only change next to around
but i wanna regenerate exists too
you can copy the data to temporary table
drop the original one
and then insert them again
.
a bit of stackoverflow
exists easier way
but i lost query
bruh
turns out that network props are set in Start and i ofc spawned the object before Start was invoked a frame later
Oof
its bad when exists spaces in id
i fixed by just invoking start myself 
do you even do lookups based on this numeric id?
now not
later will be additional table
with foreign key to this
but in anyway found
magic query
not sure why you'd have a foreign key to this id?
why not index by steamid
it doesnt have steamid
userId - foreign key to other table
"userId"
yes
i uh
its too id
i'm gonna shush cuz i don't really understand this stuff
axwabo moment
but on dashboard it looks like
the more and more ive used things like nosql, ive come to like nosql more than traditional sql stuff, because i just dislike relational databases quite a bit ๐ญ
Wait, you are mixing TWO database structure models at the same time
nvm I thought those are userIds of the users not the column name
right
also storing IP address 

i dont love alt of the accounts
xd
oh wait I cannot use that embed failure gif
damn
?
Trust me, IP addresses aren't a reliable way to get alt accounts LULE
if 2 users have logged in from 1 address at least once, both accounts will be banned and will not be able to bypass by changing the IP address
me when ip bans exist
but other doesnt exists
in the age where 70% of the players behind cgNAT, IP addresses MIGHT help
๐
labapi doesnt give hwid
wasnt there like a program
That would be a horrible security hole lmao
CGNAT will destroy you
i got CGNATted sometime and i was wondering why my port forwarding stopped working
requested to be unNATted and they did that immediately
I had 5 people log in from the same ip address, all different accounts, different servers /shrug
wait till you realize that isp can use one ip for many users
These fuckers bring PAID CUSTOMERS behind cgNAT, giving them a random ip lol
exactly
CGNAT
Yeah that is cgNAT
ban one and when all the others are banned tell them who did it and have them beat up the guy for breaking server rules IRL
most consumers aren't really bothered by it
josh

it was josh
well when I cannot VPN to the customer cause Telekom changed their IP the third time in a month, it is fucking furiating
lmao
Also RE to this: I love when we get random ban appeals with "I never was on this server" and check and the geforce PC got banned 
Oh god XD
if it works it works
maybe older versions of SL
no..?
me who is lucky that Rider and SL can run and not die while watching twitch Uhh yeah any processor haha
i have a laptop with a dual core 1.1 GHz cpu
it's not pentium
i'm lucky it boots even xd
cuz it's old
my moms laptop also wouldnt be able to run it
old
My laptop can run the game, just in the crash screen only
not everyone buys all new tech
if that counts
-# apple ecosystem khm
this one?
not editor
but unity
player
yeah
Whatever u do btw is clearly wrong when 3 people say you should do ot
you about?
Databae
what wrong with db?
How can I make a raycast not to detect primitives/admintoys?
Currently I have these CachedLayerMasks:
"Default",
"InvisibleCollider",
"Fence"
set layer of primitives to something else
turn off their collider when raycasting
just some ideas
Uhh and how can I do that?
every gameobject has a layer
its a property for it
obj.layer
Ah okay thanks
UserId for security reasons only
I assume security reasons means internal ban lists for a plugin for example
or to log violent actions
But ips and those eh
(like reports, teamkill, etc)
why would you need IP
Idk
any admin can request IP technically but there isnt a practical use i can see
to prevent alts? there is quite a bit of uses for IPs security wise
how can I spawn a live a grenade on a player?
do you only want an explosion or an actually primed grenade?
The patch was targetted at ServerDropEverything in InventoryExtensions
And no, I'm no longer using it
Uhm I put it to Ignore Raycast layer
And the pickups are falling through it
put it on a different layer
primed grenade
How can I send to players fake information about primitive flags?
@upper vapor do you know how?
There is method in one of the projectile classes
I think in TimedGrenade
.SpawnActive()
why does the -1 remaining time not get handled
thanks
uhhhhhhhhhhhhh
should I leave it on -1 or override it with something positive?
give it the amount of seconds you want it to explode after
Yea
Can somebody help me with harmony, how and where can I install it and make it work
Docs: https://harmony.pardeike.net/articles/intro.html
Dll: https://github.com/pardeike/Harmony/releases/tag/v2.3.6.0
thanks
When I spawn primed grenades it doesn't damage anyone, do I have to pass an owner? and if so can I make it do damage to everyone including the owner's team?
FF On/Off?
off
Well its dependent on that
ah so i have to have ff enabled for that, unlucky
it would be nice if it damaged everyone if it was set to null, or there was some kind of setting for it
Maybe the PlayerHurtingEvent?
how can I detect if the damage came from a grenade without an owner?
Well the attacker will be null
ExplosionDamageHandler
or Explosive
I never remember
@young phoenix ExplosionDamageHandler, check if ExplosionType is Grenade
there is no explosiondamage handler, only normal damagehandler and there isn't a type I can check, unless if you mean that property and checking with the grenade class
You have to cast the damage handler
if (args.DamageHandler is ExplosionDamageHandler { ExplosionType: ExplosionType.Grenade } handler)
{
// Do something.
}
that's some goofy syntax but thank you
Better than doing
var handler = args.DamageHandler as ExplosionDamageHandler;
if (handler?.ExplosionType == ExplosionType.Grenade)
{}
Or you can do
if (args.DamageHandler is ExplosionDamageHandler handler && handler.ExplosionType == ExplosionType.Grenade)
{
// Do something.
}
hmm I can't seem to damage the player
Yeah you can skip the pattern matching check
But might as well do it if you're already using is
ev.player.damage creates an infinite loop and doesn't do anything
Yeah well if your calling it from hurt event
makes sense
any other way to damage the player on the same team?
make the grenade owner Server.Host
that didn't do it :(
{ ExplosionType: ExplosionType.Grenade }
why you input something in { } ?
why not
it works
player is { IsAlive: true, IsDisarmed: false, IsInventoryFull: false };
https://github.com/northwood-studios/LabAPI/issues/165
Am I right or am I right
Isnt there already volume
is there any requirements to play an audio with a speaker, I tried to pass .wav, .pcm and .ogg files to it and it doesn't work ๐ค
audio is in 48 kHz, 16 bit mono
audioplayerapi requires .ogg files
yes but
is that what speakers require
probably not?
I'm trying to do it with labapi speaker / transmitter
also as audio is 48 kHz ingame, that means that it needs to be 48 kHz anyway
trying to patch in an event that's invoked whenever the player's health stats (hume shield, ahp, health, etc) is increased for broadly any reason, is there one individual spot that can do that? been looking for a solid 30 minutes and havent really found anything useful
my dumb ass still hasnt looked in the reference hubs actually one sec
HumeShieldStat?
Check what it inherits from
patch the setter for all those values 
StatBase or smth
how can i change primitiveflags for a specify player?
^
Might be the best option
player.SendFakeVarSync
my dumb ass forgot how c# getters and setters worked again
Lmao
Alternatively, depending on your use case, you might be able to just run a coroutine that checks a player stats and compares them to what it was before
LabApi player doesnt have that
create it
Real shit
youll need to fake it through mirror
I wish I knew how to do it.
Tbh someone at the same time as you asked in exiled earlier so i thought yall were together
patching the setter would effectively just do this anyway
Exiled 
just with no need for a coroutine to run constantly
Errr
yeah...
1 function that wont be fully accurate
Vs potentially 3+ patches
And cant check for compare between 2
patches is better
[HarmonyPatch(typeof(Class), nameof(Class.Property), MethodType.Setter)]
Prefix(typeOfPropertyHere value) {...}
It all depends on the use case
nah i figured it out i just forgot that .Health was an actual thing that i could just go to, too used to java
lol
Fun fact
Properties (getter/setter) is just methods
Real
get OUT!
also means MethodType.Setter actually isnt needed
its just cleaner
ig
me when I make some disgusting reflection because i wanna do a silly :3
is there any possibility?
yeah and it's better to use nameof as well
in case breaking change
breaking change will happen anyway
i dont remember if nameof() compiles to string
Or if thats put into IL
And done later
i mean itd have to be IL for nameof(T) to work
Which is valid iirc
anyway
!!
Man I hope John LabAPI likes my GitHub request
it does
Nvm this
Literally becomes "T"
Ok yeag
Anyway yeah thr only thing it fixes is refactoring really
also string stinks!!
its for make values by default?
but why
if its already will be normal
What?
player is { IsAlive: true, IsDisarmed: false, IsInventoryFull: false };
player is Player && player.IsAlive && !player.IsDisarmed && !IsInventoryFull
They are the same
(the first is also a null check)
yes it checks for the values to be like that
IsAlive & Is not disarmed & is not full inventory
I NEED HELP
I force a player to drop an item and I want to invoke the playerdroppeditem event but idk how
Nvm I'm just stupid
I was doing PlayerEvents.DroppedItem not PlayerEvents.OnDroppedItem
My b
You don't need to do {} in this scenario
if (a is B b)
i should just use these instead of writing out properties 
Set ForceFullFriendlyFire (FFFF) to true in the damage handler
If you don't want to use Killers' API, you can read the file yourself
Ogg with NVorbis
Fun fact
Since C# 10 you can have constant interpolated strings that contain other constant strings
So like [Description($"Requires {nameof(OtherProperty)} to be true.")]
Same with const
And yes the compiler takes the string literally
If you now it's not null, yeah, you don't need the {}
No you literally don't need to if you're just casting
a is B b won't pass if a is null or a is not B
okay, but is it possible to use not a .ogg file?
like .pcm or .wav or .opus ?
Probably, but you have to make your own algorithm to process the audio
like something similar trasmitter has?
they might be refering to loading, not transmititng
๐ค
Im no audio engineer but it should be possible to turn every audio format readable for speakers
lol
so it possible to pass .pcm or .wav in speker's transmitter?
No, you have to convert it to ogg before that
๐ญ
wdym?
Fart.wav => fart.ap (converted to byte array (from floats?) for able to play audio)
I have output file only in .pcm or .wav or .opus
so I need to find a way to convert them first to .ogg
Ffmpeg
transmitter takes an array of floats, you only have to make sure its PCM, at 44100 and mono channel
Pocket Collection Measurement
not 48 kHz ?
I tried to do that, but with 48 kHz file
i would like to make it easier to make it load sound, but from my testing unitys audio apis dont work on the server build
i actually dont remember if it was 48kh or 44.1kh either way it will only result in slight sped up or slowed down audio
Vorbis library?
is that part of SL
Probably nope
I believe so.. uhh..
was thinking about adding some way to load sound using the LabAPI
I tried this with .pcm
and it didn't work
what does it sound like?
libopus-0.dll
just nothing, idk why
Has it
no sound at all
is the speaker near you when you play it?
yep
can you show us the code for that
to spawn a speaker?
oh is this exiled?
yep, but a custom one, with integrated transmitter from lab api
If you parenting the Position became relative to the parent
^
So if you have a (playerCoord) in the Position to spawn and you add player as parent it will go to PlayerCoord + your already defined PlayerCoord
Who knows where because of the parenting
i think the issue is that they are doing speaker.transform.parent = player.transform.parent and player.transform.parent is null
testing with new position, one moment
48000
ic
There's a RIFF header at the start of wave files
but not in .pcm?
or even in .pcm?
I'm not sure why you need to avoid the AudioPlayerApi
It has built-in support for .ogg file loading
Though I don't like the idea of reading an entire file into memory as a float array
-# if it's longer than a minute
I checked .pcm doesn't have riff header, only .wav has it
also tried with fixed parent, still no sound
This should work
Can you try spawning the speaker at the player's position without parenting it?
might be how exiled sets up the speaker, can you try setting the controller id to match the one from the transmitter
Exiled? ๐ญ
Then don't use exiled 
labapi doesn't have a Speaker class
Yeah
I didn't see that part of the chat
The file reading is correct
The playback is likely messed up
yeah the file reading looks correct to me
probably I find a mistake, for some reason parent can't be attached to dummy, checking why
you should be able to parent to a dummy
now it works, something wrong with parenting to a dummy
Try speaker.Transform.parent = Jimmy.networkIdentity.transform;
do you use anything like EXILED MER or Map Forge
CedMod 

nope
can we see the code your using now
wait, I'm fixing transform for a dummy, it's broken in exiled ๐ฅด

How did they even break dummy transforms
they have wrapper on top of dummy and it's nested from Player class, probably there is a problem setting or getting transform or even referenceHub
anyway I'll fix this
dummy.ReferenceHub.Transform?
Dummy, refhub is null?
How can I get in what the player died (I want to check if the player died in the pocket)?
OnPlayerDied -> DamageType === DamageType.Pocket...
Doesn't work if shot in the PD
Would just track who is in the PD via PlayerEnteredPD/LeftPD
ofc, but they probably wanna do a kill counter
technically then, larry wouldnt kill them
I'm making objectives for my custom SH wave ๐
You can combine both
OnEnter/OnLeft PD => add into list.
OnDeath => if died by larry or pocket dim & in the list add into the wave thing
My own Custom Waves might have some things for it 
You'd have to check that in Dying though
Since Dead already killed the player and the event args don't have the position and all of the player's death
TryGetLastKnownRoom
before i make any bug reports does anyone have any issues where checkpoints are bugged and stuck open until manually closed in RA and does anyone have any similar issues?
i dont know if this is caused by a plugin or what
plugin issue
Anything in LA logs?
Plugin issue
well it happens randomly and i've only received like a couple bug reports about it
so i cant really find a the correct file for it
bro are you cooking an airport in sl?
no ๐ญ
its just like a realistic checkpoint with queueing and things
grep exception

Uh oh
Pain and suffering
how is that fucking 90mb
You're gonna get many false positives
On terabit?
-# idk how that hosting works
No CLI 
ok lets go
oh i know why its 1mb, my idiot staff members set everybodys size to 99999999999999999 and crashed everybody ๐
Do you do anything with doors besides spawning primitives there?
blame it on cedmod
Omg
We also get those messages 
Please censor that C*dMod
Okay
just get a j*b 
๐ poor ced
it used to be exiled crashing out and breaking my server now it's pretty much always cedmod
luckily faster patches than exiled but yeah ๐ญ
Did they fix the escaping event already
youre crazy
Bruh
Fella is dropping air
i lit did isallowed on the deactivating event for 1344
Heartbeat event
for april fools next year you should add a breathing event that just calls every second
It's a reverse stamina bar, that you have to press a button to breathe
and if you do not breathe you suffocate
The less stamina you have
Press breathe to breathe
the faster it triggers
you should add another event for every footstep taken so you can create a smart watch plugin 
Just track the player position every frame
FootstepSync?
me when that doesnt say when the character makes a step with their feet
Approximate it
I remember that being in a very old version
instead of trying to search through every localadminlog im gonna try and reproduce the checkpoint issue
Like a normal human being
Do smart watches actually count steps though
not accurately
mine does a fairly good job
we need more server specific things
Too much effort and money
Server specific client
me when hints
server specific everything
yeah but they dont have like buttons and text inputs and thingds
i would love for like a role selection menu or smthn
Open Source server reimpl
for ultra modding
Good luck :3
one thing i want is to make it so suggested server specific keybind keys are the default, and not just a small button you need to click to set
Server specific server
yes
huh
Server specific server specific server
I wish custom server in the server browser was a thing
But keylogging ๐ค
and not only from central list
You cant force keybind on the SSS
Suburban list
wish you could because the amount of clips ive seen on my server using SSKeybindHintParameter saying [NO KEYBIND SET] is funny ๐ญ
so i cant reproduce the bug amazing
[NO KEY] would be enough
im gonna blame the bug on cedmod
Yeah have you tried removing it
Open from Ra
Throw a keycard
Open via keycard, then throw the keycard
Throw the keycard while doing E
just random thoughts
Oh what if a custom card breaks it
Perhaps I could ask beryl if we can do something like
"auto set keybinds from server" setting
for player
to opt-in or out
if someone starts an rp setup with the command then unlocks all doors with the unlock all doors thing instead of unlocking down it fucks up the doors
in game settings
Yes
What
A pop-up on settings change maybe?
already made several staff announcements dont use unlock all doors ๐ญ
i had to make whatever this is
since for some reason unlocking all doors breaks them
How so
i dont know
NOOOOOO ๐

Uh
the checkpoint issue happens
hm
where the checkpoints just stay bugged open
if you unlock all doors with the lockdown thing in map modifers it works fine
Because that seems like base game bug
ill try and reproduce it on like a self hosted server rq
but this is really the only thing that the rp setup thing does is this and some other things like making GR18 require a keycard and thingsa
however that is exiled
so ill try with labapi if i cant reproduce on a diff server
LockdownCommand, no?
yeah thats right
They both use serverchangelock
yeah
they are basically the same
exiled does something else however for locking doors
yeah its caused by the doorevents thing
problem fixed
cant reproduce on another server

nevermind it didnt fix it
๐ญ ๐ญ
why are so many doors disappearing
i have a feeling exiled did this
Remove ex*led
and to prevent checkpoints from killing themselves ill just patch the unlock command to not work anymore

i dont think its that
exiled has weird comment regarding the door disappearing thing
imo if you want a lazy fix, just check for the All unlock command in OnCommandExecuting, prevent it and do the correct one 
exactly what im gonna do
did the cafe get removed or is that PC?
because i joined after coffee existed
so
idk
lcz cafe and 173 bottom gets molested by exiled
for some reason
no like, im talking in general
yeah
works perfectly
i have fixed da bug
by being lazy
@icy knoll you
do i keep secret api as just api or do i add patches for fixes

SecretAPIButAlsoNWFixer
or i could keep it in a seperate project still in SecretAPI but different .dll
i would say make that seperate because i will crash out if you release a patch you dont test that breaks doors opening or smth
best fix trust
We should send her plugins to QA

Oh wait Lumi is QA
you do it
time to obsolete everything in secret api
david you better have cooked
Absolutely
if this steak is well done youll know about it.
evee....
david...
valid point
im gonna strangle you..
no thanks
that wasnt a question
):
Gamae
idk what ur on about
Gae
Bruh
its truly june
@jaunty trail
I'm doomed
reminds me of david
what
Breathing event
its real
I hope so
lets change that
what
yes yes?
no?
i asked nicely
Um no I dont want to

my honest reaction
was gonna say keep it clean but forgot this isn't serverhost ๐ ๐ฅ
ts pmo
arent u queer
calling urself delulu is crazy
no ur js jealous
@jaunty trail arent u part puppy
or he knows not to be homophobic here idk
Lmao
whats more like him not being homophobic or him hiding it
I'd guess the latter one
the answer is neither
Okay i shouldn't have started this conversation ๐ญ

arent YOU a furry
half this server is
idk whats going on
How should I say this nicely
too tired
If you meant puppy as in fursona then idk what you're on about
Wtf is happening here
Plugin devs chatting
[2025-06-05 16:31:12.530 +03:00] [STDOUT] [Physics::Module] Cleanup current backned.
[2025-06-05 16:31:12.530 +03:00] [STDOUT] [Physics::Module] Id: 0xf2b8ea05
[2025-06-05 16:31:12.531 +03:00] [STDOUT] Input System module state changed to: ShutdownInProgress.
[2025-06-05 16:31:12.531 +03:00] [STDOUT] Input System polling thread exited.
[2025-06-05 16:31:12.531 +03:00] [STDOUT] Input System module state changed to: Shutdown.
[2025-06-05 16:31:20.818 +03:00] [STDOUT] abort_threads: Failed aborting id: 0x7da813dfe6c0, mono_thread_manage will ignore it
[2025-06-05 16:31:20.818 +03:00] [STDOUT] abort_threads: Failed aborting id: 0x7da876bfd6c0, mono_thread_manage will ignore it
[2025-06-05 16:31:20.819 +03:00] [STDOUT] abort_threads: Failed aborting id: 0x7da8130526c0, mono_thread_manage will ignore it
[2025-06-05 16:31:20.819 +03:00] [STDOUT] abort_threads: Failed aborting id: 0x7da8733fe6c0, mono_thread_manage will ignore it
[2025-06-05 16:31:42.548 +03:00] Game server has not sent a heartbeat in 31 seconds. Restarting the server in 10 seconds! Type "hbc" command to abort!
If you have issues with Exiled then please ask on their discord server
have you tried removing exiled
Then remove it and we can talk about other possibilities
(if it still happens of course)
main plugin on exiled

Clearly you missed something
should i use nickname or logname to get player name in public override void OnServerCommandExecuted(CommandExecutedEventArgs ev)
wtf
I used to crash out about it??
๐ญ ๐
I only remember being incredibly rude to zereth makes me feel sorry for the poor guy
I know I'm hella dement but I deadass don't remember 90% of our interactions
sorry I'm sigmaphile you wouldn't understand it
don't meet the aura requirement
Wtf does these words mean
good question
in which assembly is MEC? I want to time some stuff
Assembly-CSharp-Firstpass.dll
thanks
Time deez
Who r u
Ur worst nightmare
Nah
What
Note: this can be completely normal because UDP messages may arrive out of order, so this message might have arrived after a Destroy message.
Did not find target for sync message for 6552. Were all prefabs added to the NetworkManager's spawnable list?
My client is receiving all of this spam log in the Player.Log and the problem is connected to a patch that i have NetworkServer.SendSpawnMessage
I think its connected to something like syncing objects that aren't spawned
51.9GB of it to be exact
EntityStateMessage i guess
wtf is even this?
is this connected with primitives in any way?
With any objects that have NetworkIdentity
Hmmm
this might be an issue
because how could i patch this
and get the player who is getting sent this message
i know possible solution ๐ฅ wait a sec
Oh my
ur clutchin up rn u dont even know
๐
something like this
[HarmonyPatch(typeof(NetworkConnection), nameof(NetworkConnection.Send), new Type[] { typeof(ArraySegment<byte>), typeof(int) })]
public class NetworkConnectionSend
{
public static bool Prefix(NetworkConnection __instance, ArraySegment<byte> segment, int channelId)
{
if (__instance.connectionId == 0)
return true;
if (!__instance.isAuthenticated || !__instance.isReady)
return true;
if (__instance is not NetworkConnectionToClient)
return true;
if (!ReferenceHub.TryGetHubNetID(__instance.identity.netId, out var referenceHub))
return true;
var networkReader = new NetworkReader(segment);
if (!NetworkMessages.UnpackId(networkReader, out var messageId))
return true;
if (messageId != NetworkMessageId<EntityStateMessage>.Id)
return true;
// code goes here
return true;
}
}
What
Why do you even patch spawn messages?
we're testing something
no primitive
if player bad
To don't spawn on server i guess
__instance.identity.netId - is the netId of the player to whom the server wants to send the NetworkMessage
thats so peak
I know that7
but i meant
NetworkMessageId<EntityStateMessage>.Id
so if that is the logic then messageId is the thing that is trying to get reloaded?
is the unique Id of a specific NetworkMessage
wdym ?
Like i need to know if the player might be able to see that object
so thats why im asking
__instance.netId?
probably is the object?
no, that's a player
im confused so then how do i get the netid of the stuff being updated
Oh
i'll show u example
wait
bro you are clutching up rn
public static EntityStateMessage ReadEntityStateMessage(NetworkReader reader)
{
return new EntityStateMessage
{
netId = reader.ReadUInt(),
payload = reader.ReadBytesSegment()
};
}
and yet another example with EmotionSyncMessage
public static EmotionSyncMessage ReadEmotionSyncMessage(NetworkReader reader)
{
return new EmotionSyncMessage
{
HubNetId = reader.ReadUInt(),
Data = (EmotionPresetType)reader.ReadByte()
};
}
@celest thorn โ๏ธ
Hm
the issue is
Like i don't have data
not a netid of that object updating
this is solution
i need to have something to pin point
you've got it a little wrong
EntityStateMessage passes the netId of the object that is being changed
Ok and that was something i said
so how then i get who is reciving that message?
__instance (NetworkConnection) is connection of the player to whom the server wants to send the NetworkMessage
OH WAIT
I just saw it
lol
sorry for being so stupid
i'll let you know if it works
Tested it nope it doesn't
public static bool Prefix(NetworkConnection __instance, ArraySegment<byte> segment, int channelId)
{
if (__instance.connectionId == 0)
return true;
if (!__instance.isAuthenticated || !__instance.isReady)
return true;
if (__instance is not NetworkConnectionToClient)
return true;
if (!ReferenceHub.TryGetHubNetID(__instance.identity.netId, out var referenceHub))
return true;
var networkReader = new NetworkReader(segment);
if (!NetworkMessages.UnpackId(networkReader, out var messageId))
return true;
if (messageId != NetworkMessageId<EntityStateMessage>.Id)
return true;
if (!NetworkServer.spawned.TryGetValue(messageId, out var entityState))
return true;
string name = entityState.transform.root.name.Replace("(Clone)", "").ToLower();
var badplayer = BaPlayer.Values.FirstOrDefault(t => t.Schematic.ToLower() == name);
Player player = Player.Get(referenceHub);
if(player == null)
return false;
if (player.IsHost)
return true;
if (badplayer != null && badplayer.Players.Contains(player))
return true;
return true;
}
like idk if im doing something wrong
messageId is not netid
read netId from networkReader
yeah, it should
Nope it seems it doesn't like it
[2025-06-05 21:26:31.505 +00:00] Command execution failed! Error: System.IO.EndOfStreamException: ReadBlittable<System.UInt32> not enough data in buffer to read 4 bytes: [53-22 @ 0/2]
try to read payload
how can I stop/disable a coroutine that's running infinitely?
save it in a variable and cancel it
otherwise make it a while (x) loop rather than infinite
Like it shouldn't work because segment is the payload getting loaded
so it doesn't make any sense
If its cancelling w a player just .CancelWith and player gameobject
is there any static cancel method or a property for it? I can't find it
Timing.KillCoroutine()
yea
hi david
I will later try to make a similar patch myself with canceling the sending of the item's EntityStateMessage. I'll let you know later
Ok i will still try a bit
in case give me a dm
if you want
Oh yeah got myself a new screen & screen mount, had to drill a hole in my desk but look at this beauty
not ideal, kinda wish the center of the two screens was in the middle of the desk, but it's the best i can do atm
yo btw thank you, fixed it just did some a bit of more coding and now it works
fine
๐
YOOOO
Fellow Outer Wilds enjoyer
Absolutely gorgeous desk mat
I keep telling people to get their PCs off their floor by a couple feet because it literally adds years to its lifespan





