#plugins-dev-chat
1 messages · Page 50 of 1
ruei needs to handle offsets
every time you do a linebreak it detects that and adds to the offset
Science isn't about why, it's about why not
hmm
but if the line height is animated
you have to add the animated value to the offset
i thought of a way to do it but it is not nearly as simple as regex
it could be idk
oh also fun fact
ruei v3 will have a system to automatically bypass the hint size limit >:3
im rlly proud of it
HUH
im spreading lies maybe
also what is ruei's default line spacing multiplier, if any?
But no the text limit is from the UDP limit
so if it can be bypassed its by sending multiple packets
Which i have a feeling it does
@true cedar correct me
it will !!!
default line height is 40.665 in ruei
px or ems?
um
do you modify?
like do you set ur own line spacing
rly?
oh damn
im tryna do more math here in case font size changes
and i cant figure it out at all 😭
basically
yeah im smart thanks
i just break up the text into separate string hint parameters
So the same workaround as I did for the text toy
I mean
You cant do anything else
literally
Its UDP size limit
You cant go around that any other way unless we add it base game
like chunks to append to each other
trolled
whats the udp size limit
ushort - few mirror bytes
david ur a ushort
oh so its just
65535 - ~4
Ushort.MaxValue is 65535
I dont agree
181cm
im 187
gg
!!!
whats that in normal units
No proof
what the fuck
im 5'9
Tf you mean yet XD
Use Google to convert them 
Chop chop
im not a peasant
U r
david is 5'11 i believe
unless im off
Shhh
Im sharing your secret
anyway uh

im angry
how do i test SSSS with more people when i have no friends
So heart breaking
🤣
ill get my gf to test it w me
probably
or slejm
wait i dont have a test server anymore do I
??
💔
Skill issue
ill test it for you eve
u have friends?
Should have not been mean to me
Testing your patience
JUST KIDDING!!!
ok but like
JUNE TWENTY FIRST FOOLS!!
Hi is it possible to change a role's name in spectator below the player name's?
fake sync their role
Okay, thanks
@upper vapor implemented a queue for the plugin and everything, i think it's ready for a release, so ty man!
grape
you're wlecome
Does anyone have an idea on figuring out if a Pickup is like, part of/inside of a locker, or a wall medbox, or loose items like the lcz pistol, hcz junk and stuff?

