#plugins-dev-chat

1 messages · Page 181 of 1

celest thorn
#

No i think they are seperated from that you should check

plain gazelle
#

But no mention of the base game group stuff thingys

celest thorn
static meteor
plain gazelle
celest thorn
#

go connect to a server

plain gazelle
#

So this would work?

#

As long as i give someone "owner"

#

in whatever file thats in

static meteor
#

No its the permissions: element

plain gazelle
#

ohhhh

#

owner is the group

#

right

#

so now, whoever has the owner group would pass that check?

#

i wonder how that star wildcard works

static meteor
#

Its a wildcard so everything under mpr. is allowed

plain gazelle
#

do wildcards also work in the HasPermissions check?
like, i have permissions test.foo and test.bar and then i do
sender.HasPermissions("test.*")

would that pass for someone who has "test.foo"?

static meteor
#

never tried ¯_(ツ)_/¯

celest thorn
static meteor
#

Is that Eli from half life?

celest thorn
restive turret
forest sentinel
#

Why is ZombieAudioPlayer sounds null? Zombies growl ability doesnt work

soft depot
#

what 😭

loud thistle
#

Not quite on topic, but I don’t know where it’s appropriate to ask this. How can I disable the "UserIdBans.txt" file?

celest thorn
upper vapor
#

Change its permissions so the server can't write to it toomuchtrolling

forest sentinel
celest thorn
#

idk its sl being sl

forest sentinel
upper vapor
#

since when does that exist

forest sentinel
celest thorn
restive turret
#

ZombieAudioPlayer

upper vapor
#

i'm gonna kill unity

restive turret
#

The change was around 12.0

celest thorn
#

that old

#

and someone just found it now

#

i remember tho there are events there?

#

so

restive turret
#

I think maybe the Halloween version has it

celest thorn
restive turret
#

Nvm

#

Well I guess it never got implemented

#

I gonna record me growling like a zombie and mr-ing it ClassDTrollHD

soft turtle
#

What does it mean?

[2026-02-05 11:07:03.251 +03:00] [STDOUT] UPnP failed: Exception of type 'LiteNetLib4Mirror.Open.Nat.NatDeviceNotFoundException' was thrown.
[2026-02-05 11:07:03.252 +03:00] [STDOUT] [T10] UPnP failed: Exception of type 'LiteNetLib4Mirror.Open.Nat.NatDeviceNotFoundException' was thrown.

restive turret
#

Ignore

soft turtle
forest sentinel
#

Subroutine exist on zombie just sounds null

restive turret
restive turret
#

If you really wanna know in-depth search for upnp, nat, open-nat

upper vapor
#

gotta love networking

restive turret
upper vapor
#

okay but have you considered /// <summary>The main speaker of this group.

#

bazdmeg

restive turret
upper vapor
upper vapor
#

copy image
does not copy image

restive turret
#

🛜

upper vapor
#

wireless vs wireful

#

my hotspot is in my pocket why is the signal not strong

restive turret
#

Wirefull

restive turret
soft turtle
#

How to get DeathTranslation?

hearty shard
#

Its skittle time

upper vapor
#

are you lookign for DeathTranslations?

soft turtle
#

I didn't find it in DamageHandlerBase and in StandardDamageHanlder

upper vapor
#

yeah it's in a different class
society if we had extension members

celest thorn
soft turtle
#

How get the unit name of the NTF?

upper vapor
#

In what context

#

Cassie?

soft turtle
hearty shard
#

evil ax

upper vapor
hearty shard
#

what the flip

upper vapor
# soft turtle Yes

You might be looking for the Announcer class, not sure which method is it

tulip kiln
#

Sooooo did anything happen regarding this?

hollow remnant
#

how to fix it?

i simply use Server.RunCommand("/forceclass 11. NtfPrivate 1");

plain gazelle
#

any way to disable SLs automatic player spawning when waiting for players ends?

restive turret
plain gazelle
hollow remnant
hearty shard
#

isnt there just

#

ev.Role

hollow remnant
hollow remnant
plain gazelle
#

my guess without line numbers would be ev.Player.Role being null

hollow remnant
#

idk why

hearty shard
#

oh

#

ev.NewRole

plain gazelle
hollow remnant
#

oh shit, sorry, it's new code

#
public override void Enable() 
    { 
        PlayerEvents.Spawned += OnSpawned;
    }

    public override void Disable()
    {
        PlayerEvents.Spawned -= OnSpawned;
    }
    public void OnSpawned(PlayerSpawnedEventArgs ev)
    {
        if (ev.Player == null)
            return;
        if (ev.Player.Role == RoleTypeId.FacilityGuard)
        { 
            Server.RunCommand($"/forceclass {ev.Player.PlayerId}. NtfPrivate 1");
        }
    }
restive turret
#

wait 1 frame and set the player as ntf then

hearty shard
# plain gazelle ?w?

RoleAssigner checks this:

public static void CheckLateJoin(ReferenceHub hub, ClientInstanceMode cim)
  {
    if (!NetworkServer.active || !RoleAssigner.CheckPlayer(hub) || !RoleAssigner._spawned)
      return;
    float num = ConfigFile.ServerConfig.GetFloat("late_join_time");
    if (!RoleAssigner.AlreadySpawnedPlayers.Add(hub.authManager.UserId) || RoleAssigner.LateJoinTimer.Elapsed.TotalSeconds > (double) num)
      hub.roleManager.ServerSetRole(RoleTypeId.Spectator, RoleChangeReason.LateJoin);
    else
      HumanSpawner.SpawnLate(hub);
  }
hearty shard
#

i dont see why u dont use ev.NewRole on the other

#

or why not just

#

set role through labapi

#

why use runcommand

hollow remnant
#

doesn't let you move, starts teleporting back

restive turret
plain gazelle
#

i set late join to 0, but i dont want anyone to spawn when the waiting for players reaches 0 or the game manually starts

#

i want to handle spawning manually

upper vapor
tulip kiln
#

I have people reporting issues with as low as 10 players

upper vapor
#

i think it does

hearty shard
#

i see

#

again RoleAssigner

#

likely patch needed

plain gazelle
#

Looks like i should prefix RoleAssigner.OnRoundStarted and instantly return false firT

#

It being private shouldnt matter right?

upper vapor
plain gazelle
#

What would be the best way to fetch a very specific door via identifiers like Zone or type?

Like what if i want the Gate in SCP914, or the Checkpoint B Armory door in entrance zone?

Same with rooms, like what if i want the Class-D spawning room?

#

Im hoping there is some enum that im overlooking

#

The generic hallways are probably only identified via Shape and Zone if i had to guess...

upper vapor
plain gazelle
#

until NW decides to add them to the API.

#

real

#

Thank you!

upper vapor
#

xd

#

np

plain gazelle
#

should i use your Roomnames in quotes for checking/finding rooms i want or what are your RoomType enum values for?

upper vapor
#

the room names start with the ones in the attribute

plain gazelle
#

x3

upper vapor
#

not the RoomName

#

but the RoomIdentifier gameobject's name

plain gazelle
#

i was gonna do this :x

upper vapor
#

that works too

plain gazelle
#

oki :3

upper vapor
#

but not every room has a designated roomname

#

romo

#

okay

plain gazelle
#

Mostly need the unique rooms right now

tulip kiln
# upper vapor there's [this](<https://github.com/northwood-studios/LabAPI/issues/341>)

I think we're thinking of two different things? I mean a situation where sometimes the voice chat just stops working, with one of these scenarios:

  • No one can hear each other
  • The person affected hears everyone / certain people, but they are not heard by others
  • The person affected doesn't hear everyone / certain people, but can be heard by others
  • Affected persons cannot hear each other, but can communicate with other non-affected players

I saw this happening on large vanilla servers, but my server (which utilises a lot of speakers) will sometimes run into this issue with even 10 players online.

upper vapor
#

and nobody's been able to give concrete reproduction steps yet, unfortunately

plain gazelle
#

ah right, thats why i had false memories
I was using Exileds Door.Type in the past which was nice to find exact doors

upper vapor
#

use rooms as clues or find the door with the nametag in RA

plain gazelle
#

currently trying to basically force close and lockdown all classd prison cells, but not the main entrance door there

#

Idk how to differentiate them in Room.Doors

upper vapor
#

check their names

plain gazelle
#

fineeeee

#

OR

#

😎

upper vapor
#

that works ig

soft turtle
#

How get the unit name of the NTF for cassie?

upper vapor
soft turtle
upper vapor
#

np

plain gazelle
#

Can i set a players position on the same tick as i set their role from spectator to alive or should i delay it a second?
Or any way to spawn a player in one a location immediately?

teal junco
#

thats how zombie revival works as far as im aware

plain gazelle
#

o.O

#

sounds interesting

upper vapor
plain gazelle
#

I want to permanently lock a few specific doors i have in mind

thin shuttle
#

And you can still get the exiled doortype

plain gazelle
#

I dont want to use exiled....

#

:v

thin shuttle
#

By credit if it's public

#

Copy paste exist

plain gazelle
#

I have no clue how Exiled determine doortypes, couldnt find it

thin shuttle
#

It's in door file

#

You can remove the one you don't need

#

But at least you easily find how to get each door

slate flume
#

Has AbilityCooldown::InitialTime syncing been fixed yet?

restive turret
#

Yes

#

It writes that now

slate flume
celest thorn
#

i know understand why unity isn't multithread

restive turret
#

Lmao

#

What did you do

upper vapor
#

concurrent modification of a collection? toomuchtrolling

restive turret
#

That's easy to fix

upper vapor
#

yeah either by using locks

restive turret
#

Locks exist

upper vapor
#

or by not using multiple threads

restive turret
#

Or concurrentstavk

upper vapor
#

that's not indexable though

restive turret
#

Who needs it

upper vapor
#

Cassie

celest thorn
#

far worst

#

I made the client and worlds run on different threads

restive turret
#

💀

celest thorn
#

and what happened was that when i connect i have a temp connection with just the Preauth i discard it and then make a client and full connection

#

but the connection in preparation couldn't call the client to spawn stuff like the FACILITY

#

so i was stuck on endless loading

#

