#plugins-dev-chat

1 messages Β· Page 92 of 1

upper vapor
#

I agree with your statement

celest thorn
#

you wanna talk abour radioactive water'

#

WHY NOT

upper vapor
#

Oh lord they fucking supporting

upper vapor
hearty shard
hearty shard
#

😭

upper vapor
hearty shard
celest thorn
upper vapor
hearty shard
upper vapor
restive turret
upper vapor
#

Are you sure secretapi is finished

restive turret
hearty shard
#

i havent

#

tested.....

upper vapor
#

You don't have to be sure cuz you know it isn't

hearty shard
#

in a while....

upper vapor
#

(Wip commands)

hearty shard
hearty shard
#

i want it

#

but idk if itll ever happen

#

πŸ’”

slender lynx
hearty shard
celest thorn
slender lynx
#

the ss group

#

that is bad

#

do not send that

hearty shard
#

no no not the racism one

upper vapor
#

Bruh

true cedar
#

god

#

eve

hearty shard
#

PAISLEE

slender lynx
#

i cant believe this

true cedar
#

what has happened to u

hearty shard
#

not a lot

slender lynx
#

eve cant go one day without this tomfoolery

true cedar
#

went down a dark path

hearty shard
#

well recently

#

what.

slender lynx
hearty shard
#

WHAT.

#

WHAT.

slender lynx
#

its so over..

hearty shard
#

@mild ice this is defamation pls ban

hearty shard
#

anyway

#

that being said

slender lynx
#

@mild ice eve is defamating us pls ban

hearty shard
#

uh

#

...

celest thorn
upper vapor
hearty shard
#

@true cedar i need help !!!!

slender lynx
#

what is this double standard bro

#

you can get us banned but the other way is just unacceptable

true cedar
true cedar
#

screams

restive turret
#

By not making it

celest thorn
upper vapor
slender lynx
#

o4-mini-high

hearty shard
#

its a wip

#

the first step is having a working project

celest thorn
upper vapor
celest thorn
#

even for wip

hearty shard
#

the 2nd step is performance

upper vapor
#

Or Llama distilled

slender lynx
true cedar
slender lynx
#

why would i be

true cedar
#

why does commandresupt

hearty shard
true cedar
#

have the method to call

upper vapor
hearty shard
celest thorn
upper vapor
#

You call noon morning

slender lynx
#

o4 mini high and codex are starting to get pretty good

hearty shard
celest thorn
hearty shard
#

when its parsed i need to know what method to call with the right params

upper vapor
slender lynx
#

ive paid for premium since like january and the models it gives are worth it currently

#

agent is insane too

hearty shard
#

so itll pick the right one based on input

true cedar
#

make like

celest thorn
true cedar
#

a [Execute] attribute

hearty shard
restive turret
hearty shard
#

yeah why didnt i

celest thorn
#

until 1pm

hearty shard
#

do that

#

instead of

slender lynx
#

"12 in the morning"

hearty shard
#

ur so right

slender lynx
#

thats how english works

hearty shard
#

Pai ur the best

#

i still need to parse input into the correct method

#

and I HATE IT

true cedar
#

then u can have like
[Execute]
public CommandResult Execute(Player player1, Player player2)

hearty shard
#

ya!!

upper vapor
restive turret
#

Execute deez

hearty shard
#

this needs to be renamed actually

celest thorn
hearty shard
#

its internally for the parse of a specific method

slender lynx
celest thorn
#

i didn't make the rule in italy

hearty shard
#

i think

celest thorn
#

im sorry

hearty shard
#

i forgot

upper vapor
celest thorn
upper vapor
#

Good morning at 12pm

celest thorn
#

and its cultural for me to say it

#

and for maro too

true cedar
celest thorn
#

bruh

true cedar
#

enum.parse or wrv

upper vapor
#

Culture is stupid

slender lynx
celest thorn
upper vapor
#

πŸ€“

restive turret
celest thorn
slender lynx
#

its 12:16 right now

true cedar
#

@hearty shard also if u want c# supports attributes on arguments so u can do like

slender lynx
#

in the morning

hearty shard
upper vapor
slender lynx
#

so