what the fuck why does this exist https://docs.unity3d.com/6000.1/Documentation/ScriptReference/Mathf.CorrelatedColorTemperatureToRGB.html
Real cameras usually have Kelvin temperature settings, so maybe its for that? For anything sun related?
A smooth curve between warm and cold light
How can I execute a R.A. command from LabApi?
you deserve no friends
you are mean with everyone
I am not you
Why?
I have friends
i need to use the changescale command
why not just player.Scale
It doesn't appear to me and I don't understand which reference I'm missing
You can also check what the command does
But using the command isnt recommended unless ur doing something like uhh
Like config options
on commands to run at x time
ok thanks
You need to use the newest dedicated server dll
labapi one
@viral rivet pls dont dm me for support
you also have the answer above ^
LabApi.dll
wouldnt nuget have the latest, also nuget includes the xml so you gets docs too
Still not updated
ahh rip
tide
o sorry
xD
you havent updated it!!
just make it auto update!!
It needs to be signed by security team
you mean just using an api key or smth else
this bro killed cat
Just like you sign software
so it is trusted by microsoft
I dont knoooow
thats what beryl said once they do that
wine + coffee = not nice
@marble cobalt pls explain
thanks
and now with jesus being new team lead I guess they are working on that
What?
no
hi
what is lumi typing for 20 minutes for
is it possible to edit a SerializeField or is that client side?
i wanna edit a cooldown duration :c
depends
is it synced
serializefield is unity so not synced by default
how would I tell? network behaviour or?
What countdown lumi
syncvar, rpc messages etc
skeleton strangle
Like for ability?
yeah
Yeah you can only make it longer I guess
Yep
during ClientProcessRpc 
no change then
is ClientProcessRpc called on the client or is it called on the server with the network reader being the client or?
well id assume its a client thing
Since its yk
Since its yk
Named like that
My internet so slow
But are all types of doors already available in LabApi?
Like
Scp049Gate
Because I can’t find it
me when
you can check the door's name to distinguish between the same type of door
I kinda hate how autosync items are handled
Template methods amalgamated in the same class
Are containers like lockers, medboxes and scp pedestals saved anywhere, or can i somehow get a list of all of them?/their positions?
Locker.List
Or smth
When LockerType and PedestalType
After watching 17 hours of c# tutorials, I have finally mastered c# and can finally do a plugin
only took a million tears
you’ve got a long way to go my friend
i’m still learning and i’ve been doing this for a while
Just watching tutorials wont really do much, you need to experience the things
But good luck :D
I mean out of curiosity when I look at the stuff in #1274618202227216414 (code wise) I sort of understand it. I think I'm gonna take like a simple item and make it do something simple and figure it out myself. For example uhhh maybe make the medkit heal 10 hp instead of the usual to see if I can even FIND that
I recommend starting with built in things such as sending broadcasts
hints
setting player's role, hp
etc etc
Yea just start with sending player a broadcast
Make a plugin that sends player a broadcast with "hello -name-"
when you join
maybe also find some simple plugins and see if you can replicate the behaviour
okay thank you yall
when i try to do:
player.Scale = new Vector3(0.3f, 0.3f, 0.3f);
The server crashes why?
when
Please dont do it in RoleChanged event
david crashing servers as usual
add at least 2 frames delay
YOU kept telling me about the scale property
so its your fault smh
you didnt test it properly
!!!
Hey Guys, can someone help me? Its telling me _type isnt defined and because i am just trying to learn that stuff, i dont know what to do yet ( sry, my Visual studios is set to German )
( its like the example thing from git hub, connected with the other thingies etc. )
You might need to publicize the assembly
are you using publicized assembly ?
oh, how do i do that
<PackageReference Include="BepInEx.AssemblyPublicizer.MSBuild" Version="0.5.0-beta.1" PrivateAssets="all" />
<Reference Include="Assembly-CSharp" HintPath="$(SL_REFERENCES)\Assembly-CSharp.dll" Publicize="true" />
csproj file
tldr you add the bepinex publicizer
and then set assembly to publicize="true"
ok, ill try
alr, sry for the late response, i cant really find it, i know on Github theres many files at the example category, but i didnt add the Exiled.Example.csproj file because it just gave me some over 400 errors, so how can i add the csproj file to my Visual studio project without it giving my errors?
oh
if ur doing exiled
then go to exiled support
well
exiled coding chats
theres a discord
uhh
@mild ice can i send discord links i forgot
@noble vale
thx, sry for the Confusion
They will be filtered
rude...
Isn't exiled already has the acs publicized
if you download their references yes
but
you still need the references
even if ur in exiled proj
private void OnTriggerEnter(Collider collider)
{
if (!collider.CompareTag("Player"))
return;
}
Does someone know why it doesn't work?
I just do
collider.CompareTag("Player")
Yea but still if i do that
it doesn't trigger
like the code doesn't execute
even tho i just trigger it
and if i remove it, it works fine
Works on my end
Making sure like this?
Fompare
i could something smarter actually
if its default (so primitives for example)
return
internal class EscapeTriggerComponent : MonoBehaviour
{
public void OnTriggerEnter(Collider collider)
{
if (!collider.CompareTag("Player"))
return;
}
}
Tryget deez
i hate you

ur racist to me
What
im calling the police
For what
everything
Have fun with them ig
Nuh uh
u hurt me
I would never
you hurt alot more people
@grand flower if you figure out how to fuck with mapgen to check seeds can you help me out
I've got a bunch of shit I've gotta do the next few days but I wanna get an update out that'll allow me to work with that junk
Using Player.Scale if a player enters after it has been executed it sees it differently (As in the picture) than it would normally be, does anyone know how to fix it?
What r u doing
Map.Seed
Or Round.Seed idk
This is what I tried
But it causes network-client desync
I'm guessing because of the .Generate call
Wtf r u doing
what red room
and i forgot what atlas zone generator is
im not on pc rn so i cant really check it
I just realized
I'm being dumb
It's supposed to be EntranceZoneGenerator
But it's still going to cause desync

