#plugins-dev-chat
1 messages · Page 6 of 1

ok fuck off
yes so idk why I got pinged 
hi xert
Me when a roletype is not a type
to remove my one, because it conflicts with base game, even tho my version is faster lol
they are identical
no one does a cast
oh
public static Team GetTeam(this RoleTypeId role)
{
PlayerRoleBase result;
return !PlayerRoleLoader.TryGetRoleTemplate<PlayerRoleBase>(role, out result) ? Team.OtherAlive : result.Team;
}
oh yea
just make basegame one not do that
wait 
did the source change

base game one no longer does a cast (idk where I saw the cast am I going crazy?)
@icy knoll also IsSCP and IsAlive also both exist base game
I swear there was a GetTeam extension that casted to a generic
and that's the one I was looking at yesterday
this
😭
just get gud
had to go pick up an air fryer
become the air fryer
oh god I love doing the respawn wrapper
I actually changed some fields to be changable
You can adjust amount of sergeants and such
yey
Yeah
did you enjoy
I like 2065th one
i did the Wave wrapper for exiled, that was kinda fun too tbh
some of the methods made no sense tho lol
Yeah you sent me link
eve can we stop being violent please
ur scaring away the code newbs

breathed too much
and what did I do?
didnt rework 330 yet
partial class
yes sir
😭
what the fuck do I put into mini wave classes
check what the base has that the normal wave doesn’t :3
spaghetti
IMiniWave
Yeah I mean I kinda have everything in the MiniRespawnWave
Base game classes have just overriden values which I can simply get from the instance
Team.DeadOrAlive
Less competition 
literally every role lol
exists
Team.Gray
Team.Spectator
I meant from tf2 
Well gray is spectator
Is it ok to tanscribe player's conversation into text, check if there's any violation to the rule in conversation, and dispose immediately after checking?
Does that violate vsr or the law?
Youll want to contact vsr for a proper answer but im pretty sure thats not allowed
I see.
definitely not without explicit consent
e.g. 939 mimicry relies on a separate setting
you can sit in overwatch and record everyone's voices, just dont have a plugin do it
i think an automated system would produce many, many false-positives
context is pretty important in SL
Anyone would like anything particular to be changable/adjustable in the respawn waves system?
for example?
For example adding new roles to spawn, yes
I mean you can change player's roles within the wave spawning event
Ill add so you can change the default
Wait if I want all d-boi spawn wave
Yea you can do that
WaveRespawning(WaveRespawningEventArgs ev)
{
foreach(Player player in ev.SpawningPlayers)
{
ev.ChangeRole(player, RoleTypeId.ClassD);
}
}
Thaaaat wont work
Ye ik I have the same type of respawn with the custom role
collectionmodified?
No thats not the issue

then what's the issue lol

thought so
WaveManager.OnWaveSpawned += TheHandler.RespawnManager_ServerOnRespawned;
I use that
then you are changing people's roles twice...
^
Well I only change specific roles of people
Still I would use this
Like I want know what role the player have before changing
Yeah that is present
You can get/set the role that the player will spawn with
and its filled with spawn roles already
you can do that
I didn't not know that, will check that
oh actually the event doesn't let you check what roles are spawning
Guh
@unique crane since you are already modifying it, you should add it
Oh uh
are there away to make player unable to pick up some items for example Scp1344? like idk "Picking up handler" or something like this?
One sec
possible make IsSpawning have an out parameter
A Dict<Player, RoleId> would be good
Yeah Ill change it to that dictionary
Ty
does denying the OnSearchingPickup event work?
you can lock the pickup
it should
and that too
Oh wait specific player
i need to check this out again i was looking in the code right now and i dint register the event XD
^ or that if you want an item that nobody can pick up
If specific player then the searching pickup should work
locking works client side which is nice

i lost 2h of my life on this XD
that's why I liked my IEventSubscriber's
and why I like CustomEventHandlers which are in LabAPI


where is Scp106TeleportPlayerEvent?
I only found OnPlayerEnteringPocketDimension and only has target human player
because Killers made the event weird
I will add it to my other PR
ty for bringing it up