I did a fix that seems to work and im happy and memory is down even more

#

a player seems to be 1MB

2.2% seems to be the worst one in terms which is a thread for updating the world

hearty shard
#

WAKE UP

celest thorn
hearty shard
unique crane
#

server is 300MB

#

ram

celest thorn
#

Not even

#

30mb

#

Lol

celest thorn
thin shuttle
#

there many stuff that wouldn't handle that in SL

celest thorn
#

its not even using SL code

#

its just an emulation through a Console app

#

How hard it would be to implement other players?

upper vapor
#

Death

restive turret
#

tbh I would do the same what you do but then idk if I would be in trouble

restive turret
#

do what you doing rn custom server

celest thorn
#

yea its cool

#

im trying to optimize and remade a Listpool just to remove more ram

#

got to 30MB stable with a player trolling

upper vapor
#

hey don't steal my ram

#

that's my dinner

celest thorn
#

crazy

#

go get some ddr3 or ddr2

#

ig

upper vapor
#

arguably yuo could give it to me cuz you no longer need it

upper vapor
celest thorn
#

i have ddr5

#

but im not gonna give them so easily

#

i will fight

upper vapor
#

too much effort to take it

celest thorn
#

because some net code takes a bit to figure it out but some stuff like sitelink generator helped me alot

#

ngl

restive turret
#

if u open sursuu it

celest thorn
#

maro isn't too on the idea

restive turret
#

not like its gonna get updates once we change server to IL ClassDTrollHD

celest thorn
#

at that point

restive turret
#

this is a joke

celest thorn
#

im gonna do the ultimate mov

#

ghidra

#

and spending 4hours or a day

restive turret
#

why not ida

celest thorn
#

and had so many issues to run unity game il

#

without paid version

upper vapor
#

i never figured out how to use ghidra

#

it was confusing

#

confusong

celest thorn
#

idk after taking a shit ton of classes before quitting uni about assembly

#

they thought me how to use it

#

so i kinda understand it

restive turret
#

i lost my pic

celest thorn
#

nah bro

#

mario is studying

#

so 😶

upper vapor
#

you should also be studied

restive turret
#

well cant help if not open sauce

celest thorn
#

no sauce for you ig

restive turret
#

found it!
I really should start naming my memes

celest thorn
#

idk about opening it up it depends all on maro, even tho im a bit against because my code isn't the best nor im a professional at doing this shit

#

im doing it for fun

upper vapor
restive turret
#

all of them are just literally
yyyymmdd_hhmmss.jpg

celest thorn
celest thorn
#

and helps me develop my skills and critical thinking on how to approach a problem

restive turret
celest thorn
upper vapor
#

i'm buzi with other stuff

#

like

#

procrastination

celest thorn
restive turret
upper vapor
upper vapor
#

nuh uh\

thin shuttle
restive turret
#

how if not made in my for changing to il2cpp

upper vapor
#

you'd have a difficult time updating

#

especially for assembly

thin shuttle
restive turret
#

ye

upper vapor
#

unplug them

thin shuttle
#

Should better not

upper vapor
#

unplug all the plugins

#

only vanilla allowed

#

(chaos will ensue and SL will die)

#

chaos

thin shuttle
#

Honestly even on vanilla they all have plugin for moderation tool

#

Lol

upper vapor
#

not if we remove all plugins toomuchtrolling

thin shuttle
#

Yeah

upper vapor
thin shuttle
#

That kinda chaos

icy knoll
# upper vapor only vanilla allowed

there was one guy i knew who made their own moderation panel for their server not via the plugin means, so their server was marked as totally vanilla even tho it had a portal

#

which i thought was kinda cool

#

i forgot how he did it tho

upper vapor
#

modifying assembly-csharp -perhaps

#

or

#

theyjust messed with bans.txt

#

through a separate process

icy knoll
#

¯_(ツ)_/¯

upper vapor
#

that could be disastrous ngl

upper vapor
icy knoll
upper vapor
#

the face is too wide

#

like

#

the lines

thin shuttle
#

I know a lot of people that directly made change through modifying directly assemblycsharp lol

#

Very cursed

upper vapor
#

back in the day

#

yea

#

ancient stuff

#

🦖

thin shuttle
#

Between smod and exiled

#

Era

#

Apparently smod was cursed to work on

celest thorn
#

cedric under the bridge with cedmod trolling

#

if no plugin

#

and probably sl would die

upper vapor
#

society if no cedmod

thin shuttle
#

Lol

celest thorn
#

idk i think the only people who would benefit

#

would be cheaters

#

everyone sl would just loose

#

i had more hope for the other one i forgot the name

#

they were even making a client

#

but got shutdown instantly

slow grotto
slow grotto
celest thorn
celest thorn
static meteor
#

My message system works SteamHappy

icy knoll
static meteor
#

Making my own im currently using SCPDiscord

icy knoll
unique crane
#

Advertising!!!!!

#

@ mods

icy knoll
#

takes ur kneecaps

upper vapor
#

what about that

unique crane
#

what

restive turret
#

I tried doing shit with twitch system and i hate it

#

doesnt even receive subscribed method

#

everything sucsks

icy knoll
#