upper vapor
slender lynx
#

good morning

restive turret
#

It's not good

true cedar
#

public bool Execute(Player player, [MaxLength(32)] string text)

restive turret
#

Just morning

hearty shard
#

oh...

#

PAI

#

YK WHAT PISSES ME OF

#

F

slender lynx
#

it is only a morning now

true cedar
#

murder

#

systematic racism

upper vapor
#

It's literally
P M
POST meridiem

hearty shard
#

i didnt put an S at the end here

true cedar
#

oh

hearty shard
#

attributes

slender lynx
restive turret
true cedar
#

fix it

celest thorn
hearty shard
#

ill make the breaking change later

true cedar
#

okay

celest thorn
#

12am in THE MORNING

hearty shard
#

i need first

#

to have

slender lynx
#

"12 in the afternoon" is just incorrect

hearty shard
#

commands

#

because YUM

hearty shard
upper vapor
restive turret
upper vapor
slender lynx
celest thorn
hearty shard
#

how would it be

unique crane
slender lynx
restive turret
#

Because it's you

celest thorn
#

because axwabo doesn't

#

poor dog

restive turret
#

I use 24h idc about pm / am

celest thorn
#

i don't understand it

#

im sorry

slender lynx
#

anyways time dosent matter once you stay up long enough anyway

unique crane
restive turret
#

Calculate it yourselfSteamHappy

upper vapor
celest thorn
unique crane
#

12H format sucks anyways

celest thorn
#

12 am is noon

celest thorn
#

12 pm is midnight

upper vapor
#

Are you delulu

true cedar
#

@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

upper vapor
#

12 PM
post midday

slender lynx
true cedar
#

god

hearty shard
#

yeah!!!!

#

PAI

#

I

true cedar
#

i kinda wanna make this

hearty shard
#

UR THE BEST

restive turret
hearty shard
#

you could

#

help me

#

!!

true cedar
restive turret
#

Or how would you use this

hearty shard
restive turret
#

In real scenerio

hearty shard
#

youd want to be able to have multiple options

#

like eg

#

to parse enum

true cedar
hearty shard
#

yeah!!!

restive turret
#

Like execute(player, bool, string, ulong)?

hearty shard
#

Player sender, Player target

true cedar
#

maybe u have a customitem class and rather than using a string id every time

hearty shard
#

ill have so Player sender is forced

true cedar
#

u just put it in the customitem as an argument

hearty shard
#

to give the sender

true cedar
#

and then it automatically parses it and returns an error if it fails

restive turret
#

Haha good luck, have fun with the method getting

true cedar
#

?

restive turret
#

I mean with real param parse

#

Nvm

true cedar
#

huh

restive turret
#

Have fun SteamHappy

#

Will roast it if it's well done ClassDTroll

upper vapor
#

What if it's rare

restive turret
#

Nah

celest thorn
#

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

plain gazelle
#

Does anyone have the unicode symbol, or html tag, or whatever, to make a linebreak in custominfo?

#

hm, maybe Environment.NewLine works

celest thorn
#

or else just do \n

plain gazelle
#

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

upper vapor
#

also, \n should work

ionic prawn
#

what should i use when to turn on friendlyfire and off again? on round win/end

upper vapor
#

cuz windows new line is \r\n

slate flume
upper vapor
#

set it back on waitingforplayers

ionic prawn
#

k

#

RoundEnded or RoundEnding? should i turn it on

plain gazelle
upper vapor
ionic prawn
#

k

upper vapor
#

if you actually type a new line in RA it should work

plain gazelle
upper vapor
#

omfg

#

okay yeah use ending

#

ended is delayed by 1.5s

upper vapor
#

why

#

okay

#

use ended

ionic prawn
#

ima just use both

upper vapor
#

final answer

upper vapor
ionic prawn
#

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;
}
upper vapor
#

reset data on waitingforplayers too

#

in case the round gets force restarted

ionic prawn
#

there is?

upper vapor
#

rr command

severe cave
upper vapor
#

RoundSummary

severe cave
#

Oh, never seen that

#

Thx tho

unique crane
#

Just reset the data on round restarting

icy knoll
#

