#plugins-dev-chat
1 messages Β· Page 92 of 1
Bro take a break from fucking plugins
you wanna talk abour radioactive water'
WHY NOT
Oh lord they fucking supporting
Says you
you made this sound like a bad thing
π
Idk why I typed the f word
im finding the ss
ok buddy
But I'm not gay gay
Yes I'm sure
Are you sure secretapi is finished
Never
You don't have to be sure cuz you know it isn't
in a while....
(Wip commands)

please do not send nazi groups in this server
NAZI????
Yes
no no not the racism one
Bruh
PAISLEE
i cant believe this
what has happened to u
not a lot
eve cant go one day without this tomfoolery
went down a dark path
exactly..
its so over..
@mild ice this is defamation pls ban
@mild ice eve is defamating us pls ban
im not the one saying a special group in chat
I don't have the joever emoji anymore :(
@true cedar i need help !!!!
what is this double standard bro
you can get us banned but the other way is just unacceptable
with what
screams
Step 1: don't
Uncached reflection π
o4-mini-high
thats fine
its a wip

the first step is having a working project
thats not fine
Are you high
even for wip
the 2nd step is performance
Or Llama distilled
it is 12 in the morning
why r u
why would i be
why does commandresupt
oh no!!! the wip is a bit slow!!!
have the method to call
"Morning"
I DONT KNOW.
Yes...
You call noon morning
o4 mini high and codex are starting to get pretty good
oh
she lives in the usa
when its parsed i need to know what method to call with the right params
Not a reason to say "morning" to 12 pm
ive paid for premium since like january and the models it gives are worth it currently
agent is insane too
so itll pick the right one based on input
heres what i would do
make like
for us its still morning we say morning to people
a [Execute] attribute
i would CRY!
I wish 
until 1pm
"12 in the morning"
ur so right
thats how english works
Pai ur the best
i still need to parse input into the correct method
and I HATE IT
then u can have like
[Execute]
public CommandResult Execute(Player player1, Player player2)
ya!!
1 pm is afternoon
12 pm is noon
Before that it's morning
Execute deez
this needs to be renamed actually
we just say morning lol
its internally for the parse of a specific method
yes but proper english is either "12 in the morning" or just "noon"
i didn't make the rule in italy
i think
im sorry
i forgot
"We" Italians?
Im talking about i say morning
Skull emoji
Good morning at 12pm
for enums u cna just do like
bruh
enum.parse or wrv
Culture is stupid
good morning
you are stupid
Morning
good night
its 12:16 right now
@hearty shard also if u want c# supports attributes on arguments so u can do like
in the morning
Yeah that's not 12:00:00 pm
so
IT'S AFTER NOON
good morning
It's not good
public bool Execute(Player player, [MaxLength(32)] string text)
Just morning
it is only a morning now
It's literally
P M
POST meridiem
i didnt put an S at the end here
oh
attributes
ok
Skill issue
fix it
so after 1pm
ill make the breaking change later
okay
12am in THE MORNING
but also do this
"12 in the afternoon" is just incorrect
ok!!
12 pm
12 POST M
Bruh
Isn't commands already breaking change
That's midnight
good morning
12 am
the first night
thats midnight
Because it's you
david you wanna adopt skibidi dog?
because axwabo doesn't
poor dog
I use 24h idc about pm / am
I hate it
i don't understand it
im sorry
anyways time dosent matter once you stay up long enough anyway
no
Calculate it yourself
You don't even know the 12h format works
i know it
12H format sucks anyways
12 am is noon
Real
12 pm is midnight
@hearty shard i would also recommend letting u set up custom parsers
so maybe if u define a class that is attributed with [Parser(typeof(Player))] it'll use that
12 PM
post midday
i dont think thats how time works
oo...
god
i kinda wanna make this
UR THE BEST
What i don't see why that a good thing to parse
player is just a placeholder
Or how would you use this
How about you don't
like
In real scenerio
user defined types
yeah!!!
Like execute(player, bool, string, ulong)?
i mean that too yeah
Player sender, Player target
maybe u have a customitem class and rather than using a string id every time
ill have so Player sender is forced
u just put it in the customitem as an argument
to give the sender
and then it automatically parses it and returns an error if it fails
Haha good luck, have fun with the method getting
?
huh
What if it's rare
Nah
Does someone know if i can disable an effect on the OnEffectUpdate and then reneable it because im trying to do an effect with the jumping but i don't think i can disable the effect but have that still running
oh wait nvm i can use update
and just disable the normal one ig
Does anyone have the unicode symbol, or html tag, or whatever, to make a linebreak in custominfo?
hm, maybe Environment.NewLine works
well my
customi Meow\nMeow just makes the displayed customi literally
Meow\nMeow, without any linebreak
Replacing it with Environment.NewLine doesnt seem to pass formatting checks. Didnt check error messages though, heck
.Replace("\\n", "\n"); works :D