twitch api sucks

#

dont even bother

#

you have to do an api call every 5 minutes

upper vapor
#

isntead of base game

restive turret
#

I had a system but even after subscribing to twiches eventsub channel message send it still didnt do shit

soft depot
#

🐱

upper vapor
soft depot
#

soonTM (although to be specific imma make SL the VNC client, so players can interact with a VM, which I will host on my PC cuz I dont want to add any vulnerabilities to the pterodactyl node my plugin might run on)

ashen hound
#

Works on unity

#

Auth done via device

warped prairie
#

oops wrong respond

restive turret
fickle marlin
#

Hi guys... i would like to ask... how to get current Ammo of Firearm...
what i know... i need to get the MagazineModule of the firearm and then its AmmoStored...
but it gives me always 0, when run on ReloadingWeapon event...

static meteor
#

I definitely wanted BooleanArrayFormatter instead of bool

fickle marlin
plain gazelle
#

Does a Pickup have an Item instance too? Or would they only be connected via serials

static meteor
plain gazelle
#

o.o

hearty shard
#

holy macaroni

slate flume
static meteor
#

I was too lazy to port my keycard wrapper to pickups

slate flume
#

Honestly

#

Fair

#

I was gonna say that whatever you're doing, there's gotta be a better way to do it than getting the template but if you're doing it purely to avoid work then I fully get it lmao

slate flume
#

The answer to your question is no, not really
Pickups/Items are destroyed/created when they swap between the two, the only data that's preserved is data that the game codes to preserve

hearty shard
#

im eve

slate flume
slate flume
#

I'm tech

hearty shard
#

Ello

#

i forgot to take my sleep meds so im just existing for the time being

slate flume
#

That's so tuff

#

I was gonna get some meds but the insurance company stiffed me

hearty shard
#

idk how i still forget it

hearty shard
#

I have like 7 meds a day

#

whoops

slate flume
#

🔥

#

Do you use an organizer or do you wing it

hearty shard
#

i just have them on my desk and just remember it

slate flume
#

Well apparently you don't

hearty shard
#

i lowk pretty sure i took double one time

hearty shard
#

lowk a problem

slate flume
#

You could get a pill organizer for like $5 at a convenience store

#

Might help

hearty shard
#

i have never seen one in my life

#

and for me its pretty organised

#

its just me being dement and not taking my pills at all thats the issue

slate flume
#

What if you get one of those automatic pet feeders except it's for pills

hearty shard
#

😭

#

not a sentence i thought id read

slate flume
#

It's called a problem-solving mindset

hearty shard
#

xd

slate flume
#

I'm now thinking about the opening scene to Back to the Future

hearty shard
#

holy shit valentines is in a week

#

which actually

#

will be quite important day for me

#

ANYWAY RECH

#

TECH

#

did you have like stuff for the code gen

#

or am i dumb

slate flume
#

Source gen?

hearty shard
#

yes that

slate flume
#

I didn't make anything cause I've barely programmed for a couple weeks 😭

hearty shard
#

i see

slate flume
#

Medical stuff

hearty shard
#

ok!

#

tech do you have someone for valentines

slate flume
#

I like source gen tho

#

I thought I did but no clue atp

hearty shard
#

I see

slate flume
#

Prob just gonna lay around

hearty shard
hearty shard
#

im prob gonna spend the day w gf if she doesn't get caught up in stuff

slate flume
#

That's epic!

hearty shard
#

yes!

#

9 month anniversary on that same day too

slate flume
#

That's right valentine's is in like a week lol

hearty shard
#

xd

slate flume
#

Maybe I'll get a heart-shaped box of chocolates and eat it myself

#

They do those like varieties and I am a casual enjoyer of sweets

#

I do like to cook though so I might make a good meal

#

My local meat shop sometimes has good discounts

hearty shard
#

I should lowk be saving

#

And actually yk...

#

Get my future not cooked

#

I need to find devs and shi and then pay em

#

😭

slate flume
#

That's so fire

hearty shard
#

one day ill be able to actually give her good gifts for events like this

#

but until then i need employment (very likely self employment)

slate flume
#

I mean if you're dedicated to the craft you could make something by hand

#

Something about how it's the thought that counts

hearty shard
#

We're uh

#

Long distance

#

Not exactly easy

#

xd

slate flume
#

Oof yeah true

hearty shard
#

And uh, even if many believe it, im still not 18 yet

slate flume
#

Yeah you're like 16/17 right

hearty shard
#

17

#

turning 18 this year

#

7 months til im aunt status and will crumble

slate flume
#

Haha sucks to suck

#

Yeah I'm 18 and in roughly the same boat

#

Though I do make a little money from server donations now

hearty shard
#

The intention is to use it

#

For the future

#

Like devs...

#

Of which i lack many of

#

very sad

slate flume
#

What project do you need to pay devs for

hearty shard
#

I plan to do game dev!

#

I do have a concept brewing rn, but

#

I'm lacking intelligence to make it a reality and my main other guy is busy w college stuff

slate flume
#

That's awesome!

#

I mean tbh I'm sure there are people out there who'd be happy to volunteer

#

I wasn't paid for dev work here for like the first year I did it

