#plugins-dev-chat
1 messages · Page 178 of 1
thatguy
evilguy
Transpilers modify code, other patches add code
Prefix prepends, postfix appends, transpilers actually change the underlying function
Most people call me Tech
ok anyway
how tf does source gen work
wtf is this
i made
if (arguments.Any())
{
if (CheckSubCommand(arguments.First(), out subCommand))
{
}
}
but
but
theres kinda...
a missing type definition
evilgirl are u
You can add strings directly
im doing it the evil way
oh...
I mean like
The syntax
But it's created from a string
why the fuck does GPU instancing lowered my fps by 55%
IfStatementSyntax ifSubCommandCheck = IfStatement(
InvocationExpression(IdentifierName(CheckSubCommandMethodIdentifier))
.WithArgumentList(ArgumentList(SeparatedList(new[]
{
Argument(
InvocationExpression(
MemberAccessExpression(
SyntaxKind.SimpleMemberAccessExpression,
IdentifierName(ArgumentsParamName),
IdentifierName("First")))),
Argument(IdentifierName(CheckSubCommandCommandParamIdentifier))
.WithRefOrOutKeyword(Token(SyntaxKind.OutKeyword)),
}))),
Block());
yeah
but
i need the Argument to include the type
and idk
how to make it do that one
My username for most platforms is TechConcordance but most people don't know how to say Concordance
It's taking me so long between responses cause these fishermen keep asking me to bring them beer and booze
I just wanna talk about programming shit 🥀
Quit fishing then
I already did all my fishing, which is why I'm talking here
hi guys, anyone have ever tried to spawn a lot of doors ? Because when I try to spawn of very big amounts of doors, there is some errors in the localAdminLogs, and it's very disturbing. There's is like a doors limit ?
They're cleaning fish right now and I'm literally just awkwardly standing around because I'm the rookie here and have no assignment
there is limit how many waypoints you can do
yes
254
Doors are using waypoints (part of Relative Positioning), which is capped at 254 waypoints, with around 150 being free per normal round
Solution: spawn less doors
yeah don't spam doors
shit
Why are you spawning so many doors
did you make the backrooms just with doors or soomething?
sort of like the "why do you need more than 256 speaker toy channels"
Straight up
are there's any method to unspawn base doors on the map ? MajorFox give me a solution, but didn't worked very well
You go through the list of doors and Door.Destroy()
something like that yes
Did you make a custom map? Why are you unspawning base-game doors
yep
custom map with, obviously a lot of doors x)
So then why are you generating the base-game map?
Set ev.IsAllowed = false in the MapGenerating event
Boom, no more map
remove the entire ,map atp
All the doors are freed
exactly
you're fucking right. MajorFox coded a script to destroy the map instead 💀
Lmao dude literally
Yeah this way is much easier and prevents door/item spawning too
It's 2 lines of code so it's mad easy
One to not allow it, another to patch it in
i did it finally

