#plugins-dev-chat

1 messages · Page 44 of 1

grand flower
#

so like, cause the soft disconnect, restart the game, try to get it again?

worthy rune
#

yeah

grand flower
#

nope

#

doesn't happen

worthy rune
#

weird

grand flower
#

annnnnnd

#

it doesn't happen on vanilla

#

so i'm gonna have a nice drink before I lose my sanity

#

figuring out what the hell could cause that

worthy rune
#

oh xD

#

well good luck

grand flower
#

any chance of NW adding a null check to that method

worthy rune
#

its pretty unlikely especially if it doesnt cause problems for vanilla, a labapi maintainer may look at it tho if they think its worth their time

grand flower
#

UserCode_TargetRefreshItems__ItemIdentifier gonna have to figure out like

#

everything that sends this RPC

worthy rune
#

iirc thats only called when you set sendItemsNextFrame to true

grand flower
#

so we have something somewhere that adds an invalid item to the inventory?

worthy rune
#

it only sends itemId and Serial, so i dont think its that

grand flower
#

ApplyAttachmentsCode
invalid attachments code?

worthy rune
#

its been awhile but invalid attachment codes should work

#

the model is just messed up

grand flower
#

it's complaining about an attachment being like, null

#

during SetActive

#

Does equipping a gun do anything special to attachments

#

since that somehow fixes it

worthy rune
#

i dont think group is null, its somehow the gameobject that gets returned from array thats null/destroyed

#

it probably does

grand flower
#

yeah that's what I meant, Group contains a null gameobject

worthy rune
#

odd since i think unity is the one handling the creation in this case

grand flower
#

that's gonna be a fun one

grand flower
#

@worthy rune Nevermind it is vanilla!

#

Just that our modded server made me SCP-079 on spawn, and not the vanilla server

#

If I make myself SCP-079, and then into a guard, the bug occurs with the gun

#

going to narrow it down further

#

see if it's only 079 that does it

worthy rune
#

bruh xD

grand flower
#

939 doesn't do it

#

this is like

#

extremely hard to repro when you don't know it

#

and since equipping the gun prevents the issue

#

i'm guessing it's why nobody reported it

#

I didn't start as 079 on our server but I did spectate 079

#

so im wondering if that also triggers it

#

...

#

it does

#

merely spectating 079 allows the bug to trigger

#

@worthy rune

worthy rune
#

weird didnt expect 079 to be the cause

grand flower
#

but like

#

why does merely spectating 079 cause this

worthy rune
#

maybe something todo with role pooling, its really confusing now

grand flower
#

I'll tidy up the repro steps and submit a bug report

#

this is spooky, and like, while the set of circumstances are pretty insane to get it, it's not that hard to get a match with an 079 and accidentally drop your gun when you respawn

worthy rune
#

yeah

grand flower
#

can't believe I managed to get repro steps

#

I thought I was going mad

worthy rune
#

you can do both

grand flower
#

can also confirm the default attachments on a gun still trigger the bug

#

one last thing to test

#

spectating 079, but then spectating another player (human) before spawning

#

yeah that fixes it

#

So your last actual role, or observed role, must be SCP-079

#

although now I have another question

#

is it just non-fpc roles

#

if I make myself a spectator, and then a human class, does it happen

#

nope, it really is just 079

#

what do I even call this bug

hearty shard
#

Item Disconnect

#

idk

worthy rune
#

kick after picking up item that was dropped before being equiped by a person that was spectating or was the scp079 role ClassDTroll

grand flower
#

"SCP-079 is a cognitohazard that soft disconnects players who dare drop a gun without equipping it, after watching it, and then pick it up again"

grand flower
#

holy shit

#

it wiped my bug report

#

the input fields

upper vapor
#

always copy your bug report text

#

😭

#

this is sad

grand flower
#

for fucks sake

#

im calm im calm

#

you're lucky the bug's an annoyance

#

ah

#

i had parts of it in the clipboard

#

lucky me

#

the big chunk

upper vapor
#

phew

worthy rune
#

nah i had that happen to me too, i ended up writing a few paragraphs and didnt save anything

#

ended up just giving up lol

grand flower
#

it didn't save the repro steps though, rip

#

still fails to create the bug report

#

amazing

static osprey
grand flower
#

will do

static osprey
#

if it still happens i wake up innn 4hours then ill take a look

grand flower
#

👌

#

i've got it saved thankfully

icy wraith
#

Can someone tell why the text doesn't move ???

_textToy = LabApi.Features.Wrappers.TextToy.Create().Base;
_textToy.Position = _currentTarget.Position;
upper vapor
#

you need to set the position on the transform

#

just use the wrapper

#

also you're setting a field and not the syncvar's property

#

use NetworkBlahBlah every time you do something with syncvars

worthy rune
#

yeah if you can do this instead it would work

_textToy = LabApi.Features.Wrappers.TextToy.Create();
_textToy.Position = _currentTarget.Position;
upper vapor
#

btw, is the current target something with a network identity? (player or other primitive)

hearty shard
#

_currentTarget feels like a Player Hmm

upper vapor
#

also

icy wraith
hearty shard
#

show full code

#

is it just .Create()

#

