#plugins-dev-chat
1 messages Β· Page 114 of 1
At UI 
Ok
u factorial
Thx
U uu uuu uuuuu uuuuu
Thats not factorial
Silly
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
yeah, but why!
dont ask me idk where you do the radius getter
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
funny that this was gone for 2 months
CC shouldnt be null
something is null
ye CharacterController is null
idk how
tbh I think it didnt even check for CharControllerSet inside the UpdateMovementState
I met this a month ago
its a classic
Don't even know how did it managed to make that null
i dont think anyone has figured out how yet
They fucked up something somehow that is seemingly unrelated
could be some bug with the CC itself
yeah thats its calling card
nop
ngl sometimes it bugs with even the randomest shit
What have you done recently
?
have you added a patch?
something?
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
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);
should all return as
true
false
false
true
I assume that in this case, these would return those values 99%, but false, false, true NRE throw when the bug occures
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
Part of the bug, possibly due to network dying
Like all of the RA commands during it says "You are not connected to a Server"
or something alike
ye then def something wrong
wtf how did you even managed that
I would like to know as well, so I can fix it
I mean with one of my patches I caused SIGSEGV so
and a quick segvay to our sponsor...

π
patreon supporter
got a discount
vine boom
i did prev-ly
ngl you are just money laundering through nw's patreon

Are you trying to bribe HR?
nope
You should try it
I literally got a mail from patreon that i have a discount
:D
Bro scammed nw
@celest thorn have you sent an nw application?
they are not 18 iirc
i am
ah
you want a document?
a birth cerf or what
My id
hobby? lol
Front face is hobby the other one is just incredible friendship
ngl maro is the best i've ever met so
other people i worked with always assholes
you havent met me then
you aren't touching maro's spot ngl
i don't think anyone can
i dont even want to touch maro spot
then why even saying "you havent met me then"
cus of this
oh
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
wtf
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

Thats a crazy question to ask
The GUY WROTE A LETTER
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
"Dear zero, do you by chance know how could I have somehow become a dad? I have 0 biology education"
around then i was 14/15
π
They don't explain sex in italian schools
atleast not in mine
probably not in the south
too conservative
OMG
that's uh
both good and bad
i should've studied there smh
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
but yea that guy deserve the second spot just for that
Mage Arena update 
DOOM???
Fella forgot that discord markdown doesnt work there
How to add accessories to weaponsοΌ
Could you try that when you in lobby, leave, rejoin and see will it cause error
Wtf
@celest thornWhy your website isn't skibidilablabla that thing
???
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
Yes im a pizza developer, please don't judge me lol.
here
because its a redirect
lol
trolling tool
don't worry i recieved alot of weird stuff
last one was yesterday

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
UwU just like the one i sent u?
No
i think one of the best is a guy
who sent me a personal heartfelt message
of like how he is doing
a guy
and he hopes im doing fine
he referred to himself as he
so ig it is a guy
the second one is a rat video
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...
iirc there is an list or smth in 049 ability?for Resurrectable ragdoll
I know why
how do you send damage?
can you show code?
I just cancel the spawning ragdoll event and spawn in a custom one, as changing the damage handler in the event doesnt work
How do set the handler
damagehandler
CustomReason
thats your skill issue
new Scp049DamageHandler(_attacker, 8f, Scp049DamageHandler.AttackType.CardiacArrest);
base game does it like this
and you can set it insta kill
uh you realise 049 can revive people that died from other people right? doesnt have to die via 049
there are certain types of damage that 049 can't revive
like tesla
could be that custom reason is also blacklisted