i am the spy


ur cooking
I'll add a 106 teleportingplayer event
ok buddy
Yeah it does that
well if you didnt disable it
Random window
I have it on for cs in case I fail to clip with obs and I am too lazy to go into the demo
doesn't let me enable it for only 1 game so this is what I did
180m what
yeah
3 hour
yes I know what 180/60 is
why you want to record 3 hours
do you know how steams recording thing works?
it keeps the last 3 hours at all times, and overrides anything over it
i.e I play for 180 minutes, then I play 1 more minute, and it discard the beginning 1 minute
then later I can go and clip anything out of those 3 hours
I use OBS Replay Buffer and clip 90 seconds usually
which is what I use for everything
but cs I might forget to clip so I just have that as a backup
it doesn't save 3 hours every time I clip
Added Scp106TeleportingPlayer and Scp106TeleportedPlayer events
ty for reporting that there wasn't one
when we will get that update 
how to add my own server-specific option like i made
`using UserSettings.ServerSpecific;
namespace SCP372LabApi
{
public abstract class AbilitysLoader
{
private static AbilitysLoader _activeExample;
public static AbilitysLoader[] AllAbilitys =
{
new Ability()
};
public abstract string Name { get; }
public abstract void Activate();
public abstract void Deactivate();
public bool TryActivateAbilitys(int index, out string message)
{
if(!AllAbilitys.TryGet(index,out AbilitysLoader loader))
{
message = $"Index {index} out of range.";
return false;
}
if (_activeExample == loader)
{
message = $"Ability is already active";
return false;
}
TryDeactivateAbility(out _);
_activeExample = loader;
_activeExample.Activate();
message = loader.Name + " Activated.";
return true;
}
public static bool TryDeactivateAbility(out string disabledName)
{
if (_activeExample == null)
{
disabledName = null;
return false;
}
disabledName = _activeExample.Name;
_activeExample.Deactivate();
_activeExample = null;
ServerSpecificSettingsSync.DefinedSettings = null;
ServerSpecificSettingsSync.SendToAll();
return true;
}
}
}`
(Its based on Hubert Moszka "Server-Specific-Settings-System")
but i don't have any idea how to activate them?
@harsh thorn heyyy
just letting yk if using RoleExtensions + having PlayerRoles using then this will conflict with basegame
guess you could just define it by namespace if you need both, but this wouldnt really be an issue when using role wrappers when those get implemented
its mostly just, i dont think this method is needed
it already exists
i can just make it reference the game method
fair enough ig
i know its a double method. but having 1 half be in labapi and the other half in basegame is annoying

