#plugins-dev-chat
1 messages Β· Page 9 of 1
yeah
This is the hardest part
I pray for LabAPI to actually be more useful than NWAPI currently is
I just hope I can do this I wasn't able to do before Dx
and idk how youd do it
Well, you could... mmm make a event for it?
other than a synced list of multipliers
Which the Server then calls on EventHandlers or smth?
Something that gives the current Movement speed multiplier after the base game effects where applied
Yeah, smth like that
xD
definitely not an idea 700 people have had
Dude, I haven't even figured out how Speaker Toys work
π
I hate no documentation π’
you need to send voice packets
I made a entire system for it!
which you get through a coroutine that uses NVorbis or something
i might make my own uhhh uhhhh
Thing
But i dont understand the stuff soo maybe not
And yet when I spawned speakers they stacked up on another. They literally were parented to each other for no reason π’
Add a small easter egg in the code or smth
π
xD
Nah, just add a comment saying something funny
Like // The cake was never real
or smth like that :P
Mm, what does it currently have?
or rather, what is it supposed to do?
Oh? Attack modifier?
yeah
That seems interesting
Oh! One thing I hate the MOST is that currently, LabAPI has a ItemBase instead of a Firearm in the PlayerShotWeapon event
because items arent done
etc
And that it also doesn't give where the shot landed, like a collider or a raycast
Raycat
Add to the issues tab of labapi
Add suggestion
Hi
Eeeh, I don't feel like messing with that -w-
hello
I'd rather not mess something up that someone else made
its just [Suggestion] add x property
Nono
Not pr
Issues tab
You can create suggestions
And get them to make it
[Suggestion] Bring back 3114
Issues tab is for bugs and suggestion
[Suggestion] Please add command to teleport to specific location
is that right link
Yes
Or is it?
Ah, I see
Ur next
Use <link> to hide it
Hi lazy, I'm SlejmUr
Anyways, I pray for the day that I get to modify the Movement Speed ππ»
shush
what do you even do
where do you dev
i need answers
Kadava Calamity server and the Hungarian old/original server
I also reverse stuff so
Any news on when LabAPI will replace NWAPI?
Wdym
So the next update?
Whichever comes first
yes
thats yes
When is that? :P
Wdym weym
Unknown
Dang
What do you reverse
Games, apps usually
Smh
And websites?
Whenever labapi is done
Then there will be a month transition period roughly
We keep asking poor david to add stuff so it still long way
david needs to get to work
I'd help if I could :P
Not like I've got anything better to do
The great eepy
me when no sl source :(
You go sleepy forever?
Wish
Oh
without sl source you cant add majority of things
because you need to modify client
Oh, you mean the Dlls?
And server
or what I'm guessing you mean is the source code
yes source means source code
The actual .cs files from the game itself.
When u compile something you can make flags, or as c# call it as Constants.
this basically can reduce code to show in public.
ie: functions with #if debug inside it only compiles if "debug" is been inside the flags/Constants.
What we get is a stripped and compiled version of source code
Also many places where using switch it becomes "if-else" mess
Oh yeah, but that's just compilers
-# And yet people still do that
not my fault
that 1 month min has already passed
fair enough
Hi riptide π
Players receive data from the server within a 35m range, but I want to create a plugin that extends this range infinitely
I understand that this limitation is enforced by anti-cheat, but I need to bypass it
Is it possible to make such a plugin?
I would not recommend bypassing the anti-cheat if you want to play the game
what do you need this for?
Iβm using a plugin that removes the facility's fog, allowing players to see farther, however, due to this limitation, itβs not working properly
this isn't an anticheat thing, it's managed by the VisibilityController
you can patch NormalMaxRangeSqr in FpcVisibilityController to make players see each other from farther away
keep in mind that this value is squared
Thank you!
np
people without labapi build cant join servers using labapi?
nop
Operation LabAPI is basically a three-month period of time that we're gonna be taking in order to fixing and repairing the game
when its finished
and nw have fixed all the issues
and nw are happy with it
meh
So probably more than 3 month
Our goal is to replace NWAPI (with LabAPI) starting from the 14.1 update π
yay
ty
i think its way better
atleast it dont have hint rate limit
Appreciate it!
i can still use exiled with it through the 9.6.0 beta
so theres gonna be no difference
We are doing it this way because we know the community has requested we give them enough time to port their plugins over to it, hence why it is on an alternative branch atm π«‘
If you were curious, the reason it is not compatible with live clients is because of the sheer amount of things we've made customizable with it
If you tried joining with a live client, you'd likely see a lot of desync and/or possibly crash (and got past the version compat check)
Oh btw I seen recently you pushed stuff into the early server but the other update went live on client
It will crash the second you join
david...
eve...
merry christmas
merry christmas
Oooookay thanks
Yep, that is because the build is backwards compatible
If we pushed it straight into live for servers, people will complain their servers updated without warning
Been there, done that :^)
Ah lol.
It was some holiday update
We just updated our backend, left a bit of an explanation in serverhost chat but it was mainly a little bit of cleanup for the release branch
The changes were mostly focused on the client (main menu got some small icon corrections)
Ah, I just only did the server check since thats only dll and not il2.
Hopefully we able to turn on specific holiday events despite not giving achis but content will be there.
So for example can give coal to users or give the glowing candy to someone
Its probably required to publish those assets to both place too and idk if NW want that
Wouldnt be much of a holiday event then
You can do that locally but in prod... 
There is no such a thing as prod.
Only public testing 
Fixing your plugin/game in live testing is the bestworst choice
Ye I dont like working with endianness
BinaryWriter/Reader sadly only do is Little and not Big
So you rather make an extension method for it or just make a new BinaryBigReader/Writer