or it may be smth to do with Ragdoll.Create()
idk
legit have to use it as DamageHandler doesn't work when set :c
maybe ExistenceTime being too high?
this might be why
also role must be human
The same i sent
qwq
ah yeah
different decompiler π€―
it has to come from AttackerDamageHandler
Rider is good as usual
eh i understand it more
ikr
ngl i don't understand how you do understand that blob
i need the JB decompiler to stop putting unnecessary casts everywhere
ig im just good at reading code
dnspy then ig
but i dont like that
is there a custom reason attacker damage handler then?
god damnit
dont think so
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
??
thats not going to work
because its a client and server check
this'll work i think
what
yo someone knows whats called the biome with lush and in the mountains
i forgot
its a place irl
Caldera Lakes is the name
Sounds like mountains to me xd
nah you didn't see the shit im building
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
?
set attacker too maybe
so Server.Host
new Footprint(Server.Host.ReferenceHub)
Server.Host isn't a Player?
it is
Are you trying to vaporize the player?
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
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);
}
}

The works 100% of the time for me
Thank you, will tell you if it ever doesnt
Why the referencehub is just the player himself
ngl it doesn't make sense
why do you instantiate the disruptor πππ
its needed
for the damage handler
for some reason
I fake that with the template item
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
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
lol
wrong person
If you put it to any of these
you got in the way
Ill ask mods to ban you
sorry slem
bro
I dont know what pyra is
ngl this chat has something against me
im gonna put the skibidi just to rebel
perfect theme
This chat is very friendly with femboys its just your brainrot
AHAHAHAHHAHAHAH
*talking about important programming*
"yo completely unrelated thing, skibidi?"
why am i not suprised
Bro you need to make fun
atleast
there's a laugh
you guys are corporate level
maybe you laughed
of shit
Nah honestly i don't laugh at brainrot
im not even kidding
i just do it to piss off
then π
now you get it
Like this?
which is fucking funny
"why are people pissed at me after i pissed them off?"
lol
yea
that makes sense
ragebait central
lol
the null check is redundant
axwabo if my next pfp is java's logo?
idm java
once in a million time if it will be null i will scream
you're not gonna piss me off
probably the entire rest of the discord
(edited)

CRAZY
you know why
because discord's bullshit
*presses end key*
what happens? NOTHING
yo if i send application for LabAPI maintainer with the skibidi toilet pfp, will hr reply?
discord sucks and we all know that
lets test
ngl thats so true
lets just move to teamspeak atp
They will probably block you from any further app
fuck no
NAh thats so sad
smh
create a custom communication app
honestly in this entire take the best game i've played this year
"Doom dark ages"
Needs to win the GOTY
is your ages dark?
Bro thats NOT DARK
YOU FLY A FUCKING DRAGON AND PILOT A ROBOT
GOING THROUGH HELL AND DESTROYING IT
ngl they cooked this year
nah
i will spin the wheel after im too nervous because if it shows up skibidi im gonna cry
lol
that is the shittiest of them all
my beloved
bro can you fly dragons and destroy hell?
No but i can fire a fucking bow that obliterates half of the platoon
sorry its a bow
i forgot
that one is 2016 one
I don't remmeber
if it is a crossbow
because you use it on chtulu
and i never used it after
because its super rare
crossbow is bow for dumbasses
Thats why they made them xd
You dont need much training to fire a crossbow
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 ...
yea
its a crossboe
But still best baddass music ever
i don't think anyone has anything to say on that
Another guy on our server we were talking and he said to try the game you are talking about
because its good
but idk
KCD 2
Kuttenberg?
City in Czechia
Yea XD
ngl thats So cool
cool asf
Like the buildings that were there
i cannot argue with that
Bro how tf they are building cities based on paintings and documents
thats amazing
it should be used for historical reasons ngl
sometimes its a bit of imagination
Slightly adjusted for gameplay purposes (cause like there 2 sieges during like 15 years and they dont know which one is what)
The ending has a siege
OH MY GOD zman just released a video
who is zman xd
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
https://ratcentral.skibiditoilet.net/π/35ohpj5u.png
For now its this
Dexter mogan
Nope, works fine
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?
yeah it will
it will disable during the round
it will say that between rounds yea while its on
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
check what syncs it to central servers
and fake it 
idk how to π
or idk if possible but patch the method that sends data and just say friendly fire is false always
Technically there is nothing to fix, since your server has FirendlyFire enabled
it happens on Meme as well, we just don't care
but i made it just turn on when the round ends and turns itself off when the round has fully ended
Yeah, but since the server sync happens periodically, sometimes it syncs at the end of the round
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;
}
yes
k
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
Or just use the setter directly:
ServerConsole.FriendlyFire = value;
uh
that doesnt do what they want tho
they want FF on but not shown
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
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?
prob because of this ev.IsAllowed = false;
I mean that after the first attempt to pick up the item, it becomes completely unpickable, and there is not even a progress bar
pickup.IsLocked = false
Oh
Didn't work D:

Imagine if we had a website where we could upload plugins. It's a shame we don't have one.
Exiled had one
until it had exploits for running malware
π€
xddd
bring this back
and then selling it to russian kids
and not just cedmod &scpdiscord
Thats peak
btw
the wheel as decided
and its not skibidi toilet
crazy enough
(im thankful)
can we have something called a
not absolutely dogshit dependency resolving system

yakuza
peak
π

We are cooked

Resurrection? Yes, much better than New Blood
Ressurection is cool
but they messed up
for me its like they are just doing a plot armor
that is so big
that removes the enjoyability
I'm going to watch the final tomorrow
The final countdown
not mega
Lmao
Wtf its a fucking hoover
can you show code for this
lol
I know the part of the laser but
not how to spawn 10000k
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);
}
Bro is crazy
Lmao
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.
For 106 you can do BreakableDoor::Is106Passable
Best way for 939 is probably making a door at the fake door
spawn a door in 939s room
this still works with the tab hability? like he cant go through doors but can use the ability of teleport?
probably
can i teleport scp 106 to pocket dimension and when lockdown finishes teleport it back again to 106 room?
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
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?
Yes
So uh when is the black screen bug on respawn getting fixed
Hello
it loaded at a lower quality version
bruh
how i can get damagetype from damagehandlerbase?
there is no damageType enum
what r u trying to check for
specifically
create your own or copy form somewhere else
if kill by grenade
DummyUtils
for behavior
code it yourself 
or there's SwiftNPCs
-# somewhere
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)
{
}
}
why set as dedi server?
hide from tab
or player list
wtv u wanna call it
hide from my demons
this chat is tooo dead
'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
just fix
wtf do you mean just fix it
also because getdatastore didnt create a store himself
in new version of the labapi
you need setdatastore or something
It says "Gets the CustomDataStore associated with the player, or creates a new one if it doesn't exist."
you using last version of the labapi?
i don't know
honestly i don't check
yes i do
its the same one that comes shipped with the 14.3.1
then it wrong line
so ig yea
check null by if
its the correct line
and logger
check store is null
honestly do i manually need to update?
maybe player null?
Player is not null
its coming from damage???
so how
is the GetDataStore is your or labapi methpd
because northwood
because
its so fucking retarded
exists events for player with null of the player
why you check gameobject
you need check ev.Player
it throw null error
if player is null
ignore pycharm
he stupid
or what it
pycharm?????

go to nw staff
so i just check null
and do better
for each one of this events???
yes
it fix from all null errors
this is so stupid
i got my server spamming errors
for just this shit
i just hope it fixes it
because im loosing hope
this is not fine
GameObject throws
π€
you should do player.IsDestroyed !player.ReferenceHub
I just got the same answer from
what
if(args.Player == null)
return;
!pl.Hub
is this good??
what is it
fucking hell
yes
also check for npc
idc
there aren't npcs
and none can spawn them
so
what what
always exists admins with big brain
what what what
which
player dies if they leave