hearty shard
#

I do have like 10-15 spare to spend on paying devs a bit

#

so its not like its fully volunteer

#

But

#

it mostly is for the most part lmao

#

my words only make half sense

#

lmao

slate flume
#

Lmao yeah I get it

hearty shard
#

But uh, im doing volunteer with yk... Secret api

slate flume
#

I mean my position is still mostly volunteer, I make a bit here and there

slate flume
#

SecretAPI is epic

hearty shard
slate flume
#

I feel that

#

Tbh I just don't have a lot else to do these days

#

I'm waiting to hear back for employment

hearty shard
#

I refuse to let it be archived and let everyone using it need to fix it themself or whatever

slate flume
#

Entirely fair

hearty shard
#

Or

#

SecretAPI will become obsolete

#

which either case works

slate flume
#

PR LabAPI with SecretAPI

hearty shard
#

thing is, most the stuff are done in a way NW wouldn't do

#

And I think that's valid

slate flume
#

How so?

hearty shard
#

I mean SSSS needs some basegame changes to actually be clean imo

#

my way isnt exactly clean having to like add basegame stuff and check stuff

#

Imo it could be cleaned up a ton w basegame improvements

#

Same with custom effects, thats kinda.. not an intended thing

slate flume
#

Custom effects are dope though

#

It's like the easiest way to do things like healable damage vulnerability

hearty shard
#

But

#

NW making it basegame rather than having to hope game doesnt do stuff too quick is yk.. a lot better

slate flume
#

That would be nice

#

Though I'm not expecting it lol

hearty shard
#

we'll see

#

other than that yk

#

prefabs

#

NW has already said they'd prefer a better way

#

which valid

slate flume
#

After Cedric told me he's vetoing simple changes because he feels they're unnecessary I have little hope for future QoL changes

hearty shard
#

I don't disagree w Cedric imo

#

But oh well

#

not rly smth i have strong feelings on

slate flume
#

I just wanna be able to make communication plugins that respect player mutes without having to rebuild a mute system for my server lol

hearty shard
#

i assume my suggestion will end up being it

#

or smth close

slate flume
hearty shard
#

not sure

slate flume
#

Cedric told me for those things he's vetoing other changes and I'll have to make my own muting system

hearty shard
#

i mean he veto'd having access to clients mute list no?

#

which yeah

#

does cause the issue of text chat integration

#

im not sure PI_Shrug

#

i dont disagree w Cedric (or well NW in general) saying no to this sort of info, itd just be nice to have integration that works for everything

slate flume
#

Period

hearty shard
#

yeahh

#

my not sure was less about whether it would be like that and more that im not sure on how it'll play it in the end

slate flume
#

I will always be against that, having such a restrictive development philosophy is part of why devs come and go all the time in this community

#

Genuinely frustrating the refusal to make simple changes to improve QoL for both developers and players who have to deal with this

hearty shard
#

im indifferent since yk im off sl

slate flume
#

My bad this stuff riles me up lol

hearty shard
#

yeah i noticed lel

slate flume
#

I just want to be able to make stuff my community likes, and it sucks continually telling them that changes for their ideas aren't happening just because NW doesn't want to

hearty shard
#

but yea i have plans for my future

#

just a struggle to start with

slate flume
#

Starting can be the hardest part

hearty shard
#

it tends to be

#

There'll be difficulties but

#

I won't be alone while having my girlfriend, so

#

Even if all goes wrong w game dev I'm not gonna be fully cooked

#

Just a little

slate flume
#

That's epic

#

Having support in your future endeavors is sick

hearty shard
#

I mean

#

we still need to finish all our studies

#

Even if I'm struggling quite a bit

#

But hopefully, that'll end in us having smth good

slate flume
#

School is lame

hearty shard
#

It is

#

But

#

Im also biased

slate flume
#

So am I lol

hearty shard
#

ive been like having mega issues in every way since like 6th grade

slate flume
#

Preach

hearty shard
#

gotta love autism and depression

slate flume
#

It makes for a great time when you live in a strict household

hearty shard
#

im still thinking about possible bipolar, but diagnosis on that one will prob have to wait a while

hearty shard
#

I'm quite lucky

restive turret
#

Holy yapping

slate flume
hearty shard
#

Despite my own issues, I do have a decent family

slate flume
hearty shard
restive turret
#

Hehe

hearty shard
#

slime

#

wanna see kitty

restive turret
#

Sure

#

I have next to me

hearty shard
#

Shame on you

#

You get a shoe instead

restive turret
#

No

hearty shard
#

ha!

#

shoe

restive turret
hearty shard
#

You should totally join my completely disorganised dev team lowk

restive turret
#

Or join mine ClassDTroll1

hearty shard
restive turret
#

Fully moddable game, client & server. FPS shooter with many gamemodes

icy knoll
restive turret
#

What

#

Waterboard?

icy knoll
#

torture method

restive turret
#

Idk what that sentence means

restive turret
hearty shard
#

Hold your head underwater

#

A long time

#

Anyway

#

Check yo dm

restive turret
#

I'm scared

icy knoll
slate flume
restive turret
#

Ah

#