No
It's doesn't crash until you go into FpcRole
Because of stat change
@harsh thorn when next labapi beta release
yesterday
i doubt about that, steamdb says "last month"
Yesterday it was just a release on the main branch, not the labapi one
^
2026 at most
Least*
I honestly would kill if we were able to disable the ability for players to jump, just like we are for them to move (ensnared)
-# Since disabling jumping, sitll plays on the client side, obviously the server-side no one sees it.
no eta
why no eat :(
cause yall ate the 1 month supply under 2 days

a question after how much time labapi will leave beta and release in main branch?
we were hungry
true
convert to item 
yea
player.Inventory.ServerAddItem(pickup.Type, addReason, pickup.Serial, pickup.Base)
or smth
actually
i lied
i think theres pickup.Base.CreateItem()
or smth
i cant remember exact
ill just check basegame
is there in LabAPI something like Paths.Configs etc. in Exiled
PathManager
thank you
and using LabApi.Loader.Features.Paths;
π₯
I think its missing, idealy we add a Player.AddItem(Pickup) to player for it
is GroupColor the same as RankColor?
Decompile or look at source and check
okay
by the way, how can i check for custom permissions in LabAPI, cause in Exiled it was like that (on picture)
Player.HasAnyPermissions iirc
oh yeah, youre right, thanks a lot
Sure
make sure if you somehow want to run the command as server/ra check if sender is Server since some plugins did not and checks the server has specific permission and it does not work like that
kk, i'll remember
Hello
Can someone tell me what programming language I need to know for plugins? C++ or C#
I only know C#, but not much
You need C# to work with SL plugins (and with Unity in general)
General Unity knowledge is recommended too
I dont have unity knowledge from unity itself, I only have knowledge of it cus I reversed games that using unity
fair
maybe that's for the better 
subnautica,
where did you learn c# on youtube, courses or literature?
why not all 3
I learned from looking at source code on GitHub
all 4
because I have a problem with willpower and I can't do everything at once
all 7
well
how do you usually learn things
what kind of learner are you
step 1. have a good reason to use c#, something you find interesting
step 2. do something with that interest
step 3. win
yea
literally how i learned c#
i learnt C# 90% from EXILED plugins
i wanted to make plugins for myself
exactly
Well, I didn't even think about that.
me neither
i knew basics before exiled
but exiled definitely taught me a majority
the thing is, all my knowledge comes from scpsl plugins and random c# videos i happened to watch along the way that had info
- I want to get into the Northwood Studio team 2) Hmmm, plugins? 3) Victory
me when unity still uses net framework and we cant use epic .NET classes / features
Do plugins

