#plugins-dev-chat
1 messages · Page 206 of 1
true...
brain moment

how do i get the loops continue
ik how to jump but not specifically for a foreach loop
IL_0066: br.s IL_0071
its just a point
the continue
C#/VB/F# compiler playground.
here the example
it sets a index at the start and uses that
how you would do the same in assembly
finally the knowledge of assembly comes useful
so just jump to the start of the loop?
yes
see this
br.s is the if it is true
and if it is it goes to the label
IL_0071
why do i feel so smart saying this shit
🧠
AND WHY I CAN UNDERSTAND IT
im cursed with the knowledge of IL and assembly
ig thats why
private static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions, ILGenerator generator)
{
CodeMatcher matcher = new CodeMatcher(instructions, generator)
.MatchEndForward(new CodeMatch(CodeInstruction.Call(typeof(PlayerRolesUtils), nameof(PlayerRolesUtils.GetTeam), [typeof(ReferenceHub)])))
.CreateLabel(out Label skip)
.Insert(
new CodeInstruction(OpCodes.Ldloc_S),
CodeInstruction.Call(typeof(RoundEndIgnorePatch), nameof(IsPlayerIgnored)),
new CodeInstruction(OpCodes.Brtrue_S, skip));
return matcher.InstructionEnumeration();
}
i still need to load the correct local var
but
that should be it?
or-?
ig?
roger that
do keep in mind that for foreach loops, you sometimes have to get weird properties etc... cuz the enumerator of the foreach loop can be a custom one, like List<>.IEnumerator or something
yeahhh
in this case i can see IsPlayerIgnored is already inside the loop so it doesn't matter
she is not creating a loop
just using an existent one
.locals init (
[0] int32 V_0,
[1] class RoundSummary roundSummary,
[2] int32 num1,
[3] int32 num2,
[4] int32 num3,
[5] int32 num4,
[6] int32 num5,
[7] int32 flamingos,
[8] float32 num6,
[9] float32 num7,
[10] int32 num8,
[11] class [LabApi]LabApi.Events.Arguments.ServerEvents.RoundEndingConditionsCheckEventArgs ev1,
[12] bool flag1,
[13] bool flag2,
[14] bool flag3,
[15] class [LabApi]LabApi.Events.Arguments.ServerEvents.RoundEndingEventArgs ev2,
[16] string str,
[17] bool showSummary,
[18] int32 num10,
[19] valuetype [System.Core]System.Collections.Generic.HashSet`1/Enumerator<class ReferenceHub> V_19,
[20] class ReferenceHub allHub,
[21] valuetype PlayerRoles.Team V_21,
[22] valuetype [mscorlib]System.TimeSpan V_22
)
[20} is the ref hub
now i just
how would i dynamically get that

ldloc.s 20
yes but

idk what you mean
20 can change anytime nw decides to be goofballs
oh yea
you cannot do anything about that
maybe the local builder has access to all the variables on the stack?
ARE YOU SERIOUS
im pretty sure you cannot
I'll go check
RAAAA
ok but like
and on god nw never changes args
i cba to change this once ive already done this
its more likely you will see your code break because they renamed it
than changed args
i mean my thing was if they add
then the index number would change
yea
@celest thorn here some PoC
crazy thanks, i mean that works
you can also just do
rsa.SignData()
and
rsa.VerifyData
and append the data or something
i mean im most likely gonna sign the round info or stuff like that
(just ensure you know where stuff are)
and im most likely gonna work just with rounds
so all of the user data is like rounds
obv you need to save locally the GUID and the Public RSA
because in this way its harder to fake data
yea obv
idea was
Player Storage has list of rounds they played
Rounds have all of the info for each player who played
The backend would just verify rounds
so in this way its way smarter and harder to fake data 🧠

but yea really thanks slem :3
and eve hope the stuff works but by seeing you aren't answering ig it worked
no it didnt
System.Exception: Wrong null argument: ldloc.s NULL
oh
IM STUPID
i was doing the change on the wrong patch lmao
You stupid
Second argument needs to be specified
ok so eve
IN THEORY
you could figure out what arguments are on the stack
with a lot of shenanigans
yeah um its just crashing now
[2026-04-07 16:19:59.696 +02:00] [STDOUT] =================================================================
[2026-04-07 16:19:59.696 +02:00] [STDOUT] at <unknown> <0xffffffff>
[2026-04-07 16:19:59.696 +02:00] [STDOUT] at UnityEngine.Component:GetComponentFastPath_Injected <0x00077>
[2026-04-07 16:19:59.696 +02:00] [STDOUT] at UnityEngine.Component:GetComponentFastPath <0x0005a>
[2026-04-07 16:19:59.697 +02:00] [STDOUT] at UnityEngine.Component:GetComponent <0x00052>
[2026-04-07 16:19:59.697 +02:00] [STDOUT] at Mirror.NetworkBehaviour:get_netIdentity <0x00042>
[2026-04-07 16:19:59.697 +02:00] [STDOUT] at Mirror.NetworkBehaviour:get_isLocalPlayer <0x0001a>
[2026-04-07 16:19:59.697 +02:00] [STDOUT] at LabApi.Features.Wrappers.Player:CreatePlayerWrapper <0x00062>
[2026-04-07 16:19:59.698 +02:00] [STDOUT] at LabApi.Features.Wrappers.Player:Get <0x0007a>
[2026-04-07 16:19:59.698 +02:00] [STDOUT] at SecretAPI.Patches.Features.RoundIgnoreCountPatch:IsPlayerIgnored <0x0001a>
[2026-04-07 16:19:59.698 +02:00] [STDOUT] at <>c:RoundSummary+c.<UpdateTargetCount>b__52_0_Patch0 <0x00022>
[2026-04-07 16:19:59.698 +02:00] [STDOUT] at Utils.NonAllocLINQ.HashsetExtensions:Count <0x00064>
[2026-04-07 16:19:59.698 +02:00] [STDOUT] at RoundSummary:UpdateTargetCount <0x0015a>
[2026-04-07 16:19:59.699 +02:00] [STDOUT] at RoundSummary:Start <0x002da>
interesting
Player.Get(hub).RoundIgnoreStatus.HasFlagFast(RoundIgnoreStatus.ScpTargetCount);
this causes crash in unity
wtf
player deleted?
public void UpdateTargetCount()
{
if (!NetworkServer.active)
return;
this.TargetCount = ReferenceHub.AllHubs.Count<ReferenceHub>((Func<ReferenceHub, bool>) (hub =>
{
Faction faction = hub.GetFaction();
int num;
switch (faction)
{
case Faction.FoundationStaff:
case Faction.FoundationEnemy:
num = 0;
break;
default:
num = faction != Faction.Flamingos ? 1 : 0;
break;
}
return num == 0;
}));
}
private static Player CreatePlayerWrapper(ReferenceHub referenceHub)
{
Player playerWrapper = new Player(referenceHub);
if (referenceHub.isLocalPlayer)
Server.Host = playerWrapper;
return playerWrapper;
}
GG
isLocalPlayer is throwing exception so bad that it crashes the game
lol
idk how id even fix this
can you debug more why is going on?
like add log
before the supposed crash
but yea GG nameless idk how tf you do that
but GG
i mean its mirror calling unity
that crashes it in the C++ i think
internal static class RoundIgnoreCountPatch
{
private const string StateMachine = "<>c";
private const string UpdateTargetCount = "UpdateTargetCount";
private static MethodInfo TargetMethod()
{
Type nestedType = typeof(RoundSummary).GetNestedTypes(AccessTools.all)
.FirstOrDefault(currentType => currentType.Name is StateMachine) ?? throw new Exception("Could not locate state machine for RoundSummary::<>c");
// nestedType.GetMethods(AccessTools.all).ForEach(method => Logger.Debug(method.Name));
MethodInfo updateCountMethod = nestedType.GetMethods(AccessTools.all)
.FirstOrDefault(x => x.Name.Contains(UpdateTargetCount)) ?? throw new Exception($"Could not locate {UpdateTargetCount} method in state machine");
return updateCountMethod;
}
private static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions, ILGenerator generator)
{
CodeMatcher matcher = new CodeMatcher(instructions, generator)
.Start()
.CreateLabel(out Label skip)
.Insert(
new CodeInstruction(OpCodes.Ldarg_0),
CodeInstruction.Call(typeof(RoundIgnoreCountPatch), nameof(IsPlayerIgnored)),
new CodeInstruction(OpCodes.Brtrue_S, skip));
return matcher.InstructionEnumeration();
}
private static bool IsPlayerIgnored(ReferenceHub hub) => Player.Get(hub).RoundIgnoreStatus.HasFlagFast(RoundIgnoreStatus.ScpTargetCount);
}
you are calling something
check if refhub is null
why the fuck is it null
0xffffffff
Is the max adress you can have
so its being discarded by the GC most likely
when you get at that point
Nameless VS GC
ok so the local player is being created
GC wins as always
obv
or refhub is null
ok but why is ReferenceHub::AllHubs returning a null hub at start up
or that refhub is like getting destroyed at the same time you are calling it
nope not null
still crash
also it couldnt even be null
[2026-04-07 16:29:45.593 +02:00] [STDOUT] at UnityEngine.Component:GetComponent <0x00052>
[2026-04-07 16:29:45.593 +02:00] [STDOUT] at Mirror.NetworkBehaviour:get_netIdentity <0x00042>
[2026-04-07 16:29:45.593 +02:00] [STDOUT] at Mirror.NetworkBehaviour:get_isLocalPlayer <0x0001a>
[2026-04-07 16:29:45.594 +02:00] [STDOUT] at LabApi.Features.Wrappers.Player:CreatePlayerWrapper <0x00062>
[2026-04-07 16:29:45.594 +02:00] [STDOUT] at LabApi.Features.Wrappers.Player:Get <0x0007a>
what the hell?
if it was null the stacktrace shouldnt go all the way down
ye the object being destroyed
When tf is this getting executed?
but you keep referencing it
literally a basegame thing btw
basegame aint throwing
no its not but
its a basegame method
its ReferenceHub::AllHubs
that has a destroyed object in it
wait
IsPlayerIgnored
maybe a NetworkServer.active check
do that
private static bool IsPlayerIgnored(ReferenceHub hub)
{
return hub && Player.Get(hub).RoundIgnoreStatus.HasFlagFast(RoundIgnoreStatus.ScpTargetCount);
}
oh hey it DIDNT WORK AGAIN
lol
[2026-04-07 16:33:17.885 +02:00] [STDOUT] 0x000001F012CDB422 (Mono JIT Code) System.Collections.Generic.GenericEqualityComparer`1<T_REF>:Equals (T_REF,T_REF)
[2026-04-07 16:33:17.885 +02:00] [STDOUT] 0x000001F012C6C794 (Mono JIT Code) System.Collections.Generic.Dictionary`2<TKey_REF, TValue_REF>:FindEntry (TKey_REF)
[2026-04-07 16:33:17.885 +02:00] [STDOUT] 0x000001F012C6C3DB (Mono JIT Code) System.Collections.Generic.Dictionary`2<TKey_REF, TValue_REF>:TryGetValue (TKey_REF,TValue_REF&)
[2026-04-07 16:33:17.885 +02:00] [STDOUT] 0x000001F186572F93 (Mono JIT Code) LabApi.Features.Wrappers.Player:Get (ReferenceHub)
[2026-04-07 16:33:17.886 +02:00] [STDOUT] 0x000001F186572E83 (Mono JIT Code) SecretAPI.Patches.Features.RoundIgnoreCountPatch:IsPlayerIgnored (ReferenceHub)
[2026-04-07 16:33:17.886 +02:00] [STDOUT] 0x000001F0BAC32063 (Mono JIT Code) (wrapper dynamic-method) RoundSummary/<>c:RoundSummary+c.<UpdateTargetCount>b__52_0_Patch0 (RoundSummary/<>c,ReferenceHub)
[2026-04-07 16:33:17.886 +02:00] [STDOUT] 0x000001F186572D25 (Mono JIT Code) Utils.NonAllocLINQ.HashsetExtensions:Count<T_REF> (System.Collections.Generic.HashSet`1<T_REF>,System.Func`2<T_REF, bool>)
[2026-04-07 16:33:17.887 +02:00] [STDOUT] 0x000001F186572C2B (Mono JIT Code) RoundSummary:UpdateTargetCount ()
[2026-04-07 16:33:17.887 +02:00] [STDOUT] 0x000001F0BAC30A3B (Mono JIT Code) (wrapper dynamic-method) RoundSummary/<_ProcessServerSideCode>d__58:RoundSummary+<_ProcessServerSideCode>d__58.MoveNext_Patch0 (RoundSummary/<_ProcessServerSideCode>d__58)
[2026-04-07 16:33:17.887 +02:00] [STDOUT] 0x000001F186572946 (Mono JIT Code) MECExtensionMethods2/<CancelWith>d__4:MoveNext ()
[2026-04-07 16:33:17.887 +02:00] [STDOUT] 0x000001F0B9A174BE (Mono JIT Code) MEC.Timing:FixedUpdate ()
[2026-04-07 16:33:17.888 +02:00] [STDOUT] 0x000001F0B8DCFF48 (Mono JIT Code) (wrapper runtime-invoke)
i mean
it got further than it did before
can you do
CL.LogWarn(hub.TryGetComponent(out NetworkIdentity netId))
sure
CL
wtf is CL?
is Console.Logger
yes WHO TF AT NW DECIDED THAT NEEDS TO BE BURN ALIVE
maybe it didnt actually paste the NetworkServer.active change
oop and its gone
why are you fighting with the engine rn
thats eve
no clue
daily eve projects
Because FUCK THE ENGINE
1v1 no build with the engine
[2026-04-07 16:37:32.512 +02:00] [STDOUT] =================================================================
[2026-04-07 16:37:32.512 +02:00] [STDOUT] at <unknown> <0xffffffff>
[2026-04-07 16:37:32.513 +02:00] [STDOUT] at UnityEngine.Component:get_gameObject_Injected <0x00069>
[2026-04-07 16:37:32.513 +02:00] [STDOUT] at UnityEngine.Component:get_gameObject <0x0005a>
[2026-04-07 16:37:32.513 +02:00] [STDOUT] at UnityEngine.Component:TryGetComponent <0x00022>
[2026-04-07 16:37:32.513 +02:00] [STDOUT] at SecretAPI.Patches.Features.RoundIgnoreCountPatch:IsPlayerIgnored <0x00042>
[2026-04-07 16:37:32.514 +02:00] [STDOUT] at <>c:RoundSummary+c.<UpdateTargetCount>b__52_0_Patch0 <0x00022>
[2026-04-07 16:37:32.514 +02:00] [STDOUT] at Utils.NonAllocLINQ.HashsetExtensions:Count <0x00064>
[2026-04-07 16:37:32.514 +02:00] [STDOUT] at RoundSummary:UpdateTargetCount <0x0015a>
[2026-04-07 16:37:32.515 +02:00] [STDOUT] at RoundSummary:Start <0x002da>
[2026-04-07 16:37:32.515 +02:00] [STDOUT] at System.Object:runtime_invoke_void__this__ <0x00087>
Welcome back error
- figth with unity
- fight with slejm
- call david evil
- call slejm evil
- break sercetapi
and again the same thing
TryGetComponent is throwing exception because hub doesnt exist in unity
LMAO
i assume
LOL?
your GO isnt living anymore
Ok thats evil
no it gets to waiting for players
maybe it gets called as soon as the scene gets done?
and then crashes after
Oh fuck
because the facility scene is what has RoundSummary no ?
are you trying to join?
no
fuck.
hmm
maybe
there's an error somewhere else
and it leads to the host crashing and then to this crashing?
try
{
return Player.Get(hub).RoundIgnoreStatus.HasFlagFast(RoundIgnoreStatus.ScpTargetCount);
}
catch
{
return false;
}
yeah im saying that didnt fix it
because again
its the C++ dying in unity
not the C#
0x000001ED0F2FB422 (Mono JIT Code) System.Collections.Generic.GenericEqualityComparer`1<T_REF>:Equals (T_REF,T_REF)
[2026-04-07 16:45:31.062 +02:00] [STDOUT] 0x000001ED0F2802F4 (Mono JIT Code) System.Collections.Generic.Dictionary`2<TKey_REF, TValue_REF>:FindEntry (TKey_REF)
[2026-04-07 16:45:31.063 +02:00] [STDOUT] 0x000001ED0F27FB1B (Mono JIT Code) System.Collections.Generic.Dictionary`2<TKey_REF, TValue_REF>:TryGetValue (TKey_REF,TValue_REF&)
[2026-04-07 16:45:31.063 +02:00] [STDOUT] 0x000001EE82C767B3 (Mono JIT Code) LabApi.Features.Wrappers.Player:Get (ReferenceHub)
[2026-04-07 16:45:31.063 +02:00] [STDOUT] 0x000001EE82C7665B (Mono JIT Code) SecretAPI.Patches.Features.RoundIgnoreCountPatch:IsPlayerIgnored (ReferenceHub)
[2026-04-07 16:45:31.063 +02:00] [STDOUT] 0x000001EDB72A2063 (Mono JIT Code) (wrapper dynamic-method) RoundSummary/<>c:RoundSummary+c.<UpdateTargetCount>b__52_0_Patch0 (RoundSummary/<>c,ReferenceHub)
[2026-04-07 16:45:31.064 +02:00] [STDOUT] 0x000001EE82C764F5 (Mono JIT Code) Utils.NonAllocLINQ.HashsetExtensions:Count<T_REF> (System.Collections.Generic.HashSet`1<T_REF>,System.Func`2<T_REF, bool>)
[2026-04-07 16:45:31.064 +02:00] [STDOUT] 0x000001EE82C763FB (Mono JIT Code) RoundSummary:UpdateTargetCount ()
[2026-04-07 16:45:31.064 +02:00] [STDOUT] 0x000001EDB72A0A3B (Mono JIT Code) (wrapper dynamic-method) RoundSummary/<_ProcessServerSideCode>d__58:RoundSummary+<_ProcessServerSideCode>d__58.MoveNext_Patch0 (RoundSummary/<_ProcessServerSideCode>d__58)
[2026-04-07 16:45:31.064 +02:00] [STDOUT] 0x000001EE82C76116 (Mono JIT Code) MECExtensionMethods2/<CancelWith>d__4:MoveNext ()
[2026-04-07 16:45:31.064 +02:00] [STDOUT] 0x000001EDB60895DE (Mono JIT Code) MEC.Timing:FixedUpdate ()
heres the new stacktrace btw
check if refhub is null
its not
and return false
i already checked
send code
return NetworkServer.active && hub != null && Player.Get(hub).RoundIgnoreStatus.HasFlagFast(RoundIgnoreStatus.ScpTargetCount);
mf
it doesnt matter
when
its the Player.Get(hub) thats throwing the exception
hub ISNT null
if (!NetworkServer.active)
return false;
if (hub == null)
return false;
try
{
return Player.Get(hub).RoundIgnoreStatus.HasFlagFast(RoundIgnoreStatus.ScpTargetCount);
}
catch (Exception ex)
{
Logger.LogError(ex);
return false;
}
still crashes
because again
the exception happens in the C++
[2026-04-07 16:52:11.859 +02:00] [STDOUT] at UnityEngine.Component:GetComponentFastPath <0x0005a>
[2026-04-07 16:52:11.859 +02:00] [STDOUT] at UnityEngine.Component:GetComponent <0x00052>
[2026-04-07 16:52:11.860 +02:00] [STDOUT] at Mirror.NetworkBehaviour:get_netIdentity <0x00042>
[2026-04-07 16:52:11.860 +02:00] [STDOUT] at Mirror.NetworkBehaviour:get_isLocalPlayer <0x0001a>
[2026-04-07 16:52:11.860 +02:00] [STDOUT] at LabApi.Features.Wrappers.Player:CreatePlayerWrapper <0x00062>
skill issue or something idfk
go ask unity engineers
ye
Can you run the server in a debugger or smth
fucking nullables
slem can
how
we cannot
and would the debugger work for the C++ code?
like 9000% of things happen because untiy just dont care about nullables
@restive turret (590224743542554630) can
here
i forget of the j
I thought it was short for SL-something 
scp sl sucks ass
unity too
SL E-suck M-ass
Can't believe slejm just admitted that sl sucks ass 😔
[2026-04-07 16:57:46.675 +02:00] [ERROR] [SecretAPI] System.NullReferenceException: Object reference not set to an instance of an object
at Mirror.NetworkBehaviour.get_isLocalPlayer () [0x00006] in <1bebde0895f14b11be97fb0c4e2cabe4>:0
at LabApi.Features.Wrappers.Player.CreatePlayerWrapper (ReferenceHub referenceHub) [0x00007] in <dcdabc4611d241c3b74aec95f620a184>:0
at LabApi.Features.Wrappers.Player.Get (ReferenceHub referenceHub) [0x0001a] in <dcdabc4611d241c3b74aec95f620a184>:0
at SecretAPI.Patches.Features.RoundIgnoreCountPatch.IsPlayerIgnored (ReferenceHub hub) [0x00022] in <b5d55d0189774eb9b9a26d0454e6cce1>:0
OKAY
FUCKING FINALLY I GOT SMTH MORE
netIdentity is null
probably
yes
YIPPE
thats what i try to say
Mirror fault
let me send an email to them
everything can be null
first for the synclist and now for this
i had to make it a prefix
bc this thing doesnt say "oh the script can be null now"
Btw slem crazy shit, i thought maybe i don't wanna waste space for saving server, so i will just trust the server with the name and just do a simple json with verified server keys 🧠 in a local json
[2026-04-07 17:00:21.275 +02:00] [STDOUT] =================================================================
[2026-04-07 17:00:21.275 +02:00] [STDOUT] at <unknown> <0xffffffff>
[2026-04-07 17:00:21.275 +02:00] [STDOUT] at UnityEngine.Component:GetComponentFastPath_Injected <0x00077>
[2026-04-07 17:00:21.275 +02:00] [STDOUT] at UnityEngine.Component:GetComponentFastPath <0x0005a>
[2026-04-07 17:00:21.276 +02:00] [STDOUT] at UnityEngine.Component:GetComponent <0x00052>
[2026-04-07 17:00:21.276 +02:00] [STDOUT] at Mirror.NetworkBehaviour:get_netIdentity <0x00042>
[2026-04-07 17:00:21.276 +02:00] [STDOUT] at SecretAPI.Patches.Features.RoundIgnoreCountPatch:IsPlayerIgnored <0x0007a>
ARE YOU SERIOUS
so less setup for people ig
skill issue
i guess that workss too
cant
brah
send your blame to unity & mirror
yk what i can fix it
fixed it i think
damn
private static bool IsPlayerIgnored(ReferenceHub hub)
{
if (!NetworkServer.active || !Round.IsRoundStarted)
return false;
if (hub == null)
return false;
return hub && Player.Get(hub).RoundIgnoreStatus.HasFlagFast(RoundIgnoreStatus.ScpTargetCount);
}
ez
yes
i mean
this does mean that servers that yk
do stuff when round isnt started
wont have the number reflect
but idfc
"you're not allowed to criticize your employer's creation"
Why does AHP increase above 25?
"You have given up your right of free speech and personal opinions by signing up"
Why does this line of code create ghost items that can be picked up? It's supposed to store it in the Host's inventory until it's useful
Pickup pickupbase = Player.Get(hub).CurrentItem.DropItem();
Item item = Player.Host.AddItem(pickupbase);```
maybe it's a tick thing where on the second line the pickup hasn't been fully created but idk. Try adding a delay and see if that works
if you have too many items in the host's inventory, you can't add it
try what omega said but this is not a very good idea
couldn't you just move the pickups to an unreachable location?
-# though that's prone to cleanup items
I could but it makes SCP-2176's break and 018 well start bouncing around, so it's not ideal
Freeze their physics
rigidbody.iskinetamic = false?
= true
how to give a specific effect to a Player?
EnableEffect is probably the choice but I am unsure of how to get the exact effect needed
Well its a generic type method
Find the effect in AssemblyCSharp
Like
MovementBoost
AntiScp207
And so on
EnableEffect<MovementBoost>()
Yeah I think that 0f is inf
in the player.Inventory or player.Items
You can subscribe to events when player searched a pickup
Any way to change someones role without them seeing the role screen?
not yet possible (it was suggested)
No
Is it christmas yet
No :(
:(
happy new year
Happy Halloween guys
Happy Independence Day 🥳
is there a way for a server to get the client's value of a networked variable?
no
Happy day
Why a dummy cant shoot with a shotgun?
Before You Report I have searched for existing reports of this bug, and this bug report is unique. Version 14.2.6 Description After CreateAhpProcess grants an AHP to a player, if the player has the...
Nobody Cares
i thought it was my plugin's problem
after checking antiscp207's code
who wrote this s***t
just patch it, it was broken and still is
the only difference is that they broke it even more
i didn't know this was serverhost-chat
AHP is mistery
mystery ❌
Misery 
northwood remake ahp system plz 😭
nah remove it
I meant to ask what happens with the item itself, does it just get stored as an ItemBase and created again when it's dropped/thrown?
When you pickup the item the pickup destroyed and added as ItemBase.
When you drop the item it creates a pickup and removes the itembase
should i learn rust?
Can't be bothered
Ill wait faster
How do I get the permission group of a user group
Currently we rocking this ```cs
UserGroup group = ServerStatic.PermissionsHandler.GetGroup(groupName);
PermissionGroup.DefaultPermissionGroups.TryGetValue(group.Name, out PermissionGroup permissionGroup);
player.UserGroup = group;
player.AddPermissions(permissionGroup.Permissions);
The TryGet is returning false
Kind seems like we waiting slower lmao
DefaultPermissionsProvider._permissionsDictionary
DefaultPermissionGroups is trolling you
@upper vapor Bolton hide or remove website with sl emojies 😭😭😭
oh nuh
github moment
yipppeee
which show hint method should i patch to show the hint with another hint system?
basegame
or well it depends
if ur hint system uses basegame method then you dont want that
but otherwise yeah basegame method !!!
We need Assembly-CSharp.xml 
This is in LabAPI
Me rn: 
Lmao
Anyone good at operating ced mod here?
The support isn’t answering and i need help fast
maybe its because the support is european and its midnight in europe
but anyway, #plugins-discussion and don't ask to ask
what's the easiest way to get a player's killer weapon? I was thinking on getting the death message translation and parse it to know the weapon (like 939 claws for example) but pretty sure there's a better way
check DamageHandler
For Firearm, you can use FirearmDamageHandler and check it Firearm item
Imma try that thx @carmine prawn
What a fucking troll
Hi! Is it possible to add new commands to a ParentCommand from another plugin? (Plugin x registers 3 commands into a ParentCommand and plugin y wants to add 2 commands to it)
I tried it once, failed 🙁
let me take a look on how it works
you might be able to hijack it
gotchu
https://zer0twois.strokinit.it/🐀/2jut53r8.png
you need to get the instance and then do this
ParentCommand is an abstract of CommandHandler
so you should be fine
Thanks
np :3
Getting the Commands list of whatever it is should work too
do you guys any good time mute plugins?
and also can you t mute with cedmod comand thru console
david asking you
should i learn the mess called Rust?
Because im reading the doc
and im like "why?"
No
idk i need speed
im trying to achieve the gods level of speed
without crying for malloc and freemem
AnsiC
what the fuck is that
Or write asm
i already can do that
Learn c++
It doesn’t have t myte
But you don't specify allocated bytes xd
Rust has the same fucking thing
It does it for you
Wait so WHY TF IN UNI THEY TOLD ME THE OPPOSITE fuck them
lol
Just the syntax so ass i can't even read it
Skill issue
rust syntax idk
is so ass
Rust ass
The game is good
Just do pure C
The lang not
C dynamic array speedrun any%
fucking hell
when rust was like becoming popular
Sooo how do I access it if it's private?
i was so confused
Publicize
Publicize
everyone was like "you should code in rust"
OOohhhh right, i forgot about doing that
And make issue / PR for it pls
bruh
crazy the same joke was used against me
Ofc, have you seen the rust community cry because GNU 's undocumented features has to be same in rust too?
no?
Lmao
That's funny
Also i don't like how in rust you need to recompile everything
Even the packages
nah idc about that
I do
like
i learned a bit of rust
to add this to a xenoblade modding project
which wasn't too hard
imagine going around on maps WITHOUT freecam movement
so a bit of it i have the ideas and stuff
but like reading the docs scares me 
I was"reading" rust code and most of the time it just "uhh if you say so" and "i guess this how is done"
like i would love to contribute to this project but like its rust
When i see js / ts project i just ignore it
Noone is paying me enough to touch that shit
ts i don't like it alot
js a bit more
I don't like both
And I can write c/c++ but not a lot, ide helps but still not that much as c# do
Nodejs can burn
Whoever though running server in JavaScript is such a good idea wasn't the best mental state
Test deez
a website
because honestly i wanna switch db
to not use mongo
because mongo is fantastic but
i need something fast and light
Mysql
fuck you
die in a fire
im not gonna do
"WHERE IS MY SkibidiToilet69 IN account"
Hmm, so get this right, I was using the nuget package before, but now since I need to publicize it I changed to the .dll from the local admins server right, and so yknow, as one would, I removed the nuget package from my project and referenced the correct .dll file, and obviously, because why would it not, it is pointing to the nuget package location
im thinking of something insane
SQLlite is basically just space efficent and fast asf
but no Network Capabilities
what if i make a system to add network capabilities
Fym network capibility
THAT I CAN CONNECT READ AND WRITE
caps
sorry
So you need basically a server SQL not a file/memory sql
SQL lite is really like light
on disk space
because my concern is more diskspace
I use LiteDB since I dont need to do sql connands
And litedb basically just helps me via fancy linq stuff
ig i will stick with mongo
What I usually do is exit and reload the program (vs26 for example)
I mostly do is need file stuff
Ofc you can maybe make a wrapper out of it
But nyeh
Woah
like why tf none told me this shit was way better than fuck ass react
spending my life there
I absolutely fucked around assembly
Instead of doing shit with 8 bit register with sign to 16 bit
I multiplied it signed by 1
🤦♀️
That converts it to 16 bit
Any moderately large app performs like ass due to blazor's overreliance on websockets
fuck
ehm
ig react still the goat
then
Just don't use websites
I mean i use nextjs
and that has support for SSR
Maybe like solidstart or https://fresh.deno.dev
The shittest support for SSR
You can't even use states in server rendered stuff and have to jump around server and client with components
most other ssr'd frameworks just handle state conversion on the server themselves (such as svelte)
Solidstart does too iirc
https://zer0twois.strokinit.it/🐀/hv3n1ryq.jpg
Btw while i was searching shit on xc2 files i found this map
which is the same one used on a cutscene
thank god nintendo you put it here for all of us to use
Why tf everything is so detailed
Also yes I did just suggest 2 Frameworks that look like react
https://zer0twois.strokinit.it/🐀/lpxlbnb2.jpg
Look a this
idk im searching something easy
but like everything sucks ass
tbh
because react is starting to get sometimes complicated especially with some stuff
"we are 2 frameworks away from perfection"
LOL
I use svelte and sveltekit
Typically split api with bare minimum ssr on sveltekit frontend
i don't like svelte
Mostly because I sometimes have to use jsx on the api and having that be in the svelte frontend seems weird
I'm so glad I'm not touching websites
rock you can see is less detailed than like this
which you see far away lol
Learn zig
zig?
University issue
void* free_custom(void* ptr)
{
free(ptr);
free(ptr); // we free double so we ensure it is free
return ptr;
}
LMAO
Why do you hate the strongly-typed version of the same shit 😭
"strongly-typed"
what you mean by that
"strong-typed" when i see mf use any all place
oh
that
i just place any tbh
Erm actually, Blazor is not xml
csxml
Blazor Wasm
war assembly
Wait i can have blazor cool shit with Web Assembly???
SO its fatser
:3
Congrats you download several hundred megabytes of webassemblies for still quite shit performance
omg i might switch
Yes
More like 5 MB with tree shaking
With Blazor SSR you can have server-rendered components and in those you can also have client-rendered components
Or make the entire app Wasm (will take a while to load, bad for SEO)
I can host website on netifly or vercel for free
With that i need to pay a vps
;(
Or even cloudflare pages
If you only use Wasm, no
Cuz static assets
Vercel can actually do C# on the server iirc
but it requires a shitty workaround
I know it can do php
Yeah that's a different topic
See
Painhp
I agree
You can do hybrid
If no was content itl use ssr then switch to wasm when downloaded
wtf Magyar Peti jumpscare
double free not free double
XD
rework that and make that Item is both ItemInventory and Pickup
ye g et approval from beryl and everyone too
Sdk style instead of msbuild style
Can you do it on nuget packege references?
Yey
Hell yeah
Time to see
Yes
They even work on project references if you're that crazy
Wow, I wish I knew that
Not the project reference one
Just the feature in general
I tried doing it and wondering why it wasnt working and then realised I was doing Publicized="true" instead of Publicize="true"
build the project
who wants more lAbApi jokes?
labapu
labapu
Build failed, because it's not publicized O.o
rebuikd
try again
try harder
Trust me, I've rebuilt as hard as possible
I've never pressed Ctrl + B faster
try again
Okay
full rebuild
Yeah no
send csproj
have you ever pressed CTRL + S
fast than light

I press CTRL + S after every character, god forbid I lose ANY progress
FR
*someone at JetBrains
I forget their company name is JetBrain and not IntelliJ
<PackageReference Include="Northwood.LabAPI" Version="1.1.6.1" Publicize="true" />```

@someone ?
your comptuer will shut down aftere you typed a char but before pressing ctrl+s
at "at someone"
I think I'd die
yeeeees
Yes that's it?
did you add the bepinex package?
bruh
drake laptop
bruh
bruh
<PackageReference Include="BepInEx.AssemblyPublicizer.MSBuild" Version="0.4.3" PrivateAssets="all" ExcludeAssets="runtime" ReferenceOutputAssembly="false" Private="true" />
you dont need allat
wtf is this build
lol
labubu
Oh thank you for the spoon feeding
don't need all of that
check my SS
Too much spoon feeding
You have thing for this character?
SSSSSS?
Thoughts on polysharp guys?
wtf is that
server-specific screenshot shitting settings system
usually you dont need everything
Idk why but when i think of SS i think of something else
history is too embedded on my brain
something alliance?
yea i saw it, i find it useless
No
Lowkey dont know why I have it
yeah bc
i know its history
||Schutzstaffel (or SS)||
germanese
Please do not ban me, im trying to educate
istn like most of them already in newest C#?
no
some features require types that the framework provides
for example
in newest .net you can do it without these
yes
so?
but not in .net fw
So polysharp is useless right, I dont even know what it is, nor do I know why I have it in EVERY project
try removing it
ye
still no static abstract :((
what if
krill issue
btw someone knows how template works i might create a template for my own plugins
you enabled nullable
I HATE doing like everytime the same shit
Should we have nullable enabled, or like, who cares
i have it already
theres a pr
for a template
and also this
it kinda sucks
honestly i wanna run it on Rider
I have 9 vs instances open, hmmm
nullable prevents a lot of oversights
well, at least it warns you
prime example: tryraycastroom null ref
you can
Well the thing is I didnt know you can enable nullable until I had built like a pretty large project and then I just kept off becuase I couldnt be bother going back through and changing everything
How much do I need? Im assuming just the include and version
yea, migrating to it causes many behavioral breaking changes
Yeah, besides, I already just assume everything can be null sooo
Is that why is was like, highlighted?
yeah
Ah
not enough arrows ik
Sorry I'm a little slow, I need like big flashing lights, you know how it is
This fucking sucks in a way where i shouldn't think that?
Also imma just keep polysharp in everything, whatever, good to have I guess?
what is the problem
There is no longer a problem
Wait a minute, why does it have the yellow triangle in the solution explorer
do you know if i put the sourceName it is like a Replace or no?
because i usually name the Main of my plugins
MyProjectPlugin.cs
yea it replaces
Ok thats cool
Aw well, it builds so like, whatever
thats so cuteee :3
colon british pound
What if I just like, publicize everything, even though I dont have ot
Becuase like
Why not
Right?
No?
Okay
you will die
Oh you're so right
i finally got a template so no 20 seconds spent for setting up a project everytime
toggle for style cop and done 
Do I need the include assets? <PackageReference Include="PolySharp" Version="1.15.0" PrivateAssets="all" IncludeAssets="runtime; build; native; contentfiles; analyzers; buildtransitive" />
Do I even need the private assets?
just don't even use it tbh
Actually, instead of answering that can someone tell me what they are
4.8 has alot of stuff
Anyways, what is PrivateAssets
You might be using a dependency purely as a development harness and might not want to expose that to projects that will consume your package. In this scenario, you can use the PrivateAssets metadata to control this behavior.
contentfiles;analyzers;build
And IncludeAssets?
all

where nwapi discord server?
nwapi is discontinued 99.99%
100%
but the discord exists ig. pretty sure last msg is like months old at this point
okthanks
They made the entire server read-only
I just noticed

LabAPI is good
It seems out of sync?
Have you tried EXILED's implementation?
Regardless you may be able to add a short delay before checking if the user still has the item with the item serial in their inventory and I assume check if it exists in the world?? As a temporary workaround, that is
crazy
Forget LabAPI, we need SCPSL 2
The 20.0 update
isn't that scpsl 20.0 
You know that not every stuff gets into 14.x update?
I have a PR fixing it some time already.
hi slime boy
you must fix future issues in 14.2.7

Ah yes, fix every visual bug first then fix gameplay bug after
yamato would be very happy
I'm not doing visual bug fixes until it's on a real gameplay changing one
Maybe if they ask nicely (and possibly know where to look and how to fix)
also like i saw exiled has the same thing but they do validation on whether the source & destination is the same, idk if i wanna addthat
like do i want to tell people they messed up or do i just not care 
not worth it
what if
you nuked reflection
um
good idea
so?
also wtf was i on writing this
did i actually end up taking that from exiled
i dont think so but its the same weird code choice lmao
@restive turret do you eat slime
clipped
generated by sora
So true 
What's wrong with it 😭
trying rn to get room from DamagingWindow event
ev.Window.Room does not exist 😭
cursed
theres a way to get a room by pos
i dont remmeber the method name
RoomUtils
I remember, I just didn't wanna do this 
i'm cooked
But you would
and?
eveil
guh
[2026-04-09 19:45:44.452 +02:00] [ERROR] [LabApi] System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> HarmonyLib.HarmonyException: Patching exception in method static System.Reflection.MethodInfo SecretAPI.Patches.Features.RoundIgnoreCountPatch::TargetMethod() ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object
at SecretAPI.Patches.Features.RoundIgnoreCountPatch.TargetMethod () [0x00015] in <523afa5ec0764a1abee0154756f31eae>:0
um
what
oh