how about <br>
also, \n should work
what should i use when to turn on friendlyfire and off again? on round win/end
are you running on windows
cuz windows new line is \r\n
^
Server.FriendlyFire
set it back on waitingforplayers
Well the console understands it, but it doesnt get set for the Dummy, so sth fails with the formatting check
probably ended, just to make sure
k
because in RA you literally type \n that's why you used replace
if you actually type a new line in RA it should work
I recommend Ending
At least when i try to do anything in Ended it just never got executed lol
huh
omfg
okay yeah use ending
ended is delayed by 1.5s
k
ima just use both
final answer
public override void OnServerRoundEnded(RoundEndedEventArgs ev)
{
ServerData.ResetServerData();
Server.FriendlyFire = true;
}
public override void OnServerRoundEnding(RoundEndingEventArgs ev)
{
Server.FriendlyFire = true;
}
public override void OnServerWaitingForPlayers()
{
ServerData.ResetServerData(); <--
Server.FriendlyFire = false;
}
there is?
rr command
Where is this code from? Just curious
RoundSummary
Just reset the data on round restarting
@celest thorn would you crash out if ur server was at 59/60 tps?
i don't
but maro does
https://ratcentral.is-a-good.site/π/c5ghp1b3.png
Btw is this too many primitives?
and we removed some maps too
That 1.1f saved me so many times
NO
lmao just do it
yes
Would maro notice?
probably no
No

but its via lying
0 downsides
Goal Description There is some plugins like SCP Proximity chat that make it so SCPs can speak in proximity. Really cool idea. The massive drawback of it though is that we can't get a value indi...
@unique crane finally got round to making the gh issue π
Making what?
look above
you know if someone has muted another player
Lets see
that's different
yeah
but nice
that's different lol
for the same purpose rly (yk having speaker proximity chat, but muted if a player is muted)
you know what
This still needs to be fixed lol
#1402403566932590722 this doesn't use speaker toys though
doesnt have the issue then i dont think
IsSpatial is not for reverb
But still one update they didn't
the update later they do
lol
i wanna change that
its horrible
Oh wait
From my suggestion the Waypoint Toy is from
i just realized
why was this changed from a constant?
it's not a constant anymore despite it saying so
some plugins depended on the constant to set RequiredVersion but new plugin builds will not be reliable
-# i know, i know, requiredversion is not used but like come on
Yes
Big change
you can see who hates who 
I also would like add volume slider for each player
eeehhhh
not impossible
but you need to use speaker toys then
Lel
reΓ‘l
Would be good if you can make them louder
Because sometimes I not hear people say anything even when im next to them
just fix their mic 
Ye personally broking into their house, slapping their microphone