gl joining NW
make something simple
the competition is high
(murder mystery was NOT shrimple)
it was my first time pal
yeah
To make any plugin, I need basic knowledge :/
i gave a few links
Yes, yes, thank you
yeah
links don't load

they do for me
what made you say that π
schizophrenia
btw wtf does the % symbol do in c# math
im gonna be honest i still havent figured it out
π
modulus
me when the
yea
I'll try again
(you are learning)
(whether you like it or not)


you gave them to me so fr that you deleted them from memory

town of salem mod
well
its dead as fuck
hasnt gotten past just a lobby
the main person kinda
exploded
with job
so like
hasnt been touched rly in a year π
real...
im not really "actively" working on any projects right now
i have lots of things i wanna do
i just have a few ideas in mind for Site-12 RP server, and bananaplugin for skillz cabana needs some updates
my brain is gone tho
I tried it but it didn't load.
do them!
???
Those links arent the only thing, if you really want to learn, you can just search up c# tutorials on youtube or look at official microsoft docs.
what does this mean lol
java
i dont hate myself enough to work with java
π
java = c# just worse
yeah
you need an actual SetValue() GetValue()
π
and ik ppl in C# who code like that too
on my way to write set_Property and get_Property
Eve online

give me your balls
guh
Think about all the exciting enterprise systems you could work on!!!!
think about how much i could murder you

i guess ill have to make one

Cβ
Lombok: 
-# it's not really properties, only that Lombok generates the getters and setters for you
Will you create AGI to do that?
with Factories and Interfaces?
I do believe this is way better
it makes sense
in c# == is overused
also java enums are goated and anonymous classes
for the rest, c# superiority
wdym
enum values are basically just static fields of class instances that have their constructor private, saving a lot of boilerplate
you can implement interfaces and have fields, methods
interesting
you can also have anonymous classes
not for classes
i swear on my life
yes for methods if you mean that
yeah dynamic is a thing but it is really different from anonymous classes
performance sucks
and not strongly typed
dynamically generated classes at runtime 
is that what's it called?
a dynamic assembly
i had to do that
until i knew source generators existed
π