@celest thorn would you crash out if ur server was at 59/60 tps?

celest thorn
#

but maro does

#

and we removed some maps too

restive turret
unique crane
#

fix

#

Just artifically add 1 to the TPS

celest thorn
#

NO

unique crane
#

lmao just do it

upper vapor
#

yes

celest thorn
#

its faking

#

and being fake is horrible

unique crane
#

Would maro notice?

celest thorn
unique crane
#

No

celest thorn
unique crane
#

Would maro be happy?

#

Yes

celest thorn
#

but its via lying

unique crane
#

0 downsides

celest thorn
#

and she is probably rn reading this

#

so

icy knoll
#

@unique crane finally got round to making the gh issue 😭

unique crane
#

Making what?

icy knoll
celest thorn
unique crane
#

Lets see

hearty shard
upper vapor
#

that's different

icy knoll
#

yeah

upper vapor
#

but nice

icy knoll
#

that's different lol

hearty shard
celest thorn
#

you know what

#

This still needs to be fixed lol

hearty shard
upper vapor
hearty shard
#

if it just uses voice messages sent as a basegame player

#

and not dummies

celest thorn
#

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

upper vapor
#

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

upper vapor
#

you can see who hates who toomuchtrolling

restive turret
#

I also would like add volume slider for each player

upper vapor
#

not impossible

#

but you need to use speaker toys then

grand flower
#

Don't worry, maybe in 5 years

#

You still can't mute 939 mimicry

upper vapor
restive turret
restive turret
upper vapor
restive turret
#

Because sometimes I not hear people say anything even when im next to them

upper vapor
#

just fix their mic Smart

restive turret
#

Ye personally broking into their house, slapping their microphone

pallid galleon
slender lynx
slate flume
#

Sooo guys

#

Is it just me or did 14.1.3 break some stuff

vast canopy
#

not only u

#

so ye

#

thats normal

slate flume
#

And one user reported their magazine keeps getting removed from their gun randomly

unique crane
#

can you replicate it on non-modded server

hearty shard
#

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

pallid galleon
#

I've had issues forever where the sight picture keeps changing on my guns lol

celest thorn
#

Helo chat

slate flume
#

I don't do anything with weapon attachments so it shouldn't be my end but I'll look into it

slate flume
slate flume
unique crane
#

Sorry but I wouldnt be surprised if it was some plugin thing

slate flume
#

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

grand flower
#

Attachments are per serial afaik so maybe you have multiple weapons with the same serial or something

slate flume
#

I never modify an item's serials

#

I create items but I never modify an item to have a different serial

royal mica
#

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

slate flume
winged meteor
#

Paislee I have v3 suggestions

#

Add a remove by element

slate flume
winged meteor
#

Uhh idk but would be cool

#

Would be usefully for my item system

static meteor
#

Make a pr ClassDTroll1

winged meteor
#

Wat

#

Oh yeah

#

Uhhhh

#

Mabye

slate flume
#

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

hearty shard
#

ur best off writing ur own system

slate flume
#

That's gonna require patching NW stuff

hearty shard
#

Yes

#

its smth me and CT are both gonna do

slate flume
#

That sounds so awful

hearty shard
#

perchance

slate flume
#

I might have to do that though

#

The only other way I can think of is creating my own effects

true cedar
#

brights did something like that

slate flume
#

But I don't think it'd sync

hearty shard
#

u cant sync movement stuff

#

or other stuff

#

you can only do server specific stuff in them

grand flower
#

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

slate flume
#

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

slate flume
#

Oh hey!

#

Think I found a new LabAPI bug

grand flower
#

what is it

slate flume
#

Effects overhaul when?

hearty shard
#

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

slate flume
#

Yeah but like c'monnnnnn it'd be cool

hearty shard
#

how would you sync every effect

grand flower
#

It would be, but the game's really not built with modding in mind

hearty shard
#

yea

grand flower
#

like, yeah it has a modding api

#

but it's really not supposed to be exceedingly moddable

hearty shard
#

also nice color change

grand flower
#

or well, built that way

#

sweet

slate flume
#

Can we just remake the entirety of SL

hearty shard
grand flower
#

Funnily enough I'm working/planning mod-exposed effects for a project of mine

