#plugins-dev-chat

1 messages Β· Page 114 of 1

unique crane
#

@soft turtle

#

Provides all you need

#

ref hub, item and pickup

upper vapor
soft turtle
#

Ok

unique crane
#

u factorial

soft turtle
#

Thx

upper vapor
#

U uu uuu uuuuu uuuuu

unique crane
#

Thats not factorial

upper vapor
#

I know I'm just

#

Yapping

unique crane
#

Silly

royal mica
#

I love when server says

[2025-09-05 12:21:13.886 +00:00] [STDOUT] NullReferenceException: Object reference not set to an instance of an object.
[2025-09-05 12:21:13.886 +00:00] [STDOUT]   at UnityEngine.Bindings.ThrowHelper.ThrowNullReferenceException (System.Object obj) [0x00018] in <0deee1b9576d40a7a211b55014778fa6>:0
[2025-09-05 12:21:13.886 +00:00] [STDOUT]   at UnityEngine.CharacterController.get_radius () [0x00006] in <80561691956e42ebafb647fbf7695776>:0
restive turret
#

char controller might be null

#

or the radius

royal mica
#

yeah, but why!

restive turret
#

dont ask me idk where you do the radius getter

royal mica
#

I don't

at UnityEngine.Bindings.ThrowHelper.ThrowNullReferenceException (System.Object obj) [0x00018] in <0deee1b9576d40a7a211b55014778fa6>:0
at UnityEngine.CharacterController.get_radius () [0x00006] in <80561691956e42ebafb647fbf7695776>:0
at PlayerRoles.FirstPersonControl.FpcStateProcessor.UpdateMovementState (PlayerRoles.FirstPersonControl.PlayerMovementState state) [0x00075] in <f859671c5d7748199d8c7b10a14f8156>:0
at PlayerRoles.FirstPersonControl.FirstPersonMovementModule.UpdateMovement () [0x0000d] in <f859671c5d7748199d8c7b10a14f8156>:0
at (wrapper delegate-invoke) <Module>.invoke_void()
at PlayerRoles.FirstPersonControl.FirstPersonMovementModule+<>c.<Init>b__116_0 () [0x0000e] in <f859671c5d7748199d8c7b10a14f8156>:0
at (wrapper delegate-invoke) <Module>.invoke_void()
at StaticUnityMethods.Update () [0x00009] in <f859671c5d7748199d8c7b10a14f8156>:0
#

Thats the fun part!

#

So I have to figure out which code of mine is doing some shit that causes base game to panic

restive turret
#

lel

#

do you do patches iwth UpdateMovement or UpdateMovementState

royal mica
#

funny that this was gone for 2 months

celest thorn
#

something is null

restive turret
#

ye CharacterController is null
idk how

#

tbh I think it didnt even check for CharControllerSet inside the UpdateMovementState

tepid sluice
worthy rune
#

its a classic

restive turret
#

Don't even know how did it managed to make that null

worthy rune
#

i dont think anyone has figured out how yet

upper vapor
#

They fucked up something somehow that is seemingly unrelated

worthy rune
#

could be some bug with the CC itself

worthy rune
upper vapor
#

Xd

#

@royal mica any other exceptions in LA logs?

royal mica
#

nop

celest thorn
#

ngl sometimes it bugs with even the randomest shit

celest thorn
#

?

#

have you added a patch?

#

something?

royal mica
#

Last Patch was patching EncryptedChannelManager.TrySendMessageToClient 2 days ago, other patches has been in for weeks

#

But is a prefix and only changes the content string

restive turret
#

can you patch and call these:
Debug.Log(NetworkServer.active);
Debug.Log(this.Hub.isLocalPlayer);
Debug.Log(this._mod == null);
Debug.Log(this._mod.CharControllerSet);

royal mica
#

pretty sure these will return expected ones

#

I only had 2 crashes the past 2 days

restive turret
#

should all return as
true
false
false
true

royal mica
#

I assume that in this case, these would return those values 99%, but false, false, true NRE throw when the bug occures

restive turret
#

wtf how would the NetworkServer.active return false?
It should be true when you are in the game and the hosting started

#

also it would throw at the float height = this._mod.CharacterControllerSettings.Height; line

#

since mod would be null but it isnt

royal mica
#

Like all of the RA commands during it says "You are not connected to a Server"

#

or something alike

restive turret
#

ye then def something wrong

royal mica
#

I know

#

cause the whole server is frozen dogkek

restive turret
#

wtf how did you even managed that

royal mica
#

I would like to know as well, so I can fix it

#

I mean with one of my patches I caused SIGSEGV so

upper vapor
restive turret
upper vapor
#

patreon supporter

restive turret
#

got a discount

upper vapor
#

vine boom

celest thorn
#

Nah bro gave money to nw

#

we are doomed

restive turret
#

i did prev-ly

celest thorn
restive turret
#

paying a beer price to fix bugs

languid temple
restive turret
#

nope

languid temple
#

You should try it

restive turret
#

I literally got a mail from patreon that i have a discount

languid temple
#

wot

#

fr?

restive turret
#

ye

languid temple
#

wtf

#

Why I don't get an offer like that

restive turret
#

:D

celest thorn
restive turret
#

@celest thorn have you sent an nw application?

languid temple
#

they are not 18 iirc

celest thorn
celest thorn
languid temple
#

ah

celest thorn
#

you want a document?