hello. I know it's a very generic question and there's probably a library somewhere that does that but how does C.A.S.S.I.E. determine where the word ends to add "-ed" or "-ing" or "-s" to it? there must be some complex audio analysis under the hood and I can't figure it out. help pls
each word has a different audio file
really simple
how to determine when should it play it
-> you look at the word
-> does it end in "ed" or "ing"?
> Plays the audio file "Cant"
> Once the audio finishes plays "ed" or "ing" audio file
that's how i did it
at first
it didn't work
Are you trying to code some plugin
like with the original files?
So what is the problem again
file end != word end and the offset is not the same for every file
i can't determine the exact time it should play "ed" or "ing" or whatever
basically I need to find the end of the word to do so
it might be that there's just a dictionary with offsets for all the words
but i hope it's not cuz i don't like this solution
i mean offset from the end of the file of course
So
I was looking at the code
nothing too hard, it just removes 0.1 when -ing and 0.06 seconds of length when other suffix
but the code is public in the server assembly
@vapid sentinel decompile NineTailedFoxAnnouncer
And you will find all you need
wait it's not obfuscated?
damn thank you
The server assembly isn't obfuscated so it can be modded easily
but it misses some client only code that is trimmed
but not necessary for this
!rep jesusqc
You have just given @limber silo a reputation point!
!rep @hearty shard
You have just given @hearty shard a reputation point!
Woo
You have just given @hearty shard a reputation point!
Can I be a translator or something like that?
Well, job position need to be open or smth
It's closed alas
Cus they ain't looking for one
I will wait
ok i just found a stupid bug that was at the root of my problem π ty for source code of cassie anyways
Which language translator?
Russian,Ukraine
We don't need Russian translators for now, but for Ukrainian, I recommend to apply at the next recruitment
@loud schooner
and when will the next recruiting be?
idk
@loud schooner better ask translator manager about it
Is it possible to ping him?
Not him..
Her?
@plain lodge
Thanks
I think it's 1 language = 1 person cuz you just have to check after AI
and fix minor mistakes
and there's almost nothing to translate in this game
Well...that's true
Since you have the job notification role you'll be pinged whenever we have new openings regardless
We do have multiple translators for the same language!!
I'm afraid I don't always receive notifications
Why?
One person translating the entire game without mistakes?
Doesn't that seem a bit much to expect?
also schedules
One person isnt available 24/7
Not everyone is available all the time, having multiple means we have more flexibility and more importantly, error checking 
Hi Nameless :D
Hmm, no?
Well yeah, I didn't think of that :/
@plain lodge
it this a payable job?
If you apply for dev on a server
and they pay you
yes
i mean translator
well then it makes sense π€£
Not sure why you're suggesting NW just uses AI to fix their problems though
Regardless, more than 1 is good
People have lives, the game translations shouldn't have to depend on a single person who might end up busy, eg hospital visits etc
I don't think so, it's a volunteer program π
The game itself doesnt depend on 1 single person in any category to my knowledge, theres people to fill the spots
well of course as long as you don't have to pay anything for that
So if someone got paid theyd never be busy?
thatd fix life for them?
you'd better deal with them not being available at all times than spending 2x more money
and yes
theyd never be busy
Sarcasm at its finest
Why would it even be 2x? Its per commission
(at least for dev)
cat
If i make a langueue and i set myself as a translator that would work? 
Anybody know when will LabAPI be released?
When its done
no release date
with 14.1
so
wait for 14.1
we dont know a release date
soonβ’οΈ
I see
it means NWAPI will stop working after 14.1 π
Nwapi will be completely removed in 14.1
Yes
It is fully removed from the game's code
and replaced with labapi
@hearty shard https://github.com/northwood-studios/LabAPI/issues/10 iirc this is you
yeah whats up
Oh
When doing stuff like swapping inventories (afk replace etc) we swap their items exactly
Including their serial so customitem is preserved etc
no point creating an entirely new item if the item exists too
i think i added something like that awhile back
like a item change owner thing
idk i just want this functionality to be just as easy as its been already (with exiled)
i thought you were asking about if you instantiated an item from its prefab using Object.Instantiate, and then adding it which would of been different
ah no
ok all good then
dropping/adding should work without changing the serial
yea but thats a lot more than just giving someone an item
this is what i had in an upcoming PR
/// <summary>
/// Moves the item to the specified players inventory.
/// </summary>
/// <param name="player">The player to move this item to.</param>
public void MoveTo(Player player) => player.AddItem(DropItem());