hearty shard
#

If you got free time ur free to

slate flume
#

But then I'd have to learn a game engine why

hearty shard
#

yea

grand flower
#

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

hearty shard
#

In array

grand flower
#

nah i meant like

#

if the server applies a movement boost

#

the movement of the client (prediction) won't match the server

hearty shard
#

yea....

#

Desync will happen during that time

grand flower
#

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

slate flume
hearty shard
#

yes its that

#

Anyway

#

Sl moment

grand flower
#

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

true cedar
#

u can also just use 2 tags if u need to remove like specific text

winged meteor
#

still would be useful for remove by element ngl for my item system

hearty shard
#

You give it an id and then remove that id

true cedar
#

^

winged meteor
#

so it will remove randomly on accident

static meteor
winged meteor
#

HEH

winged meteor
#

yuh

#

I know

#

no support!

true cedar
#

honestly

#

id prob just use v3 maybe

winged meteor
#

how much different is it?

true cedar
#

its just a lot easier to use

#

it might be a bit buggier

teal junco
#

i just figured out a fire idea for a car plugin

#

@spare zodiac do u mind if i bounce the concept off you?

upper vapor
slate flume
#

Anyone who's looked at CustomLiteNetLib4MirrorTransport::ProcessConnectionRequest can probably agree

grand flower
#

mmm yes let me look at the low level network transport code DogKek

#

that isn't indicative of SL's state codebase wise

grand flower
#

that's decompiled code

slate flume
#

Fair point

#

I mean I'm looking at a ton of nested if statements

#

Variables that mean nothing to me

#

Just like

grand flower
#

that's not indicative of bad

#

and again it's decompiled code

slate flume
grand flower
#

decompiled code does that Β―_(ツ)_/Β―

#

SL's codebase sucks but not for that heh

slate flume
grand flower
#

likely to be the decompiler

#

even then, who cares about the low level networking stuff

slate flume
upper vapor
grand flower
#

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

upper vapor
grand flower
#

tends to be a hot path and you don't want the overhead of method calls

upper vapor
grand flower
#

depends Β―_(ツ)_/Β―

upper vapor
#

if you're getting fancy ddosed, probably

grand flower
#

that would be one scenario

#

in any case, SL's codebase sucks for the way things are structured, not code style

upper vapor
#

can you look at the code style clueless

grand flower
#

not really with the decompiler

upper vapor
#

but yeah i agree with structuring being ass in places

grand flower
#

ass everywhere

#

the RPC abuse makes me ill

upper vapor
#

can we stop doing that

grand flower
#

tell NW I don't work for them

upper vapor
#

and also stop using "ProcessRpcTemplate" and "ProcessRpcInstance"

grand flower
#

p sure that's probs autogenerated code

upper vapor
grand flower
#

tbh that's my #1 issue

#

#2 is relative positioning

teal junco
#

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

upper vapor
#

it's horrible to work with

#

just give me a vector3 and an optional parent id

#

smh

#

not a waypoint id

grand flower
#

or well, didn't plan ahead for

#

or both idk

teal junco
grand flower
#

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

teal junco
#

alright, i fail to see how that differs from the current waypoints

grand flower
#

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

teal junco
#

cost like performance wise? or what?

grand flower
#

having to convert to/from relative position to actual position

teal junco
#

oh okay

grand flower
#

actual position to relative position means looping through all waypoints and finding the closest one

#

and probably some more checks i dont remember

teal junco
#

when it should just always be actual position and a base that's always readily accessible i guess?

grand flower
#

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)

teal junco
#

wait so are you telling me the waypoint isnt already implicitly stored somewhere?

grand flower
#

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

teal junco
grand flower
#

yes

teal junco
#

i kind of assumed it was a collider set to trigger based on the waypoint toy

upper vapor
teal junco
#

maybe thats how the toys work idk

grand flower
#

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)

upper vapor
grand flower
#

SL's movement needs to realistically be rewritten from scratch

upper vapor
upper vapor
#

you still need to do some transforming to account for rotation but otherwise it would definitely be better than what we have rn

teal junco
#

i assume he means like the player raycasts like a meter downwards to tell what object it's attached to