languid temple
#

no

#

idc

celest thorn
#

lol

#

else how am i working with maro

restive turret
celest thorn
languid temple
celest thorn
#

ngl maro is the best i've ever met so

#

other people i worked with always assholes

restive turret
celest thorn
#

i don't think anyone can

restive turret
#

i dont even want to touch maro spot

celest thorn
restive turret
celest thorn
#

under maro there's a guy who never paid me but he was funny asf because he was deadlifting sofas for fun

#

and throwing them against the wall

restive turret
#

wtf

celest thorn
#

Yea

#

True story

#

i've seen him in webcam

#

doing that

#

more than 1 time

upper vapor
celest thorn
# upper vapor That's Sofa King cool

another story the guy was about to escape to mexico (with his girlfriend money she lend to him) to not become a dad but requested his son to be called "his name junior"

#

he was leaving a letter and asked me how he could've become a dad

#

the story deserve to be full tho

#

to be even funnier

upper vapor
unique crane
celest thorn
#

and then he found out

#

it was thankfully not going to be a dad

#

and bro cried with me in vc

#

lol

#

i was his emotional support lol

unique crane
#

"Dear zero, do you by chance know how could I have somehow become a dad? I have 0 biology education"

unique crane
#

πŸ’€

celest thorn
#

LOL

#

yea

#

ngl that was probably the funniest memory i've ever had

upper vapor
#

that stuff is like 7th grade material

#

so

#

accurate year skullbutreal

celest thorn
#

They don't explain sex in italian schools

#

atleast not in mine

#

probably not in the south

#

too conservative

upper vapor
celest thorn
#

funny enough i found out trans existed because of tiktok and started researching at 15

#

thats when i figured out i was pratically experiencing euphroia for along time without knowing it

unique crane
celest thorn
#

but yea that guy deserve the second spot just for that

unique crane
#

Mage Arena update kek

celest thorn
unique crane
#

Fella forgot that discord markdown doesnt work there

unkempt ore
#

How to add accessories to weapons?

tepid sluice
royal mica
#

Joining doesnt matter

#

The server is full locked, dead

tepid sluice
#

I mean it may cause error when someone leave before round start

#

idk

royal mica
#

Ah

#

Possible

#

Lemme test it

celest thorn
#

Waot

#

is

#

host

#

alive

#

like does the host exist?

celest thorn
#

Wtf

tepid sluice
#

@celest thornWhy your website isn't skibidilablabla that thing

celest thorn
#

because i don't own the domain

#

and second i would never use that domain to redirect to my website

#

because its the most unprofessional shit ever

tepid sluice
#

sadly

#

i thought that was fun

celest thorn
#

wait

celest thorn
#

here

tepid sluice
#

It takes me 20sec more than the one in ur pfp

#

πŸ’€

celest thorn
tepid sluice
#

okay i sent an ~~anonymous ~~ message

celest thorn
#

ig its this one

tepid sluice
#

lol

celest thorn
#

it is anon

#

as you can see

tepid sluice
#

trolling tool

celest thorn
#

last one was yesterday

tepid sluice
celest thorn
#

i have a list of stuff i recieved i could make a bingo card

#

lol

tepid sluice
#

okay i would like to try that

#

9x9 bingo

celest thorn
#

please don't make anon website

#

its the worst thing you could've ever do

#

but sometimes i do recieve lovely messages

#

so i keep it up just for that

tepid sluice
#

UwU just like the one i sent u?

celest thorn
#

i think one of the best is a guy

#

who sent me a personal heartfelt message

#

of like how he is doing

tepid sluice
#

a guy

celest thorn
#

and he hopes im doing fine

celest thorn
#

so ig it is a guy

#

the second one is a rat video

icy knoll
#

sorry to interupt your chatter guys, but is it a bug that Ragdoll.Create(Player, DamageHandler) can't allow 049 to revive even if the person is dead? for some reason 049 can't revive people that are dead and had their ragdoll made by that method...

tepid sluice
#

iirc there is an list or smth in 049 ability?for Resurrectable ragdoll

celest thorn
#

how do you send damage?

#

can you show code?

icy knoll
#

I just cancel the spawning ragdoll event and spawn in a custom one, as changing the damage handler in the event doesnt work

celest thorn
#

damagehandler

icy knoll
#

ev.DamageHandler = new ...

#

didnt work

celest thorn
#

yes but which

#

settings

#

what

#

like show code

icy knoll
#

CustomReason

celest thorn
#

new Scp049DamageHandler(_attacker, 8f, Scp049DamageHandler.AttackType.CardiacArrest);

#

base game does it like this

#

and you can set it insta kill

icy knoll
#

uh you realise 049 can revive people that died from other people right? doesnt have to die via 049

upper vapor
#

there are certain types of damage that 049 can't revive

#

like tesla

#

could be that custom reason is also blacklisted

icy knoll
#

idk

#

but yeah

upper vapor
icy knoll
#

or it may be smth to do with Ragdoll.Create()

#

idk

#

legit have to use it as DamageHandler doesn't work when set :c

celest thorn
restive turret
#

maybe ExistenceTime being too high?

celest thorn
#

this might be why

restive turret
#

also role must be human

tepid sluice
celest thorn
tepid sluice
#

qwq

icy knoll
#

the code is different

celest thorn
#

ye

#

bro what are you

#

its just decompilation

#

its the same

icy knoll
#