Well I did some very basic part

#

Made a md what I want to do

#

But got carried away doing everything else

#

And godots UI making isnt the best

slate flume
#

Congrats

hearty shard
#

Stay scared

#

why is lumi lowk old

#

@icy knoll holy aunt status smh

#

granny even

restive turret
#

Markdown

plain gazelle
#

Player A has Light armor in their Inventory
Player B sees that Player A has Light armor on their playermodel

How does this work? What method/Network request is responsible for Player B being able to see Player A's armor?

soft depot
#

likely something in Inventory

#

or something in the armor itself

#

it seems that whenever a player receives an armor, WearableSync.EnableWearables is called which ends up sending a WearableSyncMessage to all players

#

so if you need to fake a players armor, I'd say just send a WearableSyncMessage to all players with whatever data you want after a player picks up armor

plain gazelle
#

Thank you ^^

#

For my purposes, i dont want any armor to show, ever, so i might just patch EnableWearables to never do anything? firT

#

ohhhh wearable is also responsible for the hat and 1344, interesting

#

omg wait is this how i could make the hat show for someone without the status effect o.o

#

firNotes noting this down even harder

#

And i should probably use OverrideWearables/DisableWearables so even late joining players would see it (faked) correctly

#

in what scenario would BodyArmorItem in the PickedUpArmor event be null o.O

soft depot
#

¯_(ツ)_/¯

plain gazelle
#

I hope doing
WearableSync.DisableWearables(ev.Player.ReferenceHub, WearableElements.Armor);
in the PickedUpArmor event works and the wearablesync isnt a frame late or sth

#

too late to figure out how to find the game code that calls that event

soft depot
#

me too 😭

plain gazelle
#

i always forget how to do that x.x

#

dont i need that ispy program thing

soft depot
#

I just use riders decompiler

#

anyways I found it

plain gazelle
soft depot
#

it should be fine cuz ServerAddItem calls OnAdded which does the wearable stuff, which all happens before OnPickedUpArmor

plain gazelle
#

wonder how i could remove those stat penalties too

#

hmm

#

ev.BodyArmorItem.ActualMovementSpeedMultiplier is only get;
grrr

#

oooo how could i make someone immune to heavy item penalties

#

aw, only through effects

#

Can i just make my own effect with that interface and apply it...??

soft depot
#

probably I guess, cuz stamina is synced to client I think you can just control it server side

#

another option is just patching the getters of the stamina penalty to just return 1 or 0 or whatever

#

anyways

#

who coded this gang

#

it's >= not > 😭

plain gazelle
#

what does ++ before a value do?

soft depot
#

increments and stores it

plain gazelle
#

so the same as

maxExclusive++;
if (maxExclusive > 64)

but one line?

soft depot
#

yes

plain gazelle
#

neat

#

thanks

soft depot
#

so what's happening here is for each room basically if that room passes some check, NW saves it to a static array (hence the NonAlloc name), then increments maxExclusive and checks if it's > 64 before breaking

#

what's happening though is maxExclusive is getting up to 64

#

failing the break check

#

then the next room goes by

#

then the method tries to index ValidPositionsNonAlloc at position 64 but the array has only 64 entries

#

C# is 0-indexed so that 64 index is out of bounds

#

and then the error gets thrown

plain gazelle
#

lol

#

i guess the break check should happen before the index?

soft depot
#

no the check itself is just wrong

soft depot
soft depot
# slate flume There's like 50 billion reasons

yo btw, this this a W code matcher?

        private static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions)
        {
            CodeMatcher matcher = new(instructions);

            // change all (maxExclusive > 64) to (maxExclusive >= 64)
            matcher
                .MatchStartForward(new CodeMatch(OpCodes.Ldc_I4_S, (sbyte)64))
                .Advance(1)
                .ThrowIfInvalid("Transpiler failed first match")
                .SetOpcodeAndAdvance(OpCodes.Blt_S)
                .MatchStartForward(new CodeMatch(OpCodes.Ldc_I4_S, (sbyte)64))
                .Advance(1)
                .ThrowIfInvalid("Transpiler failed second match")
                .SetOpcodeAndAdvance(OpCodes.Blt_S);

            return matcher.Instructions();
        }
slate flume
#

Loop it

soft depot
#

¯_(ツ)_/¯

slate flume
# slate flume Loop it
private static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions)
    {
        CodeMatcher matcher = new(instructions);

        // change all (maxExclusive > 64) to (maxExclusive >= 64)
        for (var n = 0; n < 2; n++)
        {
            matcher.MatchStartForward(new CodeMatch(OpCodes.Ldc_I4_S, (sbyte)64))
                .Advance()
                .ThrowIfInvalid($"Transpiler failed match {n}")
                .SetOpcodeAndAdvance(OpCodes.Blt_S);
        }
        
        return matcher.Instructions();
    }
#

I just use .Advance() without 1 specified because in later Harmony versions, that's the default

soft depot
#

alr

soft depot
slate flume
#

Though if you made this with old Harmony (I believe Exiled uses an outdated version), you have to specify

soft depot
slate flume
#

Ong I saw some shit about 106 items

soft depot
#

that's what the transpiler fixes btw