grand flower
#

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

upper vapor
teal junco
#

i wonder how they programmed physics and players to follow a waypoint but still act like theyre stationary

grand flower
#

you need to know what they're on and if it's a valid base

teal junco
#

and just let the player navigate in world space

grand flower
#

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

teal junco
grand flower
#

for players it's what you'd do

teal junco
#

idk if SL implements this but i learned about this trick for CS

grand flower
#

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

teal junco
#

this is interesting

restive turret
#

This is a non decompiled code

spare zodiac
slate flume
#

At least

#

Not that I'm immediately seeing from the github search

restive turret
#

Yes bc thaty ns

#

Nw

teal junco
# spare zodiac absulutely not, I would love to see you create it and then see your progress

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.

grand flower
#

you're not gonna get any sort of prediction

#

unless you have 0 ping it's gonna be a puke fest

upper vapor
#

why

#

you just movement smooth the parent

#

of the waypoint

grand flower
#

oh right waypoint toy

#

yeah this is giving me a migraine but would probably work?

restive turret
grand flower
#

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

restive turret
#

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

grand flower
#

NW won't ever anyway

teal junco
restive turret
#

Messages can be syncvars, prob solve like most of issues?

grand flower
#

would still require rewriting most of the game

teal junco
#

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

restive turret
#

Yes, i dont think like they do it

#

Probably not for like 3 year or so

grand flower
#

eh, not expecting it at all

restive turret
#

With great pressure ClassDTroll

grand flower
#

why bother

restive turret
#

Ye just try remake sl, I think taj can talk about it ClassDTroll Fear

teal junco
grand flower
#

the tech debt of SL is so high at this point that yeah, making your own game would probably be faster

restive turret
#

Making your own game?

#

Ye some successeded

teal junco
#

no, like making an SL clone haha

restive turret
#

Ah

teal junco
#

someday I will make a game too

restive turret
#

I trying

teal junco
#

modding SL gives more immediate reward though

#

for my brain

restive turret
#

But i need to rewrite basicly everything since i choose an engine that doesn't have any networking stuff

restive turret
grand flower
#

mechanically

teal junco
teal junco
restive turret
teal junco
#

well maybe i should do that

#

and forget to add rotation constraints and have real car crashes

teal junco
#

ive never seen an SL clone add UnitName property to the humans though

teal junco
#

scp echoes pls

#

ive seen rigidbodies act really janky when it comes to clients recieving them. but maybe it might turn out acceptable

upper vapor
#

set movement smoothing to like 30 and it should be fine

celest thorn
#

Hello chat

restive turret
#

Hello cat

celest thorn
#

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

grand flower
#

Just give them a temporary movement penalty if they jump too often in a short span

#

stained/sinkhole

celest thorn
#

i just need to semi prevent it

grand flower
#

reduce their jump power

#

you can't really do it the way you're thinking of

celest thorn
#

in case

grand flower
#

you can't prevent jumping

celest thorn
#

No i know that

#

but like prevent the effect from being removed

grand flower
#

maybe just remove the effect if it's been applied for more than X seconds

celest thorn
#

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?

grand flower
#

depends

#

could be falling from a height

celest thorn
#

I just need a reliable way to tell if a player is doing that but i cannot think of anything

grand flower
#

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

celest thorn
#

im testing something else

#

nope it didn't work

obtuse spruce
#

can i use SIMD in a plugin ?

upper vapor
#

spans

obtuse spruce
upper vapor
#

oh

#

i don't think that's possible

obtuse spruce
#

Unity didnt support it ?

upper vapor
#

what absurd processing do you need to use SIMD

#

effects?

obtuse spruce
#

Actually with decode, 480 for loop, and encode. When i have too many players it make the voicechat laggy

upper vapor
#

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

obtuse spruce
upper vapor
#

the issue isn't the amplifying part, it's opus

celest thorn
#

is bro trying to make a super computer on SL?

restive turret
#

Good luck with remaking opus in c#

obtuse spruce
upper vapor
#

yes

restive turret
#

Yes usually those calls unmanaged code, inside the opus.dll

upper vapor
#

