#plugins-dev-chat
1 messages ยท Page 180 of 1
like i don't think i did anything wrong?
You missing 2 bytes
what bytes??
maybe its a byte?
like the player because it requires ReferenceHub
the error isn't about what you're writing as data, the content length is bad
ok amazing
int headerPosition = writer.Position;
writer.WriteByte(0);
int contentPosition = writer.Position;
OnSerialize(writer, initialState);
int endPosition = writer.Position;
writer.Position = headerPosition;
int size = endPosition - contentPosition;
byte safety = (byte)(size & 0xFF);
writer.WriteByte(safety);
writer.Position = endPosition;
that looks fine though
idk
like im serious confused, to be honest idk and this is why it doesn't work anything i think lol
[03.02.2026 11:34:09] [ERROR] [LabApi] System.NullReferenceException: Object reference not set to an instance of an object
at Mirror.LocalConnectionToClient.Send (System.ArraySegment1[T] segment, System.Int32 channelId) [0x00000] in <8edc8ab9348e47b2ab7e66c903f2b942>:0 at Utils.Networking.NetworkUtils.SendToHubsConditionally[T] (T msg, System.Func2[T,TResult] predicate, System.Int32 channelId) [0x00055] in <2074319d08ae411499ec188b6bd916d5>:0
at Utils.Networking.NetworkUtils.SendToAuthenticated[T] (T message, System.Int32 channelId) [0x00000] in <2074319d08ae411499ec188b6bd916d5>:0
at LabApi.Features.Audio.AudioTransmitter+<Transmit>d__45.MoveNext () [0x00195] in <9e8e00107de94d4f8ea9fc96c93d382f>:0

