#plugins-dev-chat
1 messages ยท Page 103 of 1
sure, I'll see if I can find it
I'll give you some reasoning though
Hints are part of the game, hence they're 100% in the assembly
However LabAPI is all about creating wrappers and stuff for the base-game assembly to make it easier to use
So first thing you'd want to do is open up your project, and check the LabAPI Player wrapper for Hints
it's all good, I think I found the method, now I'm trying to figure out how to show the hint while the player is looking at the object in question
raycast
if (Physics.Raycast(ev.Player.Camera.position, ev.Player.Camera.forward, out RaycastHit hitInfo, maxDistance, layerMask)
I was going to use distance of some sort, but that makes more sense, I think I need to look through my event reference for an event trigger
i think for these types of things you should use the received position(essentially its where the client reports itself to be) rather than the position on the server. so things like position desync dont cause problems
Impossible
Best guess I have is it has [DisallowMultipleComponent] and the GO has it already
Shouldn't be the case for colliders though
how could I fake a room's light color for a specific player?
Send a fake syncvar
Get slejm's link
i was getting it
lol
If you have an inheriting class, unity methods from the base class are ignored unless it's virtual/abstract
thanks 
no problem
How would one go about this
i think its in FpcMotor or FpcModule which you get from FpcRole when you cast RoleBase
Interesting
So what typically is the difference between ReceivedPosition and actual Position
ReceivedPosition is just what the client sends(can be anything if they are cheating, but shouldnt matter if its used for a ui hint) actual position is calculated by the server by verifying if the received position could be moved too(actual position could lag behind in the case of desync)
Nothing inherit from that
But as i said, maybe the if guard before is something wrong with it
True I was just thinking that if the server gets a received position, and doesn't validate it, then it'll send the client to the new position, no?
wdym by send the client to the new position
override i guess?
^
Server gets position
Position is no good
Server corrects position
Server tells client "here is where you're supposed to be"
Client goes to new position
player.Position

server only tells client it where its supposed to be, if the client is too far away. the override distance depends on the max speed of the player
its what you typically see as the teleport back(remember server rooms)
So the server only teleports you to where it thinks you are once you get far enough away?
yeah
That's really stupid and I hate that
zero would like to speak
if your only slightly desynced it doesnt care
Yeah but like when I'm making a skill jump I'd like to know if the server desynced me or not before I'm a room over and get lagged back into an SCP
-# (this has happened to me multiple times)
yeah thats understandable
when i talk about these things im not defending them in anyway. just explaining it how it is
csgo c4 thinking gif
Ced and jesus are working on better movement system btw
yeah
thought in 14.1.3 they already applied the changes, but im unsure
No fucking way
Mhm
i haven't encountered any issues
no one looks there I know
though i didn't play SL a lot kek
i do :3
i just forgot that the beta was about that
Yipeeee
looking at my steam library and being like "wtf is this even"
I don't have access to qa discord :(
At least not that I know of
Maybe I'm wrong ๐คท
I never checked
me when
So @unique crane if you're still around
This new movement system, is it going to function the same as the old one or is it going to change the gameplay too?
Hell fucking yes
Only the movement will now iterate your movement emtries
And walk through them
Instead of the last one
you sure??
because i desynced more with both of them
https://streamable.com/7gaqjg
Gg
Here's the proof
Have you reported that
obv
i did
last message
the other one i wasn't recording
btw crazy song and editing
E key broke 
Nah
My w key is coming off
but not the E
btw david why man kind invented fucking geometry
the shit im studying is what i've never studied
and i was happy
ngl i will fail that test so hard
im not even trying that hard to study
because shapes
circle
My guess is Ancient Greeks
Pythagoras fuck him
other than being a philosopher
btw for my Pythagoras's presentation in phylosophy i brought stones like how Pythagoras FIGURED OUT THE FUCKING THEOREM
HE USED STONES
ROCKS
he calculated shits based on ROCKS
and for him 0 didn't exist
because thats obv, if he calculated with rocks OBV no rocks means no numbers
so 0 cannot exist
is abstract
Math.Sqrt(1d / n * Enumerable.Range(1, n + 1).Sum(i => Math.Pow(x[i] - x.Average(), 2))
there
This is easy
i understood it just because i knew arrays and loops
else my brain couldn't comprehend it
yea
Its the wrong one btw
thats for the other formula
for calculating this one you don't need to Sqrt
yea
idk chatgpt explained it in that way
my old math book doesn't even have this shit
im cooked
Does anyone know what causes this black magic?
what happens if you read the scp category limit after setting the radio one?
i ate the limit
i don't wanna be a rate limit ;(
guys is generating map fully server sided or client sided?
Both
Both
server send the seed, both generate the map
Map is generated by a seed
server adds clutter (and connectors?)
yea
david where is the calling event on map generating located?
SeedSynchronizer
is that the epic le namespace?
No thats class name xd
the namespace is:

oh wait it's in MapGeneration
so the namespace is :Kek:
NEVERMIND
petition for NW to move all global namespace classes into proper namespaces
(aka break the whole dev community)
Please nw don't break the game
like everytime
lowercase n getting changed to UpperCase N
for no reason
RoleTypeId
RoleTypeId.ClassD
can we make unity add the freaking namespace please
and so that visual studio tells you if the namespace is incorrect
-# though sometime will ignore it anways

WarningAwawke
ROTATe
is there any way for me to use KeycardItem.CreateCustomCard() but supply the itemName and levels? I'm trying to create an 05 lookalike with a different name and levels
There are methods for each available custom keycard type
I saw those, but from my understanding, there is no way to do what I'm trying to do while keeping the appearance of the 05 keycard? Because only CreateCustomCard() takes ItemType
No, there is no way to make custom O5 keycard
Only the Site02, TaskForce, Management and Metal is available
I see, thank you for your help!
yes, but if it showing classD room, or other complex rooms it takes amout 4000~4500 chars
so i make statistics system, and change minimap fps is dynamic.
funny, showing my rank system's info hint message is 16000chars. ;)
yeah, i'm crazy
Server.CategoryLimits[ItemCategory.Radio] = 8;
Logger.Info(Server.CategoryLimits[ItemCategory.SCPItem]);
[INFO] [DontTouchMePlease] 3
So Logger says 3 but Ingame its 2 
yeah i got no idea
Apparently, only the radio limit causes this. I find that so strange. Everything else works fine.
do you have exiled installed
actually yes i think i never uninstalled it
if you can try without it, i would appreciate that
will do that
sadly not a sexiled issue
any other plugins installed
nope
i dont think that MER or Meow is doing anything there
but can test without them if you want
alright, you could probably make an issue about it on the labapi github. although still do try without any plugins just to be sure
Issue is created. Have fun figuring it out someday 
@south socket Can you check if the same happens if you do it via gameplay_config?
If so, please report it as base game bug

Wait, am I stupid? I recently set it via Assembly CSharp, so of course it must be a Basegame bug. But will test it anyways
you directly modified the dll?

im getting scammed i cant set it via config hello
limit_category_radio: 8
nah i just set the InventoryLimits not via config not via labapi
in a plugin ofc
but yeah
so it not let me set the radio limit via gameplay config and i dont know why
oh i know why because its set in the default limit to
[ItemCategory.Radio] = -1,
and the config is ignoring items under 0
actually this becomes positive of 1
it takes it right back up to positive when checking it
then im wondering why you cant set it
idk
so i guess its basegame right?

a bunch of the old code was in the global namespace
during the smod days almost everything was

so true
even if you give it the compiler options and override the csproj
it doesn't detect the behavior in a file
i hate not having my collection expressions
and ref struct interfaces
And static abstract
"target runtime does not support by-ref-like generics" ๐ค๐ค๐ค
And IParsable
memory extensions (span splitting)
ZLib, Brotli


static abstract is the shit dude
Post-Quantum Cryptography
and where T : allows ref struct
Finally numeric ordering in strings btw in net10
can't have a 0-allocation parser with interfaces in .net standard ๐
No
๐
-# just write it yoursewlf
Thats why you could have
where T : IMaxValue<T>
T.MaxValue
unity does
90% of my projects are called MeowSomething
so
MeowColonThree when
MeowMusic when
Ngl i need to make something on meow editor to be able to put music
so its easier for future projects
Spawnpoints
and other stuff like that
wdym
Like it could be extended a lot more but it's usable
i mean the problem with it is that every gamemodes does something with them attached
but 90% of the others just do nothing
Huh
I hate it but i have to learn some map editor thing so can create actual gamemode and stuff ๐ญ
you know whats crazy?
it saves A TON OF TIME
i have settings in the map
so i can just replace them and nice
90% of the code is in the editor
and then 90% is in the plugin
the most important logic not needed in the plugin
the other on the editor for example calculating scores and everything if you need to visualize it
Do you like blender
The only thing i don't ever put in there is game management
stuff like that is left to the server config
I LOVE BLENDER
you know what i like more?
nothing
?????
what does that mean
Ah
Bender Bending Rodrรญguez (designated in-universe as Bending Unit 22, unit number 1,729, serial number 2716057) is one of the main characters in the animated television series Futurama. He was conceived by the series' creators Matt Groening and David X. Cohen, and is voiced by John DiMaggio. He fulfills a comic, antihero-type role in the show, a...
you probably mean this character
inside my kitchen
I don't have one
(neither do i) but i have the mcdonald blender for juice
๐คจ
yea you didn't know?
thats your power
give man or woman pregnant
give them a job instead
no instead he can give you pregnant

I really close to say something
to say what?
I don't wanna get a warn for "suggestive comment"
he's the mc of the show
it shouldn't be fry
EXACTLY
How can I run a check to see if 079 has been recontinued (the button pressed)
you wanna check when the button is pressed or when the pc dies?
If the button has already been pressed
I have a custom role that sets a pc to a clone of whatever player they ping, then back to pc when that clone dies
hmm actually I can probs just run the event when pc is overcharged
and kill the clone
I have a question about a plugin Id like to malke
am I allowed to give the player something similar to Overwatch role where they can see player hitboxes / names through walls?
that's not possible to do
its not?
yea
RecontainmentDamageHandler
you can't spawn things that a player can see through walls
i guess you could mess around with hints
what if I reuse the overwatch function itself
and use | and - (or similar) characters to draw the hitboxes
you can't spawn features that are only client side
and cant I send a petition to enable it for the client?
and is there a way to make a player not viewable by SCP1134?
Fake them as spectator
Thats how youd do it
Player faking is not really working after 14.1.3
Why
Cus nw
you still should be able to?
because players too far away now get faked as spectators and changes dont a pply
you just have to correct it more often
leading to desync
Ye but some things isn't syncing correctly
^^
Sync it urself
happened to me with size, effects and roles
Scale is fucked
yes
Sync it urself
still doesnt work half the time even when syncing
I just wait for them to actually fix their own system first
Since they did it in last minute i don't wanna deal with it
The first X time works, but after it just broke long term
And since i guess many fixed and actually patches coming i just wait until it's here
I just disabled all player role fake syncing
Other sync should work
same
why are u so cringe
Who r u
full name rue lola paislee
you know what would be crazy to do ViaVersion but for SL
evelyn ngl is a good name
good luck
fr
it's practically impossible
because old models for heavy have been deleted
probably
idk
not impossible
Please tell me how to get the elevator position. For example, the elevator at gate B\
Elevator elevator = Elevator.List.First(n => n.Group = ElevatorGroup.GateB);
elevator.Position
hello guys
Hello
how are you doing?
alive
nice
this chat is always dead
we NEED TO MAKE IT ALIVE
this is the best chat of this entire discord
Ong bro
?
We need to get more people in here asking questions and complaining about NW issues
Nah else david gets stressed
Poor david he deserves better
I thought that was the reason this chat existed
Nw sucks but david he is cool
I mean it exist for that
But not only for that
We can stress out other devs too
Its the cool place for not brainrotted kids

Ngl cheese sticks always sounded good
2 things i love in my life
Are cheese and potatos
Can we tempt you with a raw potato?
YES
INSTANT BUY
I like to take some potatoes
Put some olive oil on them
Kosher salt
Smoke those suckers
Grab some sour cream, chives, sometimes a little cheese
That's fair
Not everyone is a sour cream person
I don't discriminate against any food
I'll try just about anything under the sun
A good supreme taco? Yum
Never eaten a taco
Its not something common in italy
You live in Italy?
That's hype I'm going to Italy in a few weeks
I like living in America cause we have so many different dishes from different cultures here
I'm able to always try new things and new experiences
Yea
I have a scholarship that soon will arrive 100% im taking a trip alone to NYC so i can visit museums
Stop SPYING MEEE ;(
this is better quality then your gif
noob
CRAZY
I love this
But this is still amazing
when you find a higher quality version of the shitpost you've been posting forever:
That's dope
I'm gonna go travel around Europe in September
Visit a lot of historical sites, meet up with some family
Try a lot of new foods
What
Since last night I believe
I talk in dev and support channels a lot
I like helping people
โ tech support
โ
dev support
Iirc I'm getting a eurail pass
RJX: "reservation is recommended but not required" (Budapest-Hegyeshalom)
seat reservation is mandatory for domestic destinations on railjets in hungary
so if you use their app/planner, make sure to check the country's agency's planner service
๐คท๐ผ I'm not the one planning the trip
well good luck then
when 106 proximity voicemessage fix 
What should I do? DDoS?
[2025-08-23 15:01:14.799 -03:00] [STDOUT] [NM] DataReceived: bad!
[2025-08-23 15:01:14.800 -03:00] [STDOUT] [NM] DataReceived: bad!
[2025-08-23 15:01:14.800 -03:00] [STDOUT] [NM] DataReceived: bad!
[2025-08-23 15:01:14.801 -03:00] [STDOUT] [NM] DataReceived: bad!
[2025-08-23 15:01:14.801 -03:00] [STDOUT] [NM] DataReceived: bad!
[2025-08-23 15:01:14.801 -03:00] [STDOUT] [NM] DataReceived: bad!
[2025-08-23 15:01:14.801 -03:00] [STDOUT] [NM] DataReceived: bad!
[2025-08-23 15:01:14.803 -03:00] [STDOUT] [NM] DataReceived: bad!
[2025-08-23 15:01:14.804 -03:00] [STDOUT] [NM] DataReceived: bad!
[2025-08-23 15:01:14.805 -03:00] [STDOUT] [NM] DataReceived: bad!
[2025-08-23 15:01:14.805 -03:00] [STDOUT] [T102] [NM] DataReceived: bad!
[2025-08-23 15:01:14.806 -03:00] [STDOUT] [T102] [NM] DataReceived: bad!
[2025-08-23 15:01:14.806 -03:00] [STDOUT] [T102] [NM] DataReceived: bad!
[2025-08-23 15:01:14.806 -03:00] [STDOUT] [T102] [NM] DataReceived: bad!
[2025-08-23 15:01:14.806 -03:00] [STDOUT] [T102] [NM] DataReceived: bad!
๐๐ข
turn off or delete LA logs if it isn't impacting your server
we have that permanently on one of our servers so I just turned off LA logs on it to avoid bloat
I appreciate that
It'll be a good time
It's nice not being the one planning it
Added bonus: drinking age is lower in the EU so I get to get fucked up
get ddos protection
How? I use Minihost
get a different host or contact ur host about options
Bro donโt drink
And trust me drinking in another country suck ass
They will make you pay double the price 
Double for shitty anti ddos?
Aha
You clearly never visited Prague
(All of them alcoholics)
So that was it but i fucking was miserable
In budapest lol and saying the wrong shit get you in prison
Idk how tf my classmate didnโt go to prison
mivan kalรกcskรฉpลฑลฑลฑลฑลฑ
๐ฅ
He was fucking with the guards infront of the parliament

Idk what the fuck it was that
Got called a rat multiple times tho
Fun experience
And the day after we went away the prime minister of isreal was visiting and then the protest lgbt was like a week after
So pretty much big events we missed them thank god
so sad that you missed the tรกrnoki sorompรณ incident
Idk what that is
dw about it
I googled that but i do not understand anything
i'll dm you an article cuz it's a bit political

Why
I'm not going by myself lol
I wouldn't plan on going to another country just to drink alone
I mean 99% in NYC i will be alone
So not risking it and i donโt like alcohol either so
don't drink at all

BASED
I'm gonna drink and you can't stop me
I like getting fucked up
I don't like my brain
Ngl i said to my friend some personal stuff while i was drunk worst decision of my life
And the funniest of them all
In train i started saying to one of my classmates you said banana instead of something
And then laughing
Like a fucking idiot
return to monke
There was only 1 time where I felt my motoric functions werent the best
And all of that while i drank just half beer
So just imagine if it was an entire
did you install the CB pocket dimension shader
Like that yes XD
But I was still aware of my surroundings
so I guess it was very tiny bit
senior sr
My record was 20
maro: "why do you use localadmin"
AhahhahhHhHahhahH
were u in idle mode?
i was literally in the round
uh how can i make the gun shoot lower?
use Weapon.BoltLocked = true;
then after some time BoltLocked = false; ?
lower?
Locks the gun's bolt
Does anyone know how I can make a human role be part of the SCP team? Like part of SCP voice chat and not be able to get damaged by scp's
Like I want a tutorial role that can be part of the SCP team type beat
Well set the incoming outcoming voice chat messages of the player
Via event
and same for damage
So as before, and unlock after its done, ok
Yea
But its not the best way to reduce gun firerate
but probably the only one for now
Nice, more question, what is the layermask in raycasting where it doesn't count myself
Might fixed it with adding the camera direction
Fine solution
Does anyone know how a player could be a Chaos Insurgent, but see 3114's hands and the target count? I was sent this by a player, but 3114 isn't even enabled ๐ญ
I have a method subscribing to RoleSyncEvent that fakes a skeleton, but this player was not the target of it and the method unsubscribed from it ages ago at this point in the round
ive had some major issues with client syncing and a ton of stuff recently animation, but im passing it off as just being my game doing the thing. like i get things like this regularly https://cdn.discordapp.com/attachments/1151931584639926333/1408885135386087546/MedalTVSCPSecretLaboratory20250823144534-tr-edit.mp4?ex=68ab5e08&is=68aa0c88&hm=1f1eb96bb3a1cda977eb617689852deb35506d697141f0f7be028b7851af3774&
dunnow if its connected
relative positioning moment
harry potter ass facility
When my elevator got relative to the ceiling
Also yes the moving towards worked, needed some change and also the auto pickup too, needed to create another collider and disabling the rigidbody kinetic (so it doesn't start flying the item.
@celest thorn Btw, you mentioned you also wanted to add some config stuff to some cedmod patches, was that still something you wanted to do?
if so, what was it
as i want to probably release it as preview tomorrow or something
Hey, Does anyone know if HSM has a built in duration feature to show it on screen only for a set duration or should i just make it myself
I couldn't find anything so I made my own
private static readonly Dictionary<string, CoroutineHandle> ActiveCoroutines = [];
public static void DestructibleHint(Player player, Hint hint, float duration)
{
PlayerDisplay pd = player.GetPlayerDisplay();
if (pd.TryGetHint(hint.Id, out AbstractHint existingHint))
{
existingHint.Text = hint.Text;
Timing.KillCoroutines(ActiveCoroutines[hint.Id]);
}
else
{
pd.AddHint(hint);
}
ActiveCoroutines[hint.Id] = Timing.CallDelayed(duration, () => { pd?.RemoveHint(hint.Id); ActiveCoroutines.Remove(hint.Id); }
);
}
It's a little poorly made but it works
I'm sure you can improve on it
aight, ty
[2025-08-23 19:39:08.647 -03:00] Could not update server data on server list - (LOCAL EXCEPTION) The operation was canceled.
i need help ๐ญ
DDOS?
Is this spammed or one time
It shouldn't be an issue really
Sorry for the inconvenience, but it keeps coming up, and the server people are complaining and I don't know how to counteract this error. I'm starting to think that someone is attacking my server.
This afaik isnt from ddos
It's just one message that appears and it takes all my people
I believe it was you earlier that posted something with "Bad data!"
If you saw THAT, then its a ddos
Which then ig could also cause your servers traffic to stop ig
Still dont think you wouldnt be able to update to nw servers
I fix it every few minutes, but 10 minutes later, the damn error reappears. It's awful. Another owner I spoke to told me that there were a lot of errors after the 14.1.3 update and that he was also experiencing crashes. I'd like to think it's something else.
I'd like to fix it.
I can't change hosts, as if nothing had happened. I have all my stuff and I don't have the money to pay for another host quickly.
It's not my plugins anymore, it's this frustrating error.
thanks for help โค๏ธ
I havent seen issues
I had a crash, which was a plugin that broke
That was fixed by changing a line
Honestly release it
aight
However if you are receiving "Bad data!" logs, you are being sent invalid data, likely a ddos (especially when spammed)
The only 2 solution to this is to ignore it OR get a host with good ddos protection specific to SL
It just be like that
Thank you very much, you're very kind to help me. I hope you can find a solution.. Thanks โค๏ธ๐ซก
I'll keep that in mind.
tbh i cant do anything
or did you mean you hope you can find the solution, not me? Im a bit confused ๐ญ
But yeah, theres not really much to do about ddoses other than pretend the high ping isnt real, or change hosting really
Well ig theres the option of using a seperate host to tunnel the data and have that have ddos protection (MAYBE)
but as you said you dont really have money for it and idek if itd be good
No, don't worry, it's a problem I've seen several owners suffer from, or at least I've seen several reports about this horrible bug. At least in Latin America there is a lot of competition, and attacks, at least in SCP SL, seem normal now.
In the long run, you'll have to learn to live with it.
As a friend said... GeoBlock.
Idk of crash bugs in the vanilla, other than a few like tabbing out = crash in certain unknown conditions
I dont think thatll really solve the ddos
Its still reaching the server, still overwhelming
Yes, I don't really think it will solve the problem, but I'm going to start blocking all the countries I don't want to be there, or where the attacks usually come from.
Would using a service like cloudflare for DNS Server/DDoS protection work? Not sure how unique SL attacks are in nature
cloudflare protects websites, not game servers
wont help, especially if you just use the geoblock feature from the game
geoblock just prevents non allowed countries from authenticating
ddos traffic is just invalid shit being spammed with the goal of overloading the networking of either the process, or the machine it runs on
What do you mean? If I use it as a nameserver, then players connect to SCP.DOMAINNAME.COM, this traffic is handled by cloudflare, proxied through to wherever your server is hosted
cloudflare is not able to proxy game server traffic
cloudflare proxying only proxies web traffic
Are you saying it is just a passthrough rather than analyzing the traffic?
it doesnt work at all
because cloudflares edge servers dont understand UDP traffic, or non http for that matter
as their proxying in dns settings, is for http
So when players connect to scp.mydomain.com (replacing my actual FQDN) with the example, how are they getting to my game server? I have it working this way currently
I have no idea, guys. I'm just a novice owner who wants to protect his server from malicious attacks. As long as their activity affecting my server is reduced as much as possible, I'll be happy.
But everyone is talking about DDoS attacks in Latin America. Unfortunately, it seems there is no solution.
well, when the domain is a non proxied domain name
they will connect as normal
they will simply resolve the ip set in the dns records and connect to that
cloudflare isnt proxying anything
Any Tip for ddos attack?
get a host with ddos protection
specifically, one that has a filter for sl
as those "generic ddos protection" ones will just leak half the attack
as they dont know what is real sl traffic and what isnt
It seems like you know, bro. My mistake is this
[2025-08-23 19:39:08.647 -03:00] Could not update server data on server list - (LOCAL EXCEPTION) The operation was canceled.
and it seems to happen very often. Another owner neighbor told me that it's because of the 14.1.3 update. This error is very annoying. It takes away half of my people or all of them, and removes the server from the public list.
Do you know anything about this error or how to fix it?
it means the webrequest to the central server failed
that would occur when your server has issues reaching cloudflare
and honestly, considering you are talking about a ddos aswel
when you get ddosed other network related things usually dont work well, so during a ddos and shortly after things wont work properly
so that may be why
You're right, even though I don't understand you well, my intuition tells me that you're right.
Do you rent the server or do you have it in house? I run my own server with my own network equipment. While server-side geoblocking won't help as Ced mentioned, if you geoblock router side that traffic shouldn't even reach your server. Feel free to correct me if I'm mistaken Ced
if you geoblock from the router itd work granted the router can handle the traffic (note your restirctions cant affect NW staff as per the CSG)
but if you geoblock from sl it wont work (obviously)
and geoblocking from the same server machine also wont work as the attack will likely overrun the linux (or windows) networking stack
If it's your own network, a ubiquiti router is a good shout imo
well then they can just overload the router
or the actual connection
since if you have 1gbit
then you can only block less than 1gbit
It's horrible, but true...
My host is This
Elije el plan que desees
What do the official servers do? Or is that a trade secret?
theres some exceptions to overrunning the network stack though
XDP programs are VERY fucking performant, and will work as much as your NIC and connection receives with barely using any CPU
but for VPS's generally start dying at 400-500k packets per second as virtio (most common driver for vms) doesnt like it
they use a hosting provider that has ddos protection
I see, I imagine the protection algorithm is kept private for business & security reasons
not really, its very simple
protection systems should implement the "preauth challenge" mechanism into their own filters
eg with XDP
and ofc do the generic stuff
so the entire preauth validation, challenging, and such are handled entirely outside of the game
in a space on the system that can handle a lot more, on a network that has a lot more capacity
Would you ever consider writing an NGINX plugin to handle DDoS protection?
no
i write my ddos protection in XDP
because its 5000times more performant than anything that runs in userspace
XDP programs run in kernel space, before the kernel itself does anything with networking
theres also another way to do it that runs in userspace but also not, forgot what it was called, also low level
Does XDP handle proxying as well? I imagine so right?
THIS
XDP is not a proxy
XDP is a kernel layer of packet processing
you can makeit validate packets
i have this options in my server
#Reply - prevents from flooding server with preauth requests from spoofed IP addresses
#MD5 or SHA1 - prevents from flooding with preauth requests from legitimate IP addresses as well. Requires additional time to join the server.
preauth_challenge_mode: reply
preauth_challenge_base_length: 12
preauth_challenge_time_window: 15
preauth_challenge_clean_period: 5
A tipยด?
that will not help
the game server already has challenging
the ddos traffic overloads the game server as it cannot handle it in time
the only way to protect against it is by having something that validates the traffic BEFORE It reaches the game server
and if the ddos traffic is larger than your max connection speed
its not going to help regardless
Oh, I'm a beginner, I tried to put MD5 and it wouldn't let people in or me, I left it in reply and it worked..
should generally just leave the setting alone
its not going to save you from an attack, as the attack doesnt even reach the challenge point
like i said, your best solution is to find a host with proper ddos protection
there isnt a magic config value that i can give you that will make it work
And what do I do with the few options I have on my humble server? ๐ญ
theres 3 options, realistically
do nothing and accept it
find a host with ddos protection
learn, research, fuck around, find out
And isn't there a way to strengthen the DDoS protection on the server I rent or add anything to it?
I don't really know much, but if I can do even a little, it would be a huge help to my community!
you cannot magically manifest a ddos protection, no
4* if you know where the attacks are coming from, that location is not the same as your player base, and have business grade or better network equipment, you turn geoblocking on your router, and pray that your backplane and linespeed keep up with the attack and that your router efficiently handles the attacks
You are very kind, taking into account my ignorance, haha, thanks for sharing what you know, I am learning something.
if you dont have the expertise to create your own mitigation (and that might not even work if the attack is bigger than what your server can handle) your only real solution is to just rent from the people who do have the expertise and resources to assist in that regard
friendly reminder:
scpsl uses UDP
udp lets you spoof ips
Good to know, that makes it harder then
so technically speaking, if an attack knows its geo blocking
they can just spoof to those 
well unless it's total idiots
also technically
even on TCP you in theory can spoof it
yeah you can
Fuck..
syn flood
just you won;'t get through the connection estabilishment
so it won't get to the app
exactly
the only solution that can partly help is make something that will validate the traffic and perform the preauth challenge before it reaches the game server
but there is no simple "install and run" thing for this
Quick question Ced, about XDP, would you then handle DDoS mitigation in the kernal, at which point the remaining traffic gets handled by NginX for example?
But I'm not looking for a magic formula or anything, or any tricks. I understand that this is very complex, but I'm sure I can do at least a minimal amount of work.
What can I do about it?
your XDP programs should be performing the packet validation
technically you can even perform the TCP handshake in XDP if you really want
and well, after that you can just XDP_PASS the packet and it will reach the application that listens to the port as normal
there isnt one, unfortunately
the only minimal work method is using a host with protection
or well, doing nothing 
Would unlisting his server help if it's just friends who know the IP?
well, considering the server is listed i dont think the server is meant to be private 
Well, if you say so, considering how you talk and your roles, I'll have to believe you.
But I'll try, because the community doesn't like it at all.
Thanks โค๏ธ ๐ซก
You never know ๐
Out of curiosity, does the Preauthenticating LabAPI event allow you to do this or would you have to patch before that event?
if attack traffic reaches the game process you are already done for
I think the server just gets waterboarded by the number of connections right?
80% of ddoses are just invalid shit that dont even get recognized as real sl packets
but it still needs to read and receive them
in which, it gets overloaded
for cases of preauth spam, those dont reach the event
but same thing applies, it has to read and process them all
and gets overloaded in doing so
So how do you parse and protect against that? And the follow-up is why wouldn't the game just have that built-in if it's possible?
the game cant protect against it because its not possible to protect inside the game
Kernal level packet processing seems to be the theme
the game ignores it, but the socket and the thread handling receiving gets overloaded
it still needs to read the packet and decide to ignore it or not
So there's not much you can do about it?
that can become a bottleneck when you are getting 400k packets per second
Sounds like an insurmountable problem
cause it's a network layer problem
nope, only way is getting a host with ddos protection
making an external application that will multithread the fuck out of networking and handle the validation for the game server
or making a XDP program for ultimate performance and handling capacity
not an app layer problem
sl will likely die at 100kpps
network layer itself wont
but say its 500kpps
the OS itself will struggle, and your ssh connection will die too
but anything running on the machine can be overloaded still with enough effort
So essentially, if I'm understanding correctly, the only way to prevent DDoS attacks is by using a service provider that has the infrastructure to handle mass DDoS?
with XDP you'd rather be overloading the network connection than the server itself

It's a problem of computation power rather than actual algorithmic strength?
its a problem of the linux (and windows) network layer dont like receiving 400k pps
they arent built for it
and neither do the applications on the receiving end
doesnt count for vpsses though
they die at 400-600k pps because the virtio driver will fucking implode
dedicated machine you are absolutely balling
and your only limit is the uplink
unless your cpu is hot garbage or something
small reference for scale
300kpps attack being rejected at about 5% cpu
it looks to be a liniair scale, just ran into the funny virtio limit when i was developing my stuff to deal with an attack
@slate flume unrelated: did you have that code chunk for handling audio, sending through voice channels , and compression/decompression using Opus?
also for this, yeah
you will need to have a server behind a bigger network that can actually handle the attack
like, your 1gb/s server wont be able to eat 50gb/s
but the hosting provider, or something like cosmicguard can easily eat and filter the traffic and let legit traffic pass
our centrals were getting 2tbps attacks in the past
that were handled by the hosting providers
if they got to the actual server, it would never be able to handle that
if you manage to obtain some sort of 10gb/s server you can theoretically resist shitty attacks using an XDP program, maybe even a proxy for sl will work if you configure linux right
(if vps, magic 500-600k pps limit from virtio imploding applies regardless of attack size)
but XDP remains the fastest way, but also the most dificult as theres absolutely 0 info on how to do half the things and you need to dig to find out how to do shit
(enjoy coding C and dealing with a "verifier" that will make 100% sure your code can never crash because its kernel and give you the most vague error messages)
This is why I never got into programming beyond a hobby. Huge respect lol
tbf, XDP is one hell of a special case
its a lot less commonly used by your average developer youd find on this server
But it seems very helpful. I think in part maybe if I did schooling it might help me understand more in regards to programming, that or maybe I'm just not cut out for a career in it, but that's okay
This has been a chill community to learn in
i initially learned how to code by making a plugin, and just keep trying to make it work and improve on it
That's been my journey. Learned Python by trying to make discord bots, csharp for win services and sl plugins
to dumb it down a little
in the end, each language just has a syntax, you need to learn how to use the syntax
then the rest is just logic thinking
"what do i need to do X"
ofcourse its a bit more than that, but the largest bit is just logical thinking
I think in part that's where this has been harder for me. Discord.py has beautiful documentation for everything. I could look up a method, property, type, etc. Have everything I need.
I'm still getting used to digging through the libs myself in csharp
I will say, Python makes a great testing lang from the perspecting of rapid reloading, REPL loop, etc.
But I understand the pros and cons of each language. Interpreted just ain't as fast
imo python is that "i need something now" type language
cuz you can just write random bs into a file named .py and just run it
as opposed to having to make a solution, make a project
compile it, run it
I do!
Well also
It has like 50 billion libraries
Libraries written using C code
I use it a lot for things like automating tasks on my computer or using libraries to process and work with files
Depends on what specifically your goal is though
I have an audio stream in memory that I wish to send from a player's "microphone"
Basically TTS
Then I need to hook into a c project for DECTalk and achieve moonbase alpha TTS in SL
these are good ill give u that
youtube music is actually good for some reason lol better than spotify im actually surprised
really? im using spotify rn and its pretty epic.
the RANDOM FEATURES, IS RANDOM
like i had this problem with spotify ALWAYS the same SONGS
ok bet
only reason i didnt wanna buy yt music is bc its expensive last i checked
and i got spotify through family ๐
nah the Desktop App is made by the community
and everything is free
Its crazy
dosnet yt music also have like 2x variety?
Yes
bc its all stuff on youtube availb
thats cool as fuck actually.
ill consider swapping, but i have all my music on spotify lel
I did the same with my 1k playlist
and i just used a tool
was gonna say, if there was a way to transfer liked songs thad be cool.
i used this
and it worked all of the songs are the same
on 1k songs only 2 didn't got found
does it still have the same features as spotify like the syncing with mobile and the casting?
if it does than im fully sold
idk the mobile
i usually use desktop
but let me check
Example NOW i CAN LISTEN NINTENDO'S SONG
amazing
cus ill use my phone for speakers etc.
i was clowing on maro for using it
but now i fucking hate spotify
everything you pay
here everything free
spotify takes down every remix
anything
that is not the official one
yea fr i noticed so much stuff just getting taken down
and it got me pissed off
you have sold me, this will be a task of mine at some point
I mean there's ADs but adblocker should do the job
on the mobile app
but no background songs (on IOS)
its pretty much the same as desktop just with ads
and no background song
thats it
ahh yea see that sucks.
Compared to spotify tho
but theoretically wouldnt buying yt premium solve all fo that
its still better
even tho its like 16$ CAD per month 
I mean
you know
that
...
thing
for how much youtube I watch aswell its prolly worth
fr
without youtube
no dinner
no eating
NOOOOO
PLEASE NO
curse of 1 meal no youtube
just saved a video like that
And now i got this banger
everyone should play Mario & Luigi
best games
even better than Pokemon as an RPG
can you rip straight up videos and save them or does youtube kinda know to filter out stuff
it says, Music, Video, Album
i found it on video
and its a video from youtube
that is just playing
would be funny if i could save like a whole markiplier video to my liked songs
Wait let me check
No but
if you search markiplier it shows up fnaf songs

i guess they use something to detect if its a song or a audio
huge pottential
OH the version of this song i took
is 30 MINUTES
i was about to say wtf why it doesn't end
It deactivates the shooter's colliders
OpusEncoder, OpusDecoder
oh nice, thanks Ax!
Np
gm
If your use case allows it, you can write a SendEngine for SecretLabNAudio that converts the AudioMessage into a VoiceMessage
(By assigning the Data and DataLen)
can your lib read from a memory stream?
Yes
Any stream as long as you can convert it to a WaveStream
Any*
-# *network streams are weird
Whats your use case
An ogg file in memory?
I'd have to check what System.SpeechSynthesis uses for stream
Well, if you can write it to a memory stream then you're good
Make sure to seek it to the beginning before initializing the VorbisReader
gotcha, yeah it looks like it's WaveStream output
You can install the packages (make sure both is the correct version, NAudio.Vorbis is on an older version of NVorbis)
Or use CreateAudioReader.Provider(memory, "ogg") so you don't have to reference NVorbis in your plugin
any benefits to NVorbis?
Ogg reading
SecretLabNAudio uses it under the hood
I see, I think I recall seeing it in the dependencies section
Yeah
For easy installation you can install the full plugin, it takes care of deps
helo
because you aren't strong enough
not enough power on rise of kingdoms
@celest thorn https://www.youtube.com/watch?v=-FbusR9gaHA
Take an early look at The Abyss coming this September to White Knuckle. After Habitation, get ready to face your fears.
Buy now: https://store.steampowered.com/app/3195790/White_Knuckle/
Follow the devs: https://bsky.app/profile/jonka.bsky.social
Join the official White Knuckle Discord: https://discord.gg/ZrSBb8cB5s
Join the official DreadXP Di...
UPDATE?
if i use a waypoint toy, the map generates
if i use a door to create a waypoint, there's no map
Crazy new stuff to parkour on
Just a teaser xd
wtf
Love nw
Thats why I NEVER SWITCHED
Honestly the no map gen version is kinda broken yea
Ill have to look at it some day
so skibidi
