#plugins-dev-chat
1 messages ยท Page 155 of 1
you remove christmas only
This works with HczTesla
why do you legit have code for everything man ๐ญ
Modern problems require modern solutions
I'm not opening that on phone ๐ญ
Kek
Copyright infringement?
not if i sue you first
ax your code worked thanks
Np
just replaced christmas with hallowen
yea ur not safe ever ๐ญ
did you?
Inspired
uhu....
we love to see it
i have it so on debug build it auto checks for new rooms and tells me about it
room name has almost every name now i noticed
atleast for the main rooms
incinerator is even in there
almost
ur almost not dead!
Honestly what you expect
The cycle of development
im glad we agree
you want to take inspiration from MeowEditor 
Stable Diffusion when the Danbooru dataset 2021
Are there any events on SCP-1509 revive?
Thats not a patch to revive
Hiiiii guysss
Hi
How you doing??
Just made dinner & lunch
Niceee
Is there any way to cast a Pickup into an Item?
Add into a player or host
ye but cast
you gotta get rid of pickup to get the item
Yes
which ig might be what theyre asking for
@slender depot player.AddItem(pickup);
or well
Server.Host?.AddItem(pickup);
Turns out I'm an idiot
And I've implemented some parts of my customitem system using pickups
some using items
it all worked on holy spirit and hope
so I fixed it
yep
serials :D
Exactly, plus giving item to player
How to change the damage in the event Player::OnHurting?
if (ev.DamageHandler is StandardDamageHandler standardDamage)
standardDamage.Damage = damage;
Is there a way to disable emergency button on 914 and armory ect.. ?
how come i don't see NightVision in status effects
it's missing
we're aware
Don't think plugins can use it either
It is present in-code, however, the effect does not get enabled
the effect is missing from the prefab so you can't use it at all
there is no event for it yet
But patching exist