soft depot
slate flume
soft depot
#

probably an outdated version lol

#

buts till, why were there obsoletes and no IsDestroyed, even for a single version 😭

soft depot
#

dunno

slate flume
#

You'd think it'd be part of the same PR

slate flume
#

@soft depot exiled has custom doortype stuff right? Do you guys have a check to see if a door is normal vs like 096 door

soft depot
#

what's an 096 door?

#

are you talking about the half door in 096's room that accesses the operative keycard?

soft depot
#

closest thing I can find is GetDoorType in Exiled.API.Features.Door

#

basically all it does, is if the door has no name, returns a generic DoorType (or a more specific one if possible), otherwise if it has a name Exiled just removes any excess stuff in its name and then just has a giga switch statement

slate flume
#

That's epic so I'm gonna have to do it myself

#

Mfw I can't rip Exiled code🥀

soft depot
#

I mean, you can just copy paste the method off the GitHub if you need every door type

#

otherwise just run this on the name of a door (from a DoorNametagExtension component)

        public static string RemoveBracketsOnEndOfName(this string name)
        {
            int bracketStart = name.IndexOf('(');

            if (bracketStart > 0)
                name = name.Remove(bracketStart, name.Length - bracketStart).TrimEnd();

            return name;
        }

then check if the name that is left is "096", idk if it's the inner or the outer but I reckon it's probably the inner

slate flume
soft depot
#

Well that’s gotta be somewhere in exiled (though it’s probably a base game thing)

restive turret
celest thorn
#

i learned physics back again lol

upper vapor
#

spawntextcommand.cs

celest thorn
#

physics is hard

#

especially collisions

#