exiled just adds the item to the player
i mean you CAN do that right?
im not going crazy
there isnt a base game way todo it directly
cuz i clear a players inventory (without destroying items) and store them, then just add them back
not to say its not possible, its just not trivial as calling one method
when you do that i believe your asking for bugs, certain item props dont refresh e.g. what team the player is on is only set on pickup
its why if you set your role from RA and dont reset the inventory the old items retain the FF settings from the previous role
public Item AddItem(ItemBase itemBase, Item item = null, ItemAddReason addReason = ItemAddReason.AdminCommand)
{
try
{
item ??= Item.Get(itemBase);
item.AddReason = addReason;
Inventory.UserInventory.Items[item.Serial] = itemBase;
item.ChangeOwner(item.Owner, this);
if (itemBase is IAcquisitionConfirmationTrigger acquisitionConfirmationTrigger)
{
acquisitionConfirmationTrigger.AcquisitionAlreadyReceived = false;
}
typeof(InventoryExtensions).InvokeStaticEvent(nameof(InventoryExtensions.OnItemAdded), new object[] { ReferenceHub, itemBase, null });
Inventory.SendItemsNextFrame = true;
return item;
}
catch (Exception exception)
{
Log.Error($"{nameof(Player)}.{nameof(AddItem)}(ItemBase, [Item]): {exception}");
}
return null;
}
is what exiled does
to my knowledge i havent heard of any bugs with this
looks good, i assume Item.ChangeOwner(item.Owner, this); handles the issues i mentioned
Never actually looked at this code tbh
Oh
It just calls Base.OnRemoved, changes the owner and calls OnAdded
internal virtual void ChangeOwner(Player oldOwner, Player newOwner)
{
Base.OnRemoved(null);
Base.Owner = newOwner.ReferenceHub;
Base.OnAdded(null);
}
Im not sure why it uses oldOwner 
might be old code.. or a bug
it is virtual, so could be needed in a derived implementation
i should mention although this would be more inefficient, it is how the base game handles it e.g. for escaped players
would love the other way
probably there will be somewhere its needed to add slight extra logic
i need a good reason, i still think the other method could result it bugs
fix the bugs :)
but uh
idk
We already have the item
Making it pickup and then item is just weird
there has to be a way to make the ownership swap properly
while not causing big issues
if the base game had a method for changing ownership it would be fine as then it wouldnt have to be maintained on the labapi side
make it basegame
if you can do that easily
otherwise ig yeah do your pickup way
if it works it works
would have to check with @harsh thorn
Hi ppl
I'm fuckin insane
Why did you decide so?
Wait where the bug report for these ?
Because i never seen this bug
it's fixed for 14.1 iirc
I don't believe there was a report on the public bug tracker
Full HD
Pretty sure yea
there is no bugs in the software just some unknown features
Because I can't find out how to make a funny knockback stick
i never reported it, or looked if it was just thought it was the expected behaviour
@hearty shard https://github.com/northwood-studios/LabAPI/issues/20 can i close this?
when you put -ing at the end it indicates that you can cancel it in LabAPI, i dont think we can have that
ItemSpawning is for pickups being distributed which i can understand as being incorrectly named
ing is not something i care about
just
when a pickup is created
if thats call itemspawned or smth thats fine
i see
i was thinking we could do that for all wrapped types, an event for when an item is added something like On<Entity>Created
OnScp018Created
OnScp2176Created
OnUsableItemCreated
@carmine prawn couldn't quite understand this https://github.com/northwood-studios/LabAPI/issues/49, i assume its related to this #serverhost-suggestions message
it might be getting the local players settings
the server itself doesnt need settings from itself but i might be misunderstanding
thats what i was thinking too, but i didnt think that was possible
ill fix zereths issue either way, and if crous clarifies then ill know if i need to fix anything else
Why do you need to make a funny throwing stick?
Because it's funny
Once you hit somebody with it their ragdoll gets flung
But it's proving difficult
Do you want to make a stick in sl or another game?
me when my name is mentioned
I can show you the plugin
That I've done so far
Regdol, I understand.
Let's
Ragdoll
It's probably worthless, but one second
Okay, I'll wait.
using Exiled.API.Features.Spawn;
using Exiled.CustomItems.API.Features;
using Exiled.Events.EventArgs.Player;
using UnityEngine;
namespace SetMaxHPPlugin.Items
{
public class SuperJailbird : CustomWeapon
{
public override uint Id { get; set; } = 99; // Unique ID
public override string Name { get; set; } = "SuperJailbird";
public override string Description { get; set; } = "An enhanced Jailbird with extreme knockback.";
public override float Damage { get; set; } = 30f;
public override float Weight { get; set; } = 1.0f;
public override SpawnProperties? SpawnProperties { get; set; }
protected override void OnHurting(HurtingEventArgs ev)
{
if (ev.Attacker == null || ev.Player == null || ev.IsAllowed == false)
return;
if (ev.DamageHandler != null)
{
// Calculate knockback force
Vector3 knockbackForce = ev.Player.Position - ev.Attacker.Position;
knockbackForce.y = 0.5f; // Slight upward force
knockbackForce.Normalize();
knockbackForce *= 10f; // 10Γ knockback multiplier
// Apply knockback using player's rigidbody (if available)
var rigidbody = ev.Player.ReferenceHub?.gameObject.GetComponent<Rigidbody>();
if (rigidbody != null)
{
// Apply knockback force to the player's rigidbody
rigidbody.AddForce(knockbackForce, ForceMode.Impulse);
}
}
}
}
}
The spoiler is how discord formats text in between ||||
Where did you learn exiled? I'm learning c# and exiled now, but I can't find any good courses, I'm jumping from one to the other
you can place your code between triple back ticks
```cs
code...
```
so discord doesnt format it the usual way, e.g. #plugins-dev-chat message
Woops
Self taught
And learnt a little bit from other devs
Yeah I just forgot
Cuz I'm lazy
Got it, thank you.
Yes, I think this is the same issue
we met here
Do you need to know c# or exiled to be a map builder?
no
So what do I need to be a map maker?
you can use an existing plugin like SLOC or MER
I don't really know what this is, can you explain?
those are the names of the plugins, have a look at them and choose the one you want. if you want to know how they work you have to look at them yourself since they are both different
how or where do I run them?
Sorry for ping
have you installed plugins before?
No
alright, have a read of this https://github.com/northwood-studios/LabAPI/wiki
btw, the LabAPI is still in beta so you need to download the beta branch on steam for both the server and client if you want to use any LabAPI plugin. since i saw you mention EXILED a few times, you might want to stick to EXILED first and not mess around with the LabAPI until its out
So you need to know exiled? I'm already completely confused.
wdym by know EXILED?
EXILED is a plugin framework just like LabAPI, whether you know how to code in it doesnt really effect if you can use it as a server host
this is a framework for sl
I'm starting to understand
So you need to download LAb from Steam?
yeah if your fine with using a beta branch(just know most regular players cant join your server while using a beta branch)
No, I don't want to host a server, I want to make decorations for it, etc., I think you'll understand.
should be all good then
you technically dont need to download and host a server locally then, i think both plugins use unity as the build tool so you could probably skip making a server if you really wanted too(although it would be hard to test out your creations to see if they work)
Okay, I have unity, but how do I install plugins as a tool on unity?
you will have to refer to the docs on them, since i dont use them myself
Okay, but I am still grateful to you for your help.
what are you struggling with?
In terms of?
Sounded like you were asking for general help, which i dont provide. if you want help be specific
No, I asked about what I needed to make cards, and you told me, I thanked you for that.
I understand now, all good
listen, does it show on your steam that you're a member of the northwood team?
steam?
Steam,or scp sl
it doesnt for me
members have the choice of a GBadge, i dont play the game much so i didnt get one
Well, thanks for answering my stupid questions.
Can I use SCP-3114 with HarmonyPatch?
No
Disabled on client
Is fixed in 14.1
so sad
It's that a question or statement
How do u know
he said it
Yippee
also
wb the 𦩠and the marshmallow
fix for skeleton killing through walls
no news on that, unlikely
Just disable strangle 
nahh its fully fixed now
no more killing through doors and walls