Argument(
DeclarationExpression(
NullableType(
IdentifierName(CommandName)),
SingleVariableDesignation(
Identifier(CheckSubCommandCommandParamIdentifier))))
.WithRefOrOutKeyword(Token(SyntaxKind.OutKeyword))
holy macaroni
what do you hate more
who tf invented ts
drake laptop gif\
I didn't think of that 😭, thanks you guys 🙏 I hope I have less than 254 doors in my map lol x)
But stupid question, why waypoints are on a Byte instead of an integer or whatever ? for optimization ?
Writing documentation
private static StatementSyntax GenerateSubCommandCheck()
{
const string CheckSubCommandMethodIdentifier = "CheckSubCommand";
const string CheckSubCommandCommandParamIdentifier = "subCommand";
const string CheckSubCommandResultIdentifier = "checkSubCommandResult";
/*ForEachStatementSyntax forEach =
ForEachStatement(IdentifierName(CommandName), IdentifierName(SubCommandIdentifier), IdentifierName(SubCommandGetterIdentifier), Block());*/
// if (CheckSubCommand(arguments.First(), out CustomCommand? subCommand))
IfStatementSyntax ifSubCommandCheck = IfStatement(
InvocationExpression(IdentifierName(CheckSubCommandMethodIdentifier))
.WithArgumentList(ArgumentList(SeparatedList(new[]
{
Argument(
InvocationExpression(
MemberAccessExpression(
SyntaxKind.SimpleMemberAccessExpression,
IdentifierName(ArgumentsParamName),
IdentifierName("First")))),
Argument(
DeclarationExpression(
NullableType(
IdentifierName(CommandName)),
SingleVariableDesignation(
Identifier(CheckSubCommandCommandParamIdentifier))))
.WithRefOrOutKeyword(Token(SyntaxKind.OutKeyword))
}))),
Block());
IfStatementSyntax ifArgumentsAnyStatement = IfStatement(
InvocationExpression(
MemberAccessExpression(
SyntaxKind.SimpleMemberAccessExpression,
IdentifierName(ArgumentsParamName),
IdentifierName("Any"))),
Block(ifSubCommandCheck));
return ifArgumentsAnyStatement;
}
holy fucking fuck
Because they never thought >256 waypoints would be needed
40k+ primitives, 70 fps, that's very good
x)
alr thanks
for better networking
how we feeling on the fact im going inside out
ho lee fak
If you get desperate for doors then consider coding a primitive door
i never said it was pretty
i should write more utils
but
idk
what if u did this for me
genius machine
Seems solid, I could tell you more once I'm home and can actually view the thing not on my phone
yeah i would not have done this probably
i would've just
committed
code in other projects
thank you
We love to see it
hoppefully discord zoom isn't shit
nuh uh
crazy idea
then you won't be able to uh
like
kiss girls
ur gay
eh, that's not entirely incorrect
exactly.
but it's also not very truthy
ok well
i need to
just make bool subCommandResult = command.Execute(arguments, sender, out response);
return subCommandResult;
this part
....
what the actual fuck is any of ts
i hate you
thanks, you too
at least you didn't get a kernel panic after you've written a page of docs
-# it's gone completely
yeeeees?
i assume this is not the final version of subcommand handling
um
i don't see anymore
it will be if i give up!
Honestly, better formatting than I see from most devs it was surprisingly easy to read
https://plugins.scpslgame.com/plugin/louis1706/BetterHelpCommand
What you guys things to modify .help and /help
Yeah source gen just sucks like that
holy shit i need to actually write the code for validating command arguments
i hate myself already
No matter how good your code is you feel awful for writing it
example but:
ValidatorSingleton<PlayerArgumentValidator>.Instance.Validate(arguments.First());
ValidatorSingleton<EnumArgumentValidator<RoleTypeId>>.Instance.Validate(arguments.First());
Until it works and you get that rush of dopamine
vine boom sound effect
That's pretty nice actually
what version i am in?
cuz i need to figure out what all the execute methods need, then check for their specific needs
ancient
and then also possibly have default param allowed
dinosaur
wrong
eg
If you create different paths for enums and other common types, then accept a nullable value for default, you've got it
it is 14.2.5
https://github.com/obvEve/SecretAPI/pull/68/changes the entire PR is cursed
yamato
write it for me
thanks
14
slime boy dont you look at me like that
not my type of coding vibe
okay the FastMenu scene is kinda empty now
vibe coding? 
i love vibe coding
evil
is that legal
Breaking the law by extending the loading screen 
my friend and i engineered a weapon called the packet which can be used to artificially tank the frames of any player connected to our server
skull
yeah why ?
I imagine I would not be allowed to do that
there nothing that said you can't
but i don't your player will like your server if they need to alt+F4
to continue playing
imagine doing that to any @nortwood
theyll just think our server has the mainstream server plugins
I have 284 doors 💀
i think you need more
ok now
i need to ask
for help
this is less about the command system itself but C#
cuz like
i need to insert here
and then have validation for Execute method
how would I handle each method without them interferring with each other
i mean theres labels i suppose?
@slate flume what about you, whats ur opinion on it
that or ig creating a validate method for each of them
hm
so weird
Yeah... (no kidding) but the limits are a Byte..
If you have a validate method, you can accept the out string response parameter and have the validate return a bool
Courier 6
So if (!ValidateEnum<RoleTypeId>(arguments.At(n), out string response)) return false;
I love FNV
its the fact there can be multiple execute methods
it needs to choose which one to run
Ohhh interesting
and validate args for it specifically
so like eg
random ass example i spent 5s writing
What do you think of the show
Ah so you have multiple overloads of a method and need to determine which will run based on which args are validated?
yeah
I don't have Amazon prime so I haven't watched it yet sadly
I've heard good things tho
Ohh sad
Yea it's decent
This is a weird situation
So like if you have a Give command that accepts ItemType but also the names of custom items are something, you want to parse each and determine what overload to run
mhm!
Hm well I could build a draft once I'm at my computer if you'd like but the initial idea I have means that when registering the command, you store all of the possible method overloads, and potential default values
Then from there it's just a matter of looping through them and attempting some tryparses using the arguments provided, and if they're all true then you go with that method
In that situation you'd have to make a generic TryParse method for different types
If you have the overloads you could default to the Enum.TryParse for all enums, and do manual interpretation (like RAUtils.ProcessPlayerIdOrNames) for others when needed
public sealed class EnumArgumentValidator<TEnum> : ICommandArgumentValidator<TEnum>
where TEnum : struct, Enum
{
/// <inheritdoc />
public CommandValidationResult<TEnum> Validate(string argument)
{
return Enum.TryParse(argument, true, out TEnum value)
? new CommandValidationResult<TEnum>(value)
: new CommandValidationResult<TEnum>($"Argument provided was not a valid {typeof(TEnum).Name}");
}
}
my enum validator
You could also benefit with this idea from caching what overloads work when parsing to avoid attempting parsing in ones that already work
Epic!
Yeah that absolutely could scale up to the challenge
it just needs to determine the method
and ofc
it needs to source gen
🥀
whyd i do this to myself
Because much like almost every programmer, we're all a bit of a sucker for a good challenge
It's cool being like "Yeah, I did that"
A school of thought is creating a helper for this that accepts multiple generics
So like ValidateArgs<Player, RoleTypeId>(arguments)
I mean that's a rough idea but you get it I'm sure
that could be me
What if it isn't?
Tuffff
id finally be saved 😭
literally
the moment the source gen for commands is done i can release 3.0
me creating 16 generic option
i hate it too
anyone getting this weird bug where if you want to commit to github desktop you have to close vs studio 2022 in order to commit
Solution: don't use VS Studio
well i started using rider
recently and it probably caused this bug
and what the hell do i use even visual studio code
Why not publish through rider then
Why not publish through rider then
yeah
holy double ping
i don't get why you'd use github desktop
I'm in northern MN and discord has shitty networking
or oyu can push tru VS
m n m's?
doesn't rider take sub fee?
well i want to make a commerical project
yeah i can do that
also no i was able to push when i have vs open
it just doesnt like having multiple github account and authentication
for example i have 3
then you either don't use rider or buy a license
JB offers perpetual fallback licenses, so if you have paid for a year's worth, you get to keep the IDE indefinitely on the version you initially started the subscription year on
e.g. v1 comes out -> you pay for a year -> v2 comes out -> license expires
you can still use v1 forever
yep i also heard they give out discounts for how long you sub i'm not sure if thats true
Closed-source?
2nd year is cheaper, so is the 3rd year and onwards
silly me i just read what error i keep getting its "Permission denied"
nooooo
they will public source it
and seel the product
-# it's possible tbh
with a bit of businessman talk you can get customers
GitHub Education?
albeit probably not many
Donationware
Yeah true
I just wasn't expecting a dev to come in here asking about commercial use for IDEs considering almost all of us do open-source projects
fair
nope it is 14.2.5
weird that scene is long gone since 11.0
comeback
guys how do I remove spread and inaccuracy lmao
u cant
ok that is really nice syntax for commands
I'm guessing, client side + server validation?
ye
Dosent sync with the client though
internal static class LinearADSModulePostfix
{
[HarmonyPatch("EffectiveHipInaccuracy", MethodType.Getter)]
[HarmonyPostfix]
public static void EffectiveHipInaccuracyPostfix(LinearAdsModule __instance, ref float __result)
{
if (Utilities.TryGetSummonedCustomItem(__instance.Firearm.ItemSerial, out var item) && item.CustomItem.CustomData is WeaponData wd)
__result = wd.Inaccuracy;
if (SummonedAPICustomItem.TryGet(__instance.Firearm.ItemSerial, out var api) && api.CustomItem is CustomWeapon cw)
__result = cw.Inaccuracy;
}
[HarmonyPatch("EffectiveAdsInaccuracy", MethodType.Getter)]
[HarmonyPostfix]
public static void EffectiveAdsInaccuracyPostfix(LinearAdsModule __instance, ref float __result)
{
if (Utilities.TryGetSummonedCustomItem(__instance.Firearm.ItemSerial, out var item) && item.CustomItem.CustomData is WeaponData wd)
__result = wd.AimingInaccuracy;
if (SummonedAPICustomItem.TryGet(__instance.Firearm.ItemSerial, out var api) && api.CustomItem is CustomWeapon cw)
__result = cw.AimingInaccuracy;
}
}
ah didntkn ow that
Stuff like bullet tracers are client side afaik so this dosent effect those
They are not, actually
ImpactEffectsModule::ServerSendTracer(RaycastHit hit, Vector3 origin, int? overrideId, TracerBase tracerPrefab)
They wernt effected from the patch so idk ¯_(ツ)_/¯
No
Now using 2026 and still doesn't happen
I only had issue when i set my commiter user as my school git account and the desktop used slejmur
It always told me "yo you don't have permission try fok it"
So i just opened git gui and presses push to origin
my friend maro did it before so I wonder how he did itttt
^
ParticleDisruptor would be this
// Neither are synced with client but still are applied.
[HarmonyPatch(typeof(DisruptorAdsModule), nameof(DisruptorAdsModule.BaseAdsInaccuracy), MethodType.Getter)]
public static class DisruptorAdsModuleAimingInaccuracyPatch
{
public static bool Prefix(DisruptorAdsModule __instance, ref float __result)
{
if (!Utilities.TryGetSummonedCustomItem(__instance.Firearm.ItemSerial, out var customItem))
return true;
if (customItem.CustomItem.CustomItemType is not CustomItemType.ParticleDisruptor)
return true;
IParticleDisruptorData data = customItem.CustomItem.CustomData as IParticleDisruptorData;
__result = data.AimingInaccuracy;
return false;
}
}
[HarmonyPatch(typeof(DisruptorAdsModule), nameof(DisruptorAdsModule.BaseHipInaccuracy), MethodType.Getter)]
public static class DisruptorAdsModuleHipInaccuracyPatch
{
public static bool Prefix(DisruptorAdsModule __instance, ref float __result)
{
if (!Utilities.TryGetSummonedCustomItem(__instance.Firearm.ItemSerial, out var customItem))
return true;
if (customItem.CustomItem.CustomItemType is not CustomItemType.ParticleDisruptor)
return true;
IParticleDisruptorData data = customItem.CustomItem.CustomData as IParticleDisruptorData;
__result = data.Inaccuracy;
return false;
}
}
Well i assumed it wasnt possible because most gun changes aren't redlected to client
What LabApi.Features.Wrappers.Player property returns server role name (that writes in ra config)?
GroupName
iirc
iirc a suggestion for that was made so i dont think it exists
Even if it doesn't sync, how would one go about parenting something to a player limb
I can't create a .zip of a project if VS is open cause of a .dll that's in use
weird stuff
Te tetted e tettetett tettet, te tettetett tettek tettese
You committed this pretended act, you culprit of pretended acts
XDDDD
Just don't use visual fosdio
Don't fok it
Change the base stats
Where did the Attacker interface go? If it doesn't exist, why not use Player and Target instead?
Why do I need this?
So I can use a single method for multiple events.
private void HealScpOnAttck<T>(T ev) where T : IAttackerEvent
{
if (ev.Attacker != null && Plugin.ScpHeal.TryGetValue(ev.Attacker.Role, out ushort heal))
ev.Attacker.Heal(heal);
}
😡
Not sure if we ever had it, but we might implement it at some point
Then change Attacker to Player and Player to Target 
And add ITargetEvent
IHateSourceGen
ew
making the person that died not be the main player in the death event is insane
Ok. Then make IAttackerEvent
then make money