ah yeah

celest thorn
#

mine is more readable too

#

lol

upper vapor
restive turret
#

it has to come from AttackerDamageHandler

icy knoll
#

news' decompiler looks a lot cleaner tho

#

so

celest thorn
#

what

#

how

tepid sluice
#

Rider is good as usual

icy knoll
#

eh i understand it more

icy knoll
celest thorn
#

ngl i don't understand how you do understand that blob

upper vapor
icy knoll
upper vapor
#

and use is not

#

the theme helps a lot

#

it's not just white and red skullbutreal

tepid sluice
#

but i dont like that

icy knoll
upper vapor
#

nothing is good notLikeThis

#

no

icy knoll
#

god damnit

restive turret
icy knoll
#

so ima just have to disable this if the person died by 049 and let 049 cope if this rare occurence happens via death from another person

restive turret
#

well idk
you could try using CustomReasonFirearmDmgH

#

but idk if you want that

tepid sluice
#

imo patch the method

#

idk

icy knoll
celest thorn
#

because its a client and server check

tepid sluice
#

πŸ’€

#

got it

icy knoll
#

this'll work i think

celest thorn
#

yo someone knows whats called the biome with lush and in the mountains

#

i forgot

#

its a place irl

#

Caldera Lakes is the name

unique crane
#

Sounds like mountains to me xd

celest thorn
plain gazelle
#

DisruptorDamageHandler disruptor = new DisruptorDamageHandler(null, Vector3.up, -1);
disruptor.FiringState = DisruptorActionModule.FiringState.FiringSingle;
target.Damage(disruptor);

So i changed the damage value from float.MaxValue to -1 but now it doesnt do anything anymore lol

#

@unique crane maybe you know what value i should use for either the DisruptorDamageHandler, or just regular player.Damage()
-1
float.MaxValue
float.Infinity
?

restive turret
#

set attacker too maybe

plain gazelle
#

attacker would be the server

celest thorn
plain gazelle
#

oki

#

.Attacker is a "Footprint" uh

celest thorn
restive turret
#

new Footprint(Server.Host.ReferenceHub)

#

ye that

celest thorn
#

Server.Host isn't a Player?

plain gazelle
#

it is

static meteor
plain gazelle
#

yes

#

It worked before with float.max but it didnt work once and left me at 0hp and alive

#

Trying to find a better way ig

static meteor
# plain gazelle yes
        public static void Vaporize(this Player player, Player? attacker = null)
        {
            ParticleDisruptor tempDisruptor = Object.Instantiate(InventoryItemLoader.AvailableItems[ItemType.ParticleDisruptor]) as ParticleDisruptor;

            if (tempDisruptor != null)
            {
                if (attacker != null)
                    tempDisruptor.Owner = attacker.ReferenceHub;

                DisruptorShotEvent shotEvent = new(tempDisruptor, DisruptorActionModule.FiringState.FiringSingle);
                DisruptorDamageHandler damageHandler = new(shotEvent, Vector3.up, -1);
                player.ReferenceHub.playerStats.KillPlayer(damageHandler);

                Object.Destroy(tempDisruptor.gameObject);
            }
        }
plain gazelle
static meteor
#

The works 100% of the time for me

plain gazelle
#

Thank you, will tell you if it ever doesnt

celest thorn
#

ngl it doesn't make sense

upper vapor
#

why do you instantiate the disruptor 😭😭😭

celest thorn
#

for the damage handler

#

for some reason

restive turret
#

I fake that with the template item

upper vapor
restive turret
#

doesnt need to be instanciated

#

it clearly works with the template so

celest thorn
#

yo

#

i need a new profile

#

im doing a pool

#

put the funniest shit

#

next profile will be one of this shit

#

if skibidi toilet dogs wins

#

im gonna laugh

restive turret
#
if (!InventoryItemLoader.TryGetItem(ItemType.ParticleDisruptor, out ParticleDisruptor disruptor) || disruptor == null)
        {
            // This should never happen
            CL.Error("ParticleDisruptor not found in InventoryItems!");
            return;
        }
DisruptorDamageHandler dmg = new(new(disruptor, DisruptorActionModule.FiringState.FiringSingle), Vector3.up, -1);
player.Damage(dmg);

maybe

celest thorn
#

lol

slender lynx
#

wrong person

celest thorn
#

maro spying

#

AHAAHHAHAHA

unique crane
slender lynx
#

you got in the way

unique crane
#

Ill ask mods to ban you

celest thorn
#

even pyra'

slender lynx
#

sorry slem

celest thorn
#

bro

unique crane
#

I dont know what pyra is

celest thorn
#

ngl this chat has something against me

#

im gonna put the skibidi just to rebel

#

perfect theme

unique crane
#

This chat is very friendly with femboys its just your brainrot

upper vapor
slender lynx
#

why am i not suprised

celest thorn
#

atleast

#

there's a laugh

#

you guys are corporate level

upper vapor
#

maybe you laughed

celest thorn
#

of shit

celest thorn
#

im not even kidding

#

i just do it to piss off

upper vapor
#

then 😭

restive turret
upper vapor
celest thorn
#

i got banned 3 times on roblox for saying to kids "Skibidi" in rivals

#

who lost

celest thorn
#

which is fucking funny

upper vapor
#

"why are people pissed at me after i pissed them off?"

celest thorn
#

yea

#

that makes sense

slender lynx
#