U should know
It's not even there yet so
wdym
And the scp gun prob have events to (or just using firearms as base)
Oh btw.
The coin spawn at 330 is what kind of spawning?
"not nullable" definitely trust
(it is in fact able to be null and idk why yaml hasnt marked it as such)
Cus yaml suck ass
real
@unique crane heyyyy
haiiiiii
do you know if its intentional 079 doesnt get xp for tesla kills
(not 079s tesla, just watching the person walk into tesla)
ummm
theres no code for it
I mean do you get xp if someoen commits suicide?
private static void GainReward(
Scp079Role scp079,
ReferenceHub deadPly,
DamageHandlerBase damageHandler)
{
PlayerRoleBase currentRole = deadPly.roleManager.CurrentRole;
int amount;
if (!(currentRole is IFpcRole fpcRole) || !TerminationRewards.TryGetBaseReward(currentRole.RoleTypeId, out amount))
return;
RoomIdentifier room = RoomIdUtils.RoomAtPositionRaycasts(fpcRole.FpcModule.Position);
Scp079HudTranslation gainReason = TerminationRewards.EvaluateGainReason(deadPly, damageHandler);
bool flag1 = (UnityEngine.Object) room != (UnityEngine.Object) null && Scp079RewardManager.CheckForRoomInteractions(scp079, room);
bool flag2 = (UnityEngine.Object) scp079.CurrentCamera.Room == (UnityEngine.Object) room;
int reward;
switch (gainReason)
{
case Scp079HudTranslation.ExpGainTerminationAssist:
if (!flag1)
{
gainReason = Scp079HudTranslation.ExpGainTerminationWitness;
goto case Scp079HudTranslation.ExpGainTerminationWitness;
}
else
{
reward = amount;
break;
}
case Scp079HudTranslation.ExpGainTerminationDirect:
if (!flag1)
return;
reward = amount * 2;
break;
case Scp079HudTranslation.ExpGainTerminationWitness:
if (!flag2)
return;
reward = amount / 2;
break;
default:
return;
}
Scp079RewardManager.GrantExp(scp079, reward, gainReason, currentRole.RoleTypeId);
}
it appears that if you interact nearby, yes
actually oh
return damageHandler is UniversalDamageHandler universalDamageHandler && (int) universalDamageHandler.TranslationId == (int) DeathTranslations.Tesla.Id;
okay yeah its intentional
its ExpGainTerminationDirect if tesla was used
but doesnt give xp if no interaction nearby
That really destroy the keycard plugin to modify permissions
Because 100% we will not be able to sync it
@fallen sentinel sry for ping, is the above (syncing perms) planned for the custom keycard ?
lets hope they add that to the new custom keycard
or im loosing it and there isnt a custom keycard item
i swear there is tho
why
Except if they make every keycard sync permission to client
And same for any keypad
Because with plugin they will be contradiction between user and what server did
Am i the only one who don't really like the new design of keycard ?
@rare wolf doesnt either
I'm genuinely curious why
Yeah it's just
Ugly
It's not poorly designed or anything but
In my personal opinion I don't approve of it
I hope they have a validator interface that returns the missing tiers
Sob
If you guess wrong, your server gone