i dont think thats valid code is it

upper vapor
#

_textToy = TextToy.Create(_currentTarget.Position)

upper vapor
hearty shard
#

oh

#

i thought it had params required

icy wraith
worthy rune
#

nah

icy wraith
upper vapor
hearty shard
#

oh

upper vapor
hearty shard
#

yeah

#

parent it

icy wraith
upper vapor
#

TextToy.Create(player.Transform)

worthy rune
hearty shard
icy wraith
#

I need to update the rotation to always face a player different from _currentTarget.

#

That's why I can't just parent it.

upper vapor
#

oh okay

icy wraith
#

Also, I tried NetworkPosition again and it still doesn't work.

icy wraith
#

I'll try the wrapper though.

upper vapor
#

the wrapper does this

icy wraith
#

I see.

#

But then why doesn't this work :

#
_textToy.transform.LookAt(_player.CameraTransform);
upper vapor
#

is the toy static?

#

if not, then it should work

icy wraith
#

It's not static by default I believe.

#

Is it ?

upper vapor
#

shouldn't be

upper vapor
icy wraith
#

Every 0.1 s.

#

(I checked with a log to be sure it is indeed invoked.)

grand flower
#

Make sure to apply the network rotation afterwards

upper vapor
#

Update should take care of that

grand flower
#

Really?

#

Good to know

worthy rune
#

admin toys work in "reverse"

#

you set the transform instead of the network var'

icy wraith
upper vapor
upper vapor
icy wraith
#

Well, now everything works (it only took me one hour lol), thanks guys for your help !

upper vapor
#

how

#

can you show the full code?

upper vapor
#

why is Extensions the single clsas in the API namespace

random scaffold
#

I using to write all the methods there

upper vapor
#

"handlersregistry" is not an implementation

random scaffold
upper vapor
random scaffold
upper vapor
#

oh

#

modulemanager?

#

that too

random scaffold
#

yes

upper vapor
#

not sure why you need interfaces for those

random scaffold
#

because interfaces cool

upper vapor
#

yeah

random scaffold
#

and i can make that

upper vapor
#

although it's not necessary if it'll only ever have 1 implementation

random scaffold
upper vapor
#

will you have other module registries and managers?

random scaffold
upper vapor
#

then

#

no need for an interface

#

dependency injection is cool though

random scaffold
upper vapor
#

what are you trying to say with that

#

if you rename something, you don't manually replace the occurrences, right..?

upper vapor
#

the system looks nice, though it's a bit overengineered imo

restive turret
celest thorn
#

Honestly chat i will let you guys decide

#

should i organize SSSS in menus or depending on where are you?

#

because by different zone the SSSS can change

hearty shard
#

tf

upper vapor
#

it might be confusing for players to have SSSS options swapped "randomly"

celest thorn
#

because honestly

#

idk

upper vapor
#

ask your players toomuchtrolling

celest thorn
#

yet

#

but im exploring alternatives

#

and doing my own SSSS wrapper

#

ISN'T happening

#

i don't want to deal with that

celest thorn
#

thats probably half of nw staffers

hearty shard
#

thats probably zero

celest thorn
#

i would wear it

#

without nw logo tho

ionic prawn
#

on a command how do i check the senders kick power cause i can only find plugin permissions

random scaffold
#

@upper vapor big brain

#

how can I get rid of this line in the modules?

upper vapor
#

Uh

random scaffold
#

i wanna like

instanceModule
{
_handlersRegistry = xxx
}

upper vapor
#

Make it a property

random scaffold
#

but its impossible due it private field

upper vapor
#

Internal set

random scaffold
upper vapor
#

The interface just makes it more convoluted
You need a property to store the registry with an internal setter

random scaffold
#

but i wanna save it private

#

or internal

#

bruh

#

im tried make it by internal constructor

#

but it dont works that

upper vapor
#

Have an empty constructor and an internal prop

#

Well, parameterless constructor to be precise

restive turret
#

How can I see if i watching a door?

upper vapor
#

raycast for direct LOS

#

or do you mean if it's in view?

#

VisionInformation

restive turret
#

Seems only gets the room? Wall? Something idk

upper vapor
#

whar

ionic prawn
#

when i try to test my 914 recipes when its dropped it dosent appear for the first time but i put it on fine again it upgrades janitor instead

public static void Process914PickupFully(
    Scp914ProcessingPickupEventArgs ev,
    Scp914KnobSetting targetKnob,
    ItemType oldItem,
    ItemType newItem)
{
    if (ev.KnobSetting == targetKnob && ev.Pickup.Type == oldItem)
    {
        ev.IsAllowed = false;

        Vector3 position = ev.Pickup.Position;

        Quaternion rotation = ev.Pickup.Rotation;

        ev.Pickup.Destroy();

        Pickup.Create(newItem, position, rotation);
    }
}

public override void OnScp914ProcessingPickup(Scp914ProcessingPickupEventArgs ev)
{
    PluginFunctions.Process914PickupFully(ev, Scp914KnobSetting.Fine, ItemType.Coin, ItemType.KeycardJanitor);
    PluginFunctions.Process914PickupFully(ev, Scp914KnobSetting.VeryFine, ItemType.KeycardO5, ItemType.Jailbird);
}
restive turret
#

