#plugins-dev-chat
1 messages · Page 121 of 1
thats what im saying
don't worry
hope you have a great night
Going great
just don't drink too much
I also think it's weird that mirror is having such a problem handling destroy messages for like 10 objects
Oh nice
Yea
see
Why would Mirror struggle so much to handle a small amount of packets
If I worked at NW I'd be blackout drunk right now
It just makes little sense to me
AHAHHAHAHAHAHAH
idk
It's not handling just your 10 messages
but i've seen its a problem
You have the entire game on top
thats true
And SL abuses network messages like crazy
its handling the guns
For everything
autosync
Which is insane
Everything is a network message
rats that don't work
Crazy
SyncVars are barely used it makes me cry
audio messages
So what's the deal with syncvars and network messages
I know very little about them
idk client side?
Unreliable
CurrentSample sync var
because who tf wants to listen to that audio
What
RPCs are remote code executions
You're not supposed to do stateful stuff with them in most cases
???
SyncVars are networked properties, Mirror handles sending them when they change to clients that should have them
With proper filtering the networking side would be a lot lighter
Idk if Mirror does the same thing Unreal does with networked properties where they're unreliable and only updated for clients at an interval
Meaning if the server changes the value of a networked property multiple times, it doesn't send it multiple times
Just the latest value when it networks the property
etc...
The main thing is the syncvar sends delta messages and network messages don't, right? So it requires resending all the data rather than just what's changed
yea
Yeah mirror does that
It also doesn't resend a message if the info is the same?
For networked properties, Unreal operates under "eventual consistency" where the client will eventually match the server. You won't get every value the server had if it updates them too fast, making it cheaper for bandwidth
I thought you meant AudioMessage
Would have to check Mirror's source, but that would make sense.
Unreal sends the property again if the client doesn't ack receiving it
Correct
If the value hasn't changed on the server
God damn I hate this game sometimes
Hence dirty bits
Mirror client can request the message again if it's reliable and the message number mismatch or something
I just wanna be able to destroy an object and have it fucking destroy
Why is that a big ask
Basically
Early server builds don't get told w pings in game announcements
Its said in server host announcements
Why isn't it destroying 😭
I don't know! This is just what I've been told
i think its the same issue im having
remember
that you even saw it
happen
.
Too many destroy messages = nothing?
I love discord sm
nor register it
Fun
Guys just parent your objects
in my case
The thing is I'm only sending like 10 messages and it makes me sad that it can't even handle that
It's not that difficult
mirror says "its already destroyed"
What would this do for me
but i do see it
All my waypoint toys are moving in separate ways attached to separate players
For you it wouldn't
😭
What if the waypoints overlap
Then fuck me I guess
I have no other way to smoothly move a player
Well besides changing their gravity but then I'd have to put them in the air and that sounds really stupid
I made a LabAPI request about it
I guess what you could do is
- Fake sync the priority, player's own waypoint would be like 479399
- Patch the DistanceTo method and return some very small number if it's to the owner
(Random number for dramatic effect)
What if I just fake sync the existence of the waypoint toy
Wait no the server still validates
How does this work
Also you know
I have never seen SL use a sync var
That's odd, right?
Big priority = it'll be used over another waypoint if overlaps
Oh dope
But wouldn't it be validated by the server
Like if the actual priority is smaller the server would say the player is somewhere else than the client says
SL really needs to have validation for things like fucking destroying objects
Seems pretty important to me but idk
Have the client send a response to the server acknowledging that it received the message and resend it if it didn't or some shit
Or maybe don't clog the bandwidth
destroy should be on the reliable ordered channel
idk what goes on, inside mirror brain code
but sometimes stuff doesn't get deleted
even tho i do scream to delete it
i haven't experienced that myself
I fear I may be experiencing it currently
That's why you patch
I can patch that?
until very recently almost all mirror network traffic was going through the reliable ordered channel(this includes stuff like movement/VC, which is bad btw) the only exception was the timestamp(cound have a different name i forgot?) message that mirror sends constantly
Wait mirror intentionally doesn't send the message?
And instead of thinking to delay it and send it later it just... doesn't send it?
Dirty bits are used to determine which values changed and only those values are sent to clients
Then it clears the dirty bits
So if you don't change the value on the server, it won't be sent to the client
Yeah but my point stands
You're saying that I can emulate what the client does
If that is possible then that means somewhere along the way, Mirror is choosing not to send my message
Rather than the actual packet being lost or dropped
Because otherwise you wouldn't be able to figure out what packets are lost
By patching the SqrDistanceTo method
You don't set the value on the server
I'm so confused as to what you're on about
I'm saying if destroy messages are being lost, one option is they should have a handshake with the server to validate receive and resend the message if not
You're saying I can do that
I'm trying to explain the questions I have about it and you're giving complete non-answers
I don't really know how much clearer I need to state my comments and queries
I apologize if I'm coming across as rude but I keep having the issue where I ask a question and someone answers it in an authoritative manner, but completely doesn't answer my question
It's happened multiple times in the past days
If I'm wrong about the relevancy of what you're saying then elaborate past some surface-level comment
i think the premise that they can be lost is wrong, something else must be going on, although not sure where to start as im still downloading the vid you sent ealier and havnt seen any code. i assume you added logs for the destroy messages your sending, could i see the code for that?
The problem I'm having is that players are occasionally having issues with glitching around
I've been told this is likely an issue with a stray WaypointToy
The problem is I destroy the only WaypointToys I create, so the only way that is the problem is if the WaypointToys aren't correctly being removed by the client
So it's either the WaypointToys for an item I have aren't destroyed properly or there's another different issue causing players to glitch around
i see
do you spawn any doors dynamically(i.e. spawn/destroy them after map generation)
ahh i just watched the video
its not anything todo with what anyone here is saying
its a base game issue thats known about
and its probably todo with roles not disabling on the client properly(which i think there was a fix for 14.1.4?, would have to double check that)
Ahhhh gotcha
I appreciate it a lot Riptide thank you so much for helping me out
no worries
Cheers to that
Yes indeed you can say what is the interval to send if you got dirty.
Usually mirror recommend 0.1 (i think?) for movement stuff (and usually others cus 0.1 is kinda the same time as destroying gameobject
NetworkTime
I thought we was talking about the waypoint thing
Making the waypoints actually per-player
Grape
🍇
OHHHH okay yeah alright
Hopefully it's fixed in this update (probably not)
I mean honestly I'm holding out hope
So waypoints don't shit themselves when deleting
which one
SpeakerToy volume being allowed to exceed 1f
Just gotta wait for approvals (2000 years later) 
ah
Yeah that's huge
If only I knew a week ago that it'd be implemented

Lmao same
I had to learn Opus Encoding just to decode, increase the gain, and then re-encode
I mean gain and volume aren't exactly the same
they shouldnt, im not aware of any bugs related to that
Uuuhh
So I still have more options
tbh you could always spawn multiple speakertoys with the same controller id to increase the volume 
Thanks for the idea for SqrDistanceTo @upper vapor I'm writing myself a note to check it later
yeah xD
#plugins-dev-chat message
I was referring to this, not sure if it's got anything to do with what I said xd
It really is greatly greatly appreciated
base game issue is todo with disabling roles
Np
Huh
which is client sided
role fails to disable, causing it to be linked to a waypoint when it shouldnt be
it has nothing todo with destroying waypoints, that works fine afaik
It's funny cuz
I didn't really notice any difference when multiplying samples myself vs using the volume property
I spent hours implementing an apparently realistic volume control
Ah alright
Yeah I mean there really isn't much difference
It's pre-amp vs post-amp essentially
how would it even fails to be disabled?
The only difference is clipping
Ik it's not supposed to be linear but like... 😭
It sounds the same
not sure
What the helly
What formula is the conversion
Cuz I've only seen logarithmic operations which seem... not.. correct
what are you trying todo exactly
Amplifying speaker toys
Decibel conversions work on a logarithmic/exponential scale
just multiply each sample
you can use decibles if you want, all its doing is finding the factor you multiply by
I don't want decibels though
your mixing decibels(which is concept for determining how human's preceive sounds) and amplification which just an algorithm. these are seperate concepts and dont have anything todo with eachother
The way the human ear perceives audio in terms of multiplicative loudness is generally very broad
Volume and gain do the same thing, just one applies pre-amp, and the other applies post-amp
My volume control isn't in decibels though
It's a stupid 0-100% range cuz that's what people are used to
yeah just multiply that range on each sample
you dont have todo anything relating to log or what ever
^
Volume and gain apply the same way afaik
Then what's this
It's the difference between volume and gain
Maybe I'm talking about a non-issue
Volume and gain are essentially the exact same thing
The only difference is one causes clipping and the other doesn't essentially
And dw it happens to the best of us
Me when decibel scale is logaritmic
Me when we don't want decibels
Then use volume markiplier
Xd
the BITE of 87'??'''
zero, are u avlbl?
Övéjlöböl
oh yes, I got the same fucking issue as the other guys who made multiple command handle on the command
😭
14.1.4 issue too
What do you mean?
to test
to test what?
if my fake role sync even works
Ok
i have no problem
but 20k for qa testing

(im joking)
I rarely set up commands to test features
I like to tie them to basic events (like PlayerShotWeapon or otherwise)
I have to test stuff to actually know it works
Same
But like for fake role sync testing I just had it activate when a player shot a weapon rather than having them run a command
Allows me to test faster and easier
Especially when using dummies
I think setting up a command for it is doing too much
david
slejmur
even labapi has this bug 😭
skull
I dont remember any of you submitting an issue about it
i do my commands manually so im safe 
bc u writing it rn
?
I recently got into this and other people had this issue but i dont know if they reported it
i guess not
What bug
Wha
Lemme read the issue
Oh it's not open yet
I have no idea what your problem is lol
Use my command system 
Oh gotcha
We need to have some developers go back to English class so they can actually articulate their points outside of like 4 word sentences lmao
Yeah interesting I've never noticed that
you say after you didnt get the client release the same time when the server goes to public branch so

I wanted to double check so I wasn't misleading 1000 people
I'm not going to apologize for doing my due diligence
If more people fact checked themselves we would have less misinformation in the world
As a newer plugin dev I wanted to make sure I was right in my assumption that a LabAPI update means a new game release because I expected that if they were correlated there would be some kind of announcement to the non-developers that there will be an update soon
In short, L bozo at least I know how to articulate my points and double check information before spouting it as fact
Nuh uh uuhhhh
❌ notifying everyone ahead of time
✅ NEW RELEASE!!!1!1!
On the original topic, I'd be interested to test it myself because the in-game commands use multiple CommandHandler attributes and afaik they work just fine
yes but ingame doesnt use the labapi command loader
So why does LabAPI use a different system?
Why not recycle the already working shit
99% sure basegame auto creates the method calls needed
to register
which doesnt work unless every plugin also creates that
So will you do command system like DSharpPlus has?
Would be pretty epic ngl
Like auto parsing the arguments
@slate flume
Like my soul
):
Oh so it manually registers all the commands
Still leaves the question
real
base game also doesnt support using the attribute to register to other parent commands, only the base handlers work
it uses source generator afaik
Thats auto generated during compilation btw xd
Why not just Instance.RegisterCommand(command)
weaved
Oh
So it uses reflection
No
Its auto generated
after compilation
Just like mirror generates its own stuff
command system does this
add ?
possible null return
I'll get around to that sometime with source generators
AFAIK Eve is already doing reflection-based auto parsing
we dont talk about it
its horrifying
HI RIPTIDE
I double commented because this wonderful github mobile app decided to show me "discard changes?" So I pressed cancel, pressed save and saw my comment being added for the second time
At base game compilation smh
ya
im very disappointed in you
what and where did u do
also your a certified sir-yapalot now
I'm FLIRTing, blame Bicske alsó
ermmm
Yes
oh i gotta rewrite my scale patch
scale deez
#ihatenw
Your doing what

Xd
is it time to just throw null ref exception
Have they added the missing IsDestroyed property to Player?
i dont know
yes
yipee
its all fineee
How does that work
Yay
Magic of .... something
https://github.com/northwood-studios/LabAPI/blob/master/LabApi.SourceGenerators/LabApi.SourceGenerators/EventSourceGenerator.cs prob similiar to this
Black magic
No base game doesnt use source gens
Pretty sure that doesn't use source generators
It should
They are cool :3
You should try KISSing :33
That seems really fucking stupid
I did already
well apparently thats not what it is
Uh no
OMG LETS GO
THEN EXPLAIN IT CAUSE THATS ALL PEOPLE ARE TELLING ME 😭
Source generators generate C# files (ik, crazy)
Base game uses assembly weaving which is some black magic I can't s much about
I was told it works like https://github.com/northwood-studios/LabAPI/blob/master/LabApi.SourceGenerators/LabApi.SourceGenerators/EventSourceGenerator.cs
And all that does is essentially create a text file manually and then registers it
Mirror does that too
What the fucky
Its like your favourite
Why does it do this
CustomNetworkManager?
Generates that register commands method
why not
Because I feel like there's much better ways to do it
instead of writing all the new Class() you just create the Class
Tell that to old unity that didn't have source generator support
That part makes sense, the code David sent seems overcomplicated for no reason
Its not like its gonna be rewritten or anything
I think its pretty straightforward
The LabAPI stuff makes sense because it's an easy way to register events and things

Are you serious or joking
I'll rewrite it
??
Find classes which implement ICommand, get their handler, in the parent command handler write the RegisterCommand() method body with all the commands
It's literally that shrimple
Yea
If it's that simple then why is it doing all that
Because how else you want to do it?
I've written reflection that's as simple as you're describing it and it's nowhere near that long
is that runtime reflection
Yeah but you have it at runtime
ya
It's not that simple actually
We are weaving it
Fucking hell you're right
Why did the command handlers need runtime reflection
reference?!
Where
Surely there's easier ways than relying on runtime reflection
that isnt runtime reflection though
im saying what YOU do is runtime reflection
No it's compile-time "reflection"
^
I'm gonna crash out
looks at the second half of the method
runtime reflection
its alittle hard to explain but its the "Weaver" stuff thats taking all the space
I'm just
I LOVE WEAVER
its essentially inserting IL into the DLL
yes
I know I had it all wrong
Weave (waive) my rights
thats what Mirror do too
But surely even for the time there was an easier way
maybe, although i doubt it cause unity sucks
Remember to manually add the command to its handler 
this is the solution OR
do runtime reflection
Or don't have commands
Ig I've just never done compile-time reflection
How does one get started with learning compile-time reflection
I think it's better that way
You probably shouldn't
Source generators are better and not that hacky
like .net8+
well you cannot swap method body
and those stuff
I hate when people steal my types and put it in their assembly
what
You can (interceptors)
And if your solution isn't stupid then you can just generate the override method
what is your types?? you never talked about it
Fody with its assembly weaving
Stealing the types and merging them into the output assembly
Sometimes it's useful but like
Bruh
So what's the advantage of compile-time reflection vs run-time reflection and why not do it like LabAPI did it with their source generators
or whatever but in latest you can write weaving with fody
This is all kinda new to me
Does mirror literally copy the types from one assembly to its own?
Unity didnt support source generator
Also compile time means run time doesnt need to do all the reflection
Faster but shit approach
For runtime performance at least
we love performance
If we had NativeAOT support it would also solve trimming
as i understand it, using reflection in unity is really bad for the GC
as reflection types never get garbage collected
so if this code is run on the client(which it is as some commands are client sided) it would be terrible
my weaver
But wouldn't it have been better to structure it using run-time reflection in order to support plugins better
Why don't you return an array instead of yield return yield return yield return yield return yield return (crazy)
thats for labapi not basegame tho
You are now maxlevel
also riptide said it
was testing so
it doesnt get garbage collected properly
Infinite power
fr
Yeah but LabAPI had to make a separate system because base-game didn't account for the plugin
it just a learning project
i still think basegame shouldnt use reflection

it will not have 2000% power in all aplces
So they should manually add each command?
They should make a source generator
That supports base game and labapu
Apu
-# karigeri
That'd be dope
(I'd make it for sho)
LabAPI does that with its stuff right?
There's no command source generator as of yet
Still reflecting 😔
they do for CustomEventHandler
are you talking about the Source ENGINE?
Imagine if we got InitializeWrapper and we could install it as a nupkg
(No more CallOnLoad)
Vine boom bass boost
Source the funds
So for my own plugin registering custom items and things, would it be better for me to change from using run-time reflection
Don't insult our lord gaben and the creation made by him
yes
itd be a bit faster
but you also dont have the Unity GC issue with reflection afaik
you also have less types than SL
Is it really worth it
To do that for startup time
Source generators would probably make more sense ngl
Startup time of the server is like the last thing I would take into consideration when developing plugins xd
I mean if your shit somehow halts the startup by seconds then...
If its by seconds
There are issues
from my server to 1m to 5s
its skill issue
or even less
Yeah xd
never counted it
Me when my disk shits itself and delays startup by half a minute (unity moment)
"Type hbctrl to abort"
> hbctrl
"Heartbeat is not active!"
And it gets to waiting for players 0.1s before LA receives the heartbeat so it restarts still
wait what happened to beryl?
beryl is no longer the head of labapi
lel
lol
beryl never was afaik
cedric was
but then jesus became it
api team lead
Actually, it's planned for 15.0
And it should have at least been split up into like 10 methods
"back in my day"
Yea
Anyways if its planned then good
🙏 hope that future SCP: SL updates bring QoL features for plugin devs (such as multi-layered hint capabilities or custom UI elements)
just remove hints alltogether
Hints are okay, but I feel they deserve a rework
i feel like they need to be nuked and replaced with Proper ui methods like rust
as much as rust is a dogshit game they really cooked up with modding
rust ui isnt good either
i know but better than sl
for sure
a system like that is cool

labapi
what if you do exiled
i dont have exiled
but what if you don't have it and still running it
will it run
and install itself
yay
nah, who stripped this when fixing #76 (https://github.com/northwood-studios/LabAPI/issues/76) 😭
Idk I think it'd be cool to optimize it
@celest thorn I went to Italy and I'm in a taxi leaving the airport
It was so comical we hit the highway and passed a car on the side of the road that was literally on fire
Most normal day
Ngl its so common
I don’t even think its that rare
I’ve seen alot
Heat
Ok then the guy was stupid
Thats it i thought you meant peak hours in a city
Then yea thats going to be hot
Its not common at all but i’ve seen 4 times happen in my lifetime
I'm gonna buy a raccoon and place it in front of your door
We don’t have racoons or else you would’ve seen me pet one alreqdy
They look so cute :3
No offense @celest thorn but Italy looks like it's in terrible condition
It is
I do not take it as an offense instead it makes you think
I'm seeing lots of police, graffiti, run-down buildings
Yea thats italy
Most of it
Just one part is for tourist to see
What happened man
Most of the buildings especially on the south are from the brutalism era
And people made graffiti on them
But none cares really
Only the nazi and fascist one are cared of
But yea if you wonder 99% is because the government doesn’t really care much about roads and anything else
I've hit the tourist side of things and I'm seeing a lot less graffiti and many more people walking around with backpacks and caps looking like tourists
There's also like flowers and plants and shit over here
because you are in tourist areas or nicer areas with politician inside

some funny story a politician transfered in one road in our small city and the road got fixed 1 second after he complained
that same road killed 2 people
but who cares
This feels kinda dystopian ngl
I'm in a taxi, the driver is playing Manchild, and I go from seeing a ton of graffiti, run-down buildings, and other shit, straight to these posh buildings and gardens, tourists in fancy clothes, and lively cafés
depends where you are
and which places of the city you are in
for example old catania looks amazing but full of graffiti
Anyways @celest thorn have you ever done compile-time reflection
wdym?
like searching up stuff
source generators
yeah just make a source generator
better than weaving imo
you can inspect the exact C# code generated
though if you really wanna mess with IL then go for weaving
Fire
The reason it wasn't used in SL is because it's .NET 5+ right?
yeah back in the day yeah
because unity spared us
realy easy tbh
just choose first to use unity to weave or normal c# project
Amazing question i recieved in my website while testing with you was
"Are u a femboy?", so for the random guy / girl who sent it, no
😭
I don't use Unity
I don't even have it installed on my computer
Never opened it in my life
You do have unity installed
small part of unity
but still
I have C# installed
then check for Fody and Fody Weaving
I can give you some direction tbh
I think?
That sounds amazing actually
Should I do assembly weaving or source generators
Tbh I'm kinda tempted to learn both just for versatility
think what you need
Weaving can enable change stuff and inject, src gen only able to edit what you already have
for exampl
Use src gen to create Invoke places for events
use weaving if you wanna fuck with IL
Hm
Well all I want really is to parse the types in my assembly, instantiate certain ones, register events handlers for others, and then add them to a list
Cause I want to replace my plugin entry run-time reflection with compile-time reflection
Optimization and such
Maybe not a huge difference but I think it'd be cool
This is surprisingly elegant
Check out my courses: https://dometrain.com
Become a Patreon and get source code access: https://www.patreon.com/nickchapsas
Hello everybody, I'm Nick, and in this video, I will introduce you to a new C# feature coming in C# 12 and .NET 8 called "Interceptors". It is a very interesting feature that might look very weird on the surface level but...
another drawback of weaving is that the IDE doesn't know about it
same with scr gen
it does
C# has videos about it????
you fr right meow
visual studio issue
soo... it does show?
ye i throught about actually calling smth with it
aint really care tbh
as an individual think what u need and what each of them can support
if you wanna swap or fuck with il do weaver if not scr gen
insane ik
pro unity tip: don't use GetComponentsInChildren on a parent that has 30K+ children in total
lmao
thats something i did too
imagine doing that with 3M objeccts
nah never will happen
hey guys, it's me again, your favourite. got a new question <3
I'm trying to select a random item from a player's inventory. how?
that should work, what’s the error?
Argument type 'int' is not assignable to parameter type 'ushort'
oh its trying to get item based on serial
use .At() then maybe
try Items.Values[index]
Cannot apply indexing to an expression of type 'System.Collections.Generic.Dictionary<ushort,InventorySystem.Items.ItemBase>.ValueCollection'
maybe .At() or .ElementAt()
hm .ElementAt seems to work
extension moment
Dummy.CurrentItem = Dummy.Items.ToList().RandomItem();
true
too easy
@unique crane when is scale reset on a player 
Good tips is never used GetComponentsInChildren if possible
When FpcRole is instantiated
turns out i did this like 13 times in one frame (not every frame)
um
about that
public FpcScaleController(FpcMotor fpcMotor)
{
this.Motor = fpcMotor;
Vector3 vector3;
if (!FpcScaleController.SyncedValues.TryGetValue(this.Hub, out vector3))
return;
this.Scale = vector3;
}
it just sets it to what it was set to
Good tips, make a system that auto just spawns them and announce themselves
Because new instance
Yeah
no it gets the old value
and then sets it to that old value
how are you doing yamato?
That change then
yea its a change
then you need to find the parent or make an event
Just pass on the gameobject
which is why i pinged david
Yeah i have''t look for this update
or the component itself
public static readonly Dictionary<ReferenceHub, Vector3> SyncedValues = new Dictionary<ReferenceHub, Vector3>();
public Vector3 Scale
{
get
{
Vector3 vector3;
return FpcScaleController.SyncedValues.TryGetValue(this.Hub, out vector3) ? vector3 : Vector3.one;
}
set
{
this.Hub.transform.localScale = FpcScaleController.SyncedValues[this.Hub] = value;
if (!NetworkServer.active || this.Motor.Hub == (ReferenceHub) null)
return;
new SyncedScaleMessages.ScaleMessage(value, this.Hub).SendToHubsConditionally<SyncedScaleMessages.ScaleMessage>((Func<ReferenceHub, bool>) (n => n.authManager.InstanceMode == ClientInstanceMode.ReadyClient));
}
}
public FpcMotor Motor { get; set; }
public ReferenceHub Hub => this.Motor.Hub;
public FpcScaleController(FpcMotor fpcMotor)
{
this.Motor = fpcMotor;
Vector3 vector3;
if (!FpcScaleController.SyncedValues.TryGetValue(this.Hub, out vector3))
return;
this.Scale = vector3;
}
actually why is Motor a set?
its never set in basegame other than in the constructor
i'm not doing that for different kinds of components that share one base type
Oh wait
i remembered i did push something on meow
for doing that
but i never actually do it

Spawnables = Object.GetComponentsInChildren<SpawnableInfo>();
this is what i do in meow
lol
nah
i just realized w my scale patch i can just return ev.IsAllowed now
WHat the fuck did i just watched
since no bug fix needed
you didn't know this meme
not very new but like
omg
makes me go xd
i need to check if scale is actually broken but i see 0 resets on it
and thats so weird
since it wasn't required to reset it this entire time
no i didn't ;(
eve, what u want
nw changed the scale thing
although it seems to work fine
wait
nw please don't change it
loll
lel
@limber silo this is the sort of change u want to announce and put as required for devs to handle now
😭
rn its just "fixed sync issue with scale/gravity"
when you create the ScaleController first the Scale should be One as defualt
yes its default to 1
but if its ever changed its never reset
this is a change from before
before new role = reset
well ye
this is new in the update
so itd be cool for them to achknowledge it in the changelog that plugins will need to adjust
(i never changed mine from the exiled days so im fine but yk)
ye i set scale 0 zero back too
Yes
because the new role sync required me to rewrite both systems ofc
To work properly
so Scale is not more reset ? everytime you change role ?
correct its not
that would be really good
mhm
COOOL
gg
Some people like it
some dont
Honestly
Lets just keep it this way and never touchy it
my opinion it's FpcRole should be kept on the Role
and Player should affect without being affect by role changed and it's wasn't possible for me On Exiled to make it because LabAPI was reseting everytime role was changed
and anyway if people want it reset at every role changed it's VERY easy to make
the opposite is very hard
True
omg jesus sending announcements?!!?!
that being said
announcements of releases should specify the SL version its intended for
whether it be disclosed in the changelog or the github release, idk maybe both
14.1.4
ya
guh
@unique crane can you share or is this confidential? 👉 👈
i ate the code
idk
i was!
Yeah its eve's fault
itd be a waste to not finish it all
I dont think nickname stuff should be ifdeffed lel
@unique crane i have an question could you fix the Generator State None not being 0 ?
for the Enum
How is that an issue
it' never to None value
but always at 0 if nothing have happenned
wdym
guh
i guess they are saying that somehow the enum value goes to 0, even tho there is no 0 flag
None = 0 should be the good way
because it's never set to value 1
and even setting to 1 would be kinda weird
(also do not modify other value)
i don't want breaking change
it will be breaking
nope
since Unlocked would be 1 then
bro
yeah changing an enum value will be breaking 💀
theyre saying unlocked stays at 2
^^^^^^
only change None which is NEVER used
ya
priority none issue xd
p10 issue
p-1
but when you do cast it it's would return 0 instead of GeneratorFlags.None for plugin
so generator.GeneratorFlags is GeneratorFlags.None don't work
because it's never to None
hm?
that no breaking change
i mean itd mean that anything that wasnt working already would continue not working
it wouldnt break anything that did work and would fix a bug
2nd solution
changing an enum value is a breaking change technically, no matter if the value isnt used at all
is to set flags to 1 on creation
THAT NOT A BREAKING
That a breaking
it is a breaking change?
no
because None can't be used
and people that used it only enable a flag that is never used
I don't really think you understand what a breaking change is then but ok
a change that breaks something
i do perfectly get what is breaking change
Fill issue about it on github
i don't have time to fill up it rn
while yes plugins that do check for 1 will need recompile
but for those plugins to work they need to check 0 regardless
hence (GeneratorFlags)0 is required, yamato is asking for this requirement to be removed
and checking 1 is wrong
because default is 0
and modifying default to 1 would break it for real
either default it to 1
or change enum to 0
would it?
true
however i dont really care what nw does of the 2
i dont use it
but itd still be a single digit change
💀
I've gotta back bro up on this
Is it a known issue that LightSourceToys can be seen in reflections through walls?
yes
It's on LabAPI/SL issues tracker already?
Lovely!
The funny thing is that this came from a rally for Minnesota (the state I live in)
when posting plugins on plugins.scpslgame.com add dependency plugins also if these are on website
I think i added mine to it that has deps.
Check SimpleCustomRoles that should have the LabApiExt as a deps
nice
Has anyone tried the new feature that hides players from the spectator list?
does it work?
p.EnableEffect<MovementBoost>(50);
Timing.CallDelayed(10f, () =>
{
p.DisableEffect<MovementBoost>();
});
It doesnt work like this the effects right?
Like for making the effect longer
Why do you call delayed the disable
EnableEffect has a duration part
That is what im asking
Use that ya
@limber silo @unique crane Player.IsSpectatable does the opposite of what it's supposed to do
i.e. I set it to false, it calls SpectatableVisibilityManager.SetHidden(this.ReferenceHub, false);
Meaning not hidden

Lel