Namely the fact that I started getting reports where people's gun attachments are randomly changing
And one user reported their magazine keeps getting removed from their gun randomly
No reports of that
can you replicate it on non-modded server
the what now
i have not seen that
although i only get 5-16 players
not above so if itts an issue with like 48 player servers idk
but CT afaik hasnt had bug report on it either
I've had issues forever where the sight picture keeps changing on my guns lol
Helo chat
Great question
I don't really know how to replicate but I'll look into it
I don't do anything with weapon attachments so it shouldn't be my end but I'll look into it
Same except for me it's been just the AK
This was what one of the staff members sent me
Sorry but I wouldnt be surprised if it was some plugin thing
Fair I just
Don't know what it could possibly be
This is the only place I touch attachments
The only other maybe possible instance is my hitreg patch
I never do anything else anywhere in the plugin with attachments
And this issue only started happening in 14.1.3
If I fucked with attachments in my plugin I wouldn't be talking about it here but I straight up don't
Attachments are per serial afaik so maybe you have multiple weapons with the same serial or something
I never modify an item's serials
I create items but I never modify an item to have a different serial
Do you by any chance replace a player with copying over inventory?
IF you copy items 1:1 to a new player, if you change the attachements on it, it'll change the attachment on the original owner's kit
like if you move an item from Player A to Player B
and Player B changes attachements, it'll be persisted in Player A's attachment settings
Nope :/
Never had any issues until now
This would do what?
Make a pr 
Would it be bad of me to make a LabAPI request that they change the way effects are handled
It would be so nice to have concurrent effects instead of single-instance
That way a player can stack movement boost effects
And that kind of shit
ur best off writing ur own system
The problem is
That's gonna require patching NW stuff
That sounds so awful
perchance
I might have to do that though
The only other way I can think of is creating my own effects
brights did something like that
But I don't think it'd sync
ya
u cant sync movement stuff
or other stuff
you can only do server specific stuff in them
you can make your own custom effects using NW's system
but yeah they won't sync
so anything that affects movement or well, clientside stuff, will probably cause rubberbanding
or just not apply to clients, like recoil reduction and all
Okay well
I think I got my own effects manager thing and it works in testing but I'm gonna have to patch a bunch of items lmao
My code also sucks
So there's that
what is it
already asked for it and honestly idk if itll happen
Syncing it would require making every effect thing have a sync thing and ik nw isnt rly interested in smth like that due to complications
its already been requested a million times lol
Wait til 2030
Yeah but like c'monnnnnn it'd be cool
how would you sync every effect
It would be, but the game's really not built with modding in mind
yea
like, yeah it has a modding api
but it's really not supposed to be exceedingly moddable
also nice color change
Can we just remake the entirety of SL
Go ahead
Funnily enough I'm working/planning mod-exposed effects for a project of mine
If you got free time ur free to
But then I'd have to learn a game engine 
yea
I will say it is a very complex problem to solve right
I'd have to check how NW networks the base game effects
i wonder if they have prediction of any sort for them
or they're just very lenient with the movement stuff
probably the case
Theyre synced based on their position
In array
nah i meant like
if the server applies a movement boost
the movement of the client (prediction) won't match the server
the stuff I use for my projects handles that so I'm not worried in my case
either way SL's movement handling for a shooter is a little... peculiar
definitely not how most fps games would do it
Check PlayerEffectsController::ServerSyncEffect
NW would need to rewrite a good chunk of the game to get it better
atp they probably don't have the time or money to do so
thats what tags are for
u can also just use 2 tags if u need to remove like specific text
still would be useful for remove by element ngl for my item system
thats what tags were added for
You give it an id and then remove that id
^
wdym
what r u doing
I tried using AddTime() thingy or smth idk and it wouldn't work so I wait 3 seconds and remove a thing which causes issues.
so it will remove randomly on accident

