#plugins-dev-chat
1 messages · Page 60 of 1
@unique crane fix need
Report the issue on github with some context and code you used. It appears you were manipulating with destroyed toy?
it's probably the stale room references again
Yep, probably issue regarding the room stuff
Which when 14.1.2 release will be fixed

foreshadowing?
i dont believe it will be
theres a PR for it, but its breaking(for other reasons) i can ask about moving the changes as im very busy atm but no promises
no one
lol
im just used room.Position
from var room in Room.List
@restive turrethgkorko
how i can reset list to default?
which was before .SendFakeSyncListSet(
send a clear sync thingy, then add all original items
Hi
Oh sadge :(
Do this what this guy said
SendFakeSyncListClear
Then
SendFakeSyncListAdd
Or smth
Oh resetting uhhh
is there an addrange operation?
¯_(ツ)_/¯
Not yet
I haven't even tested if the sendfakesynclist works
i mean if the "server" list is unchanged

*napsütötte laugh*
Idk
I only played the Doom (2016) and Doom Eternal, i don't think my gpu can run the dark ages
I even get crashes on DE
My gpu is a 1050
oh mine is a 3070 ti
Its around 1.8 or 1.7
I wait for end of the year to buy a better gpu 💔
why after reset keycard limit changed to 0?
when _indexCategory = Weapon
and it works normal in first but not for reset
slejm moment
slejm moment only
player have nothing
Are you sure
im just used room.Position in Room.List
doesnt one toy exists on the server
is it possible to change the volume rolloffmode for an audioplayer? that variable is only on the AudioSource unity component but idk how to access it
-# because i think by default it is Logarithmic, but i want it to be Linear
How to give a server all rights to all commands? Server.RunCommand($"/{commandRequest.Command}", Server.Host.ReferenceHub.queryProcessor._sender)
Best you can do is have the min and max distance be a high value and fake sync the volume
What
Did you mean to use the sudo command?
-# I wouldn't be surprised if it didn't work properly
No
How does your server have no permission for that wtf
The client console should be excluded from all permission check
client console ?
The server console has FullPermissions
Serverconsole sorry, wrong word
If the plugin handles it wrong, oh well
There's an Scs field in some class
Use that as the sender
(Double shift in Rider)
@grand flower
Signatories
Why is that a word
How to understand that sender is a server?
sender is PlayerCommandSender
? Player.Get(sender)
: Server.Host
Not work
Trying to fix the problem that the server does not have rights to commands
What command is not working
uh guys i have a minor problem...
Assembly-CSharp-firstpass has Discord.ActivityType, which conflicts with Discord.Net's Discord.ActivityType and I am now not able to use ActivityType anywhere because of this... is there a way to fix this maybe if someone knows?
me when i just remove firstpass as I don't think i need it, i probably will here :c
you can import a reference to assembly with an aliased namespace
<Reference Include="Discord.Net" HintPath="../Discord.Net.dll" Aliases="DiscordNet" />
I think then in any .cs file where you want to use type from that assembly you do
using DiscordNet::Discord.ActivityType;```
put it in a global using and booom
never used them so idk how lol
you literally type the word global before using
damn i thought it was a specific file
but like would that actually fix it 😭
usually you put it in GlobalUsings.cs
you can place global usings in whichever file you want
there are msbuild directives for that, too
so you can put global usings in Directory.Build.props
Known
walcome back david
Hell yeah
now its 1.025M
ahem ahem... yes
Why is that when in the OnPlayerMoved event plays when I am not even moving
home "LabAPI" david

north... moment?
it does that sometimes
I... dont think we have that event...?
No we dont
@severe cave You sure your on correct server?
Fire an event every time a player moves, must be efficient
c# event sry
found it on the dark web btw

still northwoods fault
heh?
Wat
schizophrenia hits hard
Apparently
😭
why did you forget?
Gimme five mins almost home
I fell asleep, had a long day yesterday
Okay i'm home
@hearty shard anything in particular you're looking for?
just the general structure xd
curiousity
I'll pick one i'm working on, gimme a sec to censor some of it
1984
1984 you
interesting
that's generally the way I go
and like
I'm not afraid of having lots of subdirectories
the more organisation the better
Like this is the kind of stuff we deal with at work (that's only source code, all written by hand)
What is up in unityengine vector3, what does it do?
cool reason
Why is scaling players so goofy
so like
why does the pool create a list with a capacity of 512
in what world would you need a list with 512 elements for only 1 thing
^ and because this is instantiated for every single T, there's like 10-15 different list pools with a list of capacity 512
Bc 9 bits, idk tho
what
Memes
it just seems like wasted memory
Not like SL tries to be efficient all things considered 
yea but like
they could change it to like. maybe 32
prob even less
same issue with HashSetPool
.
also for some reason this is used instead of the networkwriter / networkreader pool
Yeah there's plenty of instances like this
why not just return an ienumerable
then people can do whatever they want
List.Players.Where(x => ReferenceHub.IsSpectatedBy(x.Referencehub));
yeah some scenarios should
i dont see a scenario where it shouldnt
me neither so far
imagine
using PooledHashSet<uint> set = ...
Imagine not knowing you need to return it like the majority of devs here
(it's bad design)
would make it a bit better but still bad design imo
agree
Make a wrapper into it
ListPooler<T> : IDispose
And you just dispose aka return
Like the networkpooler
that will NOT prevent people from forgetting to dispose it 😭
Or whatever the name
Isn't it already doing that when out of scope? Or only when using Ball ball;
😭 cry fear
at eve, khm...
lmfao
in the pr that fixes this? why must there be methods for the non-pooled versions 😭
why not just fix the pooled versions
because you can't fix the pooled versions
ultimately, people will not return the list
cuz they don't know that it's a pooled list
i don't really get the pooling for these things though
they're convenience properties, yeah they could just return that
not sure why people can't just .ToList() if needed
Yeah IEnumerable is a good idea
i also opted to switching to enumerable, sometimes you just need a foreach, allocating a list is unnecessary
zero PR descriptions, khm
i guess it's kinda evident from the files changed and title
I cant compile since not on pc
dotnet build 
I edited via github.dev
you can compile on mobile
nice cpu
hiii
I meant I will be home at 18 so can compile on my own pc
I have a weird question. Does the client console pl fetched from central or the server itself?
Cause it is not triggered by OnCommandExecuting
if it doesnt start with . its not from server afaik
great
playerlist
ah
Lists all the players online with steamid (if DNT is off) and PlayerID
Now that is fantastic, cause that is not patchable than from serverside
isn't it a player list request somehow?
client already knows player list
i doubt that the LA itself could determine the nicknames and steam IDs
i mean thats how PlayerList (N) works
and if you had to request it every time you looked over someone, clicked N etc
thatd be annoying
we're talking about the local admin command though

Client console
yes you might be
remove the client 
PlayerList is different from the pl
PlayerList does not provide the UserID + SteamID
only names, roles, etc
while pl is ondemand
PlayerList comes from the server itself, I checked the serialization
yeah but client already has it
well kind of?
its when a player joins
As far as code goes, the PlayerList itself is fetched from the Server
yes when server tells client that "hey a player has joined" no ?
Yes, but that is only used for the N playerlist, not for pl
Helo chat
btw why TextToys have a SyncList what's the point lol?
like a string wasn't enough?
Its to bypass the message size limit (UDP packet size)
OH lol
My first idea was to not send whole message at once
Make a PR to change the name 
I like this elegant solution tbh
Even makes sense. Create a template with arguments and then dynamically provide the arguments
Its so hard to do client side text toys
Why?
that im going to quit and not even touch them
It is just literally a string format
I want to make perfection client side everything
So I wanted to visit a friend this weekend
next thing will be make a fake server
gg
sad
btw nice enough my internet cable melt for the hot summer
and funny enough i couldn't play doom dark ages
because of denuvo ;(
if the game has denuvo, everything is legal 
Denuvo sadly is hard asf to hack and id software cooked so i will pay their game
because its a film and not a game they cook like everytime
I can’t play doom because I have error with denuvo
Hmm strange
i can and fine
😦
did regiojet crash praha hlavi nadrazi? 
and the version was out for an hour
not that difficult to write them
honestly anyone has a good game to play
more difficult to change them
Just too annoying to change them
play on a server with a shit ton of plugins
i have more fun developing than playing the game
CT is what started my development on sl
and honestly i play sometimes CT
but kids screaming ;(
bomb has been defused

who killed the space
Honestly peak game
you should play it
everyone should
is it more than 0 hufs
2008 games from EA are the best
it yes, i ain't
Wait i forgot is the new mafia out?
nop
in 4 weeks ;(
crazy game to play
Oh wait gamepass has alot of indie titles
idk should i play celeste?
I guess
u r better
btw its so relaxing playing doom after screaming at this game
what?
if i search this
this is the first thing that shows up
and im not even kidding
Btw this doom they cooked so much
YOU CAN FLY A DRAGON
YOU CAN PUNCH DEMONS WITH A METCHA
like crazy
but parry
like main mechanic master that
btw never seen this games
ignore the reddit post
Stop it, please
🔥
?
Check out the game
Game: You're Henry, the son of a blacksmith. Thrust into a raging civil war, you watch helplessly as invaders storm your village and slaughter your friends and family. Narrowly escaping the brutal attack, you grab your sword to fight back. Avenge the death of your parents and help repel the invading forces!Story: Bohemia – located in the he…
$5.99
124587
76
very good yes
And second game even better
Its from same creator as Mafia
crazy so good game
National treasure
Huh
Network deez
Love mirror! You are forced
Okay so Im making PR for speaker toy volume above 1f
I love slayering demons
after spending hours with proximity SCP VC
WHAT CRAZY
LEAKING
So can fakesync it to player

So can change other volume as you want
Erhm technically must be like 3 line
Or 10
Guys
Setter
why nw is becoming peak
And void to set
Okay its 2 lines
why not
But i want 98f as a volume
I guess for loudness safety
honestly you can just
Make the audio louder
Does unity support it tho?
dam
good news
me when Mathf.Clamp01
So what you did doesn't make much more sense 
you can just amplify the decoded audio data
who cares
Since already only can be 0-1
show the audio mixer
Where tf is that
In your mind
window toolbar
if i join Hangout and stream doom lol
slejm works
Ye its an internship, need for my Cert
when nw can fix bug if join when round restart it just show empty lobby and impossible exit
6 month not almost?
what i've experienced is when you kick the player as soon as they join
not sure what other cause is there
Or when server restart at join time window
Hi how can i send fake sync to update content of text toys, how to use Synclist idk what is that
how about you don't
Dont test it?
don't fake sync it
Ye i expect everything to work
More memory
oh you wanna update the text but not the arguments
how about i make a gist about fake sync shit with your thingy linked
I am professional of not writing documentation
Not my issue 
that's why i wanna make a gist
Subclass on deez
🤯
btw this wouldn't work properly
should be a > and not >=
wait...
wtf are you doing in this method 😭
Dont know which one
What if other class starting using that too?
I am NOT that sure about anything at NW
are you serious
No, because what if you writing the 16th one?
Yes
Oh ye
it should be < isntead of <=
Nvm the other one
Ye u right
Tbh I didn't tested the multiple one so i have no idea if that works or not
can you explain tf is this 😭
https://github.com/KadavasKingdom/LabApiExtensions/blob/main/Managers/ObjectConvertManager.cs
why not just create an object for the config
hey guys im asking here as idk where else to ask... i have a class that i make every time a log needs to be sent to discord that contains lists and dictionaries that are created every time the class is created... would i need to make it an idisposeable to destroy those lists/dictionaries or will the GC just clear everything up when the method ends anyway?
And easier to parse like that
GC
?????
okie cool, i just remember u guys hating it when new Class() is called every so often on specific classes and idk why 😭
but if GC clears without IDisposable then cool
if it's unused, GC will free it
clear the list on waiting for players just to be sure there are no stale references
we yap about allocations because sometimes it's done excessively
like... PlayerValidatedVisibilityEventArgs
that puts a lot of pressure on the GC and wastes time by doing so
R u doing a pr or should I change the >= to >
i create the class during points when im sending stuff to discord
i'll make a PR
stuff like this, ill put it in the send message method and never use it again
fix up the whole class
that's not gonna be allocated often so you're fine
slejm... why do you have 2 csprojs
Kk.
Btw I using a
Dict<string, List<object>> .
and inside that list sometimes a string, item enum, or effect config, etc
One for internal with all the .props file
ohhhhh
The other for git
also, why didn't you use SyncList<T>.Change in FakeSyncListExtension
Its internal

And shit naming for enum
me who's publicized mirror
true
also please fix your naming conventions 😭
sometimes you use pascal case, sometimes camelcase
like can you decide
Wheree
skull
Ye my IDE dont care about those
No it doesn't do shit for naminf
it does
probably methods only
oh well
Not for me
did you disable it
😭
If u want u can fix those
This is include into Exiled? https://github.com/KadavasKingdom/LabApiExtensions/blob/main/Extensions/FakeSyncVarExtension.cs
Probably ye
You have to maybe do something if you wanna fake sync like LightType in admintoy
i thought about converting it to a struct but then realied that we box them anyway
Oh it might be fucky since some people doesnt publicize that
So probably cant do new(val, ...Set)
boom
Boom
🤯
Btw if you see the thing it will do such as
writeulong
write
Writeulong
Or
Writeulong
Writeulong
Write
For AdminToy stuff
what do people use fake syncing for besides admin toys
roles
that's...
Yes
Uh no
Idk ehat using syncvars tho
maybe
that's also an admin toy
ohhhhh
slejm you didn't return the writer
Its pooled
I frogot to add using on the pooled
i'll push the fix
Push me
off a cliff
Huh
i would say bridge but
why are these nullable 😭
almost done
what would you guys say is better for arrays? T[] or IEnumerable<T> or does it not matter
just returning an array of items, stuff that doesn't need modifying
I would use list if it needed modifying
never used them 😭
you can return the array as IReadOnlyList
if you only wanna enumerate it, probably better to have it as an enumerable without allocating an array in the first place
either with LINQ or your own iterator
-# like with coroutines, but the method will have a return type of IEnumerable<T>
it depends
are you returning it
ah yeah with T[] you need to use .ToArray() in most cases
but with IEnumerable<T>
you don't
if you're storing it you should prob store it as an array
but if you're returning it return an ienumerable
public static IEnumerable<Module> CurrentModules { get; internal set; } = [];
I was using Module[] before
changed to IEnumerable<Module> and now I don't need to use .ToArray()
what's the difference?
you do need to store it in an array here
since you wanna keep it for later, not just enumerate once
what pai said
i think what u can do is make a private Module[]
and then return an IEnumerable<Module> to that
it's internal set, no need for an extra field
but it depends on what you're doing
IReadOnlyCollection is perfect for this
Array implements that
custom class
well ik
do you plan on mutating the collection after getting all the modules?
I just do CurrentModules = foundModules
yeah then use IReadOnlyCollection for this
okie cool
been there done that
what about returning a list of modules tho?
IReadOnlyCollection too? or IEnumerable
you don't want outsiders to modify that
like here, this will return the outdated modules
public static async Task<IEnumerable<Module>> ManageUpdates()
when
async IAsyncEnumerable<Module>
im confused @_@
are you fr rn
yes
lol
then you can do await foreach (var module in ManageUpdates())
yield return module instead of adding to the list
im not sure if you want IAsyncEnumerable
can i see the rest of the code
so yield return will add an item to the list? how do I just return nothing... 😭
true
yield return tells the iterator to "let this be the next item"
ohhhhhh
oh
yeah you should probably return a task of ireadonlycollection or ienumerable here
yield break exits the iterator, like a return in a "normal" method

:3
:3
ive worked so hard on this shit... blegh
also why did c# have to make this easier to do in C# 5...
kek
(T[]) Enum.GetValues(typeof(T)) also works in older .NET
does the same thing as linq cast basically
but yeah they added a generic overload
the c# experience
that's the reason they provided for not having a builtin GetValueOrDefault method for dictionaries
well it yells when i use [] because, well, dictionaries aren't arrays typically...
oh
why ai
the {key, value} syntax calls add, the [key] = value syntax overwrites
so the former would throw if you have duplicate keys
interesting...
Rider will yell at you if you have duplicate keys with the {} syntax tho
its so it doesn't conflict with the object initializer syntax
because you can do
new X {
Y = "hello"
}
Hi! I made a custom room with mer and I have 2 questions, where is the best place to put it, just to a random coord or where? And the other one is that is it possible to make the game to detect the players that they're in the surface room while they're in that custom room?
Or put a RoomIdentifier to that room
is there a way to change the results of the Request Data -> Request button? or is that all client side stuff
https://github.com/Axwabo/CommandSystem/
look at the patches
that could work perhaps with the RoomName being Surface
place the component on the root of the schematic gameobject
also set the zone
Is it possible to spawn game props? Like boxes and pipes
are you referring to the clutter ?
i believe so
youd just need to get the prefab
Yes
Thank you
Im making an emoji system and i want to have emojis etc... but some of them sl doesn't support from which version does sl support them?
bolton made a website for it
i can’t remember the link
i already finished
i tested and figured out which one didn't and which one did
im going to cry
its 1 hour im doing this
bruh
damn
im going to bed
i found out tho
that sl doesn't support emojis that are present on android 3.0
lol
at least i have a new way to make fun of this game
android 3.0 has more emoji than this game
so maxes out at android 2?
Idk its so random
Example it has 2 man
But it doesn’t support other type of 2 like transflag or lgbt flag
Frown etc…
Like its so strange
Idk whats the logic behind of it i tried even downloading the font but it seems sl is using an outdated version of it
So yea most likely android 3.0 has more emojis than sl i went from 2k emojis from android 4.0/3.0 to like 300 or something like that
But yea sl skips some version of unicode and skips some emojis even from the same version ex. Rfl is fine, lying doesn’t work
Both from 3.0
yeah hubert please add pride flag emojis to sl
coordinates 500 500 500, there is a door for people to walk and small schematic, but items and people randomly fall from scp-106's dimension to 500 500 500, why?
im not saying that, but i mean its funny that like emojis from Android 3.0 don't work
because there is a door
you need to remove it from the pocket exit finder's detection
you can just do some tmpro magic to layer colored lines
<mspace=0.045em><color=#E40303>▀</color><voffset=-0.5em><color=#FF8C00>▀</color></voffset><voffset=-1em><color=#FFED00>▀</color></voffset><voffset=-1.5em><color=#008026>▀</color></voffset><voffset=-2em><color=#004CFF>▀</color></voffset><voffset=-2.5em><color=#732982>▀</color></voffset></mspace>
tyjoi23ruhiih'
which method?
oh
scp sl also captured
bruh
idk atm
I'M pulling my hair out.
It is using the wrong ragdoll in the event
another thing to patch 
Also I assume I cannot update the gitlab issue, right?
/// <summary>
/// Fixes an error with LabAPI where the PlayerSpawnedRagdoll event gives the ragdoll prefab instead of the spawned ragdoll.
/// </summary>
[HarmonyPatch(typeof(RagdollManager), nameof(RagdollManager.ServerSpawnRagdoll))]
public static class NWServerSpawnRagdollFixes
{
[HarmonyTranspiler]
public static IEnumerable<CodeInstruction> ServerSpawnRagdoll_Transpiler(IEnumerable<CodeInstruction> instructions, MethodBase method,
ILGenerator generator)
{
var matcher = new CodeMatcher(instructions, generator)
// LabApi.Events.Handlers.PlayerEvents.OnSpawnedRagdoll(new PlayerSpawnedRagdollEventArgs(owner, currentRole.Ragdoll, handler));
.MatchStartForward(
new(OpCodes.Ldarg_0),
new(OpCodes.Ldloc_0),
new(OpCodes.Callvirt),
new(OpCodes.Ldarg_1),
new(OpCodes.Newobj),
new(OpCodes.Call, AccessTools.Method(typeof(PlayerEvents), nameof(PlayerEvents.OnSpawnedRagdoll)))
)
.Advance(1)
.RemoveInstructions(2)
// LabApi.Events.Handlers.PlayerEvents.OnSpawnedRagdoll(new PlayerSpawnedRagdollEventArgs(owner, basicRagdoll, handler));
.InsertAndAdvance(new CodeInstruction(OpCodes.Ldloc_1));
return matcher.InstructionEnumeration();
}
}
wait what is Code Matcher
the better way to do transpilers
I was pulling my hair out by juggling with Rider IL and ILSpy IL and ingame logging (ALL THREE PRODUCES DIFFERENT IL) and I could have used this
Use dotpeek
dotpeek is the same as rider tho
Scp106PocketExitFinder.ValidateDoor(..)
me when
That's what I use
On my second screen
because Rider's IL window sucks when you try to look at some other code at the same time
yeah it's annoying that you can't pin the IL to one file
Can you do two MatchStartForward?
Cause I need to fix the serial as well
var codeMatcher = new CodeMatcher(instructions, generator)
.MatchStartForward(
new CodeMatch(OpCodes.Callvirt),
new CodeMatch(OpCodes.Ldc_I4_0),
new CodeMatch(OpCodes.Newobj),
new CodeMatch(OpCodes.Newobj),
new CodeMatch(OpCodes.Call, AccessTools.Method(typeof(RagdollData), "set_NetworkInfo"))
)
.Advance(1)
.RemoveInstruction()
.Insert(CodeInstruction.Call(typeof(RagdollSerialGenerator), nameof(RagdollSerialGenerator.GenerateNext)))
.MatchStartForward(
new CodeMatch(OpCodes.Ldarg_0),
new CodeMatch(OpCodes.Ldloc_0),
new CodeMatch(OpCodes.Callvirt),
new CodeMatch(OpCodes.Ldarg_1),
new CodeMatch(OpCodes.Newobj),
new CodeMatch(OpCodes.Call, AccessTools.Method(typeof(PlayerEvents), nameof(PlayerEvents.OnSpawnedRagdoll)))
)
.Advance(1)
.RemoveInstructions(2)
.InsertAndAdvance(new CodeInstruction(OpCodes.Ldloc_1));
blerg
yea
coolio, time for another 2 hours of debugging
Thanks for the help
also this new toy
Wdym new toy
CodeMatcher
makes writing patches much easier
just called it a toy
don't mind me, I might have some blood running in my coffee veins
Yeah do whatever you want
just keep in mind where you are in the IL instructions atm to determine if you want MatchXForward or MatchXBackward
AccessTools.Method(typeof(RagdollData), "set_NetworkInfo") can be AccessTools.PropertySetter(typeof(RagdollData), nameof(RagdollData.NetworkInfo))
Is there any way to get the list of commands that are registered? I see there is CommandHandler::Commands but it is abstract and there is no way to get to this list statically via the places that inherit it... so idk if there is a way to get the full commands list 😭
CommandProcessor.RemoteAdminCommandHandler.Commands
QueryProcessor.DotCommandHandler.Commands
@icy knoll
tyvm :3
is there anything for local admin commands or does that fall under remote admin?
RA I believe
okie
Thats a decompile...
Crazy
Is it possible to remove people from the player list? i have a risky idea
unpatch cedmod 
its a meme
prefix are impossible to work with
with cedmod patching the RA i cannot work on hiding the players from RA
i think i will leave it lol
cedmod won again
How can I do that because I can't really get it to work
var surface = Room.Get(RoomName.Outside).First().Base;
var roomIdentifier = ev.Schematic.gameObject.AddComponent<RoomIdentifier>();
roomIdentifier.Name = surface.Name;
roomIdentifier.Zone = surface.Zone;
roomIdentifier.Shape = surface.Shape;
roomIdentifier.MainCoords = surface.MainCoords;
roomIdentifier.WorldspaceBounds = surface.WorldspaceBounds;
roomIdentifier.LightControllers.AddRange(surface.LightControllers);
roomIdentifier.ConnectedRooms.UnionWith(surface.ConnectedRooms);
roomIdentifier.Icon = surface.Icon;
roomIdentifier.RegisterCoords();```
This is the current code
i don't think you can?
i mean if you patch RaycastRoom and stuff
Thats gonna cause a looot of trouble
Yea
it'll be difficult though
and likely inefficient
what if you made a collider in the uh
like a big big collider around the whole thing, put it on a separate layer
and in the raycast patch you first raycast for that layer only
if it doesn't hit, let the original method handle it
true
someone know if its possible to detect changes on a list like
public List<Player> players;
This types or if there's anything like that because i don't want to write massive logics for doing this
TRUE
ObservableCollection
ObservableCollection
wtf is that
Ohhh nice :3


Behold
the navmesh
aaah my editor is fucking dying
(Note that im just figuring out whats wrong with HCZ navmesh)
im not adding it to the game
simplify meshes 
exactly
;(
@celest thorn what exactly is the issue like
like npc goes to the corner to cry
in every room
or tries to move
and then goes to the corner to cry
They are getting self aware
lmao just replace the RA handling class
cedmod prefixes it
Honestly
cedmod won
im leaving it
lol
if (CommunicationProcessor.ServerCommunication[0] is not CustomRaPlayerList) {
CommunicationProcessor.ServerCommunication[0] = new CustomRaPlayerList();
}
Idc
Still trying to fix when primitives are around the player the room will be null

honestly
just copy the original src
cedmod won
that is what I did 
do what david said
bounds check
at the end its nothing crazy that i needed and probably got removed
Wish we had like a map like object (old tablet reintroduced wink wink?) that showed this
cause that looks awesome
that is up for the player to figure out
it looks kinda like the borderlands 3 minimap
me when im adding a temporary mute manager to a discord bot plugin...
I still dont understand whose idea it was at Unity
to not let you rebake navmesh in editor via a button
but you can by code
david i have a question really stupid, which font does sl use for Emojis?
because its outdated most likely
oh
Im destroying the player and everything but doesn't work they are still here wtf
this one?
grabbed from 14.0.2
wrong one
that won't show you the emojis 😭😭😭
yes?
thank god darkmode is on