wait how will it conflict
the game calls it PlayerRoleUtils
🤨
yeah but using PlayerRoles; gives you that reference
the conflict is if you do RoleTypeId.Scp173.GetTeam()
yea
the only difference between the methods is basegame calls TryGetRoleTemplate<PlayerRoleBase> instead of AllRoles.TryGetValue
adds a cast to the mix, but if you dont like that cast then removing from basegame is better option
imo at least
you can use ``` to create a code block, e.g.
```cs
// code here
`\˙\˙
btw just create an array of settings
check the derived types of ServerSpecificSettingBase
then subscribe to ServerSpecificSettingsSync.ServerOnSettingValueReceived
the SSSS repo has multiple examples to get inspired from
the ss setting system is so weird i don't understand why the same class is used for sending and receiving data to and from the client
a lot of classes in SL do this 
VoiceTransceiver for example
well yeah, maybe it would have been more optimal to have a template and track configured instances
i might just replace how it handles received settings with my own system or smth
@main zenith automod should no longer block the message
wdym by subscribe and i can be wrong but i created array of settings in other file
internal class Ability : AbilitysLoader
{
public override string Name => "SCP-372 Abilitys";
public override void Activate()
{
ServerSpecificSettingsSync.DefinedSettings = new ServerSpecificSettingBase[]
{
new SSGroupHeader("Abilities"),
new SSKeybindSetting((int)AbilitysId.Stalk, "Stalk Ability", KeyCode.H, hint: $"See where are others players"),
new SSKeybindSetting((int)AbilitysId.LightOut, "Light out Ability", KeyCode.Y, hint: "Turn off light in room that u are")
};
ServerSpecificSettingsSync.SendToAll();
}
public override void Deactivate()
{
throw new NotImplementedException();
}
private enum AbilitysId
{
Stalk,
LightOut
}
private void ProccesssUserInput(ReferenceHub sender, ServerSpecificSettingBase setting)
{
switch ((AbilitysId)setting.SettingId)
{
case AbilitysId.Stalk
when setting is SSKeybindSetting keybind:
{
if (keybind.SyncIsPressed)
{
StalkUse(sender);
}
}
break;
case AbilitysId.LightOut
when setting is SSKeybindSetting keybind:
{
LightOutUse(sender);
}
break;
}
}
private void StalkUse(ReferenceHub sender)
{
Player player = Player.Get(sender);
if (SCP372LabApi.Instance.EventsHandler.TryGetValue(player.UserId, out EventsHandler entry))
{
entry.Test1();
}
}
private void LightOutUse(ReferenceHub sender)
{
Player player = Player.Get(sender);
if (SCP372LabApi.Instance.EventsHandler.TryGetValue(player.UserId, out EventsHandler entry))
{
entry.Test2();
}
}
}
and AbilitysLoader has array with this
did you finally make us able to do stuff here 
no
:(
public static AbilitysLoader[] AllAbilitys =
{
new Ability()
};
just removed .li from automod
why was that in automod
hi eve
hey
ur a scam
ServerSpecificSettingsSync.ServerOnSettingValueReceived += ProcessInput;
ProcessInput would be the method handling the change event
if you wanna get the current value at any given time:
if (ServerSpecificSettingsSync.TryGetSettingOfUser(hub, id, out SSSliderSetting setting)) // or any other type
// use slider value
also be sure to unsubscribe from the event when deactivating
another approach is to have a global value receive handler, create an abstract method in your ability base class and call that
oh does anyone know if ss dropdown settings let u do rich text
it would be super useful for me
ok but how can i activate my server-specific settings to be registered in game because idk how to make them show in the game that is my problem
set DefinedSettings and call SendToAll()
the server should send settings to the player automatically if they join after the call to SendToAll
if you don't have the settings specified, then it won't send anything (i spent hours debugging this 😭)
try it and see
in main file? or in the same file where its supposed to create settings?
you already have the correct behavior in Ability::Activate
not sure how you activate abilities from outside if TryActivateAbilities is not static
well i changed that moment ago to static Like first my file is
using UserSettings.ServerSpecific;
namespace SCP372LabApi
{
public abstract class AbilitysLoader
{
private static AbilitysLoader _activeExample;
public static AbilitysLoader[] AllAbilitys =
{
new Ability()
};
public abstract string Name { get; }
public abstract void Activate();
public abstract void Deactivate();
public bool TryActivateAbilitys(int index, out string message)
{
if(!AllAbilitys.TryGet(index,out AbilitysLoader loader))
{
message = $"Index {index} out of range.";
return false;
}
if (_activeExample == loader)
{
message = $"Ability is already active";
return false;
}
TryDeactivateAbility(out _);
_activeExample = loader;
_activeExample.Activate();
ServerSpecificSettingsSync.SendToAll();
message = loader.Name + " Activated.";
return true;
}
public static bool TryDeactivateAbility(out string disabledName)
{
if (_activeExample == null)
{
disabledName = null;
return false;
}
disabledName = _activeExample.Name;
_activeExample.Deactivate();
_activeExample = null;
ServerSpecificSettingsSync.DefinedSettings = null;
ServerSpecificSettingsSync.SendToAll();
return true;
}
}
}
and other
using System;
using UnityEngine;
using UserSettings.ServerSpecific;
using LabApi.Features.Wrappers;
namespace SCP372LabApi
{
internal class Ability : AbilitysLoader
{
public override string Name => "SCP-372 Abilitys";
public override void Activate()
{
ServerSpecificSettingsSync.DefinedSettings = new ServerSpecificSettingBase[]
{
new SSGroupHeader("Abilities"),
new SSKeybindSetting((int)AbilitysId.Stalk, "Stalk Ability", KeyCode.H, hint: $"See where are others players"),
new SSKeybindSetting((int)AbilitysId.LightOut, "Light out Ability", KeyCode.Y, hint: "Turn off light in room that u are")
};
ServerSpecificSettingsSync.SendToAll();
}
public override void Deactivate()
{
throw new NotImplementedException();
}
private enum AbilitysId
{
Stalk,
LightOut
}
private void ProccesssUserInput(ReferenceHub sender, ServerSpecificSettingBase setting)
{
switch ((AbilitysId)setting.SettingId)
{
case AbilitysId.Stalk
when setting is SSKeybindSetting keybind:
{
if (keybind.SyncIsPressed)
{
StalkUse(sender);
}
}
break;
case AbilitysId.LightOut
when setting is SSKeybindSetting keybind:
{
LightOutUse(sender);
}
break;
}
}
private void StalkUse(ReferenceHub sender)
{
Player player = Player.Get(sender);
if (SCP372LabApi.Instance.EventsHandler.TryGetValue(player.UserId, out EventsHandler entry))
{
entry.Test1();
}
}
private void LightOutUse(ReferenceHub sender)
{
Player player = Player.Get(sender);
if (SCP372LabApi.Instance.EventsHandler.TryGetValue(player.UserId, out EventsHandler entry))
{
entry.Test2();
}
}
}
}
and i dont understand what i need to do next
like i said before its based on Hubert Moszka "Server-Specific-Settings-System"
you're missing ServerSpecificSettingsSync.ServerOnSettingValueReceived += ProcessInput; in Ability::Activate
also, when do you activate any abilities?
AbilitysLoader::TryActivateAbilitys can (and should) be static
and then you'd call that when your plugin loads or in a command
in your case, ProcessInput is ProcessUserInput
Me when the input is processed
@harsh thorn you should probably specify that the labapi release on github is older than the latest one on steam
or smth
no it is the latest one on steam

Steam one has Player::Health setter
The one on labapi releases doesnt
🤨
and idk what else changed
confused someone in nwapi server #1039316650371068066 message
did bro put the wrong file 
i am is confusion
did steam do me dirty
ill beat steam up and update the release

something is not right like i dont see anything what can cause this issue
should be good now
the publicizer you used messed up the fields
use one of these:
alright now its work(i mean no errors)
how can i make "call" inside of my plugin?
nv
found out still thanks for help
WOWW

!rep @odd vapor
You have just given @odd vapor a reputation point!
shoutout to inter
!rep @hearty shard
You have just given @hearty shard a reputation point!
krill issue tbh
nice
finally ugh
yeah ur getting murdered
bru
can i -rep
We all wish
so we got bad apple with hints, with primitives and with intercom (again)
WTF did I just watch lmao
you look familiar
That’s because I know you
Nice
What did you do
Infiltrated a dozen of the largest groups
And then started a war with each other
Concurrently
The only group Im not banned from now is Omega
Doesn’t matter as I don’t play much Roblox now
I work 24 hour shifts and all I want to do after is sleep
gg
Im an NCA AFO now
Is there a way for the server to detect key presses from the client?
For example, when the client presses the J key on the keyboard, the server detects that the client has pressed the J key..
server specific settings
those are a few examples
exiled improved it that's for sure
ya
either #serverhost-suggestions cuz its a technically a host suggestion
make the suggestions here as labapi feedback, technically not labapi but close enough
git issue, whatever
hm
What channel is that
its a channel for serverhosts
i doubt you guys plan on making wrappers for ssss tho right?
Ah ok
well i think the more preferable option is to just improve the basegame SSS
but i dont see an issue with providing it here, as it technically counts as "plugin api" so i think its fine for maintainers to do stuff to
ERROR!!!!!!!!! THERE IS NO dot
Help I'm so stupid Idk where to declare the server seed
it's map_seed in the config_gameplay text file iirc
Thanks
np
Hello so stupid Idk where to declare the server seed, I'm SlejmUr
Hello stinky im evelyn
??? No
Yes
I'm not stinky
Lies

But
No buts
But
basic minimap
Youre next
I'll take the hit to save Pickles

🤨
Damm
spy
Would you guys say it would be better for my plugin with 2 configurations (LabAPI and Exiled) to use the right event handler stuff for the configuration or just LabAPI?
If your missing some events/stuff you can always suggest them yknow
can you answer me in dm?
I am getting an InvalidCastException whilst calling player.Items.FirstOrDefault(p => p.Type == ItemType.Radio);, am I doing something wrong? 😭
can't test my plugin til it's fixed then 😭
You can use player.Inventory.UserInventory.Items.Values.Select(Item.Get);
Thats the code it uses
there is just cast to IReadOnlyCollection which causes the exception to be thrown
thanks
yeah it worked
but now I gotta figure out adding items to the player :c
other than ItemType
does setting the serial for an item to 0 automatically generate a new one or will I need to automatically do that?
yes 0 is automatically GenerateNext()
decompiling Assembly-CSharp.dll is very helpful for plugin dev
i looked through the base game code and i couldnt see anything for that
so
bruh Player::AddItem aint working for me wtf
💀
maybe you should delay 0f
northwood fix this beta pls
wdym?
theres a loadout event
for when a loadout was given
why would/does this work? 😭
probably should use this
Timing.CallDelayed will likely end up doing it the next tick
also why is PlayerReceivedLoadoutEventArgs::Items a List of ItemType 😭
being fixed
yes...
its getting fixed...
yes ik
maybe you need to get fixed...

i saw it
original skybox was removed for some reason
And this new one skybox is conflicting with layers
then who was it
@true cedar when ruei labapi 
when you make it
i dont even know how these guys do the y positioning let alone showing multiple hints at once
its 1 hint
ik, but when i do <yoffset> and <space> it fucks over everything
and it's like "how am i gunna do it programmatically anyway"
finally, I can do stupider things sponsored unofficially by Northwood :D also time to read code when I get ungrounded
i dont use voffsets
i still dont know how they work fully atp
i use line height
<voffset=1em>text</voffset> // text raises by 1em
can do negative too
never tried line height tbh
just confused about how you calculate from the height thing given lol
i looked through ruei to try understand where the hint elements are ran but i cant see nothin
its super simple check ElemCombiner
/// <summary>
/// Calculates the offset for two hints.
/// </summary>
/// <param name="hintOnePos">The first hint's vertical position.</param>
/// <param name="hintOneTotalLines">The first hint's total line-height, excluding the vertical position.</param>
/// <param name="hintTwoPos">The second hint's vertical position.</param>
/// <returns>A float indicating the new offset.</returns>
public static float CalculateOffset(float hintOnePos, float hintOneTotalLines, float hintTwoPos)
{
float calc = hintOnePos + (2 * hintOneTotalLines) - hintTwoPos;
return calc / -2;
}
i mean ik that but
beyond that its very weird
ye
it's so confusing
because <space> as well, like how do you make everything ignore other elements 😭
wdym
like
<space> is legit just a space
and anything after that space is also pushed with it
no close for it at all
when i use it in standard hints, no matter what i can't get text to look normal
yet in ruei, do the same exact thing but normally
it's like it doesn't exist
lol
ruei does a lot of line breaks which solve that problem
wait \n fixes it? damn
yea
here is me doing <space=-1em> 😭
damn
also i forgot to say this but i think im kinda done with public plugin dev
people are so insanely ungrateful
its kinda unbelievable
that one situation with that crazy fucking russian guy
guys I cannot find LabAPI-Beta folder...
have you started the server yet
nvm I think I'll gonna solve it
what situation?
i don’t think i heard what happened but fair enough
Ruei LabApi will be when i understand (at least partially) what's there and how
But no continuous support guaranteed 
MTF watching chaos insurgency show up with MBT
d class coming with CBT
What
yea...
so we now have complete freedom to override player camera, right?
Is LabApi.Events.Handlers.ServerEvents.CassieAnnouncing just not implemented rn?
Seems like FpcRotationOverrideMessage is a thing now
It's used in FpcExtensionMethods.TryOverrideRotation()
which i assume TryOverrideRotation calls
well
Adding to this, seems like using customSubtitles in Cassie.Message() just causes no subtitles to appear
Yep
Y axis is still clamped tho
why ?
because
no
yes

Hi, I'm trying to get all players on the server, but is it possible to skip the server itself?
foreach (Player player in Player.List)
{
if (player.DoNotTrack || player == null || player.IsNpc || Round.IsRoundEnded) continue;
}```
player.IsServer
ah ty, didnt see IsServer lol
I though I removed it... I didnt?
leave it alone >:(
Ohhhh It just isnt merged in yet

no like Server removed from Player.List
Nah I usually just put stuff together in one giant MR 
why don't you just use labapi events? easier to maintain
rn that doesnt work for candy utils

real
who doesnt

labapi
Hey. I know this person
sorry i ate it all
do you?
How so?
good protein
considering they will grow in size
thats okay
don't think that's safe
infinite food
Maybe

Why is the Player.RemoveItem() function kicking the player with reason Last Class Destroyed?
which overload are you using?
?
what args are you passing in, there are multiple different overloads of RemoveItem
Just the item that I want to remove
Ohhhhh
I really need to open my eyes lmao
I'm using the RemoveItem(Item item) one
i see
i dont think there should be any problems with it by just looking now, do you have anything in the LocalAdminLogs or the player.log
I just wanna remove the item that the player is holding @worthy rune
that should work, not sure what the issue is
What would you parse through to remove the item the player is holding?
if(player.CurrentItem != null)
player.RemoveItem(player.CurrentItem);
Oh that's fantastic, it works now
Tried to remove null aren't u?
david no!! don’t kill them!! we need you for labapi!! you can’t work in jail!!
i am labeling you as slovak now
@thorn escarp hi slovak
Ok I'm gonna hardcore your ban into the game
hardcore? minecraft hardcore?

wuh
he called slovakia north hungary

Ello
sometimes it's all you can do.




quite surprised

Difficulty tweak

real
i will dropkick you
its okay, ill buy you ice cream for messing with you as usual
🙄

🐷
hi
Action gaming has bad effect for you
im posting this in action gaming
Not that bad what I do at peanut club tho
pink role'd
pinky
you can have red
snitches get stitches
the bottom color of slovakia
It's on Czech flag too

done
gimme access
ok reach lvl 50
):
i think python, we have a skeleton team for bot team
@ truewhitelion
Is there a way to tell if a wave is a mini wave from WaveRespawningEventArgs?
It only contains the Team enum which won't cut it.
david was adding smth for that
Will do
because you can just do Wave is IMiniWave
Ik
good
I would gladly take the base wave object 😭
harmony patch :3
fuckin lurker
im watching you
I would but there's no point if david will add it soon, since I don't really have a deadline on this
@unique crane you guys broke ForceEnded
Getting Overwrite
or wait
ForceEnded shouldn't it call Sumarry stuff ?
Because its dead 
They rotted away being trapped in Hubert's basement
Oh uh
WaveTeamSelectedEvent
Its in the game now XD
even in this versio
n
ill add it to the team respawning event too tho
@unique crane if you have time could you give a check at ForceEndRound ?
Huh?
this
Hmm sure
what is preffered between this two ?
but prob the first one?
by default it is like this (as decompiled)
😭
yeah
i don't get why 0 ClassD and 1 for scientist ?
also this value are never use other than ConsoleLog
I dont think that even works as intended?
Like theoretically
Its 2 ints being divided
and then assigned to a float
But other than that its to sum up to 100%
I guess
yeah but why 0 or 100 and not both 0% or both 100%
but yeah kinda useless information now
since they modified the Win condition
@unique craneactually isn't just doing that the best ?
like it's was before (without the #if because that was the things that broken stuff lol
You
i am gonna do horrible things to you
just you wait
yeah but missing the if condition
that was mostly making the EndRound method working
@unique crane do you want access to decompiled SL :3
It's kinda funny when you will compared to what you see