It's not a labapi question per se but did anyone else's dedicated server stop working after the update? It boots up, everything loads but I can't join it in any way
Anything on the server logs? Exceptions maybe?
Nothing, literally nothing
Are you sure there isn't any ghost processes open in the background?
I'm sure
Does it let you use commands?
Does running /fs on the console work?
Well even after removing every plugin it still doesn't work
Nevermind, somehow it started working after I deleted every plugin, restarted and then added ctrl + z'ed everything
That's weird, /fs works fine on mine
๐ฅณ
Thanks for all the help
Sui
Odd, I just noticed a similar "Remove plugins and readd them" that fixed my client crashing connecting to my dev server (No logs on client or server as to why, even with --printStd)
Nearly panicked that I pushed a client crashing patch to production.
Uhhhh, Turns out it's one of my plugins
Funny part being is that it worked on the last version and it throws no errors
"Please don't be mine, please don't be mine"
Code public?
Nope
On last version it worked
perfectly
Until the updoot
Issue with backwards compatibility if it was built before patching to 1.1.4 and used
public override Version RequiredApiVersion { get; } = new Version(LabApiProperties.CompiledVersion);
?
fun fact that doesn't work properly
@slender depot does your server hang or what's the output?
hangs
Oh
It works
Magic
that is why
Does someone remember how can you force a gun to shoot?
though we have a null check for that soooo
foreach (ModuleBase module in firearmItem.Modules)
{
switch (module)
{
case IActionModule actionModule:
if (actionModule is AutomaticActionModule action)
action._serverQueuedRequests.Enqueue(new AutomaticActionModule.ShotRequest(action));
continue;
}
}
This doesn't really work
automaticactionmodule.fire()
won't show for the client holding the weapon
i think
Also when SCP-1509 events?
if that doesn't exist
later
hi ax
@vast canopy ever figured out culling toy thing ?
ye
kinda strange thing
would you mind sharing what was your issue ?
i already posted somewhere here code that working
gimme a sec
@snow ruin#plugins-discussion message
cant open project rn
does your prefabmanager thing just get you the prefab ?
of the culling parent
ye
oh right
you could set the parent while keeping the world position, that way you don't need to set localPosition
meh
this would break the rotation if the root is rotated
i stopped using culling cause of some bugs
so ye
someday i will see fog of war fix
but for now
can you give some examples?
and that one but i already gave me a fix
so thanks
m1
๐ฃ๏ธ ๐ฅ
wdym huh
you can ignore them
Alright
until NW decides to fix it
Does someone know where is the RPC when micro is charging up?
or being used
found it
nothing else then
How to change the amount of HumeShield SCP-1509 gives?
w readme
Insane
Check scp1509item
I literally can't find it anywhere
basegame
not labapi
InventorySystem.Items.Scp1509.Scp1509Item has _equippedHS
its private, but just publicize assembly
bit of a random question but can you develop plugins with dotnet4.8.1?
me when networking is pain when I cant get this info on non dedicated server like proxy xd without this info knowing what index server roles behaviour is would be hard
ya
why?
woooo
there are plugins using it, but majority don't
setting up coder server with docker runner for the workspaces so need docker image for dotnet4.8 but the image that microsoft provides runs on win server 2019 at the latest but 4.8.1 runs on 2022+
tldr: windows server bullshittery
Hiii chat
yo zero
Hii tell me
Since when is getting help for labapi a forum?
Pyra and Pyro 
Hm?
wdym?
since when people started talking here
you have a question maybe ask it here
oh I misunderstood nevermind
Well I have this code, but every time the player kills another player, the server disconnects the attacker
that is Exiled no?
No, labapi
can you tell me what is Check
Just a custom framework
Yea
Why would attacker be null?
suicide
Pit, Suicide, Other ton of shit
grenades
Ah. The check literally just checks if the player is in a list, so I don't think that's the problem. Also it's disconnecting the attacker when they kill another player, so I doubt it would be null in the first place.
No just add ev.Attacker != null
before that
if(ev.Attacker != null && Check(ev.Attacker) && ev.DamageHandler is UniversalDamageHandler udh)
like this
some error will kick the player responsible for running the code
so the attacker
Yeah
its to prevent exploits
like for example if something happens that shouldn't happen
it could crash or cause memory leaks
thats why its implemented
theres events yea
Check ServerEvents
where can I find that?
oh you werent asking for code
in the RA or gameplay config?
this is a chat focused on coding labapi
ok this feels insulting :(
my bad
Check gameplay config tho
i mean with normal
might be smth there
a nub
but otherwise have some create a plugin
im just a noob
How do I get the labapi plugin folder for storing data?
Huh
Oh
2sec
PathManager
PathManager.LabApi
Question. I have coding experience in C++, I want to know if it's all that difficult/is setup to actually develop plugins difficult?
I wouldn't imagine C# to be far off from C++
I've looked through this, and I can not at all find the answer to my question
its not that difficult, i just wanted to show an example of C#
im going to sleep, but that is what i usually recommend to ppl
How would one test plugins?
check existing public plugins
Dedicated servee
I can't get mine to work
Search scp in ur steam library
I've tried everything
There'll be the dedicated
disabled firewall, portforward
you'll need to setup basic stuff like ra permissions
Test locally
Oh, right
thanks
๐ป
Has anyone told you not to use universal damage handler
UniversalDamageHandler is for like environmental damage
Probably
Pit Death, SCP207
If you're checking for an attacker anyway, you can simplify the check
How?
if (ev.DamageHandler is AttackerDamageHandler handler)
handler.Damage *= 1.05f;
Oh
Well i have to check if the attacker had the subclass anyway
That's what Check is
Thats the Check function
Yeah I mean what're you checking
Also for future reference, the DamageHandler all handlers inherit from is StandardDamageHandler not UniversalDamageHandler
Hold on
So if you need to modify damage on a handler, do ((StandardDamageHandler)ev.DamageHandler).Damage = x;
Wait do you want to see the check code or something I'm not understanding?
The cast should always be valid
Yes I would like to see the check code
Out of curiosity, why do you want to see it?
Well instead of checking the ev.Attacker and ev.DamageHandler separately, you could likely get away with checking just the ev.DamageHandler
The damage handler won't tell me if the person has the subclass
Yeah because you're storing Player wrappers in TrackedPlayers rather than a NetworkId or even a ReferenceHub
Which I mean works but it's a practice I'm not necessarily a fan of because if a player is destroyed, for instance, it'll still be stored as a "valid player" in your list
I tend to store NetworkIDs instead
But to each his own
Just... don't use windows

.NET 8 SDK and up includes .net framework anyway
Why would you use nullable references and why would you listen to the IDE 
-# Doesn't help if it won't even warn you xd
this.GetConfigDirectory() in the plugin instance
Already figured it out but thanks
Np
Btw, a labapi event shouldn't cause a disconnect
The error gets caught if you throw
Well for some reason, adding the != null seemed to work.
Not sure what was going on there

Yea idk either
So quick question
Let's say I want a player to be able to speak in prox chat while they're invisible
The best way to do this would be to spawn a speakertoy with slight movement smoothing, and add a component to it that tracks player position on the server, right?
does changing their audio channel not work if they are invisible? i never messed with it too hard
Changing audio channel does nothing
In like
Any situation
Oddly enough
Probably
that would work. i think plauer and speaker positions are recieved at the same time on client side, so itd be pretty much the same position
Since when you're invisible you get teleported to like
0 4000 0
That's why parenting the speaker doesn't help
I just wanted to check to see if there was a better way than I had hypothesized
neat i just learned tha
I guess another approach would be to hide the player with the fade effect (+player info off) but that has some complications
When players are culled they get shifted way out of bounds to prevent ESP cheats and things
No information is given to the client about where the player is until it's needed (theoretically)
Player display info:
I said it right there ๐ญ
very epic
I was unsure what (+player info off) meant
hiii chat
I wanna ask something that i know maybe is technically impossible but how would it be possible to divide in grids the entire map in a grid to make possible placing structures in a the sims for example way
umm
like in the bounds of the facility?
Idk i was thinking in general
the room grid already exists but i'm not sure if that's what you want
you know the sims system that allows you to customize some stuff?
like for example placing a sofa
etc...
like that
i have no idea how sims works 
grid building system
it divides a house or a terrain in a grid
to allow building
crazy
some progress with my generator for proxy stuff
soo with this I can spawn text toy for only specific player without even running a sl server only by sending proper network data via proxy
Oh you are making a fake server ig?
yeah mostly
I just faked data mostly
How can you keep track of it and everything??
YEa i know that
but i've been trying for ages to make Client Sided TextToys
I need to fix some stuff tho because waypoints seems not working lol
I can say without having some experience with mirror and without debugging stuff inside editor just making this would be a pain
Hello i wanted to add some halloween candy, they are not in the new Lab version ?
outdated assembly csharp
not labapi
actually
halloween candy may not even be in that list
lol
How to set player's max humeshield to the default value?
They are
update your references
AhpStat.DefaultMax i think
Can confirm it is in the list
Yep
When I set it to 0, SCP-127 and SCP-1509 doesn't give the player any shield. When I did Logger.Warn(player.MaxHumeShield) I got 0
HumeShieldStat.MaxValue?

player::MaxHumeShield
those are specific to the items
that's specific to the player
what ax provided is a const afaik
i will rip out your eyes
Thanks
yea that does the same thing
But when I set it to 10, it also caps the humeshield items give
and I don't want that
just don't set the hume shield 
Oh ok thanks you , that make a long time i didn't dev on SCP:SL, where can i find the updated assembly csharp ?
dedicated server
same place as normal
same as before
Ok thanks you
dedi server/SCPSL_Data/Managed
So there's no way to set the player's humeshield to the default value it was before I changed it?
you can save the last value
setting max value overrides the value of basegame
reset the HS processes
Yeah I noticed
How?
oh wait
IHumeShieldProvider.GetForHub
nevermind
if you set it to 0 it should remove the override
It doesn't
it just caps it at 0
right cuz the point of scp items is the override
i'm very confused as well
did you set the regeneration rate?
yeah
it sets the base-game value
ohh
and it will persist between role changes
which is rather bad
not your fault that the implementation is this way
MaxHS also stays between role c hanges
but yeah, you can get the role, check if it's an IHumeShieldedRole
then ((DynamicHumeShieldController) currentRole.HumeShieldModule).RegenerationRate
check how labapi does it
instead of the player's role, use the template from PlayerRoleLoader
How to do that?
I know there was a delay cuz I thought I could do it, but it's better to ask anyway
PlayerRoleLoader.TryGetTemplate
and then?
.
@worthy rune Would you be able to check if 3114 refactor changed the WriteNickname method? I'm not home and my players are saying that info flags are broken again ๐ญ
so umm
it's client-side now apparently?
I did like meow without editor and it was a pain a day spent to just figure out a simple error
RoleTypeId.GetRoleTypeId.Scp049.GetRoleBase() 
TryGetRoleBase<T> ig also exists if you need humeshield one specifically
thats whole thing to make this working
also its not only how far I can go, I can take nickname which clients sends thru proxy and then send update back
Its really interesting
the only thing i've never done a proxy is because 1 i don't need it and second i wanna use stuff like colliders etc...
which would be really hard to make
Proxy to a real server... 
But i would wanna do stuff like a portal like in MC
That still has loading time
@ashen hound can you post the server switching video here?
@celest thorn
What i meant was using primitives with colliders
I mean if you did this then uhm
Make an effect ig
But the functionality is there
Cant you just
send restart message with redirect?
that should work
that involves solving auth
with xproxy you can skip that
would be interesting idea for SL
yeah but my thing makes that you are always connected to server even while you do change it in background


Jarvis let me pull up the SCP:SL source code
Wait am I just being dumb in thinking you can't compile dotnet4.8 on linux
potentially
after you installed the .net 8 or 9 sdk you can compile to .net framework 4.8 (not 4.8.1 though)
/reverse
vs code solos anything jetbrains has
Jetbeans
vs code users installing 15 extensions for proper code completion, inspections and theming:
don't get me wrong, vs code is fine, i just find JB tools much easier to use since they do things well out-of-the-box
I only use vs code for editing many texts in txt or alike files
vim 
Nah just write the hex bytes in the file
joke aside, if you setup vim properly for your usecase / get your feet wet with a beginner vim config, it is very usable tbh
says the Visual Studio user
half of this chat is now on the way to your house
*vsc
wombo combo
I lost my tactical wombat combat picture
๐ญ๐ญ
the same reason why i hate vs
i really dont care about if people use vs or rider, i prefer rider personally, but it's a subjective thing!
ragebait obviously
you are ragebait
Hey, how can i change the size of a TextToy? When trying to edit the Scale it simply disappears and when trying to edit the DisplaySize: nothing changes at all ๐ฅ
what did you set the scale to?
displaysize is 200x50 by default, that only sets the size of the text area, not the font size
texttoy propaganda
paw propaganda
you
Make 3d rendering in ruei
Can I set the players EncryptedChannelManager to null to force a new one to be created?
why?
why would you need this
erm
Well, I have a queue system, and I want players who arent authenticated with the server to still be able to use certain commands, like switching servers or something similar... The problem is, if I create an encrypted manager and they connect to the server when a slot becomes available, they fail authenticating lmao
patch it
also no null will not create a new one
isnt there an other method, because i dont want to patch that much xd
Pretty much if you are EncryptedChannel deep, you usually require to patch
You're cooked basically (gotta do some crazy workarounds)
I tried multiple values - dont remember what values but it was in a range of 20, 20 and 1000, 1000 - tried it with like a lot of values
Boink
Would you be able to compare the current one vs last 14.1.x? I don't need to see its source if that's an issue, I just want confirmation whether or not It's my fault or not ๐
why do you ask?
chances are there isnt a change but if there is something specific youre doing itd be good to know
It happens that when someone speaks on the radio in my sv, not everyone can hear each other between roles, for example, the guards cannot hear the scientists.
what plugins might you have installed, i havent seen this issue base game so i assume its a mod
I dont see any different tbh
I have the audio player and others that are just for decoration for roleplay.
and another one that is to make custom sounds for Cassie at times during the game
lmk show me the string / name and i can check i guess
can you name all plugins
including any custom private ones (and their purpose)
Me fr
Admin tools ,customcassie ( custom sounds for cassie) ,radiotemp (Change the person's nickname when speaking by blurred name) , roleplayicons (icons for classes and information) and audioplayer api and exiled dependences ,lab api

Totem of undying
i would consider removing radiotemp just as a test
Hi everyone, can you tell me how to fix this error?
if that doesnt work just keep removing half the plugins until you find which plugin causes it
if the issue stops, at a specific half, then start searching the opposite half of plugins
If we tested that, we disabled plugins and it remained the same.
๐ฟ
Thats a warning on labapi side
okay I'll try it
that there isnt implemented 1509 wrapper
thanks
LabApi FELL OFF?? [100%] [no es clickbait]
Because of this warning, the ability of the SCP-1509 does not work
nope
just like a sword without abilities
Show video then
second please
the warning itself does nothing
it does not affect anything
it also works for me in vanilla and with plugins
reminder that it has a cooldown on use (you cannot use it 5 times in a row and have it spawn 5 teammates)
As you can see, there is no smoke coming from the blade, even though there are bots in the observers, and it doesn't work with people either.
Do you have Exiled
does Exiled break 1509?
wait
is it meant to smoke without targets?
as in theres no human there to actually yk
stab
ยฏ_(ใ)_/ยฏ
Well, smoke only appears if there are spectators.
unrelated but wtf is that thing between 127 and the machete
ik its a marshmallow man thing but like
marshmellow
yea its used for that
is it like
its the item used to attack
and model and stuff
afaik it depends on that
might be slightly wrong
oh right
also the attack is universal so friendly fire works
oh that makes sense
oh actually
this is only for evil candy
coolll
it also handles the cackle
Muhahaha
Shh
i knew it! SL x Aliens!!!!!
it was such an amazing decision to activate the moon every round 
Shhh
Shut!
Shh shush
SHUT!
Shhhh
Shhhhhh

hiii
Lmao I'm happy it's catching on
Didn't know you saw me post that lol
I see everything 
@celest thorn I think I understand your pain now (to some extent)
I'm FLIRTing and this guy next to me is just radiating pure stink
Like I know I'm not the nicest perfume-scented person but like how do you achieve this
AHAHAHHAHA
you understand my PAIN
And I don't know what's worse
If it's constant or if it comes in waves
Like just
Waves of stench every x seconds
bro i swear its worst the waves
like when they raises their ARM ๐คฎ
i think this is like realistically the nearest thing
No
Yes i am
Hiiiii
Im not evil ;(
is that you
You are
definitely not
oh okay
;(
Genetically modified car to look like bread
how 2 reference the labapi dll in vs code?
same as assembly-csharp dll
actually
have you never done this before
sadly no
<Reference Include="LabAPI" HintPath="$(SL_REFERENCES)\LabAPI.dll" />
wait
actually
you can just use the nuget package
<PackageReference Include="Northwood.LabAPI" Version="1.1.4" IncludeAssets="All" PrivateAssets="All" />
what the FUCK
thats MY line
DIE
what is this
Me when
You don't need allat
Surely vsc has a NuGet tool
i dont know
Not without a extension
i dont use it other than as a better text editor
god bless vsc
Lmfao
anyway to stop 106 from regaining vigor?
probably patch it
LabApi.Events.Handlers.Scp106Events.ChangingVigor, Scp106ChangingVigorEventArgs
Would cancelling that do what you need?
(Only when Value is greater than OldValue)
How much sec is between the nuke start (Cassie announcement) and the timer start
Very good question
11 iirc
If you start the nuke and go to warhead it should display the time until detonation with an offset
Thanks
Np

Big Hubert is watching
its spawnable
Run.
They only appear above the client tho
Can i make hubert out of huberts
how
foreach (var obj in NetworkClient.prefabs)
{
if (obj.Value.name == "Hubert Moon")
{
GameObject go = GameObject.Instantiate(obj.Value, new Vector3(0, 690, 0), Quaternion.identity);
NetworkServer.Spawn(go);
LogManager.Info("Spawned Hubert Moon");
}
}
Oh
Does anyone know how to make SCP-1509 not give any HS? I tried publicizing assembly csharp and setting the _equippedhs to 0 but it didn't work
In exiled you just need the PrefabHelper class tho 
It should work, have you changed the instance your player is holding? If that fails, you can also completely patch out Scp1509Item::ServerUpdateSessions()
Probably a better way to do it but I did
[HarmonyPatch(nameof(Scp1509Item.HsMax), MethodType.Getter)]
[HarmonyPostfix]
public static void HsMaxPostfix(Scp1509Item __instance, ref float __result)
{
__result = 75f;
}
(ignore what I sent wrong discord window)
Please delete that
That info was private and does not need to be sent publicly :c
@hearty shard
Roger that
tyty โค๏ธ
alt tabbed too fast and didnt check which discord instance I was sending it to 
๐ญ
thankfully it's not the end of the world I just like keeping things private heh
Hubert sphere primitive when 
I think hubert moon is just the sphere but red
Evil Hubert
Hmm, there's no prefab for that ? ๐คก
What kind of data cannot be tracked via DNT, anything player related(name, steamid), or only steamid
!csg
8.3. Server Staff, the Game Server and its Modifications must respect the Do Not Track (DNT), an
opt-out from any data processing that is not needed for gameplay or server security purposes.
Still does not give an precise answer
Any data
you can only store data related to moderation if DNT is on or mandatory gameplay
any data that is not required STRICTLY for security or necessary gameplay purposes
So if a player has dnt i cannot send a webhook with his name on a discord banroom right?
If its for security its allowed
You can, since it is moderation related
That also requires the ban room to be limited to the staff team IIRC
I mean a public ban room
nope
so every1 can see bans
you cant
alr, ty
and thats generally a bad practice imo
Probably wants to flex having a cool staff team with 100 bans a day
likely
Not really related to the stuff im doin
public bans has no reason to exist
This isn't 1403 to do public hangings ๐ญ

Bring it back
Is there any way to get the ragdoll of a player that was killed by a specific player?
Without patching or extra variables?
Ragdoll.List
.Where
you'll have to check for AttackerDamageHandler on the ragdolls damage handler of which idk where is
Any open-source plugins I can take a look at to learn plugin configs?
I've never had to worry about it before but I need to learn it now
what exactly are you looking to learn
i think MapEditorReborn is a good one for if you wanna have really advanced configs with your own handling
Just
How they work
I've never used one before
I've never even editted a config before lmao
I have no idea the format, how to work with one in a plugin
Anything
I've never had a need for it
Plugin has a generic version Plugin<TConfig>, where TConfig is a serializable data structure that contains properties
Baller
and generally, Plugin::Config will access the instance of TConfig that loaded with that specific plugin instance
for some reason it's nullable which makes me nervous but I just ignore it or throw in some checks. no issues yet...
Maybe in case the file doesn't exist or fails to load?
^^And as you might guess, it throws the Yaml serialized TConfig into the config folder
maybe
Anyways, so just derive Plugin<T> instead of Plugin and you should be good
Let's see if I figure ts out lmao
Is it possible to reload config on labapi?
No, I've only changed the Instance that gets created, so I've added an item to the host, changed it's _equippedHs, dropped it to make it a pickup and gave it to the player. Does that change anything?
Ohhhh, The values get set to default when the item is dropped
Alright I know where I made a mistake
why do ppl write GameObject.Instantiate
pisses me off sm
I will do it just to piss you off even more

and obv say that i have problem on that code when there's no error
if the plugin is public its not gonna do much
it should only be null before the plugin loads the configs, e.g. the plugin is disabled via properties
never said it has to be public
GameObject.Instantiate
https://i.e-z.host/๐/e9r8ok0l.png
this plugin is for the stash server and see no errors
right click solution
inspect code

also this is NOT how the build window looks like foir me
it also shows MSBuild output
told ya clean asf
if i want to make a clean stuff i would
and the public api for tournaments is clean too
but you don't have free will 
I have free will

not under maro
yes i still do
lol
development side i do everything
and im free

deciding tournaments etc... is my job
maro just checks and i tell her, do you like this idea
and she says yes or no
insane
if no i go back to a new concept
else i start
but im the one who decides tourneys and stuff
sometimes i make the public docs for the tourneys
i suggest new features for servers and stuff
i have a ton of free will lol
so your only source of validation is her 
Yes?
because she has the most relationship with nw
i just talk sometimes to X3J
just for stuff like ARG etc...
nothing else
piratesoftware reference?
?
ARG

so yea if the tryhards are reading, if you wanna hate someone for the tourneys ideas and preparation, hate on me don't dm maro 
What if this channel was renamed to nerd chat
i havenโt heard about pirate since all the fraud stuff came up, thinking about it nowโฆ
Like he is now dead
and irrelevant asf
nerd-inc-chat
or
dexters-laboratory-chat
Where can I find the SCP127 item in assemblycsharp?
that's a Firearm
use the Scp127Firearm wrapper
But is there a way to find how it works etc, cuz' all I saw were modules
I want to understand how it works to mod it better
yeah you gotta look through the module classes
look for types in the InventorySystem.Items.Firearms.Modules.Scp127 namespace
But like how the weapon becomes the weapon, is it just a gameobject with all the modules attached?
yes
Well that explains a lot
Lol what
it also explains why my game kept crashing when I modified SCP127 to be a normal gun
?????
It works somehow
yeah you shouldn't do that
No hume shield, no voicelines
firearms are autosync items meaning the component ID matters
and you can reload it
It doesn't have a proper reload animation so that would never be possible
What ID does the magazinemodule have?
i have no idea
you gotta check yourself
they're auto-assigned
might be different per firearm
It doesn't have an animation, you can make an event that checks when you're reloading a customitem, then starts a coroutine that "reloads" it before setting the ammo to full
You can't log when a player reloads SCP-127 because you can't reload it
In order to make an event that logs when a player reloads it you'd need to make a keybind in SSSS
Then check when they press that keybind
Well, more steps I guess
Time to do that
But that will require players to go into settings, and bind your server specific setting to be the same as their reload button
It's very unintuitive
or I can just set the default button to be r
Afaik default button isn't applied by default
It's set to nothing be default
The default button is only applied when you press the little button on the setting that puts it to the default
welp
I believe it's made that way for security reasons
Time to overengineer scp-127 again
correct
We don't want server owners keylogging people 
No offense, but what you appear to be imagining is generally not possible without incredibly round-about methods that are not user-friendly
It'll be a customitem anyway so it'll show in a hint how to use it and all
exactly
kinda weird but
eh
Players shouldn't need to read an instruction manual to play on your server imo
player.ShowHint(ChatPGT.Prompt("summarize this server's features", context: GetType().Assembly))
As plugin developers we have control over a very limited scope of things, and part of our job is making what we implement intuitive for new players joining, otherwise we're turning away 99% of the already relatively small player base
On top of that, afaik SCP-127 voicelines are client-sided
Adding to that, I don't believe you can prevent a player from inspecting a weapon
Meaning that even if you say it's "normal," they can play the inspect animation and see that it's not
PGT 
I respect the enthusiasm but it's important to stay grounded about what is/isn't possible and about what we should and shouldn't be doing to captivate a playerbase
I've only now realised that you can't stop someone from inspecting an item
nope
I thought there was an event for that
you can cancel them yeah
labapi has events for that
So you can prevent 127 voicelines and hume shield
Reload will be painful butt I may just change the inspecting to reloading
and it'll work
with minimal effort
Wait
\no
Not sure if you're able to detect when a player is inspecting
I missunderstood
I thought that was about inspecting
please
you can
i think
at least for keycards
yes you can
Yeah duh
its sent to every player so yes you can
It is?