ragebait central

celest thorn
restive turret
#

try it ig

upper vapor
celest thorn
upper vapor
#

idm java

celest thorn
#

crazy

#

no beef with java

restive turret
#

once in a million time if it will be null i will scream

upper vapor
#

you're not gonna piss me off

upper vapor
celest thorn
slender lynx
#

(edited)

unique crane
#

bye

slender lynx
celest thorn
upper vapor
celest thorn
#

yo if i send application for LabAPI maintainer with the skibidi toilet pfp, will hr reply?

slender lynx
celest thorn
#

lets test

slender lynx
#

lets just move to teamspeak atp

unique crane
celest thorn
celest thorn
restive turret
celest thorn
#

honestly in this entire take the best game i've played this year

#

"Doom dark ages"

#

Needs to win the GOTY

restive turret
#

is your ages dark?

celest thorn
#

YOU FLY A FUCKING DRAGON AND PILOT A ROBOT

#

GOING THROUGH HELL AND DESTROYING IT

#

ngl they cooked this year

unique crane
celest thorn
#

i will spin the wheel after im too nervous because if it shows up skibidi im gonna cry

#

lol

celest thorn
#

that is the shittiest of them all

unique crane
#

my beloved

celest thorn
unique crane
#

There are dragon bones and you are fighting in literal hell

#

yes

celest thorn
#

fuck

#

ehm

#

is your guy a god?

unique crane
#

No, he is blacksmith tho

#

thats more cool

celest thorn
#

fuck

#

ehm

#

i lost

#

shit

unique crane
#

Yea

#

Can you fire from a 1403 pistol in your doom game?

#

I dont think so

celest thorn
#

sorry its a bow

#

i forgot

unique crane
#

Boring

#

we have crossbows here

celest thorn
#

that one is 2016 one

celest thorn
#

if it is a crossbow

#

because you use it on chtulu

#

and i never used it after

#

because its super rare

unique crane
#

crossbow is bow for dumbasses

#

Thats why they made them xd

#

You dont need much training to fire a crossbow

celest thorn
#

Doomguy unleashes the BFC (Ballistic Force Crossbow) in Doom: The Dark Ages. A brutal new twist on the classic BFG weapon.

Game code was gifted and provided by Bethesda.

πŸ”΄Subscribe: https://www.youtube.com/@DanAllenGaming?sub_confirmation=1

πŸ’ͺ Support the Channel: https://www.youtube.com/channel/UCcTa20zpKM6CkcvocFXVe6A/join

πŸŽ™οΈDan ...

β–Ά Play video
#

yea

#

its a crossboe

#

But still best baddass music ever

#

i don't think anyone has anything to say on that

celest thorn
#

because its good

#

but idk

unique crane
#

KCD 2

celest thorn
#

forgot the name

unique crane
#

There is new dlc coming next week

#

Blacksmithing in Kuttenberg

celest thorn
#

Kuttenberg?

unique crane
#

City in Czechia

celest thorn
#

Oh its a real city??

#

crazy

unique crane
#

Yea XD

celest thorn
#

ngl thats So cool

unique crane
#

Its all based of real locations

#

and historical data

celest thorn
#

cool asf

unique crane
#

Like the buildings that were there

celest thorn
#

i cannot argue with that

celest thorn
#

thats amazing

#

it should be used for historical reasons ngl

unique crane
#

sometimes its a bit of imagination

celest thorn
#

i mean it makes sense

#

but until its based on real stuff

#

and not some bullshit

unique crane
#

Also the main character is not historical

#

but the rest is

celest thorn
#

makes sense

#

i don't remember which game

#

had the same thing

#

all the same

unique crane
#

Slightly adjusted for gameplay purposes (cause like there 2 sieges during like 15 years and they dont know which one is what)

celest thorn
#

just the character never existed

#

wdym?

unique crane
#

The ending has a siege

celest thorn
#

OH MY GOD zman just released a video

unique crane
#

who is zman xd

celest thorn
#

minecraft duper

#

but this guy makes video

#

that are crazy good

#

i've seen last community post he did a pred catch

#

ngl good work

#

i was a small step to subscribe on edpwatch, jidion deserves the money and support, guy is doing the best work out there

#

after this video, i will spin the wheel

#

and lets see

ionic prawn
#

my plugin enables friendly fire at the end of the round and turns it off when it has fully ended/waiting for players but on the serverlist it says it has friendlyfire?

icy knoll
#

it will disable during the round

hearty shard
ionic prawn
#

is there a way to fix it?

#

so it doesn't say its friendlyfire cause its only at the end of the round there is

hearty shard
#

and fake it PI_Shrug

ionic prawn
#

idk how to 😭

hearty shard
#

um

#

fake it

#

idk

icy knoll
#

or idk if possible but patch the method that sends data and just say friendly fire is false always

royal mica
#

it happens on Meme as well, we just don't care

ionic prawn
#

but i made it just turn on when the round ends and turns itself off when the round has fully ended

royal mica
#

Yeah, but since the server sync happens periodically, sometimes it syncs at the end of the round

ionic prawn
#

just a question should it be like this?

public override void OnServerRoundEnded(RoundEndedEventArgs ev)
{
    ServerData.ResetServerData();

    Server.FriendlyFire = false;
}

public override void OnServerRoundEnding(RoundEndingEventArgs ev)
{
    Server.FriendlyFire = true;
}
royal mica
#