I can`t
Is this normal? Shouldn't ListPool<Player>.Shared.Return(list) be at the end?
Written in the thing that "it gives a POOLED list"
that looks like it's about to leak memory ong
There is a pr and issue that make all pooled stuff non-pooled
Idk when will be merged but hopefully next version will have that
Also yes it says
/// Gets a pooled list of players who are currently spectating this player.
Akkor jó a jó hajó, ha jó hajó a jó hajó.
A good ship is good if a good ship is a good ship.
Why?
Thats gonna cause issue where you get pooled list
so nop
You are meant to return it yourself
Its not end of the world of you dont
we do plan on changing every List to IEnumerable eventually
where possible
0_0
Most places where it returns pooled list it meant to return by devs until we change to IEnumerable
I’m using it for a WinForm project
how to get UserGroup from string and get UserGroup LabApi permissions?
what Message i need to use to spawn only for 1 referencehub?

k im stupid
SpawnMessage be like

Base game group
ServerStatic.PermissionsHandler.GetGroup(string)
For labapi group, iterate and find over this
PermissionsManager.GetPermissionsByProvider(this Player player)
Why in the world would you do that
2013
he writing us from past
my brother used his git desktop account on my pc and it fucked it up so thats probably why
also i heard unity 6.3 is gonna upgrade to a newer .NET version
get out.
OUT
all these versions and they still forget about upgrading ACES
shut up eve
^
:c
eve hate club
Trying to learn concepts?
I’m understanding how TcpListeners / Clients and Sockets work
Upgrading me?
Use anything but winforms
You could make a simple console app, too, but if you really want UI then use MAUI or Avalonia
I’ll try to port over my code to MAUI when the time comes
The project is nearly complete as it stands
I want to focus on other concepts that may be relevant after
Fair
I looked into a few of the frameworks you talked about
WinForms is kind of ugly haha
It's from the age of dinosaurs
There's something special about it
Ye gives an old 2010 ish vibe
Nostalgia
I thought you were gonna say "just don't make ui"
@upper vapor I am happy with this projects result :)
Aside from the UI to port later. The concept is done
bruh
yay!
cant even set velocity smh
@unique crane evil
Says the eveil one
now thats just rude
Can anyone provide a complete list of public IP addresses of the central servers?
pretty sure there's an in-game command to list them
I didn't find any specific console command. However, I did find a mention of something called https://sbg1.scpslgame.com/ and also a mention of "count 1." So there's only one central server?
almost
Im seriously confused but ig this is something to do with mirror / SL toys
```C#
private const float UpdateInterval = 0.1f;
private float _timer;
public void Update()
{
_timer += Time.deltaTime;
if (_timer >= UpdateInterval)
{
transform.Rotate(spinningVector * UpdateInterval);
_timer -= UpdateInterval;
}
}
Im using meow back again and doing some project and a spinner but the more i lag the more the spinner desync in a crazy way, why is that even possible?
whats smooth
hmmm and how i could combat that?
why do you smooth it
good point
because ngl sometimes its so crazy bad
sync the transform properties manually
ax r u a winner
Thats highly laggy
with alot of objects
the toy would do that anyway
so
either you disable smoothing or make the server also do smoothing
Im gonna probably add code on meow to calculate it
I force coded the smoothing to "30"
should i set the teleport to true?
im gonna for now just copy it on the Spinner
and then think on how to implement it on meow
lol
huh
i think no
```c#
protected virtual void UpdatePositionClient(bool teleport = false)
{
Transform cachedTransform = CachedTransform;
Vector3 localPosition;
Quaternion localRotation;
Vector3 localScale;
if (teleport || MovementSmoothing == 0)
{
localPosition = Position;
localRotation = Rotation;
localScale = Scale;
}
else
{
float t = Time.deltaTime * (float)(int)MovementSmoothing * 0.3f;
cachedTransform.GetLocalPositionAndRotation(out var localPosition2, out var localRotation2);
localPosition = Vector3.Lerp(localPosition2, Position, t);
localRotation = Quaternion.Lerp(localRotation2, Rotation, t);
localScale = Vector3.Lerp(cachedTransform.localScale, Scale, t);
}
cachedTransform.SetLocalPositionAndRotation(localPosition, localRotation);
cachedTransform.localScale = localScale;
}
Guys in the event is a day away
```c#
private const float UpdateInterval = 0.1f;
private float _timer;
private const int MovementSmoothing = 30;
private Quaternion _targetRotation;
private void Start()
{
_targetRotation = transform.rotation;
}
public void Update()
{
_timer += Time.deltaTime;
if (_timer >= UpdateInterval)
{
_targetRotation *= Quaternion.Euler(spinningVector * _timer);
_timer = 0f;
}
UpdateRotationSmooth();
}
private void UpdateRotationSmooth()
{
float t = Time.deltaTime * MovementSmoothing * 0.3f;
Quaternion currentRotation = transform.rotation;
Quaternion smoothedRotation = Quaternion.Lerp(currentRotation, _targetRotation, t);
transform.rotation = smoothedRotation;
}
I did this but when i lag, it still desync alot
No cus i would get sick
you could do ballerina
Says who
me!
The public ip addresses are not provided
the central servers are behind cloudflare and only accessible via cloudflare
I understand that perfectly well. That's what I needed. I wrote above that I needed public addresses.
well youll need to lookup cloudflares endpoint list if you'd want them
the ip on the dns record can change depending on what CF does
@loud thistle
Yes. These are 2 IPv4 addresses and 2 IPv6 addresses.
However, this was enough for my purpose. But if you could tell me how to get them, I would be grateful.
Bro 💀
i gave you a link
Interact with Cloudflare's products and services via the Cloudflare API
which is the API for getting the IPs
Ah... well, I already know about these lists. But I'm only interested in the public addresses of the central servers.
yes those are the addresses
they can change between any of those
it is entirely up to CF to decide
I understand that too. But it looks like I'll have to check it manually periodically.
otherwise theres the dns
but uh
idk the dns records for centrals
oh lmao basegame shows it
i see
The property 'InventorySystem.Items.Keycards.Snake.SnakeEngine.Score' cannot be used in this context because the 'set' accessor is inaccessible
is there a way to fix it because publicizer does not seem to work
<Reference Include="Snake" Publicize="true">
<HintPath>$(SL_REFERENCES)/Snake.dll</HintPath>
</Reference>
<PackageReference Include="BepInEx.AssemblyPublicizer.MSBuild" Version="0.4.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; buildtransitive</IncludeAssets>
</PackageReference>
more code?
wdym?
what and how do you do it
SnakeEngine.Score = 3;
bruh
i dont think it syncs but still
do you know why id does not publicize?
idk should work
cloudflare returns different ip addresses based on the location of the person querying the dns record
as they return the closest server
it is created in obj/debug/net48/Publicized
Do you have unsafe code enabled in your csproj?
<PropertyGroup>
<TargetFramework>net4.8</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<LangVersion>preview</LangVersion>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
no but it fixed itself with restarting the pc
idk why but it worked
If you don't enable UnsafeBlocks then your code is likely going to fail at runtime anyways, even if it builds
So you still should do that
Does anyone know how why wouldnt the labapi plugin list pick up plugins of a github organization im an owner of? i logged in normally, added the github integration and these are just not there
trying to add a plugin only resolves ones which im an owner of, not the ones from the organization
I thought you asked this earlier this month
hi tech
Hi eve
hi slime boy
Are yall excited for tmr
Yes
damn thats tmrw?
Ye
yeah i lowk dont rly care for it lmao
is that you
Me looking angry at you yes
holy shit i need to stream again
but i cbaaa
oh okay
Next LabAPI update swaps Player.ReadyList with Player.List
Next labapi update i will personally read out a 8 paragraph text that why is List exist and why they should either use readylist or getall
can we sentence slime to 15 years in the basement
He is here with us in the NW basement :3
Id call this update 2.0.0
Escape the basement
That's me
I made food
I feel like a fat pig 😋
I was out ice fishing and didn't have access to hot water
Now that I'm back I have ended up going through all the hot water tonight lmao
No regrets
Damn it's at like 1pm
That's pretty convenient
I wonder how many devs at the stage are in the EU and are doing this like an hour or two before sleeping
I'm coming down with the plague so I'll see whether or not I'll be lucid at the time
Also, once you change score you'll want to send a new SnakeNetworkMessage to players
(I hate this dialogue lol every 0.5s)
(And you escape so the basement will open)
Its 20:00 for me
Yeah I figured
A lot of maintainers live around the Germany -kinda area which is 8pm
1pm is usually when I would wake up when I dont have to do anything
you have to build the project first for the IDE to recognize the publicized assembly
also you should upgrade to 0.4.3
and as ThatGuy said, you must enable AllowUnsafeBlocks, otherwise you'll get an exception at runtime
https://i.e-z.host/🐀/fhwvc3p8.png
I just do geniunly wonder wtf is going on here, but like why is this tied with the ping so much and only this one but at the same time its not smoothing and its not anything im seriously confused
They are fine when they spawn but as soon as i enter their update zone one of them just decides to not be a + but a X (and only on this map happens and ONLY on this spinners)
wha
idk either i tried debugging and everything but idk a spinner sometimes decide to become from a + to an X shape
and its some how connected to lag
yes i tested it
and it still happend
so ig that wasn't the issue
do you use culling parents?
i found out that is pratically dependent on when you load them? so idk how tf is that even possible, the slower you are the faster they merge
What
Is that X meant to be rotating as a whole?
Parent those 2 lines onto a empty gameobject
And rotate that
yeah it's supposed to be a perfect + and not this
solution
rotate the parent, not the children
no they are unseperated
but then clearly you aren't rotating the parent
so i should make them inside a gameobject
ye
idk i came back to this project and i just see
https://i.e-z.host/🐀/1thjhbdq.png
but the toy is sent correct
😢
https://i.e-z.host/🐀/udekt6po.png
Like this is everything i write
so where tf do the 6 extra bytes come from
Last write?
no
@upper vapor would agree
i think mirror needs a sequel
maro said we'll touch mirror all we want
maro is back doing SL stuff? that didn't take long at all huh
maro doesn't consider "atoh" like sl so thats why, because sl sucks
make a game then
you would've been able to remake etoh at least 3 times by the time you made atoh
"too much effort" but "too easy"
it was a cool concept
there might be a contradiction there
no what i meant was too much efforts to make a game and at the same time easy to do nothing special
it would be more amazing to do something on a game like sl
rather than a standalone
until when discord added ? @time
Why does the grenade disappear after Destroy, but still explode after a while?
What
Idk.
Try cancel it and wait 1 frame before destroying
What do you guys think will be announced today?
Idk
why do you drop it and then destroy it
How else?
It works. Thx
is it even possible to reload configs / specific config?
does it use the LoadConfigs?
Thats cool i didn't know it was a thing
This doesn’t affect plugin configs right?
Only server configs
no plugin configs
IConfig doesnt exist
afaik
not within LabAPI, it does in EXILED or System
but regardless its not rly used in labapi
Oh
Where's the code that makes the grenade do a sound when it collides with an object?
1 hour reminder for the stage
Hi slime boy
Pretty sure that's client side
That was a 57-minute reminder
How I can get closest spawn wave
Sorry was going to eat
Go through waves in WaveManager.Waves, cast to TimedWave, and check which timer is the closest to 0
It doesn't get triggered on the server?
Thanks
Make sure to null check
Waves.. it’s a sign..
We need a wave for pyramid primitives in the stage..
That can cause problems
goog
Honestly it would be cool if we could get vertex positioning for quads, then it'd be possible to make most any mesh
yru such a hater
we don't care bruh
cuz i need them
Ahahahhahah
hi noob
one day a triangle
the guy
Who
the maintainer who suggested it internally 
So I was never able to get this clarification but with DisplayKit, will it be made possible to check a player's resolution and scale hints accordingly?
It was mentioned that it'd be possible to work with it like Unity does (relative positioning -type of stuff) but if I have two hints on each side of the screen in 16:9, in a 1:1 resolution I might want them to be smaller relatively so the player has better vision
this game is so saved
This is something that, to my knowledge, is not currently possible with hints, and I would like to see this functionality added to DisplayKit for modularity
i assume we're keeping AspectRatioSync, so that's something
1 Triangle saved modding forever
DisplayKit is based on UI Toolkit soo you can anchor stuff, have stuff relative/absolute
Right but we'd need more network-synced from AspectRatioSync in order to make these kinds of adjustments
it already exist
and ngl the stuff from DisplayKit i kinda did them with hints
You can check basic aspects but not specific resolutions (e.g. I can't know if a user has a 1600x900 resolution)
you can calculate
its a long math formula but you can
how do you calculate the amount of pixels based on a single number
? I was told it wasn't synced
i thought you meant aspect ratio
I love when images doesnt load
So this is new functionality being added to DisplayKit? I just want to be 100% certain on this
*insert "your suggestion will be considered" gif* 
wtf are you on lol?
trust
maro go work lol
video of displaykit showcase its mostly what you would expect on x resolution
Right I just mean I would appreciate the flexbility of being able to manually adjust UI elements based on player's resolution
you wont get the players resolution synced
Tough
maybe we shoujld add a client-side zoom
you can set a UI element to anchor to a specific point (eg left center)
or something
Resend
One thing I noticed is that if I place a hint above the health bar, but then resolution changes, the position of the hint desyncs from where I want it
The functionality for manually adjusting hints in such a way would be wonderful
no, because when you anchor it it will move based on the resolution to stay in the place you wanted it to be
I wonder if someone will make a s-nav from containment breach with the new stuff
bottom: 5rem
or
bottom: 10%
you will make it
@harsh thorn How much of the internal workings of displaykit are going to be exposed?
From what I found after quick browsing on Unity UI Toolkit: There is UXML and a CSS style thing.
Will we be able to send over raw data for those?
It's because the UI elements change based on resolution in a way that is slightly different from the hints in my experience
that im not sure about

society if we add
vw and vh
There's also the problem of UI crowding for different resolutions that I can't address with this relative system
Another problem I've experienced with hints
Because if that would be the case we could work around limitations over missing components at launch such as progress bars and whatnot.
W stage
Yay custom ui before GTA VI
Manual absolute positioning would just be wonderful and I wish to see it at some point in the future
everything needs to be wrapperized as it needs to be networked
So itd be limited to what is provided
vh??
viewport height
take a look at how unity ui works and unity ui toolkit works internally, it can give you a better idea of how it will work
eg make a test project and mess around with it by setting the aspect ratio in unity game view
ye sure 
Can we get hex codes to put in RA to get colors that we like. I need pink RA
Right I understand that I just mean it would be nice to be able to make adjustments for different resolutions manually so that the details I want aren't lost when a person's resolution changes
Well yes, but if you could send over raw UXML you could use all in https://docs.unity3d.com/6000.3/Documentation/ScriptReference/UnityEngine.UIElementsModule.html
go in settings
change the color
However that could get problematic w packet length unless it gets split
This is all I've been asking for
People keep telling me "Oh just look at Unity docs" that doesn't address the issue given that Hints have these problems already with no way to solve them because of lack of network sync and functionality
i dont want player resolutions to be synced
I know but The best pink I could have gotten is this
it starts going more towards the server collecting info about players that they dont nessecarily need
Is ugly
well
that sucks
you couldn't see the text if it was too bright
Skill issue if you cant see it
But if it helps us improve these small issues why is that such a bad thing
It's like the same thing with wanting access to client-side mutes so we can make SpeakerToy implementations abide by those mutes
yeah your skill issue
contrast is important
you are comparing 2 entirely different things
Like yeah, it's not necessary, but it improves the user experience for players on my server
How?
This in my RA would be peak
Unfortunetly
with displaykit you can set thing like anchorpoints
it will work the exact same as UI for unity games
so dealing with scaling and whatnot is possible regardless as any games UI does the same with that, sl doesnt do any special "adapt ui to resolution" either
again, being able to use viewport units will solve your issue
which is basically a % of the height, so putting stuff above the health bar should be pretty easy
as you could see from the demo, the canvas is stretched all the way, it's not shrunk to keep its aspect ratio
the UI will have to be created using a text editor? There won't be a visual editor for it right?
mutes for speakertoys are a lot different from just sending the resolution of every player
so you cannot really compare it.
So the new system will allow me to avoid conflicts present with the hint system that can result in UI overlapping and crowding?
you can make UI in unity and use that as a reference
base 100 so 100, 75, 79
The parallel is that they're both client-sided information that would be nice to access from the server
again, you will not get player resolution
And I assume you say that because ^
neither localmutes
but a mute system for speakertoys could ofcourse be considered
Oh that's odd I thought you guys added that to your internal git tracker
being able to access a persons localmutes is not the same as mutes for a speakertoy
^
This is an imported suggestion in your internal tracker that I was told was the idea to be implemented to allow speakertoys to obey by client mutes
it being on the issue tracker does not mean it will actually happen
being able to access local mutes is not something i want to be added to the game for security reasons
i dont mind some kind of tooling for muting speakertoys
but "check if player has me muted" is not something i want added to the game
So we're getting no functionality for SpeakerToys obeying client-mutes? Cause the other suggestion for it was closed on the GitHub and removed from the internal tracker
again, if you actually read what i said
i dont mind any kind of mutes for speakertoys
but i will not allow the server just having the list of players another player has muted
And you should read what I said cedric, david told me other ideas aren't on the internal tracker, meaning this is the only viable option
And he told me this was the idea that would be moving forward
You were there for that conversation my man
I do see the point tho for example there's a text chat plugin and that would allow that to be muted by players as well. Maybe as an event?
i will have it changed then
i find the potential grounds of servers abusing having the localmute list too great
hm ok
I dislike this argument
you are free to have that opinion
cant mute moderators 🤖
Not sure if you've realized yet but you're not the studio programming manager....
And that matters why?
I'm expressing my opinion on the matter because it directly involves what I can do with my server
If they're making changes (or not making changes) that affect me, I have a right to express my discontent with it
I matters because it makes your opinion matter relatively little compared to the veto of ced

And a big part of my issue is that earlier he agreed with another person on the LabAPI team on making this change
And is now veto-ing it because of his personal objection instead of after a discussion with the team as a whole
They'll sort it out internally
again, like i said i dont mind adding some way so you can mute speakertoys, thats perfectly valid
but accessing client mutes will not be how its going to be added
Because you personally feel that the potential for abuse is too great, and I feel like I, and others, would have to disagree on that point, and I think it's bad that you're vetoing it without having some kind of discussion with other members of staff
^
It was but it was removed in favor of giving access to client mutes
me rejecting an idea does not mean it wont be compromised internally
^
could make that mandatory tbf to ensure devs respect it
and then playerless go over server.host
please do not take the private issue tracker that can change at any moment as gospel
atp just allow null
updates can happen and you wont see them unless we show them to you
i think its the "makes sense"
sure, and my opinion can change too
true
after thinking about it i do not want the serer having access to a clients mutes
i have a suggestion, delete readylist
I'm not. I'm taking the word of you and david from our earlier conversation, where he said he thought the potential for issue/abuse with allowing access was low, and that he would rather move forward with the access, and you agreed
You now vetoing it without even discussing it is disheartening
no
its a great suggestion
dnied
weird way to spell accepted
banned
im going to be very upfront about this, i do not need to discuss
i have said few times already now, we can explore alternative methods to achieve what you want
I'm certain that if the assistant security director vetoes something on security grounds there is little chance throwing a tantrum will change much
but what is listed on that issue is not how it will be added
Then why were the alternatives closed and removed cedric
Setting back progress on it by further months
I want to see something done not this constant back-and-forth and personal vetos interrupting any kind of movement on issues
I'm sure you can appreciate that viewpoint
i can, but that does not change the fact that i will not allow the server to access client mutes
i have told you already i dont mind alternatives
that there is no issue right now (that you know of) does not mean that that wont happen, you are assuming it wont happen

when i tell someone X idea is a nogo
they will go ahead and evaluate the concerns that lead to the feature being concepted
and come up with an alternative that we are all happy with
but as the issue tracker is private, you will not see that until the feature is released
What I'm saying is that you guy decided on a solution, removed alternatives, and publicly said you were moving forward with one idea
You are now saying that because of your personal objection, you will now no longer be moving forward with idea, and will now explore the alternatives
From my perspective, this is highly frustrating
Just get something done man
when it happens is up to the api team, not me
i am simply rejecting the current concept
which, is still a concept and was not assigned to anyone
so no "progress" was lost
you are misunderstanding my statement

if nessecary i can veto game implementations
when something is implemented, is up to the team its for
I don't mean to be an ass here I just find this whole situation really fucking stupid
ced i think ur digging urself a hole big man
😭
embed fail ❗
I resent the idea that you decide to veto something that was already agreed upon based on a personal objection that members of your team have publicly disagreed with, after already having removed all the alternative suggestions
This is probably part of why shit takes so long to get done this is ridiculous
clowfish ai
again, that i am now vetoing something does not mean these alternatives also wont happen
i litterally told david what alternatives he could aproach when i told him the idea isnt happening
I understand that, I'm saying that you have now set back progress because of your own personal feelings that you have not expressed at all since these ideas were moved to the tracker and the others were removed
You seem to misunderstand, it is in this context less of a personal and more of a security objection to that specific implementation, as that is his job in NW...
me? 🤡
omega bruh
elemao
I say it's a personal objection because others on the team have disagreed that it's a security concern
element ambient occlusion
puffer cat
He's the sole reason why it's not happening
It's personal

you can already do that
There is a valid concern on why security doesn't want to do that
base game buddy
every server you try and join, captcha
"i want it native"
The alternative ced send me they are ok with and is something that will solve your issue aswell
make opening doors have captchas too btw
My point is that you say it's a valid concern because he said it is
Lol
How to differentiate between damage from Tesla and falls from height if they are both UniversalDamageHendler?
Id
Idk I havent read the chat here
labapi maintainers represent the labapi team
I represent the security department as one of its heads, i am not part of the labapi team
This is not personal, simply after the initial discussion i realized the potential of the server having client mutes would have
So now that i have realised that, the idea was veto'd and alternatives were presented
they have different id
Just joining in
so actually, what is the issue with sending client mutes to the server?
is it undisclosed or are we allowed to know
You're reclarifying the situation but this was already as it was understood
can't tell you bub
universalDamageHandler.TranslationId == DeathTranslations.Falldown.Id
there is potential for a server to abuse the fact that they have this
sure not every server may do so, but some may, and that is unfortunately how it is sometimes
i disagree with allowing the server to see who someone muted
How would they abuse it
Just entertain me on the idea
harassing a player based on who they muted