HEH
are u using v2
how much different is it?
i just figured out a fire idea for a car plugin
@spare zodiac do u mind if i bounce the concept off you?
I support this statement
Literally
Anyone who's looked at CustomLiteNetLib4MirrorTransport::ProcessConnectionRequest can probably agree
mmm yes let me look at the low level network transport code 
that isn't indicative of SL's state codebase wise
It's really bad
that's decompiled code
Fair point
I mean I'm looking at a ton of nested if statements
Variables that mean nothing to me
Just like
It may not make the code BAD per-say but it makes it really really hard to read
It's lost a lot of cohesion that I wonder if it's all because of decompilation or if part of it is that it's poorly structured in the original too
likely to be the decompiler
even then, who cares about the low level networking stuff
I got it cause I was looking into the Preauthenticating/Preauthenticated events
it is cuz it's one fucking method that's like 600+ lines
Real SHIT
depends on the method and what needs to be done
for low level stuff i'd rather do that than have additional method calls
especially for transport
someone who wants to modify it
tends to be a hot path and you don't want the overhead of method calls
"hot path" which is not that hot i don't think
you don't get a connection request every frame throughout the server's lifetime (hopefully xd)
depends Β―_(γ)_/Β―
if you're getting fancy ddosed, probably
that would be one scenario
in any case, SL's codebase sucks for the way things are structured, not code style
can you look at the code style 
not really with the decompiler
but yeah i agree with structuring being ass in places
and also stop using "ProcessRpcTemplate" and "ProcessRpcInstance"
p sure that's probs autogenerated code

