#plugins-dev-chat
1 messages · Page 175 of 1
Hmmm, I mean better than nothing lmao
That was joke btw I dont need help, I can figure it out
what do you need @covert flame?
DiscordLab.Bot.Client is a static class with pretty much everything you need
I'm sure you can figure that one out
I see that
Oh I was joking
also don't get confused with DiscordLab and DiscordLab.Bot
DiscordLab is the wrong one, DiscordLab.Bot is correct
i assume you've deprecated the former
and plus my pc needs to cool down
I've been afking Minecraft for like 72 hours
@icy knoll So Client is static right, how do I actually, you know, do things
what do you want to do?
Like, send a message to a channel?
Client.GetOrAddChannel(channelId).SendMessage(text)
there is also TryGetOrAddChannel(...)
What about getting users with a certain role
fallback to the Discord.Net documentation for that
Client.SocketClient to access the Discord.Net client
So, why not just use Discord.NET?
wdym
Like, can't I just use Discord.NET instead of DiscordLab?
try it and see
you can, but DiscordLab exists to make it easier for you to make a Discord bot in Unity
because Unity has like a billion issues with Async, so I made utilities to fix all that
that makes it work with Mono, yes
That's so fire
Discord.NET doesn't work in Mono, but I made it so it does
that's why I always tell people to just use DiscordLab rather than try figure out how to make Discord.NET work
I see I see, so, basically I've been coding for 3 days straight right, and I no longer have a will to keep going
Have any words for some motivation?
I've done longer without motivation
sleep()
with like 10 hours sleep somewhere in there
i couldn't code for 3 days straight
or straight for any time period
you're not straight as a whole
that's the joke
Oh, burn
Exactly
Anyways, these weren't very good words of motivation, more like tryna one up lmao
Brain.PrefrontalCortex.SelfControl.Work();
NullReferenceException
Brain is null
xddddd
if (!TryGetBrain(out Brain brain))
brain = new();
brain.PrefrontalCortex.SelfControl.Work();
I'm quite the opposite
10h of work with 3 days slep tru
lmfao
Obsolete warning on TryGetBrain
Brain no longer exists
Body.Destroy();
Body.Explode()
; expected
I expect it to work
real
@icy knoll I like don't have the brain power to think on what I need to do to get what I want lmao, don't worry though, I got this
So where do I define the token, like is it a thing of I do it in the config and it will just use that from my plugin, like I cant even word this
you put it in the DiscordLab config
So what dll is going where? What goes in plugins, what goes in dependencies and what goes in my plugin?
read the setup guide
@grok summarize
I think I understand it
Get rotated
everything in dependencies.dll goes into the obvious place
everything else is a plugin
DiscordLab goes in plugins, which generates a config where the token and stuff go, then DiscordLab.Bot goes in the dependencies and in my plugin dependencies, right?
what
I don't know
DiscordLab.Bot.dll is a plugin
Oh so that goes in the plugins folder as well
yes
So, I have the bot nuget package in my plugin, which I can use to send message and all of that fancy shit, then I have DiscordLab and DiscordLab.Bot in the plugins and the dependencies in the obvious place, and I'm good to go yes?
what are you referring to with DiscordLab by itself here
What do you mean?
all you need is DiscordLab.Bot, I don't know what you are referring to with just DiscordLab
Oh shit, I though DiscordLab was a .dll as well
My bad
I think it's because I saw a DiscordLab nuget package, which you literally said not to worry about
God I'm stupid
😭
yeah you can reference BotStatus
but you can't copy the code unless you plan to open source your version of it
because of the license
people do
Do i even need to reference BotStatus or can it just be used in the plugins folder
And it does what it says
you don't need to reference it
BotStatus just hooks to Bot
simple as that
It's a plugin
nws
Yup, I understand and it's all working now, thank you
Any idea why this might happen?
https://medal.tv/games/scp-secret-laboratory/clips/lVRrZlG4Jeiz9srbk?invite=cr-MSxOVlcsNDI2MDkyNzc3
Watch Untitled by goodPlay3r and millions of other SCP Secret Laboratory videos on Medal. #scpsecretlaboratory
the elevator operator has resigned
Invisible wall department has hit from room behind
u could drop and check it from down here 
Is this a known bug?
Yes
Is there an open issue for it?
😿
its like the bug in LCZ Toilets
where a room overlabs with the other room
Also how the hell does this happen?
Watch Untitled by D_day750 and millions of other SCP Secret Laboratory videos on Medal. #scpsecretlaboratory
model being visible i dont know how the issue happened but it is fairly common with marhsmallowman
Okay gotcha
You basically inside the model which shouldn't render to you(?)
But it still does
I need a high res version of this bro
sobbing
What method checks if a card has the permissions to open a door?
check secretapi
there are extension methods for permission checks