huh?
Atlas = Heavy
It shouldnt
it might be related to your .Generate(
I'm a little lost
you are generating the map server side
^
My goal:
Find seeds that generate redroom
This goal is complicated
And I'm looking after 4 damn toddlers this weekend because family is wonderful and amazing
So I don't have a lot of time to spend on this
Can you give me everything the zone generator has
cuz im a lil bit lost without any code lol
Yeah I gotchu
What I know is
SeedSynchronizer is the key
The awake function is where the MapGenerating event is called
Btw uhhh
Which goes into GenerateFacility
Which calls zone generators
The AtlasZoneGenerator (which I believe is the initially derived type for other gens?)
That's the generate
It's got a bunch of other shit
Yeah
you could maybe create a replica in a different C# project
I know it's likely possible in some way
I just ended up falling back to other rooms if red rooms isn't generated
Fair
hm?
what is bro doing
I'm just really busy these next few days so I can't dedicate as much time as I'd like
I was hoping someone would know but if not that's cool
If red rooms doesn't end up generated, I choose another room
yea but what for
it was just for spawning players in
spawn waves
because SCPs can just camp gate A/B elevators
True
especially on maps where they're next to each other
so as a nerf to that strat, normal spawn waves have 40% of players spawning in the facility's red rooms
and mini waves fully spawn there
Interesting
It helps a lot
My hope is to check seeds to see if 1. Red Room Spawns and 2. Gates are next to each other
when the spawn wave isn't stupid and actually shoots the damn SCP
(this rarely happens)
our issue is that our Mayhem server has buffs to SCPs, like 173's tantrum puddles exploding on contact with a player
Dude I had a group of me and two other D-Class who actually knew what we were doing and we killed 173 single-handedly
so even if the gates aren't next to each other, 173 can trap one/both and just patrol
in our case 173 has like
9000+ hp on a full server

Because it's the sole SCP
had to buff a ton of SCPs because they aren't built to be lone SCPs
Cyn what food should I get, I'm ordering Chinese
idk lol
I always wanted to try making 106 silent
but he'll still be noisy and asthmatic
Fucking loud ass
It's crazy that he's supposed to be an ambusher and yet he's slow, asthmatic, and loud as shit
And the people he "kills" have a 1/4 shot at surviving
3114 is like a better 106 just without the teleportation lmao
Depends on server config 
True, true
I reworked him for our Mayhem server, now players have an 80% chance of surviving pocket
but in exchange he gets buffed with every traumatized player
Gah

his teleport ability slows down everyone within 10 meters for 3 seconds, while giving him a boost for every player in that range
actually happy to see players make use of it to ambush players
You'd need to just port the mapgen 1:1 to a standalone library
but like
any random call that would occur
needs to occur
otherwise your mapgen stuff won't match the game
This is what I hate
I've never done something like this before
Might have to ask for a bit of help/guidance
I'm like a mid-level programmer, I can get by, but I need help with the advanced shit
me too
although my brains fried too
Yeah idk I'm hoping I can cook something up but man
It's insane
I wish there was more built-in stuff to help with this shit
What if I just restart the server if I get a bad map

Lmao
I think something like these niche mapgen things are low-priority for them lol
I'm gonna pick up some food and ponder it on my drive
Brb
why did they make the map gen happen both client side and server side... why sync the seed and not the map itself...
because its really complicated to sync an entire map lol?
thats my guess
its just a waste of time for both the client and server to try and sync it
A whole lotta data...
yeah
The game only needs a seed
esp when mirror makes it easy enough to have the same mapgen code
Everything will generate properly with it
Yes!!!
it saves a ton of networking over like telling the player like 8 or smth bytes of positioning per room + all the clutter + door types 
if everything was sent by server thatd be a lot
Imagine if sl had all its textured sent by server
im aware that its less data to send but at the same time it would be really nice to actually be able to have custom map generation

i dont really agree with making every part of map generation server sided
mostly due to the networking, and the fact its a lot easier to do with it being just a seed
It's good for custom maps, which NW doesn't let you do anyway
So in their case seed was enough
you can just set -1 seed 
Limiting for modders? yeah, but not a bad idea
make it all out of primitives
i hope youre not unironically suggesting this
At that point might as well make your own game
but yk

Nooo
That ruins the fun
but it wouldnt be as popular as sl
Says who
Before SL there was Breach on Garry's Mod
true...
and you dont rly need to compete with sl
eh ig technically
but yk
NW shoots itself in the foot enough that you wouldn't need to if you play your cards right

cyn have you considering arson
i started in 14.0 and ive already witnessed this twice 😭
what has bro seen
only twice is surprising
14.1 spawn wave update and a complete lack of poll relating to the changes
and NW itself
hmmm
i liked it
oh well
Oh 14.1
The mini wave
Change
Where if the enemies do better than your team they can get wave
Cuz ur team was bad...
Or unlucky idk
its frustrating for the scp team
that the enemies dont cooperate?
and are now enemies of each other too
wat
am i missing something
ok...
i play on mostly 32 player servers n 14.1 doesnt feel balanced there idk
25 is fine
it felt great for 32 and 25 in 14.0, now its just 25
i play like 2-10 players and like 40
idk
seems fine for me
also you said 2 fuck ups
Spawnwave is 1
Goggles?
its that they didnt poll the spawn wave changes at all before pushing it live but goggles too
i wish they just did one nerf or the other both nerfs like felt major overkill
What was wrong with old goggles?
They feel kind of pointless now
In SL, TTK is low, and things generally move fast
Having goggles update intermittently now makes them so not viable
Yeah that was kind of the point
yes....
but
It was ESP
😭
thats not fire
I see your point but also like
There's gotta be a better way to balance it
The way they are now is just
i dont like new goggles
but i REALLY dont like the old goggles being constant wall hacks
Kind of bad
Yes but they were too good before
I thought old goggles were fine because yeah they were powerful but also it's not like everyone in a lobby is getting them
I just generally think they could've balanced them better
I dont agree on current state
But
Its better than walls
Kind aish
can be improved
hopefully soon
I think that's a fair viewpoint I just disagree that it being useless is better than it being extremely useful
At least it was a cool unique item you WANTED to use
Now I never see a single soul use them
Defeats the whole point of having a new item
At least we both agree goggles need a rework lol
yes
I do talk about how I hate balancing in this game a lot but I'm not a game designer or anything
i dont disagree on that
i just hated them during beta
I mean yes
Fun to have
Not fun against
I may not know how to fix it but I know it's a problem
Since they literally get cheats

Ita like old siege
There was OP that gave every enemy full view of you if you move an inch
iirc that includes laying down or just turning ur camera
yes
Like what if it functioned more like 939's vision
People don't complain about 939 having wallhacks lol
Cuz ur blind
You cant see
You go off sound
Idk
It has balancing
Also dog doesnt have an Ak47 to shove into my throat
Well
Not in vanilla 
Exactly
That would be interesting
Not sure how practical it would be though if you can't even walk through doors lol
What if you could only see the facility in a small radius around you
Sort of like intense fog
Or maybe like extremely blurry vision at range
With the exception of the orbs
It would allow you to still navigate the facility and see things in a short area around you
but you still know where everyone is
So you could find items and shit
But you wouldn't be able to know if any enemy is behind cover or shit like that
Because outside of your "bubble" you're blind
I feel like that's very fair but still makes it viable
Especially if you're working with someone else
You avoid the problem of it being intermittent while also making it so you can't just solo everyone because you have no idea if they're behind cover or not
But you're also self-sufficient enough to be able to get around the facility
Lmao good to know
Idk this is just an idea
im tired im saying random stuff
I'm cool with anything so long as it fixes shit
Real
I actually made a custom item that blinds and deafens you for 10 seconds, then makes you normal for 10 seconds, but you're given 900 max HP lmao
It's fun to use and it's pretty balanced because when you're blind and deaf you can't really do shit
how do I detect that a player is dummy and not a human player?
(side note, if there are any good plugins that handle dummies I would love a pointer)
ev.Player.IsDummy
Or some shit like that
Yeah
👍🏼
thanks! did you find that in some docs, or in your own code?
I just look at the wrapper
oh got it
Any self-respecting IDE has auto-complete
So just type in what you're looking for
And it'll show you options
Let's say I'm looking to add an item to a player
Bang
Or you can look at the class if you need specifics
Shows you everything
got it, I'm not used to looking through a library as much. Need to develop that skill, thanks!
demo system working now !
good job
was gonna start writing my own heh
I'm pretty sure you can't record audio though
NW tends to frown at stuff like that
I know it breaks VSR
oh i forgot to add a check :P
sadge
the Voice chat is really fucked up i literally have no idea how to fix it
like you can hear it right 😭
Ohhh maybe the parsing/timing is off
i can see that being a possibility
most likely timing, the parsing is literally directly copying the data from the VoiceMessage
Also cyn, thank you for all that advice a few weeks or months back, it really really helped me along on this project
My pleasure
is there a way to hot reload plugins so I don't need to keep relaunching my server each time I make a change?
its not reccomended
but you can
do you have the forbidden knowledge?
lol!
ah well, thanks for replying!
you could tru
with using code from here
and understanding it
is this ai 😭
Hiiiii
where are you doing thsi?
VSR killer 9000
that would be cool
but reload on exiled
is used by none
and its even not reccomended
I guess I should really be asking, how do you guys see if your stuff is working if you aren't hot reloading? (Maybe this is a bad habit coming from REPL languages)
sr
that is brutal
i have 3.2k hours in this game
at least 100 of them is just watiing for the restart
HAHAHHAHAHAHA
fr
i probably said a low number though for waiting xd
i'm not booting from a HDD 😭
i have an nvme
and still i do the preload
but those of gen 4
wdym by preload
there a menu screen called preload
I've been trying to make NPCs so far, and getting them to even walk around and open doors has been a nightmare. I've given up on raytrace pathfinding, and I'm trying to use room door queries
before newmenuremastered
the verifying thingy?
yea
navmesh

I'm sorry what
if you are a beginner leave that territory trust me
-# pain
I would argue yes
but most of the features
if we had access to the best thing
client
Oh my god goku scp
I'm a beginner in csharp, but years in python. I am willing to be a masochist for this
😭
trust me you aren't ready for this, you need to do everything blindfolded
moving to OOP from POOP is not a good experience

lmao
and yea python is very easy compared to c#
it's not been too bad, just need to be a bit more strict with some things (though that could be the beginner mindset)
for reference I have built windows services and applications in csharp, I just don't have the years in it
btw im still figuring out why my ai system shit itself inside heavy
and i cannot find an answer
because all the freaking geometry
have you made custom simplified meshes for the rooms?
no???
i just use navmesh
and parse them through
a system
yeah taht's uh
I initially interpreted this as you accusing me of writing code with AI
please tell me it's not winfowrms 
No it's a playback of actions I did in the past
lol mb
ohhhh
so yea wtf do you mean you can do that with navmesh?
well
go in blender and make a simpler version of the room's geometry
then get that to load in the plugin somehow
I've used WinForms, but more recent projects were with WinUI
tf is winui 😭
you know you can just...
reader.ReadBytes or something
bigger, better, bloatier, (b)less documentation than ever before™
interesting
basically just a modernized rewrite that win10+ stuff uses
i did have that, i removed it for some reason
i've only worked with wpf and avalonia, avalonia is so much better than the former one
native wpf buttons look horrible
but sometimes I prefer inefficient ways than a way i dont 100% understand in something im not familiar with
kek
btw, what are you doing to synchronize time?
i don't see a timestamp marker or somethng like that
Coroutine that after doing yield return Timing.WaitForOneFrame loads a EndOfFrameSnapshot onto the queue
ohh
shouldn't you do Timing.WaitForEndOfFrame?
something like that
or run the coroutine in lateupdate
so the Reader will just continuously read snapshots until it comes onto a EndOfFrameSnapshot and then it waits one frame
oh shit i havent thought about that
you could save 4 bytes here by writing the DataLen from the voicemessage and when reconstructing, just use that length
DataLength = Data.Length
that'll break existing snapshots though
please tell me you have a version property at the beginning of your file
no need for compat, just make it so you can't break the system with older snapshots
I was planning on adding that later
but honestly i probably would have forgotten

but then you forgot 
I just didnt want to have to start a new round to read a demo

I logged (DataLength == Data.Length) and it returned false
so just to be safe I made them separate
i know
hence you only write DataLength amount of data
the rest are zeroes
almost every time in audio processing, you must return the amount of bytes/floats processed
so you have a buffer, and you can put data in that buffer, but it might not be filled up entirely
the rest of the data may also be left over from a different operation
you're studying, aren't you
yes...
in 3 days i have the exam
ok
google random number, isn't really random
like it prefers 7,8,9,1
😭
So don't use google random numbers
you should've used wheel of names
and removed the one that you've done
Thats actually smart

but basically, i should just use Data.Length?
and when reading, that'll be the DataLength and also the length of the buffer
Any way to do this funciton but on an offline player (userId)? ReferenceHub.serverRoles.SetGroup(value);
okay i think i see
you'd have to modify the RA config
-# not recommended
Well if it's the only way then I'm gonna have to do it lol
wdym by that
Yeah, I want a way to put it on the player (until I remove it)
what's your exact use case if i may ask
it might be better to write these "custom" groups to a separate file
then, when a player joins, check if they're in that file and grant the group
Well yeah that was the other way I was gonna go
I think I'll just do that actually
Yeah imma just do that
Womens in literature
Time and memory
Working conditions
War, peace and non violence,
Relativism,
Progress and mass media
Human Rights
womans
i just saw it
go study lol
im writing while talking lol
random.org my 🐐
What exactly is null?
Is it the 330 room or the interopobject?
A pot with 330 installed
Why not just block usage of 330 via events
Also if its null, then already despawned 
Also isn't the bowl spawned when the door is opened, like all other SCP items?
or am I 
that's not an SCP item
cabinets and SCP pedestals spawn only when door is opened as well
(but yeah not an SCP item)
me when structurepositionsync.start
Who needs map generator function calls 
public override void OnServerRoundStarting(RoundStartingEventArgs ev) {
base.OnServerRoundStarting(ev);
foreach (var door in Door.List) {
door.IsOpened = true;
Timing.CallDelayed(0.1f, () => door.IsOpened = false);
}
}
nah, I just quickly cooked this up to pre-generate all cabinets and items 
I told you I cooked this up for a quick joke 
right
literally went override roundstarting <tab>
hey ax, got a slight issue with the text chat plugin :3
the text rotates with the player, should i just set toy.Rotation to 0,0,0 during Update ?
wha
from the toy's rotation?
If the Transformation parent is the player's Transformation, then doN't update the rotation
yes
cause it'll follow the player's rotation
they want the text to face the observer
hmm
you can't do quaternion subtraction
yeah
so you need the euler angles
i just found that out
var direction = (_textToy.Position - player.Camera.transform.position).normalized;
_textToy.Rotation = Quaternion.LookRotation(direction);
_textToy.Position = ragdoll.CenterPoint.position + new Vector3(0, 0.5f);
this'll look directly at the observer
not good enough
that's not what im asking for...
huh
every other player
that is literally doing that?
so what do I do exactly im confused now 😭
has different rotation
For that you need to sync separatly for every player the rotation no?
yes
they just need a correct rotation when it's parented
so
get the result's euler angles, subtract the player's euler angles
then Quaternion.Euler
Quaternion.LookRotation().eulerAngles - player.GameObject.Transform.eulerAngles
i hate how player doesn'zt have a transform proeprty
I assume cause they have 2 transforms: Body and Camera
like this?
well we already have the fake sync var
cuz Player::Rotation also accounts for camera (up/down)
the only issue is that the text rotates with the player also, but readjusts to the player
so you can notice the text move the tiniest bit when the player is moving
do this when sending the fake sync
you can either unparent the toy and move it to the correct position
or do this calculation
yeah, which is because of the player turning and stuff
ig if it's not solvable we have to live with it
but that will then cause the toy to fall behind, no?
yeah then id rather have it like it currently is then lol
little bit of rotation desync is probably better than position desync
yeah
Server.Transform.position = observer.Router.transform.position 
huh 😭
ah yes hold on lemme just spawn multiple hosts 
load balancing
@grand flower imagine a load balancer on steroids for SL
node 1 does 1/3 of computations, another the 2nd 1/3, and the last the rest

round robin + relative pos caching + load balancing
That would start affecting gameplay too much
Having to sync stuff like that together is hell and generally not worth it for a game like SL
Or well, any game really. I don't think any game does something like that