I remember decompiling it once in VS
and it did if elses instead of switch
but I use dotpeak normally
ooookay
david are you crazy
i dont think so
birb
you
hi!
YOU
i will HUNT you
id like to see you try :D
please invite me 🥺
get OUT
😦
me when i press Export project on dnSpy
Exactly that but we keep track of nw different version
To see what they changed
i only have it on local pc
and i have sors 
and takes more time to find exact class than on compiled
No
But so did you fixed it ?
no im doing something else right now
Ok
david is EVIL
Me explaining why adding a single if would help me fix an issue
1 = 0
💀
one thing after another
Queue<>
does RoundStartedEventArgs dont exist like in main file of the plugin i can see that ServerEvent has ".RoundStarted" but no args
nah just asking i was just curios bcs i didnt see one
Every #\ is not authorised
nathan probably had a good reason
@marble rock is it possible to add a bypass for that in #1336031121699377213 ?
i know, but why #1336031121699377213 doesn't have a bypass ?
Suggestions it
(add a bypass for tinybrain-sanctum
)
Already the case
what ? when ?
ok
hmm
goat
thanks 
I remind making it weird
Bypass for some role every plugin chanel and tinybrain plugin submission chanel
wow
thats sound.....chaotic
i mean i don't want people talking with big text
that what i wanted
yeah i understand why
discord staff clown-fiesta xD
Give this perms for plugin dev