You really fucked up something then
again
don't use the transmitter
I didn't ๐ญ
Okay, I'll patch the code
Are you sure you using Player.ReadyList?
I made IsValid check
There it is checked whether the player is null, whether the reference hub is null and whether it is ready for messages
Are you sure.. that the generator method does exactly the same?
im going insane inventory is the worst shit ever
last piece before i finally made the client without any error
any other things that inventory serializes?
like
objects
or a custom onserializeserver\
There's no serialize
Only the serializesyncvars
I've set the default like sl to ItemIdentifier.None
Maybe because the other like Sync etc... aren't even initalized?
smh
When the client source code would be so useful rn
wayside 
lol
sec xd
what do you need
inventory
when the client code would be worse bc you don't see the generated members
i've been trying to do the inventory
Ngl it would be better
because atleast i get a place where the error is going
TypeId??
TypeId is the ItemType
We dont have pdbs
Apart from generating yourself
@celest thorn And what exactly
I don't know i think its something to do with the inventory or the search
but both are fine
now you don't have enough data like how
IDK?
that is the same question i've been wondering
maybe i need to set the raydistance?
to something that isn't 0
i think this is the issue xd
Lol
i don't think so
i love mirror
float Float 4 bytes
int Integer 4 bytes
uint Unsigned Integer 4 bytes
One of this can be lol
nope still missing 4 bytes wtf?
The thing in SearchCoordinator is that there is only 1 syncvar
yea and i sync that one
so what are you syncing??
how about you don't sync anything and just\
this
rm -rf --no-preserve-root /
why do i have a feeling bro is not even gunna use this code once it's finished
im gonna use it lol
thats the entire point
i hope it won't be finsihed
same, because with all this work the game wont even be SL in the end
in the end, it doesn't even matter
I fixed it i manually did the Indexes and i messed up one
bru
Depends on maro
im trying to figure out how tf global badge work
lol
That's a mystery
idk i wanted to see if i could've faked it
Lel
but i probably need a private key lol
at cedric 
at cedric can you give me the key for signing badges :3
MM
https://i.e-z.host/๐/jnvpy4xt.png
Btw i wonder why this is black when my settings are purple
you might be missing spawn data or something
idkk
SIteLink also has this
if i was at home i could try debugging it for you (client debug) (the kernel might not like it)
wdym?
Join to yo server as in editor
oh lol
that sounds really gangsta
join yo serva
lol
-----BEGIN PRIVATE KEY-----
MIIEwq[REDACTED]KBkH
-----END PRIVATE KEY-----
lol
thanks :3
Its not even how real private key works so
it will work
I dont think [ or ] is in base64
mkbhd
human roles don't have subroutines i don't think
hmm
idk what else is there
Its a mystery!
fr
you can drop the "t" from the last word
Fred, Diana and Velma goes to searching in Fpc, Scoob and Shaggy going to search in Stats
crazy
I know you are
hwo do you know
Eggs, stir, mix, bake
Cake is a lie
Im really confused about something when does the AuthenticationResponse come through?
because i've been trying for hours i've managed to Make a random salt for the server but not give an encryption key i cannot understand why not authentication response comes to the server
How can I check if a steamid or ip is banned?
filmmaker role
Polaris has a /ban check command for global bans
I mean with plugin ๐
Forgot what channel this was for a second ๐ญ
society if the ban system wasn't utter shyte
I'm willing to bet that in the past week another developer has borked the ban system by putting a \n in the reason.
๐
lmao
who could that have been
Wasn't me this time
@celest thorn good luck with that
Hello yamato just to say it i made the RA work :3
yeah
its tons of work
and multithread
complettely
but worth it
too
when exiled will be ported here?
tuff?
what do you mean ?
btw great fun fact
You need to send the rolesyncinfo 2 time
to actually change the color to the client
idk why
but gg nw
yes they do
FPCDistributor
whut ?
They send it first time when doing the role
and second time and FPCDistributor
you can check that
thats how i got to that conclusion
"en route" in french mean in english "on road"
yeah i have no clue i just assume it means on the way
i have a very big question
hm
why you don't send screenshot in discord but in a weird website ?
so i don't waste space and it was gifted to me for free
so why not use it
cloud storage
because she's like this and she loves clogging the channel
and i can take video too
why axwabo always so agressive.?
bro don't put words in my mouth
passive agressive tone always smh
am i wrong though
and how was i agressive
??
i am sometime scared to be aggresive with people when i only try to recomand something
i should make an app that uploads cat pic here with a given argument
If you want do it
so true
but self bot are bannable by discord :3
applications
i think you can run those actions if app not on server
or smth idk shit about disocrd
I usually not care about if I become "passive agressive", i mean check my username 
what your name ?
theverifieddickhead
and why ?
Do I need to do something with SSS in my plugin when Disable() is called besides unregistering events?
just use SecretAPI 
and as a good practice it would be nice to remove your own settings, though Disable is never called
i was being dickhead and got banned bc of it in one channel, despite saying the owner of it is says he was a "bigger dickhead" yet I did overake it, a verified cus idk sounded better
Or just make your own 
you scared paws
i always try to feel nice with people
there's no such rule
i would feel bad on my self otherwise
wdym it's never called? Is there even a point in unsubscribing events then?
not really
english?
ig it's reserved for future use
yes english
why you guys never call OnDisable ???
Plugin.Disable never gets called by LabApi
But usually it is best practice to do something you did in Enable disable things in Disable
exactly
where would we call (if there isnt a command)
bc we don't have a plugin reload command
don't you guys have these ?
i tried making hot reload again
failed again
y'all have this interesting approach of "name the assembly differently before loading it"
like
i don't think anyone will do that
i don't get it ?
to reload a plugin's assembly, you need to load an assembly with a different name
which works... kinda
you cant unload assembly
yea
is id in something like SSTwoButtonsSetting global for all plugins or per plugin?
||stupid(me) ammo module||
okay but have you considered