just rewrite the voice chat system to send raw samples toomuchtrolling

obtuse spruce
#

i can try by directly manipulate byte[] ? or dumb decision

restive turret
upper vapor
#

it's compressed

upper vapor
modern lark
#

Opus Handler, I cry

restive turret
obtuse spruce
#

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 ?

restive turret
#

Don't know what you cache or what you do

upper vapor
#

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

modern lark
upper vapor
upper vapor
obtuse spruce
#

i reduce the volume

#

0.2f

upper vapor
#

but why 😭

restive turret
#

Why not increase

obtuse spruce
restive turret
#

By 1.8

obtuse spruce
#

if a player whisper and im not inside the area i hear the voice with whisper effect

upper vapor
#

copium

restive turret
obtuse spruce
upper vapor
#

mp3 is still compressed

obtuse spruce
#

more compressed than a ogg ?

upper vapor
#

no

#

but you need to encode/decode

restive turret
#

.flac

obtuse spruce
upper vapor
#

.webm

obtuse spruce
#

.mp4 directly

restive turret
#

.mkv

upper vapor
#

mov with gopro cinema codec that supports alpha (raw) toomuchtrolling

#

no

#

sequence of .bmp files

restive turret
#

Bullet per minute file

upper vapor
obtuse spruce
#

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 SkullClownRainbow

upper vapor
#

yes

restive turret
#

Yes

#

Audiomixer and can edit it

#

Would be goated

upper vapor
#

PLEASE

modern lark
#

or just increase the Clamp()

upper vapor
#

and let me modify the spatial curve of speaker toys

restive turret
#

@davidsebesta please

obtuse spruce
#

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

upper vapor
obtuse spruce
#

and apply the audio muffling like the water fall

restive turret
#

Duck me

#

πŸ¦†

obtuse spruce
#

lets make stackalloc for voicechat NERD

celest thorn
#

someone smart knows the craziest answer how could i detect if a player is spam jumping?

upper vapor
#

doesn't help

obtuse spruce
upper vapor
#

ah hell nawh

celest thorn
#

what is that

upper vapor
#

Time.time

#

insane

celest thorn
#

but nope

restive turret
#

I would use DateTimeOffset

upper vapor
#

no don't

obtuse spruce
#

btw i can just cache the DataLength of the voicemessage ?

upper vapor
#

that's very slow

celest thorn
#
       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();
        }
upper vapor
#

use Stopwatch.GetTimestamp()

celest thorn
#

This is what im doing

restive turret
#

Why not sub to PlayerJumped?

upper vapor
#

you reset last change time

celest thorn
#

because im doing it as an effect

restive turret
#

Aaand?

celest thorn
upper vapor
#

so it doesn't apply to >2 subsequent jumps

restive turret
#

You look ass

celest thorn
#

and i need to know if the player is falling

restive turret
#

That if statement is ass

celest thorn
celest thorn
upper vapor
#

just set _lastChangeTIme to Time.time after the statemnts

upper vapor
celest thorn
# upper vapor write it pretty from the start <:Smart:885618421763567647>
    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

upper vapor
#

yes

restive turret
#

Also whats that effect bruh 😭

celest thorn
#

Yea now its the opposite of the problem

#

now it doesn't remove it

celest thorn
restive turret
celest thorn
#

Now i do have the opposite of the issue, so the effect doesn't get removed

#

Oh wait i think i solved it

obtuse spruce
#

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...

restive turret
#

Yes

#

Heard someone had that issue before

upper vapor
#

because that's how audio works?

#

well, human sound perception

obtuse spruce
#

L <=> R
F <=> B

upper vapor
#

what the

#

show the positions of the speakers

restive turret
obtuse spruce
#

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

restive turret
#

Character

obtuse spruce
#

oh yeah cuz i probably set the parent of the SpeakerToy on my player.Gameobject Think

upper vapor
#

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

obtuse spruce
#

No it just reverse the whole audiomixer

R became L
L became R
F became B
B became F

obtuse spruce
restive turret
#

πŸ¦†

upper vapor
obtuse spruce
#

Oh ok volume priority ?

upper vapor
#

it's only been an issue since unity 6

upper vapor
#