I need exactly the method that the Northwoods wrote
yeah look at the code
XD
You misunderstood me. I need a class and a method that checks if a card has permissions.
I want to make a patch
Thx
np
you would've found it if you looked at secretapi's code though
secretapi >
Where's the keycard?
KeycardItem doesnt work
wdym
"KeycardItem" is an ambiguous reference between "InventorySystem.Items.Keycards.KeycardItem" and "LabApi.Features.Wrappers.KeycardItem"
Aah
well pick the inventorysystem one
but why not just use the wrapper?
oh right, cuz you need the permission requester
Then I'll have to rewrite the code below. I'm so lazy
Okay, I found a solution
why does setting the previous owner to dedicated server for a grenade remove damage completely?
when the footprint is null or from the server there is no damage done
but when set to default it suddenly works, but shows that an unnamed 173 killed me
some FF issue?
attacker must be alive
the default footprint obv has a null nickname, but the default role is 173, that's why you get that death screen
interesting
i remember when ppl died to smth and it said 173 killed them and they were confused if 173 was cheating
💀
if only the game could... make it... more clear
lmfao
by making the default... not peanut...
"" killed me
by breaking every single plugin in existence 
@restive turret mentioned

u sure?
cuz like....
we'd have to rearrange RoleTypeId
thats the average game update anyway....
no like if the attacker doesnt exist, dont even use the role
well
true
but how do you know if the attacker's name isn't actually null? 
i did my job enough
im glad im not dealing with it
thats me
no that's not you
ax
when will u make this https://github.com/northwood-studios/LabAPI/issues/284
and why isnt it already done smh
clearly nw hates modders
smh...
i would rather rewrite the entire SSSS
do it
i mean half my suggestion is rly the ability to send individual settings
ew...
sucks to be me, ik
honestly
the main things SSS needs is the ability to send individual settings and built in page system
literally that would fix any issues and make SSS menu plugins be not needed
yeah and also, better dev ex
dev ex?
developer experience
thought so
but yeah
like that would make it such a nice experience
especially for big servers that have a lot of settings
cuz like if you need to remove 1 setting from a player, you then need to resend all 50000 settings
it does kind of feel like SSS was made without thinking of how useful itd end up being
and wasnt much thought on the dev experience
i see
it just released and didnt get meaningful updates to it that address the community issues
how to get a player is opt out scp🤔
you want to know if they opted out?
yeah
does Player class not have it?
okay well
ScpPlayerPicker.IsOptedOutOfScp(player.ReferenceHub)
ok ty
What?
You know you can reference one, the other, or both, right?
I'm so lost as to what the problem is
Is there a list of all LabAPI effects anywhere?
Like Poisoned, SCP207 etc etc
nvm 🙂
6.2 🗣️ 🗣️ 🗣️
You can look at the inheritors of StatusEffectBase
Where do I get these 4 files for visual studio
Northwood.LabAPI.dll
PluginAPI.dll
Assembly-CSharp.dll
UnityEngine.CoreModule.dll
There's no PluginAPI
It's been discontinued
Nuked
LabAPI is available on NuGet
The rest of the assemblies can be found in the dedicated server's SCPSL_Data/Managed directory
thankyou
Np
is MEC a dll file im so confused?
It's in Assembly-CSharp-firstpass
life saver
That’s why 6.3 better (crashed after entering play mode)
Xddd
Why is ev.Door.Permissions 2050 if it is not in DoorPermissionFlags?
Logger.Info(ev.Door.Permissions);
what door
and also
doors can have multiple permissions
public enum DoorPermissionFlags : ushort
{
None = 0,
All = 65535, // 0xFFFF
Checkpoints = 1,
ExitGates = 2,
Intercom = 4,
AlphaWarhead = 8,
ContainmentLevelOne = 16, // 0x0010
ContainmentLevelTwo = 32, // 0x0020
ContainmentLevelThree = 64, // 0x0040
ArmoryLevelOne = 128, // 0x0080
ArmoryLevelTwo = 256, // 0x0100
ArmoryLevelThree = 512, // 0x0200
ScpOverride = 1024, // 0x0400
}
Permission 2050 is gotten through adding some of these together
aka ArmoryLevelThree (512) + ScpOverride (1024) = 1536
you can't make 2050 with these values
if 1024 is the biggest then 2^11 - 1
fair but
2047
so there is a hidden flag
hence why i asked for the door
its not readonly so
if someone was to make a custom door with it....
and yeah its prob not a nw door
it would be funny if it was 
Gates
hidden flag could also be a leftover relic, typically when you work with bitwise flags you are supposed to add new and not replace
Is this a hint to when 15.0 is gonna be released? 
Why is GateA and GateB's DoorPermussion is 2050?
Magic
This is certainly cool, but how do I check if the card is suitable for this door?
(keycard.Permissions & doorPermissions) != doorPermissions
BUT I can't do such a check because the door's DoorPermissionFlags are unknown.
https://github.com/SlejmUr/SCPSL_PluginCollection/blob/master/RemoteKC/PermissionCheck.cs
This what i been using, works with it