Append .Spawn() after the create

upper vapor
hearty shard
upper vapor
#

ugh

#

mildly infuriating

restive turret
#

Yup it doesn't spawn

ionic prawn
#

oh...

#

no one told me that ):

unique crane
#

To be fair.. it is written in the xml docs

spare zodiac
#

Hey are ragdolls still working the same resulting in client seeing them in different positions?

restive turret
unique crane
#

Its part of the nuget

restive turret
#

What if I dont use nuget then cant see

icy knoll
#

use the nuget, much better than the dll

restive turret
#

Also is nuget updated to latest or nah

icy knoll
#

yes

restive turret
#

Kk

icy knoll
#

well no

unique crane
#

Thats your problem

restive turret
#

Guuuh

icy knoll
#

we are waiting for beryl rn

#

we pinged them

#

but they are MIA

restive turret
#

Hes sleeping on the job

icy knoll
#

idk if on loa or what but ye

upper vapor
spare zodiac
unique crane
#

Nothing I would know of

#

They are not important to be 100% synced for the game's context

#

Like the only time it matters a bit is when you want to revive someone as 049 or disguise as 3114

spare zodiac
#

I wanted to implement moving bodies in one of my plugins, but would not work in my favor

unique crane
#

Well no

#

You will have to find an alternative

hearty shard
#

create a new ragdoll every tick trolling

spare zodiac
unique crane
#

Yes

hearty shard
hearty shard
#

ax

#

why do you

#

create one every tick

spare zodiac
# unique crane Yes

how much is ragdoll networked? Is it possible to like remove entirely the ragdoll component?

upper vapor
unique crane
#

RagdollData

#

Thats what synced

spare zodiac
#

you shall make surface networked so we can delete it SteamHappy

unique crane
#

Cancelling mapgenerating event already causes shit ton of issues

spare zodiac
worthy rune
#

to network it properly you would have to sync its entire transform heirachy which i dont think would be cheap, also it would likely make it look "glitchy" due to networking not being perfect

unique crane
#

Do not join server without map generation as your first one when you start the game

spare zodiac
#

could I just prevent all of the map generation not spawning anything?

#

I do love the new admin tools though

hearty shard
#

not surface

#

-1 seed tho

#

does remove most things

unique crane
#

No surface doesnt spawn anymore too

spare zodiac
hearty shard
#

oh

spare zodiac
#

that's for generating random seed

hearty shard
#

-2 then

unique crane
#

No, -1 doesnt generate the map

hearty shard
#

thanks david

upper vapor
#

OnMapGenerating
ev.IsAllowed = false

hearty shard
#

saskyc ur WRONG

spare zodiac
#

lemme test it

icy knoll
#

do you guys think it’s better to create new speakers every time they are needed and delete them after or keep them until the server destroys them?

upper vapor
#

pool them

#

if you have time to implement that system

spare zodiac
#

trust

icy knoll
#

probably do but idk what pooling them means

unique crane
#

However I dont reccomend doing it right now

spare zodiac
upper vapor
#

the seed is generated before that event gets called

#

if the config value is -1

#

ű

unique crane
#

You have to cancel the generation using a plugin

#

cant do it via server config

upper vapor
# unique crane

have a collection that stores inactive instances, when renting, try to get one from the pool (the collection)

#

if the collection is empty, create a new one

unique crane
#

What

upper vapor
#

surely you've heard of StringBuilderPool or ListPool

hearty shard
upper vapor
#

omg wrong reply

upper vapor
#

i replied to david 😭

#

istg why is this app so mfing laggy

unique crane
#

But yeaaaaa

icy knoll
#

oh right

unique crane
#

restart your game if you join server without map gen..

#

as first one

restive turret
#

Why

#

I love issues

unique crane
#

I dont know

upper vapor
#

no host toomuchtrolling

unique crane
#

I spent whole day with it

hearty shard
unique crane
#

But like

hearty shard
#

do this

#

why break everything

unique crane
#

Nothing spawns if you join normal server afterwards

#

Some mirror ahh shit

restive turret
#

???

upper vapor
#

does the seed message not go through?

restive turret
#

I love errors

unique crane
#

No, it says that it couldnt find proper networked prefab or whatever

upper vapor
hearty shard
#

sob?

unique crane
#

I have feeling its because of rooms

restive turret
#

Everything broken

unique crane
#

Sooo I might just let the map generate

#

and then destroy it

upper vapor
spare zodiac
#

how to connect labapi event to exiled? @hearty shard

#

🙏

hearty shard
#

literally just

#

use the labapi event

#

and it works

#

boom

upper vapor
#

what the

#

show full screenshot toomuchtrolling

restive turret
#

Lmao

#

Maybe preventing spawn doesnt add basic stuff into networkmanager prefabs?

#

Yes thats the issue btw

unique crane
#

Yeah I have feeling its rooms

restive turret
upper vapor
#

are rooms in the networked prefab list

restive turret
#

Where he cannot spawn a door

#

When the mapgen denied

unique crane
#

Well no you can do that

#

Im sure

#

Ive seen it someone do it here