if CASSIE is yapping then other sounds will be quieter

obtuse spruce
#

Of that explain the ICOM broken and the violent ducking

restive turret
#

I hate Cassie

upper vapor
#

something

#

it's a separate system for making sure total volume isn't above 5

obtuse spruce
#

Me waiting for FSR Prayge and we cant lie at me im pretty sure that HDRP permit that

celest thorn
#

i want to scream in the voice chat

upper vapor
upper vapor
#

do you want all 20 screaming kids to remove your eardrums

celest thorn
#

imagine screaming so loud that your unity crashes

unique crane
obtuse spruce
#

Lets make a code that ban people who have a loudness of 1.0f NERD

upper vapor
celest thorn
#

lets patch everything

upper vapor
#

wrong reply

celest thorn
#

lol

upper vapor
unique crane
#

wait

#

wait wait wait

#

VoiceChatPlaybackBase.VolumeScale

#

whats that

upper vapor
#

volume scale for

#

the playback

#

so if you changed it for speakers

#

it would be fixed :3

unique crane
#

Yea

#

looking at it

#

It seems to be the case

upper vapor
#

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 toomuchtrolling

obtuse spruce
#

Speaker priority is...

worn gull
#

Hi! Is it possible to load Server-Specific Settings only for some players?

upper vapor
obtuse spruce
#

So fast god damn

upper vapor
#

lmfao

obtuse spruce
#

bro has a streamdeck with somes macro SkullClownRainbow

upper vapor
#

it's called

#

"follow post"

obtuse spruce
#

its not against NW team but i really hope LabApi will be fully stable and didnt gonna encounter a huge rework like NWAPI SkullClownRainbow

unique crane
#

LabApi is planned to be supported long term

obtuse spruce
#

Actually the whole life of my server turn on LabApi i have removed my whole wrappers to trust LabApi

upper vapor
#

me who still uses ReferenceHub almost everywhere in a big project toomuchtrolling

restive turret
obtuse spruce
upper vapor
obtuse spruce
restive turret
celest thorn
#

because im going crazy on how to detect it

upper vapor
obtuse spruce
upper vapor
#

copium

celest thorn
obtuse spruce
#

typeof().GetMethod SkullClownRainbow

unique crane
#

what

celest thorn
#

do i need to make a video?

unique crane
#

yea

#

I dont understand what do you mean

obtuse spruce
#

Anticheat blindfolded

upper vapor
#

like jump off on a ledge?

obtuse spruce
#

Anticheat when a random pickup an item at 500m distance blindfolded

celest thorn
unique crane
#

or high gravity

upper vapor
#

should be

celest thorn
# unique crane Thats just you jumping with heavy footed effect no?

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

upper vapor
#

"jump.WantsToJump = false"

grave eagle
upper vapor
#

idk if that does anything

celest thorn
#

no it doesn't do ANYTHING

#

just wanted to see

upper vapor
#

role.FpcModule.Motor.GravityController.Gravity = FpcGravityController.DefaultGravity * (grounded ? Intensity : 2.7f);

celest thorn
#

lol

upper vapor
#

if they're grounded you make the gravity based on intensity

#

so

celest thorn
#

but the intensity is 1

#

so

unique crane
#

Yeah I think that property is client side

unique crane
#

WantsToJump

celest thorn
upper vapor
#

then

#

2.7f multiplier

#

is pretty strong

celest thorn
#

How tf do i detect WHEN A PLAYER WANTS TO JUMP

upper vapor
#

that's why you have it

celest thorn
#

because if i know that

upper vapor
celest thorn
#

then i can just fix this issue

upper vapor
unique crane
celest thorn
upper vapor
celest thorn
#

do i need to patch time 20

upper vapor
#

look in FpcMotor

restive turret
celest thorn
#

...

#

im gonna explode

grave eagle
obtuse spruce
restive turret
upper vapor
#

when

#

OnPlayerJumped event

#

first event in additions

unique crane
#

@celest thorn FpcFromClientMessage

#

Oh wait

#

that sets WantsToJump

celest thorn
upper vapor
#

is that not good

upper vapor
#

omg

#

just subscribe to the event 😭

restive turret