;(

#

it took me a bit not having transform nor gameobjects and making them from scratch

upper vapor
#

Matrix4x4 🗣️🗣️🗣️

celest thorn
#

Now its gonna be the next crazy shit

#

Parents Fear

upper vapor
#

gl

#

in theory they aren't that difficult

#

you just gotta combine the matrices

#

when doing transform stuff

celest thorn
#

Like the only thing i like of this

#

is that i can decide whenever update

restive turret
#

I still have no clue why you combining multiple stuff

restive turret
#

Processing and message struct shouldnt be in the same place

celest thorn
#

and structs are in the Core, because they use to handle stuff like Preauth etc...

restive turret
#

I seen you mix the two dont lie to me!

celest thorn
#

im telling you they are seperated lol

restive turret
celest thorn
restive turret
#

So you did fix after I told u so

celest thorn
#

structs are in utils with pooling

celest thorn
#

i didn't change anything it was like this since the start lol

restive turret
#

I seen you mixed the RA stuff inside whatever message was it

celest thorn
#

I have for messages classes that handles them

#

and you saw that one

#

you saw this, this is in message and its used to handle that specific packet

restive turret
#

Ah I was thinking you mixed the message struct and the processing itself

celest thorn
#

i use this for my personal preference of handling packets

#

so i can just see where the error is at in the class instead of a massive switch case

#

and its cleaner in my opinion

#

RPCs are handled the same way

celest thorn
#

Like why is this even happening?

upper vapor
#

might be a skill issue

#

actually

celest thorn
#

why?

upper vapor
#

culling parents must be root objects

celest thorn
#

thats a root object

upper vapor
#

doesn't look like it based on your hierarchy

celest thorn
#

so i cannot use them just for that?

celest thorn
#

so sad

#

btw

#

the toy works normally too

#

if i use it

upper vapor
celest thorn
#

like it behaves correctly its just offset

#

Wait

#

technically in the client it is a root

#

just not on the editor

unique crane
#

ig you serialize it incorrectly

celest thorn
#

because i spawn them with parent just when they have a culling toy

unique crane
#

and assume that text origin is in top left corner

celest thorn
unique crane
#

oh wait thats quads

#

💀

celest thorn
#

public override void Write(NetworkWriter writer)
{
writer.WriteVector3(Bounds.center);
writer.WriteVector3(Bounds.size.Abs());
}

celest thorn
#

this is how i write the additional specific stuff for this toy

#
        /// <summary>
        ///     Gets the world-space axis aligned bounding box of a primitive. The returned
        ///     <see cref="Bounds"/> includes both the center and size of the primitive in world space.
        /// </summary>
        /// <param name="primitive">The primitive to calculate bounds for.</param>
        /// <returns>
        ///     The <see cref="Bounds"/> representing the primitive's world-space bounding box. If no renderer,
        ///     collider or mesh is available, the primitive's transform position and lossy scale are used as a
        ///     best-effort fallback.
        /// </returns>
        public static Bounds GetBoundingBox(this MeowEditorPrimitive primitive)
        {
            if (primitive == null)
                return default;

            if (TryGetColliderBounds(primitive, out Bounds bounds)
                || TryGetRendererBounds(primitive, out bounds)
                || TryGetMeshFilterBounds(primitive, out bounds))
            {
                return bounds;
            }

#if !EDITOR
            Vector3 center = primitive.Position;
            Vector3 size = primitive.Scale;
#else
            Vector3 center = primitive.transform.position;
            Vector3 size = primitive.transform.lossyScale;
#endif

            if (size == Vector3.zero)
                size = Vector3.one;

            return new Bounds(center, size);
        }
#

maybe this causes the issue?

unique crane
#

maybe

celest thorn
#

Idk i’ve been trying to understand why

#

Without success

upper vapor
#

assign the bounds in the editor and you won't have issues

celest thorn
#

I might rework it to work like this

upper vapor
#

[ContextMenu] void RecalculateBounds or something could also be good, but it's best not to compute that stuff at runtime

celest thorn
#

True… i might rework it, its been since when they got released i never used them

#

I made a prototype

#

Saw it worked and forgot to update the editor

stiff niche
#

sa

upper vapor
true arch
stiff niche
#

olm bak sana adk atarım

#

TÜRKÜM LAN BEN

stiff niche
#

🔥 🇹🇷

upper vapor
#

pls speak english here :3

stiff niche
#

i am türkish

#

TÜRKÜM LAN

worn venture
#

Doesnt change the fact that you gotta speak english here

stiff niche
#

☝️ SİZDEN BÜYÜK ALLAH VAR☝️ 🇹🇷 🔥🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥

#

🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥

worn venture
#

mods get that guy

hearty shard
#

is this a ban speedrun

stiff niche
#

bro i am türkish

#

i am cool

hearty shard
#

ok

stiff niche
#

i am sigma

hearty shard
#

didnt ask

stiff niche
#

thx

hearty shard
#

@upper vapor cheeseburger

upper vapor
# true arch this summary in <#1274617808805826621> is taking its time

in the meantime, have a look at this video

Stage event recorded at 2026.01.31

Times:

0:00 - Start
0:50 - Recap of 2025
1:55 - 2:40 - Builds for host early
2:55 - 4:05 - Polaris update
4:25 - 15.0 started in development
4:55 - DisplayKit!
6:42 - DiplayKit example code.
8:55 - DisplayKit available time (Soon)
9:10 - Clickable UI talk
10:10 - Questions from the Stage
11:32 - "Get Sopfie'd...

▶ Play video
stiff niche
#

bro

upper vapor
#

not sure why this channel was chosen

stiff niche
#

🇹🇷 🔥

worn venture
stiff niche
#

i am türkish

stiff niche
#

🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥 🇹🇷 🔥

hearty shard
#

im starting to think hes just google translating

stiff niche
#

I AM GERMAN

upper vapor
#

you can be anything

stiff niche
#

YEAH

hearty shard
#

you can be gay

stiff niche
#

NO

#

NO

upper vapor
#

waaaaaaaahhhh

worn venture
#

is he getting censored

stiff niche
#

🇹🇷 🔥

#

who ıs the owner

hearty shard
#

oh clipped

stiff niche
#

at scp sl

upper vapor
#

it's in a different order for me

upper vapor
hearty shard
worn venture
#

it's axwabo

upper vapor
hearty shard
#

its me

upper vapor
#

hi me

stiff niche
#

🖕

hearty shard
#

wrong ping buddy

stiff niche
#

ı am scp 939

hearty shard
#

ur a dog?

#

okay

stiff niche
#

no

upper vapor
#

bark bark

stiff niche
#

i am 096

hearty shard
#

ur shy dog?

stiff niche
#

no,

#

no

#

maybe?

#

no

#

@hearty shard are you Femboy

#

or not

hearty shard
#

💀

#

yeah buddy has never seen a woman

#

no wonder

stiff niche
#

no no no no,

restive turret
#

*never seen a light

upper vapor
upper vapor
hearty shard
#

never gone outside

hearty shard
stiff niche
#

ok bye bye

hearty shard
#

6......

stiff niche
#

see ya

hearty shard
#

6.....7

hearty shard
upper vapor
upper vapor
hearty shard
upper vapor
#

magic

#

but

#

gay

hearty shard
#

oh

#

okay

upper pike
upper vapor
#

eve would be in quite a bit of a pickle if she was allergic to gays

hearty shard
#

woah

thin shuttle
#

big question

#

does someone have the code to get ALL Spawnpoint on the map ?

#

i remind making one before

#

but i don't find it anymore

upper vapor
#

like structure spawnpoints, or player spawnpoints, or both?

hearty shard
#

i mean they said all

upper vapor
#

@slate flume do you like destroying objects the same frame they're created

#

cuz now i'm suffering with that

#

thanks unity for adding no reliable way to check whether the object will be destroyed this frame

#

oh

#

right

#

i can just check if it's active

#

how brilliant

thin shuttle
restive turret
#

Whats happening in the vc? 😨

hearty shard
#

nerds

wary gust
#

Is there a list of characters that would prevent a badge from showing up?

tulip kiln
#

You can even see his whiskers growing

hearty shard
restive turret
#

@static meteor
Yo when did UCI had optional for LabApiExt?
& aslo since i changed the api it no longer works.

This is what to change to if you still want it
LabApiExtensions.Managers.FakeRoleManager
AddFakeRole(Player, RoleTypeId)

static meteor
restive turret
#

lol

loud condor
#

someone knows how to fix 1344 dupe bug?

restive turret
#

there is no 1344 dupe bug