Okay i now read the change for keycard and plugin
The server sends an rpc when the request was approved or denied, they might as well just add the approved/missing tiers to the rpc
What are y'all talking about again
new keycard models
and the idea of changing keycard permissions
Yeah kinda the same couldn't really tell what wrong with it exactly
I also for sure don't like the non rectangular shape of it
But still that kinda personal
Do you know if we change key card permission on a door if it's will modify it's keypad
On client
Mostly accessibility
It's harder to read text than to recognize symbols (especially with some disabilities)
Keycards were also changed so they're more accessible and distinguishable, e.g. for people with color blindness or dyslexia
Shapes are easier to make apart
I have dyslexia i don't see how this help
For blindness i 100% see
I guessed the dyslexia part
There's more information in the post about why the designs are as they are, the main reason sighted was colour blindness:
https://patreon.scpslgame.com/posts/view/8c101f47-d980-4dac-ac2c-937fbd0c9b22
you didn't watch the stream didn't you
lol
i did
just not the entire thing

i got distracted
You can make custom keycards with custom text, permissions
Colors
Choose which model of keycard you want
Same
That is poggers
Yep!
W Northwood moment
was talking on it in CT instead
lemme boot up a client rq
customkeycard 1. KeycardCustomManagement KeycardGuard 1 2 3 red green Sup_folks! Test
1 2 3 being the perms
goated beryl
Gas station gift card
can we sell you