Northwoods, what was the problem with making normal DoorPermissionFlags for gates?
2050
Maybe some unity bs
I think it was always 2050
do we know why all of the wrappers are in namespace LabApi.Features.Wrappers; namespace?
because thats what nw decided on
I feel like they integrated access pass to those doors and not the others
Oh right the access pass stuff
I know on unity side I can compile doors, but idk what the specifications of access pass are
Watch it be Exitdoor just being true to allow it
It's this way because it would be redundant to have LabApi.Features.Wrappers.Players.Player for example
I dont know why is that the case, but nothing is preventing you from checking if you have the required permissions...
I guess so long as the door permissions is set as ExitGates it checks the exit pass. Interesting, may use this later on or something
no clue
No glue
quick question, if im having some issues with a lib sohuld i ask in #1274618202227216414 or in a #1336031121699377213 thread for that lib?
as in?
In #1336031121699377213 if it exist there
aaight
what does original definition in SSS mean?
the original setting
aka
the one you register
what happens if I change the original setting when registered?
via patch
Alr
@languid temple
then no changes will be reflected
so if I want to change value of X setting I must re-register it?
Hello what
Please explain what ur doing
As in
Be more specific
Are you changing a server side value or what
I found out that I am somehow overriding already existing settings when having update coroutine every X seconds
I don't understand
im also completely sleep deprived
do you use secretapi or anything
What kind of update
cuz you can change the dropdown values for a player
Stuff like that
Idk if you can force set someones setting to a specific value though
my own thing, so that's why I'm asking around
well i need more details
preferably dumbed down
it's basically using every patch you wrote
I'm trying to change values based on how much player has health
okay...
can you show a screenshot of how the setting looks
and explain the change ur wanting to make dynamically
I think I'm unable to explain in greater detail right now, because I'm not on computer
ping me w more details and ill reply whenever i can be assed to not bedrot
alr 
real
i hate this engine :(
the crash was because i had profiler ON and it had a lot of data that it froze my whole pc and crashed unity when i tried to cancel
profiler? i hardly know her!
then profilim
new software just droppped
☠️
i also generated whole a 64 million voxel world horizontally causing a lot of lag almost breaking my pc
jotale
your pc is begging for mercy.
you put it through hell daily
for a brief moment
i stopped working on that dih project
it was just a test if i can make some voxel based worlds
i technically did achieve my goal loading a single chunk but loading others or having a huge world 64 million wide caused a lot of lag
how about not drawing what you dont see
i did
i got around 200 fps with full volumetric clouds and post processing applied
generating new chunks caused a lot of spooky lag spikes i was gonna continue with store the data or even use greedy meshing but i don't want to waste time on that project since its just a good idea i had i wanted to test if i can make it
I think they changed it to basically any part of a setting, you can just send an update message to change stuff. It's very nice for updating settings without freezing clients if you have a lot of settings
How can I check if a player misses a shot, and how can I check what hitbox they hit when they do hit their shots?
Exiled has an OnShot event, I'd say try to find the LabAPI equivalent
Would onplacingbullethole count if it only happens when a player misses?
Idk how that works tho just spitballing
Server only settings yea
Afaik at least
double checking, Scp1344HumanXrayProvider.GetParticleColor is handled on the client and whatever i do with it on the server should do nothing?
Correct
😔
there is no reason for it to be server sided
only the rate of blinking
I mean you are not wrong, but it would have been nice
anyway to make custom class that removes larrys huntersAtlas?
I am kinda confused, is Labapi better or exiled better? (My mission is to make scp 3114 and pink candy be available in my server)
Labapu is bundled with the game.
Exiled build upon labapi and basegame to add more events and features
I see, so Labapi would be easier if its supported by the devs itself?
Ye, well usually depends what you do and how you write it but you can use either of them
You can try writing one for labapi and one for exiled seeing which would be better (or just for learning ig)
I see, thanks for the help :D
Both can introduce breaking change (well since game gets update so)
i think the main advantage rn of using exiled would be custom items and roles not conflicting as there is no one main api bundled with labapi compared to exiled
but that is just my opinion
Well exiled has as module for it
that is what i meant
And there is many plugin/deps that do same like exiled but different
No you can update stuff like the title and hint and more of non-server-only settings
The int id system is weird for me (cus can collide)
int based ids should be fine as long as they are monotonic
Should the plugin files be placed in the global file or port file?
depends if you want them for every server or that specific server
kk ty
Does anyone know what causes this error?
you disconnected the host again
I'm going crazy soon... I don't have a patch for this
Okay. I should probably rewrite all the plugins and delete Exiled asap.
If its not yours its some other's plugin then
Ah
yeah checks out
or just dont use goggles custom item
i love to kill 1
ban 1 50y hehehehaw
ban 0 150y server killed
I know that it doesn't exist in LabAPI, but is there any way to get it?
player.ChangeAppearance(RoleTypeId.Tutorial);
I've already tried it but it doesn't work.
Because it is not change appearance??
And because it requires fake syncing role related fields
Works on my machine and 2 host, plus many other machines too
because there is no ChangeAppearance.
I know that.
But I don’t need that, and I won’t use your weird LabApiExtensions.
💀 Nope, then I’ll make my own.
Or create your own, but it will definitely not gonna be included in basegame labapi until there is a change for the roles which is not usually happens in one night
Great, have fun with it
Btw the linked stuff works in many server and even the code copied over other place even verify it works (by Raphael)
I think you can set it through server config
ntfspawnwave_size_percentage: 1.0
for ntfminiwave you will have to do
if (WaveManager.TryGet(out NtfMiniWave wave))
wave.WaveSizeMultiplier = 1f;
then after round set it back to 0.2f
❤
ty
for ntfspawnwave it would be something like this
if (WaveManager.TryGet(out NtfSpawnWave wave) && wave.Configuration is PrimaryWaveConfig<NtfSpawnWave> config)
config.SizePercentage = 1f;
ok
after round you can call config.OnConfigRefresh() it will reset SizePercentage value to server's default
ye thats why it got merged
yea but this feature is for plugins only
dependencies will still have same search options
i will make a pr in a minute to also add this for dependencies
Blaming you
I recommend
start "" la 7777
How do I get back lost time? Is it possible to back in time and give my younger self the updated code? How do I catch up on sleep without spending any time?
Sadly cant
Just go faster than light bro
Is there documentation for making plugins?
Is there an Enum in Window like DoorName?
I don't think so
What do you need it for?
To find glass in GR18
You might be able to go through Window.List and find the windows closest to GR18
What would y'all say is the best way to test a custom anti-cheat if I were to make one? I know offline mode for sure, but I'm not sure how I would give myself permissions in offline mode.
Set a password for RA
Fair
Get the room then you'll have access to its windows
Wndow::Room?
Or i need use Vector3::TryGetRoom
If the former doesn't work then ye
Generally you NEVER set a password for RA, you auth it via Cedmod or steamid64 through server configuration.
Good if for example my internet went out or central doing the funny
I've never been on a server while central servers were down
Generally authentication NEVER works in offline mode.
Please read what we're talking about before jumping into the conversation without understanding the context.

Usually there isn't a need for offline mode... 
You're still jumping into a conversation again without knowing the context.
Okay, I'll make it easy for you. We're talking about testing anti-cheat plugin, and to test it, you NEED cheats. If you use cheats WITHOUT OFFLINE mod, you'll get banned for cheating.
Now do you understand why you need an offline mod?
Sounds like a NW issue to me since they patch the cheats... unless you're trying to prevent it manually yourself which is your own sandbox game
Northwoods doesn't do anything to combat cheats. They fight cheaters, but the cheats still work.
By it's nature almost none of the work we do to combat cheating is seen by the general public
Because of this, I wrote a server anti-cheat that breaks some cheat functions
But I assure you we do a lot
90% of the cheats have been patched, and the current cheat devs are raising their prices because it's getting harder to combat NW patches that messes with the cheaters.
It's pretty much classified how the anticheat works in the game unless you're allowed to look at it
I see how Northwoods are fighting against the spoofer, but the cheats still work, and none of their functions have disappeared, which shows that the cheats still work
If it instantly banned someone the second it detected them it would be very easy to bypass 
If you see a cheater, make a cheater report and someone will take care of them
We're pretty good on response time
I don't know what the anti-cheat does, because it's not server-side. But DLL files can be easily decompiled.
We have protections against this
Valve xd
You literally should not decompile it, it even states in the game terms of service
I know people who wrote cheats for SCP SL, but they're not banned. I think this indicates that anti-cheat isn't detecting them.
It's obvious
I can't comment on the AC and what it does or doesn't detect, but I assure you it works
I'd rather not get a boot in the ass by a sys admin
Well, it works poorly
Security dept. is gonna have a laugh at this
Respectfully, that's a very uninformed opinion
/setgroup slejm owner
Me when steam is down
Everyone thinks as they please. Personally, I've never seen anti-cheat ban cheaters, and I'm convinced it doesn't work well.
Oh yeah... it's very rare though unless it's the holiday sales 

Ye every single time i want to test? No thx
And even if i go and do smth other still can do stuff ofc the ra panel permission set as they can't request ip and stuff
attempt cheating method
get banned instantly
okay this doesn't work so I'll do something else
Instant feedback would help cheaters not waste time trying other methods
And again, they need MY ip to join, which again IF i don't have internet, noone can join.
And my server only runs when i run it so it's not like "OMG 5 PUBLIC SERVER HAS PASSWORD OPTION YOU CAN GET ADMIN WITH THIS SIMPLE STEPS"
Yeah trueing
You can get delighted with these simple steps 
And not like even if you run a server you still can be joinable since many behind nat or need port forward
As it is something I personally work on
I can assure you the anticheat has been nuking people, and work is being put towards dealing with cheats, spoofers,fixing easily fixable exploits
If you arent seeing anything I dont know what to tell you
As my numbers and telegrams of free cheats say otherwise
And occasional coping in the midnight telegram when we wave them
You also forgot to mention that multiple exploits cheats used were fixed, all forward track with guns, skeleton exploits, etc
So this does seem like a slightly ungrounded take as it simply isn't true at all
not possible when online mode is active
Can confirm
It appears I have forgotten how to set the player's user group, may I have some assistance
Is anyone there?
Huh, I guess I'm all alone
command or
In code
oh yeah wait
there's a command for it
Hmm, is there a way to get a group without the name?
Like I dont need another way but is there?
setgroup user groupname
What event is triggered if you throw a card at the card scanner?
And what event is called when an item is added to the inventory? I don't see the PlayerEvents.ItemAdded event.
InventoryExtensions.ItemAdded?
i don't think we have an event for that (yet)

What is "AllowSpectatorTrigger"?
I saw it in KittsMenuSystem, it has it in there.
I find it interesting and wanted to know what it does.
it sets whether you can activate the keybind while you're spectating
I wanted to test it, but it doesn’t work.
Do I need a dll for it?
what
well you need a setting that has it enabled
or well....
you cant trigger it while spectating...
Which settings do I need?
Yeah, but it doesn't work because it gives an error.
then show the error
cant give any response to your issue if you dont tell me the issue
'AllowSpectatorTrigger' accepting a first argument of type 'SSKeybindSetting' could be found (are you missing a using directive or an assembly reference?)
wait chill
you seem to be doing AllowSpectatorTrigger(keybindSetting)
instead of keybindSetting.AllowSpectatorTrigger = true;
Bro, can’t you chill?
I have pneumonia inflammation, and I’m in complete pain.
she's eve (short for evil)
hi ax
i am chill
however
i am confused on what ur doing
I want to make the SS smaller for me so that I can write it shorter.
thats not
what i meant
i was referring to you using a property as a method
anyway
@upper vapor did you see the new lego batman game
what
its 70-90 bucks
and they recommend 32GB ram
and also
win 11 is on the min specs
💀💀
as a win11 user, what the fuck 💀💀
as a linux user, what the fuck
ahahha
as a win10 user wt f
my ass
lego games are shit anyway
i kinda tupid, can somoen remind me what the event is when somone turns on a generator. like starts the countdown
PlayerActivatedGeneratorEventArgs
Ty
Is there any way to get floor-spawning hazards to play well on slanted surfaces?
Might be a little hard to see but the issue is currently that it's seemingly clipping into the ground a bit
The way I rotate it is by raycasting down, and getting the hits normal
So on a flat surface like that it shouldn't be clipping
not that I know of, have you seen peanut tantrum on the stairs to gate A n stuff?
what happens when its not rotated? just curious.
I figured that's because it isn't rotated
The effect is worse
Which is entirely expected
It's doing this
Now my understanding is that there is a certain amount of tolerance so what happens is this:
Where what you actually end up seeing is the yellow
I figured rotating it would prevent the clipping issue by effectively making this tolerance rotated too
Where instead of expecting a projection on an entirely flat surface, it would expect projection on a flat surface relative to itself
what if you made the tantrum super tall?
Well I'll be damned
Wdym
why is it so wide?
Cause it's a sinkhole?
No I was testing it on the staircase
Because I wanted to get it working on slanted surfaces
Hm maybe I should do this with peanut tantrums
Get them working on slanted surfaces
Guess I'm making another transpiler
why? Cant you just set the size of the hazard prefabs to be tall?
thought by then I'd worry about multilayered rooms n stuff
Peanut tantrums don't spawn rotated
At least afaik
Called that shit
idek if you need to rotate the tantrums tho
I don't need to but it'd be more accurate
The difference is subtle but it's a difference
If I'm making a small change like this to be more accurate, I might as well make it as accurate as possible and not half-ass it
Also if the projection isn't just straight down relative to the world, and is instead relative to the entity itself, it makes an even greater difference than just size
If that's the case, then both position and scale will be fucked up if you don't do a proper rotation
And looking at it now, that appears it might be the case, but I'm not 100% confident in that given the original issues
TL;DR rotation is important
Well, i achieved something unexpected 
First time since unity 6 update
You crashed the server AND the client?
How do I prevent LabApi from registering a command in the plugin automatically and register it manually?
LabApi throws an error because it can't register the command, as the command takes the Description from the config, and the config isn't loaded at the time.
don't add the attribute
This?
Hmm, how do I register the command later?
public static void Register(ICommand command, params CommandType[] commandTypes)
{
foreach (CommandType commandType in commandTypes)
{
switch (commandType)
{
case CommandType.Client:
QueryProcessor.DotCommandHandler.RegisterCommand(command);
break;
case CommandType.RemoteAdmin:
CommandProcessor.RemoteAdminCommandHandler.RegisterCommand(command);
break;
case CommandType.Console:
GameCore.Console.singleton.ConsoleCommandHandler.RegisterCommand(command);
break;
}
}
}
Oh
thx
Make the cmd description reference another field which is not the config value
and then set it
however
It is generally reccomended to keep the description just in english
as every other command is
I'm just rewriting one of my old plugins that was written in Exiled.
Exiled first initializes the config, then the command
Well, I have a Russian server, and not everyone understands English.
oi davy daves
Im gonna send you to the locker
oh.
How to get if a player is killed by a TimedGrenadeProjectile instance
ProjectileExplodingEventArgs or PlayerDyingEventArgs🤔
i mean
do you want before the death has finalized
or what
after death
check if the damage handler is an ExplosionDamageHandler
yeah you can't get the grenade instance from there
so use ProjectileExplodingEventArgs ?
still have no idea why
Why is the event being called even though I unsubscribed from it?
image are too dark
have you succefully put a tantrum rotation ?
that should work fine are you sure it's called ?
For some reason, it's not working.
My event is subscribed at OnWaitingForPlayers and unsubscribed at the start of the round. But for some reason, OnRoundStart never unsubscribed OnJoined, causing OnWaitingForPlayers to resubscribe the event every round
weird
have you multiple call OnJoined ?
because you can subscribe multiple time the same method
and that could be a reason
of you not being able to remove it because you only remove one of them
Nope

I think this is a bad idea because it won't fix the root cause of the problem
I'll try to find the error. It's very strange
if you have multiple instance of it
just found why you have multiple
if my suggestion do not work idk what it's would be
but at least you can know what the real problem
This is very strange. For some reason, I can't reproduce the error on the test server.
I don't understand
ThirdpersonModel gameobject reference didnt exist on headless server ?
You should get a monitor with better contrast
And yeah I did
I made a transpiler to adjust tantrum rotation and scale so it works properly on inclines
I did similar code to get sinkholes working the same
huh?
Maybe your firearm null?
nuhuh
wait
firearm cant be null in this context
okay im just stupid but the position of the thirdpersonModel are not affected by the animator ?
Try ThirdpersonItemPoolManager
Or InventorySubController
Zero clue about animations and those stuff
Okay cuz im trying to get the transform of the Selected item affected by the animator
my ThirdPersonModel are valid now i found a fix but are not affected
Y'know even if you have it you cant really change it
i just need the transform not to change it dw ^^'
I just wanna attach an adminToy
not to the transform directly
Btw
but i need it to do somes inverseTransformPoint
InventorySubcontroller.OnSwapThirdpersonItem
mmmmh interesting
This might help u
in my context my thirdpersonModel are not null. It just didnt move 
item serials are ushorts, right?
ye
so your tellin me if i spawn in 65535 items itll crash 
Yes
It's possible that the items will simply have the same ID
I’ll make 65535 custom items even better
Some item would crash the game for that reason
CustomKeycard / Jailbird / MicroHid / other item use Serial for some system
But that the one i am 100% sure
Oh yeah Scp1344
If someone already have them been wear
You will pickup it and they will instantly crush your eyes
And if one of the two remove it it's removed for both player
What if you just have a bool field instead of subscribing/unsubscribing
Sobbing
💀
Actually it's more optimise to do subscribing and unsubscribing
But it clearly doesn't work in this case
In my plugin it's worked fine with no problems
You can also self unsubcribe
If you want your event only be call once
Like OnPlayerDying(eventhandler ev)
{
PlayerHandler.Dying -= OnPlayerDying;
// Do things
}
There's no way it's more optimal in this case cus both events get called only once
Once per game
But he could want it only once for the single first game idk
After a restart
Does anyone have a bug where they can't reload their weapons?
For some reason, my weapons aren't reloading on my server. I copied all the configs to the test server, but everything's fine there.
Has anyone encountered this problem?
did you respawn the player's gameobject?
NetworkServer.Spawn?
ye
No. I haven't respawned players this way. But I have respawned other objects, like SCP-500.
That's the problem. The bug appears without any errors
It's just that at some point the weapon cannot be reloaded
do you do SendSpawnMessage on player objects perhaps?
SpawnMessage? no
Only destroy message for primitivs
That seems more of like you messing around with reload event and ammo property
since the rounds doesnt appear after the animation
The problem was that I was sending a message to the server itself, which is why the ammo were breaking for some reason.
Player.List moment
Yes
Make PR
The amount of times it caused issues is catastrophic
Or just the player.list => Player. ReadyList and make a new one called player.noreadylist
Because player.list is more intuitive
Because people arent capable of reading comments
Its more intuition than reading comments
I obliterated the comments by publicizing the assembly 
no nuget?
Well I'm not gonna get a publicized LabApi from a nuget
I had to publicize it but I don't remember why
actually let me check
I had to patch a permission provider
which had its methods private
ah
Is it possible to send an external lookup (open a window on client) without the client clicking the External Lookup (they still run a command)?
no
No
Thanks. I was expecting that tbh.
look down externally
isnt externall lookup a command, maybe something with it
Correction* unless its externallookup command, no
As every RA button executes a command
*Loud incorrect buzzer*
public static ThrownProjectile? SpawnLiveProjectile(ItemType itemType, Player player)
{
if (!InventoryItemLoader.TryGetItem(itemType, out ThrowableItem ib))
{
Logger.Error($"Provided item type {itemType} is not a throwable item!");
return null;
}
ThrownProjectile projectile = Object.Instantiate(ib.Projectile, player.Position, player.Rotation);
PickupSyncInfo psi = new PickupSyncInfo(itemType, ib.Weight, ItemSerialGenerator.GenerateNext())
{
Locked = true
};
projectile.Info = psi;
projectile.PreviousOwner = new Footprint(player.ReferenceHub);
projectile.ServerActivate();
NetworkServer.Spawn(projectile.gameObject);
return projectile;
}
How can i throw the item?
that i spawn from here?
spawn then activate?
what?
NetworkServer.Spawn(projectile.gameObject);
projectile.ServerActivate();
idk this is in the example from labapi 
https://github.com/northwood-studios/LabAPI/blob/e464110ca607ee5792ef734c4330a7b42e19194b/LabApi.Examples/Commands/CommandsPlugin/Helpers.cs#L16
i've used this code before and it worked
always
but how can i throw it then?
like i need to force like the player throws it
exiled has for example the ThrowGrenade
but here it doesn't exist
there's not anything like on the server to throw it??
no
bruh
public static ThrownProjectile? SpawnLiveProjectile(ItemType itemType, Player player)
{
if (!InventoryItemLoader.TryGetItem(itemType, out ThrowableItem ib))
{
Logger.Error($"Provided item type {itemType} is not a throwable item!");
return null;
}
ThrownProjectile projectile = Object.Instantiate(ib.Projectile, player.Position, player.Rotation);
PickupSyncInfo psi = new PickupSyncInfo(itemType, ib.Weight, ItemSerialGenerator.GenerateNext())
{
Locked = true
};
projectile.Info = psi;
projectile.PreviousOwner = new Footprint(player.ReferenceHub);
projectile.ServerActivate();
NetworkServer.Spawn(projectile.gameObject);
if (!projectile.TryGetComponent<Rigidbody>(out var component))
return null;
Vector3 velocity = player.ReferenceHub.GetVelocity();
Vector3 linearVelocity = velocity / 3f + player.ReferenceHub.PlayerCameraReference.forward * 6f * (Mathf.Clamp01(Mathf.InverseLerp(7f, 0.1f, component.mass)) + 0.3f);
linearVelocity.x = Mathf.Max(Mathf.Abs(velocity.x), Mathf.Abs(linearVelocity.x)) * (float)((!(linearVelocity.x < 0f)) ? 1 : (-1));
linearVelocity.y = Mathf.Max(Mathf.Abs(velocity.y), Mathf.Abs(linearVelocity.y)) * (float)((!(linearVelocity.y < 0f)) ? 1 : (-1));
linearVelocity.z = Mathf.Max(Mathf.Abs(velocity.z), Mathf.Abs(linearVelocity.z)) * (float)((!(linearVelocity.z < 0f)) ? 1 : (-1));
component.position = player.ReferenceHub.PlayerCameraReference.position;
component.linearVelocity = linearVelocity;
component.angularVelocity = Vector3.Lerp(ib.FullThrowSettings.StartTorque, ib.FullThrowSettings.StartTorque, UnityEngine.Random.value);
float magnitude = component.angularVelocity.magnitude;
if (magnitude > component.maxAngularVelocity)
{
component.maxAngularVelocity = magnitude;
}
return projectile;
}
so something like this
like im doing a grenade launcher and damn it takes alot of time in labapi to throw an item
Use the toolgun to get the room offset and modify the customitem file to spawn there
i think the tool gun shows in game coordinates not room ones
I've never been more happy to see the word true
and i deleted it to make it more clear inside my folder
Shooting it will show the offset at the location of the bullet hit
Its a api item so you can only disable it not delete it
then what is id of this item?
Run uci tg
i dont have permission
i was giving items throght localadmin
The permission is uci.toolgun
thx
am i stupid or smth id: 423
name: Moja Biedronka
description: "Moja Biedronka"
extended_description: ''
badge_name: ""
badge_color: "red"
weight: 1
item: KeycardCustomSite02
scale:
x: 1
y: 1
z: 1
spawn:
do_spawn: true
count: 1
spawn_settings:
- room_type: Scp914
position: {x: -0.09, y: 0.54, z: -7.15}
rotation: {x: 0, y: 90, z: 0}
chance: 100
custom_flags: None
flag_settings: {}
custom_item_type: Keycard
custom_data:
containment: 0
armory: 0
admin: 0
tint_color: '#ff0000'
permissions_color: '#ff0000'
label_color: '#ffffff'
name: '%name%'
label: 'Moja Biedronka'
serial_number: null
rank: 1
wear_detail: 0
one_time_use: false
arguments: {}
permission works but i think i made something wrong inside code
Its formatted wrong the correct format is
dynamic_spawn:
- room: Lcz914
coords:
x: 1
y: 1
z: 1
This goes under spawn settings^
Your also missing - chance:
there is chance under rotation
This is the default
spawn:
do_spawn: false
count: 1
spawn_settings:
- chance: 30
coords:
x: 0
y: 0
z: 0
rotation:
x: 0
y: 0
z: 0
locker_settings:
enable: false
locker_type: RifleRack
room: HczWarhead
zone: HeavyContainment
chamber: ''
offset:
x: 0
y: 0
z: 0
dynamic_spawn:
- room: Lcz914
coords:
x: 1
y: 1
z: 1
zones:
- HeavyContainment
- Entrance
replace_existing_pickup: false
force_item: false
replace_items_in_pedestals: false
Format it like this
spawn_settings:
- chance: 100
rotation:
x: 0
y: 0
z: 0
dynamic_spawn:
- room: Lcz914
coords:
x: 1
y: 1
z: 1
uncomplicated != idiotproof
thx
figured it out
now i need to know how to make it rotated by 45 degress XD
I just fixed something without meaning to fix it, I've been blessed
Also, how do I cancel death?
Dying
Half the time the nuget has existed it's been outdated big guy
When I swapped to using the nuget it was like 2/3 versions behind
Or some BS like that
So I immediately swapped back
You've asked this question before

Still don't think that was ever fixed
But yeah you asked and I don't think anything came of it
Isn't it possible for you of when doing a public release to make a release on GitHub?
Or making early release on github with pre-build and release it when publish on GitHub
That would be kinda good
Because it's true than we could use LabAPI nuggets on exiled too
Someone knows how to fix it?
banned lmao
yeah because our team lead didn't have time to make the release and push it to nuget
in an ideal world, yes, that does happen
and i've been lobbying (what a word) to make labapu pre-releases when an early server build becomes available, but that decision has to be approved by management
Hm, does someone got into alpha warhead not killing some people in the facility?
And now you know why I, and others, never use the nuget
I don't care about whatever reason there is that causes it to be outdated, all I care about is that it's outdated
Yes it's frustrating but nowadays we push the packages relatively soon
Ideally in 0 days 
Create a tool that makes a local nuget package when you update the server 
what I know is that I can launch my update file and get access to the latest LabAPI whenever I want rather than taking a gamble on the nuget
Considering expedient updates are almost required for my community I have no plans to switch anytime soon
Can't argue with that, Bon Appétit
Hello, cooked something up in a few hours (https://github.com/tyabus/FallDamageControl), can someone help me with how to suppress the falldamage sound itself? I see that the message is being called in PlayerRoles.FirstPersonControl/FpcMotor ServerProcessFall
Hello, my mic works in Windows and Discord but NOT in Steam or SCP:SL. I'm on Windows 11. I've tried changing Steam settings but no luck. Any help?"
this is not tech support, check #technical-support, where you'll find the wiki link for most fixes
you'll have to patch the method
check if mic access is allowed for classic apps in privacy settings
is there any tutorial on how to make and apply harmony patches?
uhhhh
you'll probably have to check other's code, but the documentation is here: https://harmony.pardeike.net
i would recomand you to not doing by Hurt event
you have a better way than this :3 for what he want to do
you can set value FirstPersonController.FpcModule.Motor._fallDamageSettings.Enabled
when player is Spawned
@unique crypt that would be a lot better for your code ^
@upper vapor i have a suggestion that a up to you
the noise can be removed if you add an If with the DealDamage to prevent call FpcFallDamage if it's prevented
thats exactly what i wanted to patch in
ill take a look
thanks
that will be better to you
in your plugin
Just my opinion but im really curious why it was an specific networkmessage instead of a client side processing 
cool for dev who want to make an for loop with a int.MaxValue and a waitforoneframe call but also has a cost 
i mean
everything has a cost
and id assume it helps with consistency
Damage isn't sync to client
you position isn't always the same
so it's make sense they did message
somes data are sync iirc
Yeah health
Client position is only do in a single way
Except when you get teleport
not always the same but more precise on the client and work if you take damage before getting set to the spectator position
Also the IdsByType
Uhm?
i mean this :
That not sync
?
AdditionalData
byte of the Type and also additional
They use UniversalDamage for it
my idea need to create a new FallDamageHandler so kinda cringe but i was just curious yea
They would need a new damagehandler
yeah
what....
?
Yeah replace message by additional data