yes

ionic prawn
#

k

hearty shard
#
public void RefreshMainBools()
  {
    if (!NetworkServer.active)
      Debug.LogWarning((object) "[Server] function 'System.Void ServerConfigSynchronizer::RefreshMainBools()' called when server was not active");
    else
      this.NetworkMainBoolsSync = Misc.BoolsToByte(ServerConsole.FriendlyFire, AchievementManager.AchievementsDisabled);
  }

ServerConfigSynchronizer

#

could just patch that to have false at the start

royal mica
#

Or just use the setter directly:
ServerConsole.FriendlyFire = value;

hearty shard
#

that doesnt do what they want tho

#

they want FF on but not shown

royal mica
#

Yes?

#

That is exactly that

hearty shard
#

oh

#

it doesnt

royal mica
#
  public static bool FriendlyFire
  {
    get => ServerConsole.FriendlyFire;
    set
    {
      if (Server.FriendlyFire == value)
        return;
      ServerConsole.FriendlyFire = value;
      ServerConfigSynchronizer.Singleton.RefreshMainBools();
      Action onRefreshed = ServerConfigSynchronizer.OnRefreshed;
      if (onRefreshed == null)
        return;
      onRefreshed();
    }
  }

here you can just use the setter directly

hearty shard
#

network sync?

#

okay

#

fair enough

royal mica
#

look like not a network sync

#

Should just add this as a basegame config