whats up with relative positioning?
it seems like a really neat concept thatd be hard to pull off
i remember trying to add relative positioning to one of my scratch platformers when i was 9 and getting angry and giving up
it's horrible to work with
just give me a vector3 and an optional parent id
smh
not a waypoint id
creative but bad solution to a problem NW created in the first place
or well, didn't plan ahead for
or both idk
the problem being elevators that teleport you?
the whole movement system
instead of waypoints and stuff it should really just be movement based on either the world or a gameobject
so base (or lackthereof meaning world) position + player position relative to it = actual position
base can be an elevator when needed
alright, i fail to see how that differs from the current waypoints
I really doubt any other game does it this way
and if they do, it's probably due to the same problem with the same solution that's really just extremely bad in the long run
the cost of it for one
the limitations
cost like performance wise? or what?
having to convert to/from relative position to actual position
oh okay
actual position to relative position means looping through all waypoints and finding the closest one
and probably some more checks i dont remember
when it should just always be actual position and a base that's always readily accessible i guess?
yeah should really just be a vector3
either floats or doubles, doesn't matter
and the network identity of the base (or none if world)
wait so are you telling me the waypoint isnt already implicitly stored somewhere?
you'd have to store waypoints for every possible position in the world
caching those is unrealistic (at least the way it's setup right now)
so when making a relative position from a position it has to loop through all waypoints
*meaning you'd have to calculate what waypoint is relevant for a given position?
interesting
yes
i kind of assumed it was a collider set to trigger based on the waypoint toy
what do you think about this
not the best with collider triggers at high speeds but that can be improved
maybe thats how the toys work idk
i mean, you really don't need triggers
you can just check what's under the player
with a margin of leniency for when the player is a little bit above it (jumping etc)
yeah, i was just lazy with it, triggerenter/triggerexit worked well enough for my use case
SL's movement needs to realistically be rewritten from scratch

like just have a set of moving platforms
and check if any contains the player
you still need to do some transforming to account for rotation but otherwise it would definitely be better than what we have rn
i assume he means like the player raycasts like a meter downwards to tell what object it's attached to
If grounded, can just check what they're on and make it the player's base (if permitted, not everything should be a base)
once you have a base, just keep checking you're grounded on it, or up to X centimeters/meters above it
tada, elevators, platforms, players, whatever works
as long as the client & server can both identify the base
"what they're on"
is that needed though
for regular objects we can have world space movement
only moving platforms would need to be bounds checked
i wonder how they programmed physics and players to follow a waypoint but still act like theyre stationary
yes
you need to know what they're on and if it's a valid base
i mean cant it just ignore the check if its not a base*
and just let the player navigate in world space
it's not just platforms, with this anything referenceable by the client & server can be a base
could stand on a player
a vehicle
as long as the server agrees with you changing base, the client won't see any issues
because even if the vehicle is moving at mach 10, the player's position relative to it won't change
so no rubberbanding, no disagreements
bonus points if the base is deterministic when it can move
if you can rollback a base at X time when the server performs a client's movement, you can easily check if they made it onto the base or not
elevators would be easy since you know when the elevator started moving, the time it takes to reach its destination
so from a timestamp you can rollback the elevator to where it was for the player at the time they moved
cant most objects store the past second or so for similar purposes to this
for players it's what you'd do
idk if SL implements this but i learned about this trick for CS
a history of move at X time, buffer it for some time
elevators don't need it because you can just check from the timestamp if you know when it last started moving and the last start/end positions
this is interesting
@slate flume
https://github.com/MirrorNetworking/Mirror
This is a non decompiled code
absulutely not, I would love to see you create it and then see your progress
Doesn't have
At least
Not that I'm immediately seeing from the github search
okay my idea is to have the car config to be stored as a schematic, plus some stats like speed and stuff. in the schematic, i put primitives with special names, like "driverseat" to use as triggers for the plugin. and then when the car spawns, it spawns the schematic, and then replaces the specially named objects with triggers. and if youre in the driver seat for example, you get SS keybinds to move the car.
it might be convoluted of an explanation but i have a pretty good idea of how I might make it.
you're not gonna get any sort of prediction
unless you have 0 ping it's gonna be a puke fest
I think in unity you can use a downward trace or something, i know godot can cus i seen it
still wouldn't get prediction so your input to the vehicle would be delayed, not that much of an issue though
yeah all engines can
Well yeah, atp need full rewrite in systems if wanna do full support for modding, that doesn't involve stuff like downloading from the server
NW won't ever anyway
yeah, part of why i struggled to think of a solution
Messages can be syncvars, prob solve like most of issues?
would still require rewriting most of the game
so my plan is to have the cars have a bit of slidiness (acceleration + deceleration) to make up for a delay between input and movement
it wouldnt solve it at all but gives a tiny buffer to make it slightly less noticable
eh, not expecting it at all
With great pressure 
why bother
Ye just try remake sl, I think taj can talk about it

i think this can be achieved if i figure out how to use lerp or something. actual physics might be hard to work with, idk
the tech debt of SL is so high at this point that yeah, making your own game would probably be faster
more than one person has tried
no, like making an SL clone haha
Ah
someday I will make a game too
I trying
But i need to rewrite basicly everything since i choose an engine that doesn't have any networking stuff
As said yesterday I'm the opposite
SL isn't a hard game to create
mechanically
i mean yeah
account for friction too 
from what i can tell it is in a lot of ways identical to vrc in an abstract way 
Ah yes, create a Minecraft boat in ice
at that point i would just attach a rigidbody and call it a day
well maybe i should do that
and forget to add rotation constraints and have real car crashes
its a 3d first person multiplayer with proximity VOIP, guns, items, and a faction system
ive never seen an SL clone add UnitName property to the humans though
i guess yeah
scp echoes pls
ive seen rigidbodies act really janky when it comes to clients recieving them. but maybe it might turn out acceptable
set movement smoothing to like 30 and it should be fine
Hello chat
Hello cat
Does someone know a possible solution to this the player can spam jump and like it gets really junky how could i prevent to run if someone is spam jumping
public override void OnEffectUpdate()
{
if (Owner.RoleBase is not IFpcRole role)
return;
if (!role.FpcModule.IsGrounded)
{
//Adding Effect
}
else
{
//Removing Effect
}
base.OnEffectUpdate();
}
because i saw that adding an effect takes a bit and removing it too
so it gets this junky effect
Just give them a temporary movement penalty if they jump too often in a short span
stained/sinkhole
nah thats not a solution
i just need to semi prevent it
Its just what i don't want i just would prevent it
in case
you can't prevent jumping
maybe just remove the effect if it's been applied for more than X seconds
i could check if the player is not grounded and then remove it after the second check
so if the player is still not grounded that means they are still spam jumping?
I just need a reliable way to tell if a player is doing that but i cannot think of anything
check their vertical velocity
perhaps
more reliable solutions would probably require patching to hook into the movement stuff
and handle the player jumping on the server
can i use SIMD in a plugin ?
spans
for a voicechat processing i cant use Vector<float> ?
Unity didnt support it ?
just switch the volume in a ReceivingVoiceMessage. I think instead i can cache the voice with the voice switch and if a player need to hear the volume switch i use this i guess
Actually with decode, 480 for loop, and encode. When i have too many players it make the voicechat laggy
well, you have to decode, process and encode it
you can't SIMD the unmanaged calls
so unless you're writing a SIMD-compatible opus library in C#, it won't be possible
you can SIMD the volume processing but multiplying floats has pretty much 0 overhead
its like 78ns processing but more player i have more laggy is the voicechat cuz i do that operation in ReceivingVoiceMessage
the issue isn't the amplifying part, it's opus
is bro trying to make a super computer on SL?
Good luck with remaking opus in c#
On the decode and encoding method ?
yes
Yes usually those calls unmanaged code, inside the opus.dll
just rewrite the voice chat system to send raw samples 
i can try by directly manipulate byte[] ? or dumb decision
Not like it matters you gonna need to get the raw anyway troll
no
it's compressed
2 KB per voice packet 
Opus Handler, I cry
Just don't say many things

Well...... so actually my only way to try to optimize that shit is by making this process one time for each speaker and apply that cached data for valid players ?
Don't know what you cache or what you do
Decode: 00:00:00.0000254 Amplify: 00:00:00.0000014 Encode: 00:00:00.0000679 Total: 00:00:00.0000947
cold start: Decode: 00:00:00.0016233 Amplify: 00:00:00.0000047 Encode: 00:00:00.0009314 Total: 00:00:00.0025594
512bits with 96Khz :3
how about you don't amplify the volume of every player
why not 8.1 surround at 128 kHz
but why π
Why not increase
192khz at 24bits seem better
By 1.8
Whisper effect
if a player whisper and im not inside the area i hear the voice with whisper effect
copium
248kHz at 64 bit
Lets have directly the voicechat with .wav or .mp3
more compressed than a ogg ?
.flac
lmao
.webm
.mp4 directly
.mkv
Bullet per minute file
π
i think if NW add a possibility to change the AudioSource volume of the player it could be bette. I think sending a fake DirtyBit is more fast than making a Decode and Encode 
yes
PLEASE
or just increase the Clamp()
and let me modify the spatial curve of speaker toys
@davidsebesta please
I hope NW gonna fix their Audiomixer btw cuz actually we cant hear Icom or when a lot of players talk at the same time
GL telling unity that xd
and apply the audio muffling like the water fall
pov ducking
lets make stackalloc for voicechat 
someone smart knows the craziest answer how could i detect if a player is spam jumping?
doesn't help
recoding opus lib in rust 
ah hell nawh
Check the jump message time
I would use DateTimeOffset
no don't
btw i can just cache the DataLength of the voicemessage ?
that's very slow
protected override void OnEffectUpdate()
{
if (!(Hub.roleManager.CurrentRole is IFpcRole role))
return;
var jump = role.FpcModule.Motor.JumpController;
if (jump.WantsToJump)
return;
bool grounded = role.FpcModule.IsGrounded;
if (grounded != _wasGrounded)
{
if (_lastChangeTime == 0f)
_lastChangeTime = Time.time;
if (Time.time - _lastChangeTime >= 0.05f)
{
if (!grounded)
{
Hub.playerEffectsController.DisableEffect<Lightweight>();
role.FpcModule.Motor.GravityController.Gravity = FpcGravityController.DefaultGravity * 2.7f;
}
else
{
Hub.playerEffectsController.ChangeState<Lightweight>(255);
role.FpcModule.Motor.GravityController.Gravity = FpcGravityController.DefaultGravity * Intensity;
}
_wasGrounded = grounded;
_lastChangeTime = 0f;
}
}
else
{
_lastChangeTime = 0f;
}
base.OnEffectUpdate();
}
use Stopwatch.GetTimestamp()
This is what im doing
Why not sub to PlayerJumped?
you reset last change time
because im doing it as an effect
Aaand?
that looks ass
so it doesn't apply to >2 subsequent jumps
You look ass
and i need to know if the player is falling
That if statement is ass
Yea i know thats an issue
Bro im trying to do it then the pretty part will come later
just set _lastChangeTIme to Time.time after the statemnts
write it pretty from the start 
public override void OnEffectUpdate()
{
if (!(Hub.roleManager.CurrentRole is IFpcRole role))
return;
var jump = role.FpcModule.Motor.JumpController;
if (jump.WantsToJump)
return;
bool grounded = role.FpcModule.IsGrounded;
if (grounded != _wasGrounded)
{
if (_lastChangeTime == 0f)
_lastChangeTime = Time.time;
if (Time.time - _lastChangeTime >= 0.05f)
{
if (!grounded)
{
Hub.playerEffectsController.DisableEffect<Lightweight>();
role.FpcModule.Motor.GravityController.Gravity = FpcGravityController.DefaultGravity * 2.7f;
}
else
{
Hub.playerEffectsController.ChangeState<Lightweight>(255);
role.FpcModule.Motor.GravityController.Gravity = FpcGravityController.DefaultGravity * Intensity;
}
_wasGrounded = grounded;
_lastChangeTime = 0f;
}
}
_lastChangeTime = Time.time;
base.OnEffectUpdate();
}
So like this?
Oh wait the other if statement lol
yes
Then have fun, i said how would i do it , refused wll then gl
Also whats that effect bruh π
black magic
I cast divide light
Now i do have the opposite of the issue, so the effect doesn't get removed
Oh wait i think i solved it
did some of you have already encounter a bug that when you spawn a lot of speakerToy (5-8) it make player audio weird. the spatialization can be reversed like sound of right sound on the left and sound in front of you sound on the back etc...
no no you didnt understand. the audio of the game for clients it completely reversed
L <=> R
F <=> B
It's in my
i have one on Vector3.zero not spatial and somes random in Heavy Containment zone with isSpatial. But it affect all the audio of the game for one client or more. Its not for everyone. But affect Footstep. SpeakerToy itself. Player voice etc etc
Character
oh yeah cuz i probably set the parent of the SpeakerToy on my player.Gameobject 
because someone at northwood (or at unity) decided that ducking should be done on SEPARATE STEREO CHANNELS
so if you have loud footsteps on the left then it ducks the left channel only???????
like wtf how did you accomplish that
CASSIE is affected too, sometimes it just pans to the left cuz on the right there are loud sounds
No it just reverse the whole audiomixer
R became L
L became R
F became B
B became F
what u mean by ducking cuz im french without this kind of languages inside my knowledges 
π¦
Oh ok volume priority ?
it's only been an issue since unity 6
kinda
if CASSIE is yapping then other sounds will be quieter
Of that explain the ICOM broken and the violent ducking
I hate Cassie
voice chat has uh
something
it's a separate system for making sure total volume isn't above 5
Me waiting for FSR
and we cant lie at me im pretty sure that HDRP permit that
i want to scream in the voice chat
this doesn't have anything to do with unity's stereo ducking
bruhhh
do you want all 20 screaming kids to remove your eardrums
imagine screaming so loud that your unity crashes
Removing clamp wouldnt do anything as it seems that Unity itself clamps it internally
patch unity

Lets make a code that ban people who have a loudness of 1.0f 
yeah patch the c++ runtime
wrong reply
lol
volume scale for
the playback
so if you changed it for speakers
it would be fixed :3
also the correction isn't the square root of 2
i amplified the voice message by 1.414..., send it through the toy and it's not the same volume as "regular" voice chat
maybe someone changed speakers to be quieter 
Speaker priority is...
Hi! Is it possible to load Server-Specific Settings only for some players?
So fast god damn
lmfao
bro has a streamdeck with somes macro 
its not against NW team but i really hope LabApi will be fully stable and didnt gonna encounter a huge rework like NWAPI 
LabApi is planned to be supported long term
Actually the whole life of my server turn on LabApi i have removed my whole wrappers to trust LabApi
me who still uses ReferenceHub almost everywhere in a big project 
Me when he references my hub
I hope
btw it is planned to use compiled Lambda instead of Reflexion for the CustomDataStore ? Not sure that not the most CPU Friendly 
he? who's he? he, who is referencing
by default i do that too but too lazy to make Player.Get and stuff like that when i need it
X3rt's pr has some cool changes
david can i ask you something spam jumping is detected by the server and how does the server detect it?
because im going crazy on how to detect it
is customdatastore reflection-based
wdym?
Yea
copium
you know you can jump and then spam jump like do small jumps
typeof().GetMethod 
what
do i need to make a video?
Anticheat 
like jump off on a ledge?
Anticheat when a random pickup an item at 500m distance 
Thats just you jumping with heavy footed effect no?
or high gravity
should be
Im doing this
public override void OnEffectUpdate()
{
if (!(Hub.roleManager.CurrentRole is IFpcRole role))
return;
var jump = role.FpcModule.Motor.JumpController;
if (jump.WantsToJump)
{
if (Time.time < _nextJumpTime)
jump.WantsToJump = false;
else
_nextJumpTime = Time.time + 0.25f;
}
bool grounded = role.FpcModule.IsGrounded;
role.FpcModule.Motor.GravityController.Gravity = FpcGravityController.DefaultGravity * (grounded ? Intensity : 2.7f);
if (grounded != _wasGrounded)
{
if (_lastChangeTime == 0f)
_lastChangeTime = Time.time;
if (Time.time - _lastChangeTime >= 0.05f)
{
if (grounded)
Hub.playerEffectsController.ChangeState<Lightweight>(255);
else
Hub.playerEffectsController.DisableEffect<Lightweight>();
_wasGrounded = grounded;
_lastChangeTime = 0f;
}
}
else
{
_lastChangeTime = 0f;
}
base.OnEffectUpdate();
}
its an effect
"jump.WantsToJump = false"

idk if that does anything
role.FpcModule.Motor.GravityController.Gravity = FpcGravityController.DefaultGravity * (grounded ? Intensity : 2.7f);
lol
Yea i know
but the intensity is 1
so
Yeah I think that property is client side
Tbh sometimes I NEED reflection
https://github.com/KadavasKingdom/LabApiExtensions/blob/main/Extensions/CustomDataStoreManagerExtended.cs
WantsToJump
BRUH
How tf do i detect WHEN A PLAYER WANTS TO JUMP
that's why you have it
i know but i need to know if a player wants to jump
because if i know that
check the uh
then i can just fix this issue
there's literally a property that you set to false
Check the received message
how?
yes
do i need to patch time 20
look in FpcMotor
Yes

that not a bad thing. Reflection is usefull but i have a huge problems when we talk about useless performance consuming when we can do something more fast without a lot of times
yea
i need it as an effect
bruh
Sometimes reflection can be good, but as said I need reflection in some cases and this exactly when.
For example I can create a dictionary that has a type of my own DataStore, without reflections I cannot create or add players into it