restive turret
upper vapor
restive turret
#

Test it

unique crane
restive turret
#

Well thats it, you found the issue

#

Will be fixed in 172.31 version ClassDTroll1

unique crane
#

Yeah im just gonna generate the map and then destroy it all

#

Easy fix

restive turret
#

You cant destroy non networked objects

upper vapor
#

what's in the map that has to do anything with this Hmm

upper vapor
#

if seed is -1

spare zodiac
upper vapor
#

generate map

#

then delete it all

unique crane
#

My theory

spare zodiac
#

a game theory

unique crane
#

SpawneableRoom

upper vapor
spare zodiac
#

GUYS IT WORKS

unique crane
#

Some map gen stuff

spare zodiac
#

I might be little up

#

my positions seems to be locked in place though

upper vapor
unique crane
spare zodiac
upper vapor
#

o

upper vapor
#

spawn

#

no labapi way really

unique crane
#

Not right now

spare zodiac
#

wow

#

so would gameplay work normally if the whole map would be deleted and I would spawn things through like project mer or smth?

restive turret
#

Probably

#

Ask zero or maro they both doing this

spare zodiac
#

welp it's probably going to crash in a minute

#

I dropped a gun and SL is trying to lock it back in place

worn gull
#

Is this LabApi or plugin error?