i think they already have the perms
for exiled contributor 
yeah why ? they already have all their chanel allowed
nope
doing it for Exiled Contributor it's like giving it to everyone active lol
and you can't allowed the thread creator ?
sadly no
real x)
the bot can do that, no ?
so review my submission 
(i don't want to separate HyperLink and Headers restriction)
that our regex to detect them
that exactly why i share it
Regex is like the power of god in hands of a single string
also i don't want to remove the Header but small
because it's nice
and not looking invasive
does Door.AllowsScp106 work on LabAPI ?
#1336031121699377213 # is no unusable bruh
now?
rework again, thanks !
it should, its a networked property
i see why people say me do not work
it's because it's getter have annoying condition
hmm ill look now
hmm?
is it client only ?
you can read the backing field directly its fine
only have to use Network<name> version when setting
it's SyncVar
ik
i do that everywhere in the LabAPI too, maybe its alittle faster not sure
uhmmm then i don't see why someone reported me on exiled (not labAPI)
that it's wasn't worked
one method call reduce
not that much
so it's still readonly field ?
setting NetworkInfo property also sets Info as its a wrapper
NetworkInfo is purly generated my mirror and only exists after compilation
yeah
i was thinking of RagdollData readonly field
figure out after than it's was pickup
my brain being slow
sometime
oh i see
btw its the pickup example, you still have to treat it as readonly the with keyword creates a new instance each time for that reason
when was with added ?
in C#
8? i think
okay was C# 10
oh damn
interesting
but so it's will be kept as readonly ?
probably, personally i think it encourages mistakes by making people think they can modify the fields directly to "optimise" it and expect it to work
i have nothing against mutating structs, its just that this case its used by Mirror which requires a new instance each time for it to work

AccessTools.StructFieldRefAccess:
Hello! How can I explode a player?
ExplosionUtils.ServerExplode(player.ReferenceHub, ExplosionType.Grenade)
Thanks
does this Explode my Server like if i host to OVH it's blow up the data center

that happen when i spawn too much grenade
i lost my server after it
(for real)
evil thoughts

whats the cassie announcement for 05
around mimicry update i was once using dropsize apparently adrenaline with size 2000 2000 2000 cause to crash 3 servers at once and anger of the server owner
AHAHHAHAH
i did the same but with bigger value on a coin
i was able to seen it before crash
quite big