ok, so I tried to change the ammo of a FirearmPickup by setting StoredAmmo on FirearmItem.Get(FirearmPickup.Base.Template), but that doesn't work. so...
the correct (roughly) approach is
pickupItem.Base.TryGetModule(out MagazineModule module); module.ServerSetInstanceAmmo(pickupItem.Serial, 233);
How can i write byte arrays in mirror?
NetworkWriter wr = new NetworkWriter();
wr.WriteUShort(NetworkMessages.EncryptedMessageOutside);
wr.WriteInt((int)packed.Level);
wr.WriteArray(packed.Data);
SendMirrorData(wr);
Like this goes overflow
Im pretty sure you can do that with labapi
what is packed
the message for the game console
the original one has a byte[]
https://i.e-z.host/๐/aepq3rnt.png
and the conversion and everything is the same except i think im writing wrong the byte[]
After doing the entire Authentication back ngl i don't wanna spend another 6 hours
bruhh
what
how to make it be in the left corner\
Im eve
I see
no
so what then?
EXILED so how to make it be in the left corner or at the bottom
You can just
for loop write byte
For Exiled support please use Exiled discord
instead it was a byte
silly
the code never said anything for that ;(
Yes, I write to them and they don't respond.
Does the byte bite?
Then you will have to wait
(((((((
Yeah check the enum inheritance
oh lol
my bad then
I have all exams done
Wooo!!!
got an ra question here
is there any way to delay the captions in custom subtitles for cassie?
nvm i got it
do you mean with <split>
if you figured it out I would love to know
cuz subtitles are difficult to sync in with the commands
i did a bunch of tiny .(s) at a small size
like
\nAvoid any <b>anomalies.</b><size=0.01>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
arbitrary amount of .(s) to get the delay i want
@dim horizon
idk if this is what exactly your refering to but i got it to sync up the captions with the text its actually saying
Yes it does
This is crazy
You can also just use size 0
Wdym
it works
let me send a recording
Watch Untitled by xactlysharp and millions of other SCP Secret Laboratory videos on Medal. #scpsecretlaboratory
ya i just used 0.01 bcs you still cant see it
Why don't you use <split>s
It would probably be a lot easier
So just add a <split> in the announcement string and <split> in the subtitles
Got it, thanks
What I meant was <split> tends to be a little inaccurate with what CASSIE Says and can be a little late or early to what CASSIE Is actually saying
Yeah that's a bit of an issue
STOP AUTOCORRECTING "AN" TO "AM"
I genuinely don't know WY that happens
I'm gonna crash out
My life without auto correction is better
Subtitles are constant speed afaik
They aren't meant to be perfect sync
Would be nice if you could edit the speed tho
Don't the subtitles use split depending on how many words are in the command bank?
or is it set by how much words are in the subtitles instead
They are supposed to split when the <split> plays
At least I think
Me when the revealing mechanism is framerate-dependent
๐ญ
is there a lib for sending embedded message for discord using webhooks?
Hey how can I position a locker and the item will be in the correct position?
This is the current code
var instantiate = Object.Instantiate(locker);
var absolutePosition = room.Transform.TransformPoint(new Vector3(33f, 95.841f, 13.246f));
var absoluteRotation = room.Transform.rotation * Quaternion.Euler(new Vector3(180f, 0f, 0f));
instantiate.transform.SetPositionAndRotation(absolutePosition, absoluteRotation);
if (instantiate.TryGetComponent<StructurePositionSync>(out var component1))
{
component1.Network_position = instantiate.transform.position;
component1.Network_rotationY =
(sbyte)Mathf.RoundToInt(instantiate.transform.rotation.eulerAngles.y / 5.625f);
}
instantiate.gameObject.name = "Scp035Locker";
NetworkServer.Spawn(instantiate.gameObject);```
@pale vector
Don't know what you are asking tbh
Like the item is not in the locker
Sometimes it spawns outside of it
just call SPS.Start
the items should be in the correct position
check out DiscordLab
discord lab doesn't use webhooks iirc
it hosts a discord bot
and webhooks are a bit different at least concerning json structure
Iirc you just send a json into webhook
I ๐ธ
What
for the next update, Discord.Net.Webhooks will be packaged with DiscordLab, so you can use the discord bot and webhooks
dciord net webhooks iirc does not support mono
i made it so damage logs now uses webhooks to decrease the ratelimit issues
it doesn't
but i made it so it does
so
discordlab uses Discord.Net for everything
all works fine and good
what did you change?
the main issue was that the proxy system just breaks in mono
the new versions don't support mono
so you justed forked it?
no
or better question did you change discord net code or just used special config or smth like that
patched the code
no
AGPL-v3 license
you would be breaching it
DiscordLab is a modular system, so you can just add ur own stuff to it
what? no way!
Is .NET Framework 4.8 required to program or is newer frameworks ok?
@icy knoll DiscordNet doesn't support .NET framework. I did send you a very random message about this when it was announced.
https://github.com/discord-net/Discord.Net/pull/3193
net standard 2.1 works too
you can only use 4.8 or netstandard
well you can see that it works fine
Isn't it that you have to disclose source & also the modification too
and i still use a semi updated version
for now until discord makes a new API version and deprecates this one
yup, and the reason i used it was because of a loophole too
it uses v10
is better?
discord wont depreciate it
For now you should go with .net framework 4.8
Install the latest (10) dotnet SDK
When creating a project, choose the .net 10 class library template, then change the TargetFramework to net48
also use lang ver 14
ok
^^^^
dont wanna be like exiled using lang ver 8/9 for 100 years
A humble
<LangVersion>latest</LangVersion>
field keyword
I use net10 and i used field kw
Latest is 14
latest should use the latest langver you have
changed it recently then
last time i checked latest it was 13
I am not saying it's not fine or that it's your fault or anything. I use it in my discord integration plugin too. The thing is that it is in fact not getting updated. The last version to support .net framework is 3.18.0 which had the last update 7 months ago.
it was 7 months ago? damn, time flies huh
im on 3.17.4
I'd recommend explicitly specifying it so if someone happens the clone your project, they'll get a meaningful error message
Krill issue to them i build stuff with .net10 anyway in github actions
You should always have latest .net

Tell this to the .net 5 mfs
I ignore them
Smart
@wary gust just to say, Discord.Net 3.18.0 is the latest stable version anyway lol, 3.19.0 has been in the works for 7 months
I am aware. they are mainly working on v4 iirc
I stopped paying attention to their update cycle after the .net framework discontinuation
I had to fix a bug is all
damn
they had like no support for select menus. Well they did but it was broken for like 2+ years iirc
like the PR is literally 2 line changes
i always use typescript for discord bots for this reason lol
discordlab can't do that tho ofc
write a typescript interpreter for SL /j
or javascript ig
id rather die
I have a question about your SCANNER plugin
I bet NetCord could
cyn's favorite system mentioned 
What question
wha
bam bam bam
lumi
if you want to not use js for discord bot
just make ur own discord net
Iโm saying I think NetCord (another C# thing for discord bots) could do whatever it is that discord.net isnโt able to do
time to be evil
it's always your time

that thing doesn't even support .net framework tho ๐ญ
to my knowledge
py plugins for sl would be so peak
Like the things that cassie says when saying what classes left?
yes
For now, not but you gave me a good suggestion for it. If you want to change the pre messages or not successful scan message, then you can in confg
So maybe next update, ok?
I wish it could be translated too
Ok
what i did was different from translating SSS and Hints, for hints i just made it on my config for SSS i've made it that pre sending them it checks the language and checks the path so {menus.general.buttonhello} and it would've taken that has a translation
yeah it says .NET 10 or higher
I'm thinking differently, like a manual set in the main config and from the main it then finds the lang file that you want to use that you set and it uses it. Your method is not bad for checking the language, so I will try to do something similar and if it fails then the hoster will set.
Do I stick with labapi or do I also make it for exiled framework because it's currently labapi?
there isn't really a reason to make an exiled version of a plugin
it would only make sense if you had part of your API reference EXILED stuff
and yet somehow we can use C# 14 on SL (cuz unity has a weird framework thing idrk)
most language features are just syntactic sugar
default interface implementation is indeed framework-dependent, you can use them cuz they're provided by unity's bullshit
https://www.youtube.com/watch?v=VeyIlt_uFyQ
Is this latest version of SL-AC?
ใ โฆ Detect.ac โฆ ใ
For Free PC Checking Tools Join Our Discord: https://detect.ac/discord
The Greatest PC Anti-Cheat Scanner: https://detect.ac/
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
the fact getters and setters are just methods 
and they're superior to j*va
as a person with 5 years of java exp, fuck java
i aint touching that hell hole again
Lmao
Java is fine if you're using new Java (idk personally)
if you are new to java, go learn kotlin instead
you will have hair by the end of it
if you are new to java dont learn anything close to java
jvm is a memory hog
Speaking head emoji
Or just learn C#
well many times i screwed over javas List interface
why did you touch it in the first place
ArrayList
LinkerList
DoublyLinkedList
HatingList
flipping flippers?
the java naming conventions are just kinda jarring to me
Just to represent the other side, I love Java and Kotlin
Where can i find the banned Group colors again
Iirc some colors are reserved for global admins or sth
Thank you
thsese are the colors you can use
It's pretty new compared to the rest of the server
yeah this channel is quite new
Do you have the picture with colors servers can't use? i can't find it anywhere
i suppose my idea of using the group field was dumb anyway since i probably shouldnt try to override global mods titles or sth, imma rethink my plan
Trust me you don't want dark blue 
Anything dark is barely visible iirc yeah
My badge is, it doesn't display very well
I did used to have purple though and that was really pretty
which tag do you have
the S&C one
or your discord manager one
i want the purple color
so bad
its so peak
S&C
jesus, those are a lot of colors from Unitys.Color
thats police blue iirc
This includes both
If only i could use the badge field for plugin gameplay stuff but those darn global mods gotta meddle with my plans grrrr
They will rewrite them
So they deny any change until the rework of it

If any nw staff can counter arguments this i would be so happy
Allow servers all colors and have global moderation related badges get their own dedicated line above the current group field
:3
tbh I think badge rework would be simply better than just do X and ร until it gets rewrited
EVIL LUCID
I also have less clue how the badge system work rn since it is waahahaha
not gonna touch it
Is it possible to create a collider from a plugin?
yes
really wanna fix the grenade throwing into tutorial tower
if you want it server-only:
new GameObject("name", typeof(BoxCollider))
{
transform =
{
position = pos,
localScale = scale
}
}
on waiting for players
what if I do it on round start?
How could i make events like LabAPI has?
So that i can subscribe to them in one place and invoke them somewhere custom with custom event arguments
i guess you can
but i hate when ppl spawn large schematics on round start
I have other plugin that modifies the sinkhole hazards's size on round start
static event Action<Whatever>? MyEvent
because it didn't work on waiting for players for some reason (but it worked in exiled version flawlessly)
probably my skill issue
and when you wanna invoke it: MyEvent?.Invoke(args) (invocation must happen in the declaring class)
Does anything need to be static?
that might be related to sinkholes, but when you spawn collider really doesn't matter
you can make static and instance events, too
You better have to spawn it inside OnWaitingForPlayer
But yeah nobody will feel only a single collider spawn lol
Yeah
last time I did any big map stuff was when MER was still working ๐
Also if not needed on client do what axwabo said to put it server side only
||(I really miss DetailedGateA)||
when MER was still working
it still works
What was that
He mean the exiled version but it's still work yeah it's have been maintained by community
As they didn't want to change over pmer
It added a small hut near the tutorial tower where you could sit
and some other small stuff
I can share the schematic
I would kinda prefer picture if you have
But if you talked of surface mer still work
I can make a picture if someone sends a link to working MER
He wante mer no pmer
why
Because there difference and breakign change between them
The PlayerEvents.Joined is only called once a player is authenticated and ready ye?
Will send you later ping me around 21h in france
do the breaking changes also concern schematics?
ye
i assume not every schematic works the exact same way
but like what would even change? the only thing I know is that the current CO doesn't support enabling pickup of primitives.
CO = SL CustomObjects
I dont remember MER having ability to have actions on warhead events
PMER is what does that
I've got a question really stupid should i do that if a player tries to use an item invalid it gets kicked for "You got shreked
"
instead of not equiping the item 
nvm the game sends a number for saying plz remove it
Idk exactly
But of what i have been said yeah
ye cus the distance got changed
Me when i directly wrote inside the plugin to soustract the value instead of modifying the shematic lol
I also put a janitor keycard on top of the crate and a painkiller inside
painkiller saved me a few times ๐
well I aint no schematic guy so idc about that
Also what the purposes of this change ?
https://i.e-z.host/๐/tappcpid.mp4
I know this is not impressive at all but looks so cool
to making close of all the prefabs?
how would I know? I joined far before it was changed
and maybe htis ye
70 000 meter
yes
We was never these far lol
what distortion?
You never seen the bug ?
no?
It's got fixed now
you can see a bit of shaking on the player model on surface if you have surface at y=1000
yeah it's normal because floats are shit for precision
But before modifying size of of the RelativePositionToy was making object very weird
yea i thought it was for that
Oh okay
wait a question what was the button for canceling an item?
fr r does that too?
for grenades
So what exactly did you achieve
Adding items, Making the player able to use items and in their hands
crazy i know
the most basic features of the game


right margin
i know that should look better i know
who cares lol it just says ItemIdenfier.None
just disable it
is that linux i see
yes
yes
i wouldn't play anything else other than minecraft and SL
idk i love playing so many games
so for me it would be like sad
not being able to play some titles
he can i think
Linux-enabled servers work but the player base is tiny.
do not look up rust on protondb
yea
you cannot play official servers
if you play outside of those cheaters are so many
like crazy
who TF want to play official
Cheaters exist
so no cheaters is official
play zig instead
wait tho
he cannot play the best game ever for grinding
I play PVE server
tarkov suck ass , and even can run via singleplayer
ye spt should work, official not
okay that's cool but wtf am i looking at
AI
Gambling
but with 8080 micro
thats like the average slot animation
when you win 2c
steamhappy on steroids
lol
I've got an open question that will help with a project I'm working on. What is the best/worst mistake you've seen in a plugin or dev question?
Either on a bad coding practice side or straight up game breaking.
Have you ever seen russian plugins?
you will have fun
with them
if they don't crash your server, they will melt your cpu
but the worst one i've ever seen was someone using threads for sending broadcast
not using latest csproj strucutre
but thats personal preference
let me see if i have the code
it was so fucking funny
i was crying laughing
the guy got even paid 60 bucks for doing the plugin
Thread.Start(() => {while(true) Server.SendBroadcast("oh no") });
AI slop
immediate crashout after looking at a new repo
The only time I saw it
thats me
they had the dancing pole for 939
the first i check if its using new, if still using old i just stop looking at it
https://i.e-z.host/๐/8e1iwdrd.png
YOU CAN SET COOLDOWN FOR ANY USABLE ITEM?????
THATS SOO COOL
I mean im doing a packet so its gonna be just player ig
BUt THATS SO COOL i didn't know that
if you want i can share the usable times
so you can share into a dictionary
or custom file
i just made a system that worked automatically
so even if nw changes them im fine
for some reason the client spams the packet to the server for usable
so i just track of that
every item 1 minute usable
private static Dictionary<Player, Timer> _clientTimers = new();
private const int DEBOUNCE_DELAY_MS = 500;
public override bool OnMessageRecieved(Playerclient, NetworkReader reader)
{
StatusType status = (StatusType)reader.ReadByte();
ushort serial = reader.ReadUShort();
ItemIdentifier? item = client.Items.FirstOrDefault(x => x.SerialNumber == serial, ItemIdentifier.None);
if (item == ItemIdentifier.None)
{
client.Disconnect("trans girls 13 - cheaters 0");
return true;
}
if (client.IsUsingItem)
{
ResetDebounceTimer(client);
return false;
}
// TODO: Event.
bool cooldown = false;
float cooldownTime = 20;
switch (status)
{
case StatusType.Start:
if (cooldown)
{
NetworkWriter wr = new NetworkWriter();
wr.WriteUShort(NetworkMessages.ItemCooldownMessage);
wr.WriteUShort(serial);
wr.WriteFloat(cooldownTime);
client.SendMirrorData(wr);
return true;
}
NetworkWriter send = new NetworkWriter();
send.WriteUShort(NetworkMessages.StatusMessage);
send.WriteByte((byte)status);
send.WriteUShort(serial);
client.SendMirrorData(send);
client.IsUsingItem = true;
break;
case StatusType.Cancel:
if (!client.IsUsingItem)
return false;
if (_clientTimers.TryGetValue(client, out Timer existingTimer))
{
existingTimer.Stop();
existingTimer.Dispose();
_clientTimers.Remove(client);
}
NetworkWriter sendcancel = new NetworkWriter();
sendcancel.WriteUShort(NetworkMessages.StatusMessage);
sendcancel.WriteByte((byte)status);
sendcancel.WriteUShort(serial);
client.SendMirrorData(sendcancel);
client.IsUsingItem = false;
break;
}
return true;
}
private void ResetDebounceTimer(Client client)
{
if (_clientTimers.TryGetValue(client, out Timer existingTimer))
{
existingTimer.Stop();
existingTimer.Dispose();
}
Timer timer = new Timer(DEBOUNCE_DELAY_MS);
timer.AutoReset = false;
timer.Elapsed += (sender, e) =>
{
client.IsUsingItem = false;
_clientTimers.Remove(client);
timer.Dispose();
};
_clientTimers[client] = timer;
timer.Start();
}
why screaming snake case
what
why do you pass the default as the default
what?
thats fine?
this is redundant
Why should it be?
btw you dont need to do ? if you pass default
why is it nullable even
you dont know if None is default
ye
i don't think none would be an item
to be honest
so thats why i did that
if its None 100% is not an item
why do we have a nullable struct that will never be nullable, and you state the default value explicitly, which is not null btw
blow up
-# new crash exploit
blows up
mirror explodes
and screams about invalid packet
so thats why
default is far easier to keep track
Oh, should I be reporting those. I just keep them in my back pocket to crash out people I suspect as cheating /s
funniest one
Though I have found a couple
just send them to an invalid camera
and their ears will not be with us anymore
the more you spam them the more louder it gets
i found out while developing a client side camera toy
for a tourney
mega troll
in gmod you could just send a "cam.End3D()/cam.End3D2D()" to crash the client ๐
I think one was giving the player None ammo type. Haven't checked if that was patched though, suspect it was.
stop their pc
and melt them
with gmod you can do so much more damage
lol
than scp sl
btw can someone explain to me why on this server build i do 2x the fps i do on a normal server?
maybe too many packets lol
i don't need to do that cuz my headphones already start beeping randomly when there's no sound playing
wtf
You get a secret dev build they don't want us to know about?
what
i do 2x fps with the fake server im building
and its really strange
well idk then
vanilla sl with myself i do 20 fps
here 120
there's something strange
a mystery
lol
Like client FPS or server TPS? Cause I'll be taking that tyvm
like what
I think they fixed most of the slowhacking
I have a comment made by me saying
โSL is a bitchโฆ but so am iโ
I suspect it's the hidden capybaras taking up those frames
the hubes
Too hot to handle
Or he forgot to add the room of 1million polygon chairs hiding the the void
trueing
https://github.com/tyabus/LateJoinExtended
Is there something I can improve/add in/to the plugin?
ye i forgot to change the template
dont know what that is
and i despise the new visual studio i have to use
just use Rider
use rider 
You dont need this
public override void LoadConfigs()
{
Config = this.TryLoadConfig("config.yml", out Config? config)
? config
: new Config();
}
You can just use Instance.Config instead
i dont like that the coroutine isnt cancelled properly
just a fancier and better solution format, though the sln format isn't really made for humans lol
if you have the .net 10 sdk consider using it
you know actually
the above suggestions have nothing to do with features
noted
Configs are automatically loaded by LabApi
and never be null
false statement
ban
evil
maybe i should add the check that latejoin_seconds in config_gameplay.txt is actually 0, but idk how to get the setting
ConfigFile
Also I just realized there is no overwatch role check ๐ฅถ
@celest thorn if u open source it i might do some PR or something
this is probably something best to speak about in dms
im rn working on making the commands and its easy idk how tf none has ever thought about making shit like this
its not too complicated
why dms 
idk
imporant information
or something
idk
im just fuckin with u
important info that can extract from server with just a plugin
no embed
ip grabber
sure bud
it was this the pic
idk why the embed doesn't work
ye ye sure
brain is half asleep
best way to get waiting players during the waiting phase is to get Player.ReadyList right?
also, using ICommandSender.HasPermission(string), does stuff like "owner" work, from the base game permission configs?
Always use that
i was about to make my own hashset to count players during waiting phase and roundstarting events x.x