[2025-06-15 16:40:22.712 +02:00] [STDOUT] ArgumentException: An item with the same key has already been added. Key: ReferenceHub (Name='Player [connId=3]', NetID='2367', PlayerID='21')
[2025-06-15 16:40:22.712 +02:00] [STDOUT]   at System.Collections.Generic.Dictionary`2[TKey,TValue].TryInsert (TKey key, TValue value, System.Collections.Generic.InsertionBehavior behavior) [0x0015a] in <069d7b80a3914a08b6825aa362b07f5e>:0
[2025-06-15 16:40:22.712 +02:00] [STDOUT]   at System.Collections.Generic.Dictionary`2[TKey,TValue].Add (TKey key, TValue value) [0x00000] in <069d7b80a3914a08b6825aa362b07f5e>:0
[2025-06-15 16:40:22.712 +02:00] [STDOUT]   at LabApi.Features.Wrappers.Player..ctor (ReferenceHub referenceHub) [0x0000b] in <ed207da941d64f12942f0c5cc79632fc>:0
[2025-06-15 16:40:22.712 +02:00] [STDOUT]   at LabApi.Features.Wrappers.Player.AddPlayer (ReferenceHub referenceHub) [0x00008] in <ed207da941d64f12942f0c5cc79632fc>:0
[2025-06-15 16:40:22.712 +02:00] [STDOUT]   at (wrapper delegate-invoke) System.Action`1[ReferenceHub].invoke_void_T(ReferenceHub)
[2025-06-15 16:40:22.712 +02:00] [STDOUT]   at (wrapper dynamic-method) ReferenceHub.ReferenceHub.Start_Patch2(ReferenceHub)
hearty shard
#

Start_Patch2 Fear

upper vapor
restive turret
#

Felso

upper vapor
#

np

upper vapor
worn gull
#

If there's a primitive under and over the player the room will be null

upper vapor
#

yeah that's been reported

worn gull
#

Ah okay

#

For now made my own patch for it 😄

royal mica
worn gull
#

Slowly Hungarians will take over this channel kekw

upper vapor
#

hungyary moment

restive turret
upper vapor
#

oh like that

#

😭

#

i genuinely did not know what Sqbika meant

restive turret
languid temple
upper vapor
#

5 ppl

hearty shard
#

miller!!

upper vapor
#

you ruined it

#

i'm gonna invade your country

sinful bronze
#

time to remove hcz testroom

hearty shard
#

time to delete

#

everything

sinful bronze
#

(what have network component)

heady turret
unique crane
#

914 has too I think?

heady turret
#

🙂

unique crane
#

Idk

static osprey
ionic prawn
#

public static void Process914PickupFully(
Scp914ProcessingPickupEventArgs ev,
Scp914KnobSetting targetKnob,
ItemType oldItem,
ItemType newItem)
{
if (ev.KnobSetting == targetKnob && ev.Pickup.Type == oldItem)
{
ev.IsAllowed = false;

        Quaternion rotation = ev.Pickup.Rotation;
        Vector3 position = ev.Pickup.Position;
        ev.Pickup.Destroy();

        Pickup.Create(newItem, position, rotation).Spawn();
    }
}

the position is like before and not like the end at 914

modern lark
#

Is it possible to cancel the ticket / influence gained by killing another player?

upper vapor
#

you can definitely patch it shrug

grand flower
ionic prawn
#

where

toxic rock
#

How i can add force to grenade?

grand flower
#

@static osprey still broken

ionic prawn
static osprey
toxic rock
grand flower
#

lmk if there's anything I can do to help

static osprey
#

kk, few mins and ill finish eatring

upper vapor
ionic prawn
#

ohhhh

upper vapor
#

that has a rigidbody

ionic prawn
#

ev.NewPosition

grand flower
#

he's the stuff im inputting

#

separated by =======

#

sec

upper vapor
ionic prawn
grand flower
#

eh I can always change my ip but it's a bother

ionic prawn
#

i dont even care about it

grand flower
#

some clown will

ionic prawn
#

i can join the server (:

grand flower
#

nah that was like, my ip not Bright's

#

was testing on a vanilla server to make sure it wasn't on us

ionic prawn
#

nooo i cant join

grand flower
#

hah

ionic prawn
#

i think my friend soon will work at Valentinos

ionic prawn
#

how should i make random broadcasts in the server, a good way

upper vapor
upper vapor
random scaffold
grand flower
#

Need to make a RandomOrDefault() extension

upper vapor
#

so true

#

TryGetRandom

#

RandomOrRmRfNoPreserveRootSlash() toomuchtrolling

static osprey
#

and can you open the f12 menu and get the network request

grand flower
#

Failed

#

@static osprey

static osprey
#

ok awesome

#

got the error on my end

#

ty

#

its not a very good one

grand flower
#

sweet, you're welcome

#

rip

upper vapor
#

you took down QA with your last successful report toomuchtrolling

random scaffold
#

axwabo moment

grand flower
#

SCP-079 doesn't want the bug resolved

random scaffold
grand flower
#

I have an rpi running pihole in my living room

upper vapor
#

a what

#

oh

grand flower
#

Better

main zenith
#

is there a way to disable jailbird charge?

static osprey
#

@grand flower can you send a pic here of what you're entering

hearty shard
#

@unique crane

#

pls make this work :3

#

to not use original definition

#

im gonna crash out

#

its definitely possible

#

although i think Deserialize is only used on client

#

so make it server too :3

#

actually looks like server does it too

restive turret
#

i highly think my game is bugged

hearty shard
#

moment

upper vapor
restive turret
#

i have 32 gb ram

upper vapor
#

matec

restive turret
#

ye

#

thats my pc name

#

*pc user name

grand flower
grand flower
restive turret
#

its only using half

#

and not SL using half the whole system using half

hearty shard
#

SL does like using a lot

grand flower
#

peace and tranquility

#

until I build a UE project and ~120GB is used, but that's still a healthy 62GB left

restive turret
#

its like 20% of my memory being used so

#

i have like 20 google page open + 2 VS project

grand flower
#

I just got tired of Unreal hogging my PC when compiling/building a game

#

now it stays buttery smooth

upper vapor
#

just increase the size of the page file toomuchtrolling

grand flower
#

I'd rather not kill my NVMe drives faster

#

and well, I wanted buttery smooth

#

page files aren't that

upper vapor
#

ik lol

icy knoll
#

sorry to interupt guys but does anyone know if it's possible to make a TextToy be able to follow the camera of someone who is looking at it? Like so they can read it no matter the angle?

grand flower
#

transform.LookAt

upper vapor
#

parent it to the player

grand flower
#

although that would only be for one player

upper vapor
icy knoll
#

i need it to be for all players

upper vapor
#

yeah but then you need to flip it

upper vapor
#

have fnu :3

grand flower
#

NW should just add a setting to make it face the local player, always

icy knoll
#

if maybe someone gave me pointers that would be awesome

upper vapor
#

transformpoint the distance from player to text toy
copy rotation

upper vapor
#

also you need to write the dirty bits twice, 2nd after the transform stuff

icy knoll
#

huh 😭

#

also would fake syncing in exiled be mirror extensions?

upper vapor
#

ye

icy knoll
#

yippie this looks so fun!

restive turret
upper vapor
icy knoll
#

no ofc not

upper vapor
#

kek

#

i would've been surprised

icy knoll
#

what would T be here for SendFakeSyncVar<T>

restive turret
#

struct, class, enum

upper vapor
restive turret
#

ohh

#

ye

icy knoll
#

well im editing the rotation of the thing

#

so Quaternion

#

?

restive turret
#

ye

#

tbh if you fully do the thing it auto completes that

icy knoll
#

ye

upper vapor
icy knoll
#

back to exiled i go

restive turret
upper vapor
#

better than exiled though

#

just alter it a little

icy knoll
#

idk how this stuff works 😭

restive turret
#

if you have the networked beh and the dirtyBit you can

#

what tramsofmr you want to edit

random scaffold
#

when scp sl on unreal engine

#

bruh

upper vapor
#

you're zeroing out the admintoybase dirty bits

icy knoll
restive turret
#

oh ye

#

fuck

#

i forgot didnt pushed that change yet

upper vapor
#

@icy knoll put what i highlighted after the if

icy knoll
#

ok

upper vapor
#

just writer.WriteUlong actually

#

for transforms

restive turret
#

i fixed it will psuh it so you can see it

icy knoll
upper vapor
icy knoll
#

can i copy and paste this or will you want full 100% credits 😭

upper vapor
#

nothing changed CFbruh

icy knoll
#

LOL

#

I SEE THE EXILED HEADER

#

LMFAO

restive turret
#

I mean

#

I copied from EXILED AND MIRROR Source code

grand flower
#

That's a funky license to use for code

upper vapor
#

i reverse-engineered mirror so i don't need a notice toomuchtrolling

icy knoll
grand flower
#

Better safe than sorry

#

LabApi has a few things that can be null even when they're marked as not null

restive turret
#

if connectionToServer or connectionToClient is not INITED or you still connecting

hearty shard
#

(at least in exiled)

#

idk about in labapi

icy knoll
#

me when doesnt exist in labapi

hearty shard
#

IsOnline?

upper vapor
#

ye

icy knoll
#

ye

#

works

#

okie

restive turret
#

birj

icy knoll
#

@hearty shard when send fake sync var coming to secretapi TrollDespair

upper vapor
#

i wonder if that throws if the player is offline toomuchtrolling

#

the connection prop

restive turret
#

that just GameObject == null

#

guh

icy knoll
#

also what is ulong dirtyBit 😭

hearty shard
#

its a dirty bit probably

icy knoll
#

girl...

#

idk what that is

upper vapor
#

just get it from mirror

restive turret
#

2uL from here

icy knoll
restive turret
#

that is NetworkRotation

hearty shard
#

the only reason secretapi has mirror extension is i figured out how it works

upper vapor
#

network props

hearty shard
#

idk how syncvar works

#

so

hearty shard
#

well

#

yes

icy knoll
upper vapor
#

yea

hearty shard
restive turret
#

fun fact

hearty shard
#

so proud of u

#

oh and

#

proper writing

restive turret
#

NetworkXXX if what you usually see as a SyncVar

icy knoll
upper vapor
#

decompile

restive turret
icy knoll
upper vapor
#

decompile the base class

#

and see what's there

restive turret
#

AdminToyBase

#

because this has the Rotation

#

^

icy knoll
#

yes

#

but

restive turret
#

butt

icy knoll
#

what is dirtyBit from AdminToyBase

#

😭

upper vapor
#

2UL

restive turret
#

2uL for Rotation

upper vapor
#

for rotation

restive turret
#

1uL for Position

#

4uL for Scale

icy knoll
#

do I just type that in or what 😭

upper vapor
#

yes

restive turret
#

ye duh

upper vapor
#

combine them with |

#

if you wanna send multiple at once

icy knoll
#

i didnt know that!! should have said smh

#

and obviously just edit the rotation right?

icy knoll
#

thank you ax for your absolutely lovely show of affection

upper vapor
#

:3333

#

also fake the position (transformpoint from camera)

icy knoll
#

wait i just realised

#

how do i make it so it's constantly syncing with the player 😭

upper vapor
#

uh

#

coroutine

#

or component on the toy

restive turret
#

here for example

icy knoll
#

easier to do a component then

upper vapor
upper vapor
restive turret
#

plrrrrflfl

icy knoll
upper vapor
#

finally some component users

icy knoll
#

or just once you initially call it?

icy knoll
restive turret
#

one time, if you move it will look to old position still

restive turret
#

why not parent it to player?

upper vapor
#

that's possible too

icy knoll
restive turret
icy knoll
#

i only want it to follow rotation

#

just stay in place

upper vapor
#

oh

#

miencraft moment

restive turret
#

ohhh

icy knoll
#

the text toy will be parented to a player on top of their head

#

i want to make it so whenever someone looks at the player

#

they can read it

#

because its pointing towards them

#

that's what i want

#

😭

icy knoll
#

have i done this all wrong or smth? 😭

upper vapor
#

no it's good

restive turret
#

idk i never made such a thing

upper vapor
#

don't forget to send the fake sync var to the player who has it above their head toomuchtrolling

icy knoll
#

but now i just realised components might be a little easier

#

would i have to make smth like this a network behaviour or mono behaviour?

upper vapor
#

you can't create custom network behaviors

#

so

#

the latter one

icy knoll
#

okie

restive turret
#

i think if you parent to the player and the player is looking other direction contatantly and someone looking at that player the textoy will "flicker" (roation being the owner rotation & also the backward look direction)

icy knoll
#

i plan on making a component with a player field and just setting that player field to be the player it's designed for and just sync the rotation during the update field or smth

upper vapor
#

make it static

#

problem solved

restive turret
#

wdym static

#

i never use that

upper vapor
#

toy.IsStatic = true

upper vapor
restive turret
#

ye and whatdoesitto

icy knoll
upper vapor
#

so if you have it parented

#

there won't be extra messages

restive turret
#

but you need some update for position only but not the rotation

upper vapor
#

what

#

the object is parented to the player
it's static
the transform will only be set once
if you fake the sync vars, no flicker cuz the game doesn't send updates anway

upper vapor
restive turret
#

but you still need some sort of coroutine to update the position but not hte roation

upper vapor
#

yea

restive turret
#

i guess

upper vapor
restive turret
#

idk

random scaffold
#

some big brain

#

System.MissingMethodException: Default constructor not found for type Test.Modules.TestModule
at System.RuntimeType.CreateInstanceMono (System.Boolean nonPublic, System.Boolean wrapExceptions) [0x00076] in <13c0c460649d4ce49f991e2c222fa635>:0

#

why

#

method in the same assembly

#

why he cant find

hearty shard
#

ur using CreateInstance which only calls it with no params

#

aka new()

random scaffold
#

yes

hearty shard
#

not new(module)

random scaffold
#

me dont need params

#

he have internal constructor

#

but if im get type from other assembly

#

it show error

#

why

hearty shard
#

CreateInstance is likely looking for public ones

#

check its params

#

there'll prob be option to look for non public

random scaffold
#

nonpublic = true?

#

same

#

System.MissingMethodException: Default constructor not found for type Test.Modules.TestModule

restive turret
#

read the error

#

def cont must be public

random scaffold
#

used nonpublic

restive turret
#

Idk then

#

Show TestModule

grand flower
#

stackoverflow to the rescue

grand flower
#

(use your google fu)

#

although

#

that's what you're doing wut

#

okay nvm i can't read lol

#

Are you certain you got the latest assemblies running

restive turret
#

And the TestModule has a parameterless ctor?

random scaffold
#

now it that

#

but now inaccessable error due module cant get default constructor from test module

#

bruh

#

and it will be public

#

stupid language

restive turret
# random scaffold

You can edit the CreateInstance to use the already existing handlersRegistry

#

Activator.CreateInstance(module, handlersRegistry)

#

Vola!

random scaffold
#

then i need make stupid line like public Test(interface boo) : base(boo)

restive turret
#

And shojld work

random scaffold
#

i wanna delete this fucking line

restive turret
#

You did this to yourself

grand flower
#

You can't

#

If you're doing something DI like, generally services don't derive from each other that way

random scaffold
restive turret
#

I still have no idea why you wanna parse IHandlersRegistry into module when you already registring after it

grand flower
#

now it's an antipattern of DI, but whatever works for you I suppose

restive turret
#

Go back learning C# ClassDTroll

grand flower
#

If you really wanna do something DI like with Reflection, either do what DI does already, or like, use attributes

restive turret
#

I generally dislike DI if not necessarily

grand flower
#

I love DI, but it is rarely used in game development

random scaffold
grand flower
#

It doesn't fit it much

restive turret
#

Ye

restive turret
grand flower
#

Singletons are acceptable, Northwood has the ReferenceHub

#

We use subsystems a lot in Unreal, they're just like singletons but their lifetime can be scoped to different things (the entire game, a player, a level)

restive turret
#

Stride love using DI pretty much a LOT

grand flower
#

What's Stride

restive turret
#

Game engine

#

Made in c#

grand flower
#

never heard about it

restive turret
#

Ye

grand flower
#

oh nvm

#

i have

restive turret
#

Cus crashing left and right

restive turret
grand flower
#

I don't really pay much attention to game engines that aren't the "industry standard"

#

They can be interesting but they won't get me a job so I don't focus on them heh

restive turret
#

I love experimenting and seeing stuff

#

But unreal sucks for me

#

Less space and hate dx12

grand flower
#

The learning curve is pretty huge yeah

#

Although with the Blueprints and the new UEFN stuff, it gets lower and lower

restive turret
#

Ehh, I see what code the blueprint produce so ehhh

grand flower
#

wdym

restive turret
#

The bp to cpp code

grand flower
#

Nativization hasn't been a thing since UE5, it's gone hah

random scaffold
#

where i can find how use yaml serialize and deserialize

grand flower
#

And yeah - it's not meant to be readable/manually edited, it's just supposed to be a little performance boost if required

random scaffold
restive turret
#

Game was ue4

grand flower
#

yeah, it was a good feature though

restive turret
#

But now a badegame with nothing in it exceeds 10gb

#

Also half of the industry cant learn how pak file chunking works

#

Like ofc they gona put the whole game into a single .pak file

grand flower
#

that's just a skill issue

restive turret
#

And have my pc and steam cry when they see somethin.pak (-3MB) in changelog

grand flower
#

There's documentation on how to setup paks properly for SteamPipe

#

but apparently

restive turret
grand flower
#

nobody reads it

restive turret
grand flower
random scaffold
#

easy way: just stay this fucking line and ignore

#

bruh

restive turret
#

Dont say you cannot split to "coretextures", "mainlevel" "sounds" paks

grand flower
#

I tend to spend the first week on a new project setting it up properly, and getting a nice little pipeline for Steam tests

#

saves time in the long run

grand flower
#

In UE4.26 it was easy to split paks

#

But new UE5 features make it a little harder, and it does have an impact at times

restive turret
#

Impact in my CPU lifetime

grand flower
#

Generally if you set things up properly, Steam shouldn't be affected as much though

restive turret
#

And hdd

grand flower
#

You can definitely make different paks for different types of assets using Primary Asset Labels

#

Helps a little

#

Also a lot of studios don't remember a lot of the unused engine stuff, so it ends up packed with the project anyway

restive turret
#

Well since I cant use it not like that helps me but its good

grand flower
#

But if you put the work in, that's how small you can get

restive turret
#

Nice, atleast

grand flower
#

question

#

can you choose what type of camera to spawn

#

with the cameratoy

hearty shard
grand flower
#

how do

hearty shard
#

Find correct prefab

#

Using unity name

#

Thats how PMER does at least

grand flower
#

but there's no way with CameraToy?

hearty shard
#

get the camera toy prefab that matches

#

Idk for uhh

#

Camera toy wrapper

#

Doesnt look possible with the wrapper

grand flower
#

prefab time

hearty shard
#

Unfortunate indeed

static osprey
static osprey
#

ty

grand flower
#

o7

grand flower
# hearty shard Unfortunate indeed

wasn't too hard, can just get the prefab that has the spawntoy command you're looking for, spawn it and then create the wrapper for it

slate flume
#

Thank you John Northwood 🙏🏼

grand flower
#

wdym

restive turret
#

The CanOpen

#

It wasnt there

#

Was introduced in 14.1.1.

static osprey
#

the last line for the "What actually happens" field seems to be the troublesome one

#

so i just wrote it again a little bit different

grand flower
#

yup

static osprey
#

awesome

grand flower
#

hell on earth

hearty shard
#

Pai ....

slate flume
#

Wasn't this already able to be done before? Or was it just updated to include ALL damage handlers, even the ones you original couldn't modify damage on?

random scaffold
#

556 downloads (last ~16 my lol)

#

someone using nuget labapi?

random scaffold
#

[ERROR] [LabApi] 'NullReferenceException' occured while invoking 'OnServerWaitingForPlayers' on 'ProjectMER.Events.Handlers.Internal.MapOnEventHandlers': 'Object reference not set to an instance of an object.', stack trace:
at UnityEngine.Bindings.ThrowHelper.ThrowNullReferenceException (System.Object obj) [0x00018] in <6869b1608d104370ab4484f8f699b3fc>:0
at UnityEngine.Component.get_transform () [0x00006] in <6869b1608d104370ab4484f8f699b3fc>:0
at LabApi.Features.Wrappers.Room.get_Transform () [0x00006] in <ed207da941d64f12942f0c5cc79632fc>:0
at Conf.Freezy.API.Extensions.CreateTrigger (LabApi.Features.Wrappers.Room room, LabApi.Features.Wrappers.Door door, UnityEngine.Vector3 scale, UnityEngine.Vector3 offset) [0x00019] in <8ed01d0d115c4b069fcf835ce47a9141>:0
at Conf.Freezy.API.Extensions.InitTriggerPositions () [0x000c7] in <8ed01d0d115c4b069fcf835ce47a9141>:0
at Conf.Freezy.Handlers.ServerHandler.OnServerWaitingForPlayers () [0x00007] in <8ed01d0d115c4b069fcf835ce47a9141>:0
at LabApi.Events.EventManager.InvokeEvent (LabApi.Events.LabEventHandler eventHandler) [0x0001d] in <ed207da941d64f12942f0c5cc79632fc>:0
[2025-06-16 01:38:17.306 +00:00] [ERROR] [LabApi] 'MissingMethodException' occured while invoking 'OnServerWaitingForPlayers' on 'ProjectMER.Events.Handlers.Internal.MapOnEventHandlers': 'Method not found: MapGeneration.RoomIdentifier[] LabApi.Features.Wrappers.Door.get_Rooms()', stack trace:
at LabApi.Events.EventManager.InvokeEvent (LabApi.Events.LabEventHandler eventHandler) [0x0001d] in <ed207da941d64f12942f0c5cc79632fc>:0

#

lol

#

nw moment

grand flower
#

Anyone know where the implementation for SCP-049's call ability is?

#

or wait

#

maybe im confusing abilities

#

no im not

#

Can't seem to find where it gives hume shield to zombies

#

ah it's in their shield controller

slate flume
#

If I set a player's gravity to be sideways, will that break shit, act weirdly, both, or none?

#

Context, I used position overrides to pull people into an object, but I wonder if using gravity would work better

limber silo
#

try and see

#

if you do can you share I wanna see that

white badge
worthy rune
#

since the client can send what ever they want back you would have to validate it yourself

grand flower
#

uhhhhh

#

why is Scp939CreatedAmnesticCloud called when the cloud is in spawning state

#

it triggers even if 939 doesn't hold it all the way or actually spawns the cloud

worthy rune
#

i think it might be because a prefab is always spawned even if it doesnt meet the requirements

#

it needs to spawn to show the graphics(the circle on the ground)

grand flower
#

is there any event for when one is fully formed?

worthy rune
#

i dont think so

grand flower
#

eh nah

#

ended up checking it in tick until it fully spawns

unique crane
#

But again

#

You have to be mid-air

#

¨for gravity to take effect

#

but yes, you will go sideways

slate flume
#

Interesting

#

So I'll need to make the player floating

restive turret
#

Zero gravity

slate flume
restive turret
#

F

pine parcel
#

Has anyone done any plugin work with the dummies yet? (Things like giving them some sentience and having them follow team members, shoot enemies, etc.)

restive turret
#

I trying

#

Sadly I didn't really know how would I solve issue that checks if its a door then open that door

pine parcel
#

I've done brief coding in csharp, and have decent experience in python, so for me it's trying to find the time to get invested into the flow of SCP SL plugin coding

#

I was thinking earlier about the door problem, main issue is I don't know all the information I theoretically have access to, but for standard doors, can't you get the dummy to interact with a door in front of them while holding forward.

Scenario A) The door is already open, therefore the door hitbox isn't in front of them and they just pass through the doorway

Scenario B) The door is closed, therefore the hitbox is in front and their interact opens said door.

The main issue I see potentially is keycard doors