Sry was ( & is ) drunk during stream
Ye i readed the kc change looks good, there is probably code related stuff for creating this type of kc too right?
theres a custom keycard you can set everything of
Ye but still not answer to my question.
Do i have to run the give command or does it have class for it to example create custom card and do stuff with it
I still have my question about door will door be able to get sync perm ?
My best example is making than nuke required level 3 weapon & level 3 adminstrative
Will they be shown on client
Don't think there's any logic ever isolated within commands
The goal of commands is not only to make something easily testable / accessible thru the console
But also examples of how to make something work
Ye, nice, just asking to make sure
π«‘ All good, thought I'd clarify cuz its something I occasionally see people miss from commands, that they kinda function as tutorials as well
iirc you use existing itemtypes
Ye for example I think it is great to show for how doors work so can others implement it on its own, probably same for the ckc
Ah, no there's the new
KeycardCustomTaskForce = 63,
KeycardCustomSite02 = 64,
KeycardCustomManagement = 65,
KeycardCustomMetalCase = 66
Moving everything 1-5 after 05 nvm
Ok
π
No CustomChaos ?
I like the change to micro hid room
Ah remindme today that I have to check the streams vod
that should work
Yea, probably should have just played around with it first before asking
Listen, I still downloaded Unity to start making maps, but I donβt understand how to install plugins in Unity, can someone explain?
Are you referring to mer maps?
Yes, I want to become a mapper
You'd be better off asking in their Discord for support, but have you tried checking out the beginners guide?
https://docs.google.com/document/u/0/d/1OD7pNX6og02QPfaiTcAGqSXcA581LCDDM7DortxPFLU/mobilebasic
I tried it a little
So Player.GetAmmo() returns a ushort object
How do i convert it into an int so i can do maths with it
Try cast it?
ushort is just an int with a smaller max value and is unsigned i.e. positive values only
you might want to check out a c# basics video or tutorial
No it's just a basic C# thing
Misunderstood the error
I thought it had a problem subtracting a ushort number from an int
Turns out i was supposed to give the answer as a ushort
highly recommend you read something like this https://www.tutorialspoint.com/csharp/csharp_data_types.htm, you can skip the dynamic and pointer types as you will probably never have to use them for plugins(dynamic because they dont work, and pointer because they are low level/"dangerous") everything else you should read
Thanks
Is short and byte worth using instead of int if im not planning on going negative or above 255
I assume it would be faster
for doing calculations using smaller types doesn't necessarily mean that they are faster, it gets very complex as it involves knowing about how a CPU works. so if your just starting off you should stick to using int unless you are certain that the value will not go over
Noted, thanks
Hello everyone
Hi
How should I proceed with Lab API development?
Or what reference dependencies do I need to add, and then proceed with development?
Currently, there is a beta branch need to use both in server and client
Called labapi-beta iirc
You need to download the labapi server build and add ref to Assembly-Csharp, AssemblyCsharp-firstpass, CommandSystem, etc
And i think someone here can copy paste the thing.
Also probably good to just share the wiki too
https://github.com/SlejmUr/CustomItemsAPI/blob/90197287e8f006e2286c04fd5c9019711c2334e0/Directory.Build.props#L41
Here is what I refer to the projects
OK Thanks
And then there are the projects which reference every single assembly from SCPSL_Data/Managed

https://github.com/northwood-studios/LabAPI/wiki/Creating-the-Project
Also here is the official labAPI wiki for some things
OK Thanks you
If u have more questions or smth u can post here, probably someone gonna answer
OK
Just curious, I'm trying to play same file on 100 speakers at the same time and it's not playing. Problem with amount of speakers or with something else?
player can only hear the 4 closest speakers iirc
I've plased them on scp 079 speakers positions in each room
So i think it supposed to play
Maybe problem in sending?
that should work
Like on same tick I'm trying to send on ~50 speakers
100% issue not in audio file itself cuz it's working fine on 1 speaker
you should be able to hear on all by sending once, if all the speakers have the same controller id
Ah yes, same controller id...
I applied to the Northwood company, should I wait for a response or not?
"i applied for a job, should i wait for a response on whether or not i got the job?"
please read what you just asked
and how does it make sense


nahhh dont wait for a response just start working