soft turtle
#
        private void OnPickingUpItem(PlayerPickingUpItemEventArgs ev)
        {
            if (Plugin.Scp1162Item != ev.Pickup.Serial)
                return;

            ev.IsAllowed = false;
            
            //Code

Why does the item become completely unpickable after this?

ionic prawn
#

prob because of this ev.IsAllowed = false;

soft turtle
soft turtle
upper vapor
#

vineboom

#

after all these years

soft turtle
upper vapor
magic gate
#

Imagine if we had a website where we could upload plugins. It's a shame we don't have one.

celest thorn
#

until it had exploits for running malware

magic gate
#

πŸ€“

upper vapor
#

xddd

celest thorn
#

and poor moderation lol

#

i've seen people uploading malwar

upper vapor
#

bring this back

celest thorn
#

and then selling it to russian kids

upper vapor
#

and not just cedmod &scpdiscord

celest thorn
#

btw

#

the wheel as decided

#

and its not skibidi toilet

#

crazy enough

#

(im thankful)

upper vapor
#

not absolutely dogshit dependency resolving system

celest thorn
#

Honestly i think its just a bad ide

#

to have a website

magic gate
celest thorn
#

because then you need mods

#

and safety tools

upper vapor
#

LabAPI moderator

#

role

#

apply now

magic gate
#

πŸ‘€

upper vapor
celest thorn
restive turret
celest thorn
#

are they cooking?

magic gate
#

Resurrection? Yes, much better than New Blood

celest thorn
#

but they messed up

#

for me its like they are just doing a plot armor

#

that is so big

#

that removes the enjoyability

magic gate
#

I'm going to watch the final tomorrow

restive turret
#

The final countdown

celest thorn
#

ITS FULL

magic gate
#

too late πŸ₯²

#

I already saw some fragments

celest thorn
#

NO im so sorry

#

hope its not the mega

magic gate
#

not mega

restive turret
#

I know the part of the laser but

celest thorn
static meteor
#
                if (!InventoryItemLoader.TryGetItem(ItemType.ParticleDisruptor, out ParticleDisruptor disruptor))
                    return;
                if (!disruptor.TryGetModule(out ImpactEffectsModule impactmodule))
                    return;
                if (!disruptor.TryGetModule(out DisruptorHitregModule hitregmodule))
                    return;
                if (customItem.CustomItem.CustomData is not IWeaponData data)
                    return;

                Vector3 position = ev.Player.Camera.position;
                if (BarrelTipExtension.TryFindWorldmodelBarrelTip(ev.FirearmItem.Serial, out var tip))
                    position = tip.WorldspacePosition;

                position.y -= 0.6f;
                float maxDistance = customItem.HitscanHitregModule.DamageFalloffDistance + customItem.HitscanHitregModule.FullDamageDistance;

                Ray baseRay = new(ev.Player.Camera.position + ev.Player.Camera.forward, ev.Player.Camera.forward);

                for (int i = 0; i <= data.MaxBarrelAmmo; i++)
                {
                    Ray ray = customItem.HitscanHitregModule.RandomizeRay(baseRay, customItem.HitscanHitregModule.CurrentInaccuracy);

                    if (Physics.Raycast(ray, out RaycastHit hitInfo, maxDistance, HitscanHitregModuleBase.HitregMask))
                    {
                        hitregmodule._templateShotData = new(disruptor, FiringState.FiringSingle);
                        impactmodule.ServerSendTracer(hitInfo, position, null, impactmodule.BaseSettings.TracerPrefab);
                    }
celest thorn
#

Bro is crazy

mild walrus
#

what is the best way to make a "lockdown" for scp 939 and 106? every other scp has an specific door and elevator and its easy to lock them, but scp 939 spawns in a room with no doors, and 106 can go through doors.

static meteor
#

Best way for 939 is probably making a door at the fake door

mild walrus
static meteor
#

probably

mild walrus
# static meteor probably

can i teleport scp 106 to pocket dimension and when lockdown finishes teleport it back again to 106 room?

static meteor
#

yes

#

pocket dimension is a room

#

RoomName.Pocket

mild walrus
# static meteor ``RoomName.Pocket``

This worked, but how i can create a door at 939? I know that exists a "door" that is broken called 939 cryo but ive never created a door in a plugin

plain gazelle
#

Found this in our project
FirstPersonMovementModule fpcModule = (target.RoleBase as IFpcRole)?.FpcModule;
and wanted to ask if it would even work?
does Player.RoleBase have IFpcRole?

static meteor
#

Yes

slate flume
#

So uh when is the black screen bug on respawn getting fixed

celest thorn
#

Hello

random scaffold
#

why video is loaded but exists freezing?

#

someone big brain

icy knoll
random scaffold
#

bruh

random scaffold
#

how i can get damagetype from damagehandlerbase?

restive turret
#

there is no damageType enum

hearty shard
#

specifically

restive turret
#

create your own or copy form somewhere else

random scaffold
hearty shard
#

cuz you can just if (handler is ExplosionDamageHandler) or wtv

#

then cast check it

random scaffold
#

lol

#

brain reader

#

how create npc by plugin?

upper vapor
#

for behavior

#

code it yourself Kek

#

or there's SwiftNPCs

#

-# somewhere

hearty shard
#
GameObject gameObject = Object.Instantiate(NetworkManager.singleton.playerPrefab);
            if (!gameObject.TryGetComponent(out ReferenceHub refHub))
                throw new InvalidOperationException("[Npc.Spawn] Could not find ReferenceHub");

            try
            {
                refHub.authManager.UserId = PlayerAuthenticationManager.DedicatedId;
                refHub.authManager.SyncedUserId = PlayerAuthenticationManager.DedicatedId;
                refHub.authManager.InstanceMode = ClientInstanceMode.DedicatedServer;
            }
            catch
            {
                // ignore
            }

            NetworkServer.AddPlayerForConnection(new NpcNetworkConnection(), gameObject);
            refHub.nicknameSync.MyNick = nickname;

            Timing.CallDelayed(0.1f, () =>
            {
                refHub.roleManager.ServerSetRole(role, RoleChangeReason.RemoteAdmin);
                if (position.HasValue)
                    refHub.TryOverridePosition(position.Value);
            });
#
 public class NpcNetworkConnection : NetworkConnectionToClient
    {
        private const string DummyAddress = "127.0.0.1";

        private static int _idGenerator = ushort.MaxValue;

        /// <summary>
        /// Initializes a new instance of the <see cref="NpcNetworkConnection"/> class.
        /// </summary>
        public NpcNetworkConnection()
            : base(_idGenerator--)
        {
        }

        /// <inheritdoc />
        public override string address { get; } = DummyAddress;

        /// <inheritdoc />
        public override void Send(ArraySegment<byte> segment, int channelId = Channels.Reliable)
        {
        }

        /// <inheritdoc />
        public override void SendToTransport(ArraySegment<byte> segment, int channelId = Channels.Reliable)
        {
        }
    }
hearty shard
#

or player list

#

wtv u wanna call it

upper vapor
#

hide from my demons

hearty shard
celest thorn
#

this chat is tooo dead

celest thorn
#

'NullReferenceException' occured while invoking 'OnPlayerDamage' on 'ATOH.EventsHandler.PlayerEvents': 'Object reference not set to an instance of an object', stack trace:
at ATOH.EventsHandler.PlayerEvents.OnPlayerDamage (LabApi.Events.Arguments.PlayerEvents.PlayerHurtingEventArgs ev) [0x00000] in C:\Users\zerot\RiderProjects\ATOS\ATOS\EventsHandler\PlayerEvents.cs:177
at LabApi.Events.EventManager.InvokeEvent[TEventArgs] (LabApi.Events.LabEventHandler`1[TEventArgs] eventHandler, TEventArgs args) [0x0001d] in <bd83d6009c394d05b0e4e2080b3f314d>:0

Yo i do wonder why tf this line is giving me issues

        DataStorePlayer store = ev.Player.GetDataStore<DataStorePlayer>();

Like why?

#

it shouldn't

celest thorn
random scaffold
#

also because getdatastore didnt create a store himself

#

in new version of the labapi

#

you need setdatastore or something

celest thorn
random scaffold
#

you using last version of the labapi?

celest thorn
#

honestly i don't check

#

yes i do

#

its the same one that comes shipped with the 14.3.1

random scaffold
#

then it wrong line

celest thorn
#

so ig yea

random scaffold
#

check null by if

celest thorn
random scaffold
#

and logger

random scaffold
celest thorn
#

honestly do i manually need to update?

celest thorn
#

its coming from damage???

#

so how

random scaffold
#

its nw

celest thorn
#

PlayerHurtingEventArgs

#

so how tf is that even possible

restive turret
#

is the GetDataStore is your or labapi methpd

random scaffold
#

because northwood

celest thorn
#

LabAPI method

#

HE CAN BE NULL???

#

WHY?

random scaffold
#

because

celest thorn
#

its so fucking retarded

random scaffold
#

exists events for player with null of the player

celest thorn
#

if (ev.Player.GameObject == null)
return;

#

so this should fix it fine

#

ig

random scaffold
#

why you check gameobject

#

you need check ev.Player

#

it throw null error

#

if player is null

celest thorn
random scaffold
#

he stupid

#

or what it

celest thorn
#

pycharm?????

random scaffold
#

idk what it

#

from jetbrains something

celest thorn
#

Wait

#

EVEN DYING

#

IS SPAMMING

#

bruh

#

this game is so fucking cooked

random scaffold
random scaffold
celest thorn
#

so i just check null

random scaffold
#

and do better

celest thorn
#

for each one of this events???

random scaffold
#

yes

celest thorn
#

that are throwing erros

#

Oh my god

random scaffold
#

it fix from all null errors

celest thorn
#

this is so stupid

#

i got my server spamming errors

#

for just this shit

#

i just hope it fixes it

#

because im loosing hope

random scaffold
upper vapor
#

GameObject throws

random scaffold
upper vapor
#

you should do player.IsDestroyed !player.ReferenceHub

celest thorn
celest thorn
#

if(args.Player == null)
return;

random scaffold
#

!pl.Hub

celest thorn
#

is this good??

random scaffold
#

what is it

celest thorn
#

fucking hell

random scaffold
#

yes

celest thorn
#

im about to scream

#

ok i just hope to god

random scaffold
#

also check for npc

celest thorn
#

there aren't npcs

#

and none can spawn them

#

so

upper vapor
random scaffold
#

always exists admins with big brain

random scaffold
celest thorn
#

how tf could i trigger this issue?

#

joining and leaving??

random scaffold
#

which

celest thorn
#

hurting

#

player dying

#

any of this 2

#

issues that are fixed

upper vapor
#

player dies if they leave

#

you can disable drop on death or something in the config

#

or return if !player.ReferenceHub

celest thorn
#

ig

#

its ok

#

i just did

#

and it doesn't seem to throw errors

upper vapor
#

gotta love "Use IsDestroyed" (does not exist)

celest thorn
#

love that this happend in production but never in debugging

upper vapor
#

cuz you never left toomuchtrolling

#

-# slash serious question mark?

celest thorn
celest thorn
random scaffold
#

how i can call 100+ requests per second from the plugin without lose of the performance?

upper vapor
random scaffold
random scaffold
#

or how

celest thorn
#

you know you can still

#

WebSocketSharp

upper vapor
#

why

#

System.Net.WebSockets

#

(clientwebsocket)

celest thorn
upper vapor
#

is websocketsharp blocking?

celest thorn
#

no

upper vapor
#

idk how you plan to do anything that isn't async with websockets

celest thorn
#

check this

#

it uses mono

#

public class Laputa : WebSocketBehavior

random scaffold
#

hard

#

why im cant just make a separately processor throught Task.Run?

#

using queue in main code

celest thorn
#

im gonna let axwabo explain it

random scaffold
#

@upper vapor work

pulsar charm
#

is it possible to hot reload plugins with labapi?

tepid sluice
pulsar charm
#

i've seen some chatter here about it

#

i just tried it and failed, couldn't get it to work

#

the logs show just "/rld" but "/rld" asks for what to reload so I tried "/rld pl"

tepid sluice
#

I think you can never rly hot reload cuz it already inited into it

hearty shard
#

rnr

#

sr

tepid sluice
#

^

hearty shard
#

but yea you do need to disable old plugin
then re enable new one

pulsar charm
#

soo not possible?

hearty shard
#

write ur own thing for it

tepid sluice
#

reinit it xDD

true cedar
hearty shard
upper vapor
upper vapor
hearty shard
#

axe

#

do you get axed questions a lot

upper vapor
upper vapor
hearty shard
#

u cant do that :(

upper vapor
#

Kind of questions?

upper vapor
royal mica
#

I got my feet wet, but essentually you would need to unload the binary and reload it for it to work

#

Which is not possible in a sane way

shy karma
#

how can i set a gun to max ammo qwq

celest thorn
#

@unique crane Sorry for the ping david but i found a base game issue that you probably already know about the black screen as soon as you join do you know any way to fix it?

unique crane
#

Nop

naive veldt
#

Has anyone done a 087 plugin before?

sweet flax
#

is there and update?

languid temple
lethal cradle
#

Hey! Will there be a channel as there is in Exiled discord server for free and paid plugin requests?

languid temple
unique crane
#

and make a bug report then

celest thorn
#

and its causing so much problems

#

because people join ATOh

#

think its broken and leave

#

what could be?

#

What i do is PlayerJoinedEventArgs i set the role
ev.Player.SetRole(ATOHPlugin.Instance.Config.isHub ? RoleTypeId.Tutorial : RoleTypeId.ClassD, RoleChangeReason.None, RoleSpawnFlags.None);

#

and then add them to the hub

#

i swear im trying my best to figure it out

unique crane
#

It happened to me 1 or 2 times too so yea

celest thorn
#

because honestly if you guys cannot figure it out im going to

#

because this is a massive problem

unique crane
#

Well there is not a single bug report about it so

#

do report it

celest thorn
#

[2025-09-06 20:53:01.550 +00:00] [INFO] [ATOH] 1 Event: False
[2025-09-06 20:53:01.560 +00:00] [INFO] [ATOH] 2 Event: True
[2025-09-06 20:53:01.570 +00:00] [INFO] [ATOH] 3 Spawn: True
[2025-09-06 20:53:01.581 +00:00] [INFO] [ATOH] 4 Spawn: True

        Logger.Info($"1 Event: {ev.Player.IsAlive}");
        ev.Player.SetRole(ATOHPlugin.Instance.Config.isHub ? RoleTypeId.Tutorial : RoleTypeId.ClassD, RoleChangeReason.None, RoleSpawnFlags.None);
        Logger.Info($"2 Event: {ev.Player.IsAlive}");

        Logger.Info($"3 Spawn: {player.IsAlive}");
        player.Spawn(!player.IsAlive);
        Logger.Info($"4 Spawn: {player.IsAlive}");
#

and i don't have the issue

#

i just don't know how to trigger it

#

ngl i cannot figure it out

celest thorn
unique crane
#

Maybe there is a reason I said report it?

celest thorn
#

but still even if i do its going to be thrown in the bin

#

because 1. i cannot create it without the steps

unique crane
#

repo steps:
Join server

#

???

celest thorn
#

and 1. this is an issue even in base game so does it go to BUg Report of the game?

unique crane
#

I told you it has happened to me 1 or 2 times

celest thorn
#

i know how to recreate it in base gamw

unique crane
#

and told you to report it

celest thorn
#

where do i report it?

unique crane
celest thorn
#

i know base game one is caused when you die and respawn too fast

#

for example Chaos spawning

#

it happened to me alot of time

swift nexus
#

@celest thorn do you have a clip of this happening on 14.1.3?

celest thorn
#

I don't but i do have many people that reported this

#

but none of them got a clip

#

instead they just complained and left

swift nexus
#

annoying but not the end of the world

celest thorn
#

and its making us loose player ngl

#

its bad

swift nexus
#

@unique crane seems like your fix did not fully cover all scenarios

swift nexus
celest thorn
#

recently im talking like last month

#

when i spawned as chaos

#

as soon as i died

#

same can be recreated with RA

#

just spectator and your friends sets you a role

#

that still does the glithc

slender lynx
swift nexus
#

not about the issue

unique crane
slender lynx
#

its legit just spawn fast black screen

swift nexus
#

could it be the force-class issues?

unique crane
#

No clue

celest thorn
#

im just testing honestly a solution

#

and i might have an idea on why its happening

#

I probably have a solution

#

i've seen that the game when i spawn and instantly always does something

100%
0%
100%
In one frame

#

and that happens with each example i provided

#

but doign a call delayed of 1s just doesn't do it

#

on the PlayerJoinedEventArgs

#

so i think this has to do with something the game does and just being a sort of race condition

#

idk

#

let me just remove the patch and lets see if i can get a video

#

I just hope it helps out because this has been an issue for along time

#

and i really think this is the cause

celest thorn
#

YES

#

same

#

exact

#

it happens with all of the examples i told

#

Especially easier with RA

swift nexus
#

alrighty, we have reproduction steps then

#

I'll get the report updated

#

CC: @unique crane

celest thorn
swift nexus
#

so please always send a report :)

celest thorn
#

even tho one another issue is rats Trolley

#

but i think its known

#

and running modded server makes it impossible to know who's fault it is

unique crane
#

Update the report and I can look at it some time

#

Thanks

celest thorn
swift nexus
unique crane
celest thorn
celest thorn
#

i saw how he found 10 other bugs

#

and i was like "BRUH"

#

thats a bug???

#

1 small pixel displacement

unique crane
#

Mine was divide by 0

celest thorn
unique crane
#

This is death screen dying

celest thorn
#

lol

#

it has been a problem for like along time

unique crane
celest thorn
#

none has ever reported this?

celest thorn
unique crane
#

It's just wrong order of execution / cleanup

celest thorn
#

but still im amazed this didn't get never reported

#

because i remember people complaning like in 11.0

#

lol

#

that version was frequent and then less and less

#

but still happend if you got the bad timing

slate flume
#

I fucking love Germany

restive turret
slate flume
plain gazelle
#

Hm, i have difficulties recreating it consistently, but i have a plugin that basically makes a player invisible to everyone using
ValidateVisibility
and turning it to ev.IsAllowed = false if the target is that player

But sometimes if i teleport to a far away player, they can then see me? Not even just one frame, but constantly

Dont have more data bc of the inconsistent thing

#

Nothing else uses the ValidatedVisibility event, so its not being turned back on either

worthy rune
#

@celest thorn for the black screen bug on join, when it happens try to get them to send their player log. if its an exception that could explain it

#

As i understand it its does not happen base game(or very rarely) and is entirely a plugins fault when it happens. usually its when a plugin sends a network messaged to an unauthenticated player, although theres could be other reasons we dont know about

worthy rune
celest thorn
worthy rune
#

yeah rarely

#

its been around for aslong as mirror has been used

celest thorn
#

It amazes me that none reported it

#

So the issues are separate?

worthy rune
#

well probably because 99% of the time its caused by a plugin

celest thorn
#

The one i reported and the one with death screen

worthy rune
#

its the main reason why Player.List is discouraged in the LabAPI

worthy rune
celest thorn
#

To fix it i just did a call delayed of a second

#

And thats it

carmine prawn
#

How can I avoid being suppressed by the rest of the audio played?

upper vapor
#

wdym

#

ducking caused by CASSIE?

carmine prawn
#

emm

#

SpeakerToy

#

AudioPlayerApi

#

the sound that plays will always be overlaid with gunshots

upper vapor
#

well yeah, gunshots have priority over speaker toys

#

there isn't really anything you can do to combat that

carmine prawn
#

oh no...