you can disable drop on death or something in the config
or return if !player.ReferenceHub
gotta love "Use IsDestroyed" (does not exist)
love that this happend in production but never in debugging
i did many times
/serious?
how i can call 100+ requests per second from the plugin without lose of the performance?
threads 
the question should be "how should i not fry my infra, therefore how can i refactor this"
plugin is not async
oh i know how
use websockets
that isn't async?
is websocketsharp blocking?
no
idk how you plan to do anything that isn't async with websockets
check this
it uses mono
public class Laputa : WebSocketBehavior
hard
why im cant just make a separately processor throught Task.Run?
using queue in main code
@upper vapor work
is it possible to hot reload plugins with labapi?
not really
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"
I think you can never rly hot reload cuz it already inited into it
but yea you do need to disable old plugin
then re enable new one
soo not possible?
write ur own thing for it
reinit it xDD
shut up eve
shut up SMELLY
What the helly

It's possible if you're willing to sacrifice your soul and everything that's dear
Axe you
u cant do that :(
Kind of questions?
Then
Fejsze
Balta
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
how can i set a gun to max ammo qwq
@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?
Nop
Has anyone done a 087 plugin before?
is there and update?
To my knowledge no
Hey! Will there be a channel as there is in Exiled discord server for free and paid plugin requests?
A paid request channel is very unlikely to be created, the free version has been proposed already to management
Do you have a clip?
and make a bug report then
I don't know how to recreate it
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
It happened to me 1 or 2 times too so yea
im just gonna debug
because honestly if you guys cannot figure it out im going to
because this is a massive problem
[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
btw bug report and i don't have steps to recreate it 100% its going to be thrown in the bin
Maybe there is a reason I said report it?
but still even if i do its going to be thrown in the bin
because 1. i cannot create it without the steps
and 1. this is an issue even in base game so does it go to BUg Report of the game?
I told you it has happened to me 1 or 2 times
i know how to recreate it in base gamw
and told you to report it
where do i report it?
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
@celest thorn do you have a clip of this happening on 14.1.3?
No
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
annoying but not the end of the world
For people its the end of the world
and its making us loose player ngl
its bad
@unique crane seems like your fix did not fully cover all scenarios
I've haven't seen this happen on vanilla servers at all, but it's possible it wasn't fully fixed
i've seen it in vanilla server
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
ok well the problem is this kinda kills our entire server
I'm specifically talking about getting a clip
not about the issue
Different cause most likely
its legit just spawn fast black screen
wouldn't be surprised
could it be the force-class issues?
No clue
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
YES
YES
same
exact
it happens with all of the examples i told
Especially easier with RA
alrighty, we have reproduction steps then
I'll get the report updated
CC: @unique crane
thank you ngl, i just hope it gets fixed i found this small solution and i hope to god it works
btw your report had a community member check to see if it was reproducible, and they did
so please always send a report :)
I don't find a ton of bugs unlike yamato
even tho one another issue is rats 
but i think its known
and running modded server makes it impossible to know who's fault it is
No problem hope it gets fixed
feel free to check out the QA Community server, it's up 24/7 and has no plugins
Yamato reports a single atom placed incorrectly xd
yea im in the discord sometimes i do check
Fr
i saw how he found 10 other bugs
and i was like "BRUH"
thats a bug???
1 small pixel displacement
Ah yes different cause then
Mine was divide by 0
this is just "condition race"
This is death screen dying
yea
lol
it has been a problem for like along time
Can't be condition race if it's not threads?
none has ever reported this?
thats why i added " "
It's just wrong order of execution / cleanup
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
I fucking love Germany


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
@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
hmmm is noclip being used anywhere here?
No tjis can happen in base game too
Yea
It amazes me that none reported it
So the issues are separate?
well probably because 99% of the time its caused by a plugin
The one i reported and the one with death screen
its the main reason why Player.List is discouraged in the LabAPI
yeah entierly seperate issues
Yea
To fix it i just did a call delayed of a second
And thats it
emm
SpeakerToy
AudioPlayerApi
the sound that plays will always be overlaid with gunshots
well yeah, gunshots have priority over speaker toys
there isn't really anything you can do to combat that
oh no...







