#plugins-dev-chat
1 messages · Page 82 of 1
I'm not getting a hint with this
oh you have to add it to the display lol
Bruh
Display.Get(hub).Show(new Tag(), DE)
Works for my use case
thumbs up emoji
tbh my CustomHintService probably needs more fixing than RueI v3
Ruei v3 was more stable
lol
btw HIII
Okay, I have a problem.
I have seen in other plugins from #1336031121699377213 , functions that should always be executed like endless loop, without any handlers, can be called in Enable, in the main plugin file.
But, neither my function nor my logs are being called. I'm work on LapAPI only, without Exiled. How do I get the function to be called all the time?
can you show full class?
using GasChamber.Service;
using LabApi.Events.CustomHandlers;
using LabApi.Features.Console;
using LabApi.Loader.Features.Plugins;
using System;
namespace GasChamber
{
public class PluginMain : Plugin<Config>
{
public override string Name => "Gas";
public override string Description => "yup";
public override string Author => "Meisner";
public override Version Version => new Version(1, 0, 0);
public override Version RequiredApiVersion => new Version();
public static PluginMain Configuration { get; set; } = null;
public Handlers Startup { get; set; }
public override void Enable()
{
Configuration = this;
Startup = new Handlers();
GasService.Auto();
Logger.Warn("Before");
CustomHandlersManager.RegisterEventsHandler(Startup);
Logger.Warn("After");
}
public override void Disable()
{
Configuration = null;
CustomHandlersManager.UnregisterEventsHandler(Startup);
}
}
}
public static PluginMain Configuration { get; set; } = null;
You can remove this you can use Config
but i don't see any problems
Oh wait
its the Instance
that one
ok nvm
Check if there are any error in LA or in the console
because it could be that GasService.Auto(); is throwing error
I tried to comment out all the config declarations, but in any case, there are no errors in the console
does even the plugin boot?
where are you putting the plugin?
If I call GasService.Auto() in to Hadlers, all fine
Yea, plugin is working, on Handlers
So the plugin stops before
Logger.Warn("Before");
if im understading
but GasService.Auto(); has no exception
is it like blocking the console?
In my console I see output, from the OnServerRoundStarted handler, where the Logger output is running.
However, everything in Enable is dead.
no problem
how i can do http get / post from the plugin? (to it didnt stop the thread)
I have a stupid question i need to unpatch a method from our lovely c*dm*d (the censorship just for axwabo)
I immediately replaced with othe wovels and was confused
lol
I need to unpatch this method of cedmod how can i do it?
like i don't want to add cedmod as a dependency
if(PluginLoader.Plugins.Any(x => x.Key.Name.ToLower() == "cedmod"))
Yea but now?
I do not understand anything
Bruh
like you are just patching them
When you load an assembly it runs that event
I patch after exiled being loaded
Technically not 1 its now like 5
yea i now see
You can now do the same for cedmod
Well to build
i know
But after building you don't really need it
For example I have this on my server whihc doesn't do anything since i dont have exiled but I put it into server which has exiled
private void CedModDestructor69(object sender, AssemblyLoadEventArgs args)
{
if (!args.LoadedAssembly.FullName.Contains("CedMod"))
return;
Main.Harmony?.PatchCategory("cedmod");
Logger.Info("Cedmod Destroyed :3");
}
Something like this should work
lol
It could be when unloading
Also change the priority to he higher than ced
👍
I guess
adios cedmod

i fucking hate when its a prefix
some of my patches are prefix but not destructive as cedmod
You could argue yes you can disable it in the config but i want to do it dynamically
Btw it doesn't work
cedmod is not detected
It seems labapi is doing some magic
DMDASM.E420685B.Cecil, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
I see this spammed
ah might be bc cedmod packs itself<
how do you subscibe to it?
what do you printM
private void CedModDestructor69(object sender, AssemblyLoadEventArgs args)
{
Logger.Info(args.LoadedAssembly.FullName);
if (!args.LoadedAssembly.FullName.Contains("CedMod"))
return;
Main.Harmony?.PatchCategory("cedmod");
Logger.Info("Cedmod Destroyed :3");
}
this is in one of the module
?
labapi
loads the plugin and then enables them
Yep
if (PluginLoader.Plugins.Any(x => x.Key.Name.ToLower() == "cedmod"))
{
Logger.Info("Cedmod Detected");
}
Check how sloc unpatches MER, should be similar

why would someone have sloc and Mer?

Instead for me is Cedmod + CoolPlugin = nono
Yeah
Probably, at least your client-side objects won't be affected
What does IsLocked is in Interactable toy
You cannot interact with it
Most likely neither server side
But hey that was bombed

Like it still exist
Just not really used
Because client offer pretty much more control
But both of them are really optimized
So you have same performance
show example 
If you consider this (https://docs.unity3d.com/6000.1/Documentation/ScriptReference/Networking.UnityWebRequest.Get.html) hard then I dont know what to tell ya
in coroutine
david moment
He probably needs to shoot the gun of logic
standard unity way to do anything pretty much lol
if smth takes time, then coroutine
Yea
Hiii
I put an infinite loop in a coroutine because I forgot they weren't threads
I was a bit surprised when the server just hang up
and this is why we shouldn’t use infinite coroutines
one thing i find weird is that loads of plugin devs seem to hate making components 😭
heyo
I love making components
I forget that I'm inside Unity and it's already too late when I realize
hot… i also cut my finger…
I only have like one component in my plugin
???
You cut your finger?
Apply something to it
Before it gets infected
And yes its hot asf
it’s fine if ur doing one time things but if ur doing
while (true) { yield return Timing.WaitForOneFrame; }
im like bruh
At this point I just subscribe to the Update method
What's the point of this
Explodes
make a component 😭
Nah it can't have its lifetime attached to an object
Sadly
I need it
i would like to have a profiler
so i can see performance and stuff
it would be fantastic
Someone knows how can i get the collider the player is interacting when opening a door?
Patch the raycast
What?
this.IsAllowed = true;
this.Player = Player.Get(player);
this.Door = Door.Get(door);
this.CanOpen = canOpen;
the even has only this
I'm not sure if the client sends the jnteracted door or the collider, probably the former
Well crap
Print the collider id
Maybe it has different id for a different knob
Might be th3 case for generators only
What is that
lol
OnClientInteracted
like its so sad i need to patch

I thought it just meant that a server saw a client interact 😭
PlayerEvents.OnInteractedDoor
before this
or else
i can do
a prefix
and inside a dictionary
put the collider and referencehub
and then remove
🧠
The only component I ever did was for impact grenade
crazy
Like
so sad i need to patch
normal objects do enough
Also zero your gonna love the next update for your tower thingy
:3
source: trust me
oh wait
i contributed nothing to it
Well then you did quite a lot?
for me it wasn't much
i did far worse thing
percent wise
like 70%
for me its nothing
i work on projects and stuff because i like that
and i don't wanna get paid anything
Your payment is time passing
but im scared to now
My payment is just appreciation
btw im scared
it could be new toy
or the toys that huber showed
idk
but when that
i mean thanks for teasing but
0.000000001$ for the info
(im joking)
I found out
that doors
door itself is 0
the thingy button is 10
why
10
How can I get the door that a raycast collides with
Hello, is it possible to have a role with different colored letters? If it cannot be done naturally, can it be done using plugins? Thank you
owner_badge: '<color=#5bc0eb><b>C</b></color><color=#f4d35e><b>R</b></color><color=#f5f5f5><b>E</b></color><color=#5bc0eb><b>A</b></color><color=#f4d35e><b>D</b></color><color=#f5f5f5><b>O</b></color><color=#5bc0eb><b>R</b></color>'
owner_color: blue
owner_cover: true
owner_hidden: false
owner_kick_power: 255
owner_required_kick_power: 255
❤️
GetComponentInParent
Badges cannot have tags in them
You can make it change colors with a plugin but you can't color different letters
Note that owner_color does not accept color codes. Is this true, or have I simply written it incorrectly?
Does it only accept
red, green, blue, cyan, silver, gold, purple, pink, and yellow?
Okay, thank you very much, bro. Would custom roles be an option?
the Plugin?
Check RainbowTags
The SL wiki has the list of the available colors if you can't find it in the plugin's readme
Thank you very much, you're very kind.
Np
I can't find the section on the scp sl wiki, could you please send it to me?

Remote Admin configs are server config files that define ranks and who they are given to. These docu...
here
So, it's not possible to assign a label color only to these, right? I'm asking to confirm and put my mind at ease.
Why is it in the tech support wiki 😭
You can use the ones that are used by server groups
Okay, just these?
Sorry for the inconvenience.
Yeah
🤓 ☝Misc.PlayerInfoColorTypes
I'm new to all this server and programming stuff, so I'll probably ask some obvious questions. Sorry about that, I don't know anything and I'm not very familiar with how to use some things on Discord or how to ask questions.
Huh
It's fine
Ive heard about fake role syncing before, how does it work?
You lie to the client 
send a role sync message that contains the fake details
or look at exiled

Can you ban eve? Thank you
ur a bully
I've been waiting for you to ask
scary lucy...
+1
Baller
chat
i need a new name for something
i have a Display class which u use to send hints to players in ruei
but the problem is that unity has a Display class too so that creates an ambiguous reference
and i dont want that
Well then rename it...
yeah but YOU
made a HintDisplay
in SL
and its BAD
Or just tell people to use alias
yuck
I did not
TO WHAT
THATS THE QUESTIOn
ElementDisplay is too long
NO.
david when do you make ruei basegame
UIDisplay
damn...
why would there be an ambiguous reference when they aren’t even in the same namespace tho?
using unity
using ruei
uh oh ambigious!!!
you need to using Display = Ruei.Display;
and yet its still ambious unless you do that
i know that IDEs tend to just let you pick and itll auto do it
but 
i dont wanna make it confusing
typical nw moment
com-18 powered by 25 cents
waaaa
do you own an fsp as spectator
😂
how did you even manage to break it that much
name it Display2
Give yourself an FSP as a spectator and force equip
Then spectate someone with an FSP
interesting how that wasnt some peoples immediate thought
Skill fucking issue
ur all useless
If you don't like Display2 try Display3
Or just
PlayerDisplay
too long
Womp womp
PlayerHints
HintDisplay is taken right?
DisplayHints
HintsDisplay
Literally any of those last 4
Fuck your constraints suck it up
Hm, i tried to take a look at Exiled but i am really not good at going through decompiled code or whatever, so im stumped quite fast
Is there something like SyncedScaleMessages for Roles?
Uhh
You dont gotta decompile for exiled
Theres repo
oooo that makes sense
-# now to learn how to browse through github repos for lines of code...
Probably easier ways of it
Idk!
Thank you ^^
From the looks of it, it prevents players to be fake synced as a dead role? hm
So just call the class Elements
Hints would also work because you're using the in-game hint system
well
That's just to prevent bugs and glitches
Afaik
if u receive a network message about a dead player doing smth they shouldnt
Dunno
confusing as hell
ask exiled lol
Why
You have these weird arbitrary requirements for what your class name should be
PlayerDisplay being too long is crazy
No clue why Elements as a class name is confusing
Not calling it hints even though it uses the hint system is a choice you can make ig
But that cuts a majority of your options for like 0 reason
If you're really insistent about these things you can do like SLDisplay
Or DisplaySL
Or Screen
Or like Visuals idk
im just gonna with RueDisplay
Go for it
Elements is confusing because i already have an Element class
and it doesn't make it clear that it's used to show stuff to the player
At the end of the day it's your code that you're writing
Whatever makes you happy is whatever you should go with
Because it's not gonna matter to a single other living soul on the planet
If RueDisplay is what you wanna do then do it 
I mean I have handler classes called shit like SodaPersonnelHandler because it's descriptive on its purpose and length doesn't matter that much
Hm, makes sense, but i was kinda planning on doing just that
Telling a client that another person is Spectator/Not alive role, even if they arent
Any ideas?

What for
Making them invisible?
Well check cedmod they do smth on it
Invisible for all but one player
Including voice chat only with that one player, etc
939? o.O
The scp
How does it fake positio- oh the voice placing thing?
Yea
Makes u invisible
But that sounds like an interesting solution. Where can i get started on this?
Again im only really familiar with SyncedScaleMessages for now x3
[HarmonyPatch(typeof(FpcServerPositionDistributor), nameof(FpcServerPositionDistributor.WriteAll))]
wait why a patch?
ValidatedVisibility
Validating?
no Validated
I thought that was 939 specific ngl
it happens after validation
oh dear northwood™ staff please bless me with your knowledge on how i could go about making one player basically non-existant to everyone but one player
in the validated visibility event set ev.IsVisible to false for everyone except the one player
Can i call that thing myself? Like how could i change the visibility of a player during a round?
also considering how much you talk in here and how much the validated visibility event gets talked about im confused on how you dont know about it
Is it?
Maybe im dement
just sub to the event, its called for every player combo every frame
troo
ObjectDestroyMessage
With a net id of the object ur destroying
This feels too easy to work
i would not override it to true, as that would break base game effects that have it false by default
ohhh thank you
e.g. hat effect
Tbf if someone is adding ghosts i have a feeling theyre not rly intending them to rly play the game normally
Idk!
fair
Feature for a roleplay server ^^
Wait why are you doing this?
Partially for moderation, to only talk to someone OOC without others being able to perceive staff
And partially for Schizo storylines of literally having a real, imaginary friend i guess
btw does being invisible using this method also prevent outbound voicechat from the invisible person?
yeah
neat
Oh cool
Never even thought about that

me stealing your idea
you can still technically compress that code. idk if its even worth it but it makes me feel smart to use these
e.IsVisible = !...Contains ? false : e.IsVisible
is it possible to have your own print color in the server console?
Yes
how can i do it?
Logger.Raw($"TEXT", ConsoleColor);
ty
how do i add icons on the screen with HintServiceMeow?
force item
how tf sl is coded
hello chat
Hi
HintVisual
-# wpf moment
thatguy had a point
HintScreen
java esque class name
NetworkServer.UnSpawn
Thats not faie
when e.IsVisible && thing.Contains
IJani
ParameterCollectionConfigurationErrorFacadeConnectionMapperImporterWrapperParameterMappingServiceMethodIdentifierCallbackInfoErrorMappingAuthenticationThreadAnnotationTemplateAnnotationTestsGetterClonePrincipalUtilsComparator
it happens when an item in your inventory (yes, spec inv) is force equipped an item while you're spectating
I once remember making a harmony patch so bad it froze the server and made the tps 300/60
Dunno what it was exactly patching but ik it was cola related
Shortest .net class name
Why i cant set specialweapon limit to 8
no
Is it possible to prevent the spawning of a ragdoll for certain players but some specific players can still see it?
Send the spawn message to only specific players

im wondering something crazy
can you make conveyor belts
but where the player can move on top of them?
should be pretty simple
yea
because i don't think you can do it
until we get player parenting, you won't be able to move the player while they are able to move on their end
alternative: position delta message
-# probably never happening
crazy
whereeee would such a spawn message be? .w.
I only found the playerevent for spawning ragdolls where i would assume i could disallow it, but im not sure how i could then selectively spawn the same/a new ragdoll for select players 
oo what are those
Ragdoll classes
You need to use Mirror's spawn message
As ragdolls are spawned via NetworkServer.Spawn
So i would need to make my own RagdollManager.ServerCreateRagdoll since that has the NetworkServer.Spawn method?
trying this rn. currently searching for a client-only spawning equivalent of networkserver.spawn
you can always make an issue about it on the github, i dont see why it shouldnt exist
trueing
thats true
yeah you can do that
just send a SpawnMessage to select clients
SpawnMessage 
no clue what a "SpawnMessage" even is x.x
HCZ_EZ_Checkpoint Part(Clone) | HczCheckpointToEntranceZone | HeavyContainment | Straight
HCZ_ChkpA(Clone) | HczCheckpointA | HeavyContainment | Endroom
HCZ_ChkpB(Clone) | HczCheckpointB | HeavyContainment | Endroom
What actually is the difference between these rooms?
well more specific, which parts of the checkpoints do they each refer to
HCZ_ChkpA the check point, but then HCZ_EZ_Checkpoint Part is from the big gate to the first entrance door?
or what
HczCheckpointToEntranceZone is this room i think
Between the Gate and first EZ door
HCZ_EZ_Checkpoint Part is the heavy part up until the big gate after the checkpoint
EZ_HCZ_Checkpoint Part is the entrance part up to the big gate
HCZ_ChkpA & B are the elevators
elevators???
to lcz
yea
you go up to LCZ from HCZ
did they really name the heavy elevator room HCZ_ChkpA
yes
yes
😭
And there is also Hcz_ChkpB
yes
hi guys, is it possible to run a remote admin command through labapi?
yea but why ?
cause i did a funny and want to make a workaround my problem rather than solving it
Server.RunCommand
thanks chief
np
copy pasted the ServerCreateRagdoll method but yeah no clue about how to only tell select clients about the object, or whatever "SpawnMessage" is qwq
Wish i could just search up solutions here but also seems im the first to ask questions about it or sth
the ragdoll is already created when you call instantiate
heck
look into how networkserver.spawn works, create the spawn message yourself and send it to players
p.Connection.Send
well it runs in the console not the remoteadmin thing
ye
omg thx
we love this
are you calling file.create and not disposing the handle
its meant to be called once and then you use the file and then you kill the server
what
what
you get a stream from File.Create
you should dispose that
otherwise you lock the file until the server stops
??
this works fine
dam
why do you even create the file in the first place
pretty sure it needs to exist
cant find any mention of spawn message anywhere, nor do i see any correlation between networkserver.spawn and possible ways to do it individually
you need to publicize mirror
but identity is what ur sending
and conn is who ur sending to
though it's a bit more performant if you create the payload once and send it to each client
yeah
no need for .ToList when using foreach
!(result is …) 
i just trimmed it, in long it is
Player.ReadyList.Except(mediums).Union([ghost]).ToList()
for my use case .w.
THIS IS YOUR DEVELOPERS CODE !!!!
probably decompiler then
xD
lmfao
i was gonna blame vs but JB does this too
ohhh that also explains the (!(bla == null)) ive been seeing x.x
decompiler but also nw did make the game before some stuff became easier like that
afaik
a oki
operator precedence 
when i started developing for my community i got told/taught to not use "is" and "is not" as they dont work, like for null checks or sth
Is it still like that? Was it ever like that?
that is a fat lie to force you to conform to their coding standards
is null doesn't work for unity objects
thats a unity specific thing
yeah
ahhhh that makes sense alright
== null for unity objects
same for null-coalescing and null conditionals ??= and ?.
or if (o)
or that yea
i just learnt of those recently! they also dont work for MonoBehaviours? (or what else is meant with "unity objects"?)
yes
damn
yeah, gameobject, monobehaviour etc
yeah
anything deriving from UnityEngine.Object
ya
kills u

anyway, straight onto the next topic
Can i stop bullet impacts being synced
:3
oooo
i suppose thats where i can cancel it, but how could i spawn them in manually for specific clients 
ngl i think they removed the easy message for it
pain
bad nw devs
hmm maybe someone tell specific clients to Decal.OnVisibilityChanged(false) ?
decals are client sided
server just tells them where to place them
and ofc can now (since 14.1) clear them
um
i blame it on nuget
wtf am i looking at
decompiler shit again or just wtf code 😭
this was in a blog i read
or post
or whatever
"if false is false"
ahh
can discord stop FREEZING when i wanna type a "
"""""""""""""""""""""""""""""""""
does not work
i call it like this, but it throws a NRE for my ServerCreateRagdoll, because, i think, Handler is null
oh, all of those values are 0/null
So this is my code for trying to spawn in ragdolls for only select players.
It works with preventing the default ragdoll from spawning, and the foreach executes fine with a seemingly fine basicRagdoll.
But they dont appear for players.
Any thoughts? :(
That doesnt even exist 
well

@upper vapor Do you know any more information? Im kinda stuck and im tempted to ping david too qwq
@unique crane maybe you know something about why no physical ragdolls spawn? .w.
i think you need to call the NetworkIdentity's OnStartServer method
huh o.O

ah
invoke the ragdoll's start method..?
wait
i remember there was an issue with the uh
labapi event
you gotta supply null to the RagdollData constructor
or just don't set it
new RagdollData(hub, handler, position, rotation, null)
idk why it's nullable and has the default parameter as 0
lovely
Ah so switch out my 0 to a null, i wil ltry
Ohh with me setting it as 0 it would make all ragdolls i create have the serial 0, i see
yeah why is it default 0 xD
No ragdoll and no error ,_,
LA logs mayeb?
Okay how about this solution:
Spawn it for everyone
send destroy message to selected players who shouldnt see it
[2025-07-27 17:44:24.394 +00:00] [STDOUT] OnSerialize failed for: object=AutoRagdoll(Clone)(Clone) component=PlayerRoles.Ragdolls.AutoHumanRagdoll sceneId=0
[2025-07-27 17:44:24.394 +00:00] [STDOUT] System.NullReferenceException: Object reference not set to an instance of an object
[2025-07-27 17:44:24.394 +00:00] [STDOUT] at PlayerStatsSystem.DamageHandlerReaderWriter.WriteDamageHandler (Mirror.NetworkWriter writer, PlayerStatsSystem.DamageHandlerBase info) [0x00000] in <d9731e675e55453197cf28cd60eed3f2>:0
[2025-07-27 17:44:24.394 +00:00] [STDOUT] at PlayerRoles.Ragdolls.RagdollDataReaderWriter.WriteRagdollData (Mirror.NetworkWriter writer, PlayerRoles.Ragdolls.RagdollData info) [0x00019] in <d9731e675e55453197cf28cd60eed3f2>:0
[2025-07-27 17:44:24.394 +00:00] [STDOUT] at PlayerRoles.Ragdolls.BasicRagdoll.SerializeSyncVars (Mirror.NetworkWriter writer, System.Boolean forceAll) [0x0000e] in <d9731e675e55453197cf28cd60eed3f2>:0
[2025-07-27 17:44:24.394 +00:00] [STDOUT] at Mirror.NetworkBehaviour.OnSerialize (Mirror.NetworkWriter writer, System.Boolean initialState) [0x00008] in <ae599454e38d4008a675271403de09db>:0
[2025-07-27 17:44:24.394 +00:00] [STDOUT] at Mirror.NetworkBehaviour.Serialize (Mirror.NetworkWriter writer, System.Boolean initialState) [0x00015] in <ae599454e38d4008a675271403de09db>:0
[2025-07-27 17:44:24.396 +00:00] [STDOUT] NullReferenceException: Object reference not set to an instance of an object
[2025-07-27 17:44:24.396 +00:00] [STDOUT] at PlayerRoles.Ragdolls.BasicRagdoll.Start () [0x00021] in <d9731e675e55453197cf28cd60eed3f2>:0
[2025-07-27 17:44:24.396 +00:00] [STDOUT] at PlayerRoles.Ragdolls.AutoHumanRagdoll.Start () [0x00000] in <d9731e675e55453197cf28cd60eed3f2>:0
Thats easier in my opinion
you didn't give it a damage handler
Hm, definitely a whole lot easier, but would they see it for like 1-2 frames?
Messages are sent the same frame
no
And if you see it for 1-2
at 60 fps
Who cares
im doing it in the PlayerEvents.SpawnedRagdoll
didnt work
wdym
Logger prints the correct players but the ragdoll stays for target
try with a frame delay
^
hasn't this event had wrong argument passed as Ragdoll?
yeah, insted of basicRagdoll there is ragdollRole.Ragdoll
Yea fixed in the next update
push-ups
15.0 or a sooner bugfix patch? .w.
also in the meantime ill try spawning in ragdolls again, for learning purposes i guess
How would i make a new "valid" DamageHandler? 

Or maybe UniversalDamageHandler?
There are so many Handlers, idk what RagdollData expects x.x
A fix for this
namespace Xname.API.Patches.Fixes;
using LabApi.Events.Arguments.PlayerEvents;
using PlayerRoles.Ragdolls;
[HarmonyPatch(typeof(RagdollManager), nameof(RagdollManager.ServerSpawnRagdoll))]
internal static class OnRagdollSpawnedPatch
{
[HarmonyTranspiler]
private static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions)
{
var matcher = new CodeMatcher(instructions)
.MatchStartForward(
CodeMatch.LoadsArgument(),
CodeMatch.LoadsLocal(),
CodeMatch.Calls(AccessTools.PropertyGetter(typeof(IRagdollRole), nameof(IRagdollRole.Ragdoll))),
CodeMatch.LoadsArgument(),
new CodeMatch(OpCodes.Newobj, AccessTools.GetDeclaredConstructors(typeof(PlayerSpawnedRagdollEventArgs))[0])
)
.Advance(1)
.RemoveInstructions(2)
.Insert(new CodeInstruction(OpCodes.Ldloc_1));
return matcher.InstructionEnumeration();
}
}
Works!!!!! A ragdoll only spawns for my list people!!!!!!
And instantly jumping onto another topic
Why does RA cuffing not call Cuffing, nor Cuffed?
I understand no Cuffing to always allow admins to cuff people i guess and not have any script interfere, but Cuffed shouldnt be of issue? :o
Might want to report that as a bug
IS there some documentation about spawning objects? Like I want spawn Cube that IS that long and...?
Primitive.Spawn or smth
PrimitiveObjectToy.Create
Thank you just got in to Labapi
Is there a way to get the item type from an ItemPickupBase?
Or like, check if its ammo?
Would this work?
i believe thats fine, but checking category would probably be better than a cast
Category? What is that :o
ItemCategory
I dont find that anywhere
I found pickupBase.NetworkInfo.ItemId but now im interested in whatever "Category" is :o
just the games way of categorizing
Its used for item limits
How do i send a RA message to someone again?
I couldve sworn it was via
player.ReferenceHub.queryProcessor.SendToClient("Message", true, true, ""); but it doesnt work (anymore?)
Yeah it did work a while ago, i learnt it from Eve
Append "command#" to the beginning of the message
The text before the hash will be wrapped with brackets on the client
@celest thorn @unique crane
https://maro.tiananmensquare.asia/📸/fufnz071.png
Gg
fr too many people in this world
The hope dies last, but I might be the first
You have been granted Server Host role.
thanks
i like it here
so triggering
plugin dev chat is my home
if something exist why NOT USE IT
zero is angy
my home is my home
the console told me to use any channel
all these server hosts, smh
it just gets me mad
i decided to use my favorite channel :3
seeing my server on the list is something special
Bc you are a something special too
doesn't this look cleaner?
Than?
Empty room so nice yes yes (why)
Is there a way to get a players ragdoll when it dies?
RagdollSpawned event
SpawnMessage 
Keep in mind that all Ragdolls have Serial 0 (if it is not fixed already)
So sad
The guy who says there are so many people
When
you are literally twittering
i said "so many" and not "too many"
stating that i said something i never said
A: "i like waffles"
B: "oh so you hate pancakes? go after this guy!"
zero cant read
it wasn't my intention
fuck you eve
i changed it
bruh


Lmao
Why is that when I try to destroy a ragdoll it wont disappear
Send msg to client
ragdoll.Destroy?
Take a look at how the command/RA do it
Question: is it possible to spawn lockers?
yes
get the prefab
create a new one
get the StructurePositionSync component and set the details
just call start
oh
ideally use the wrapper if you want to change pos/rot
the issue is that the transform position is only set in start, which is too late
so if you call Instantiate with the position, you still need to set it (grrr)
doesnt the wrapper handle that?
it does not work after spawning 
it does
but there's no create locker or such method
or am i blind?
i think that remark was for stuff emeded into the map rooms itself not ones spawned by plugin devs
oh right
can you tell me what is the default font size of the text toy :3
i think its between 0 and 128
Okay I'll look into it
18 maybe?
uh
then the canvas must be scaled down compared to default unity
maybe it's cuz i'm on 2022?
yeah there could be other things going on
not sure if this helps, first is the Canvas object, Second is the Text (TMP) one
oh it's
oh
okay
0.05x
that explains the 36x size difference
i wonder why the canvas is 100x100 but the text is 200x50
what
I don't use unity editor or anything

how to end yourself step numero 1
I have a method
there we go
Which is essentially the same thing
how about you export the SL assets
That is so much work
and place a cube yourself in unity
no?
AssetRipper exists
waiting for unity to load is a lot of work
It's so much work cause I don't use unity
I've never used unity
I have no idea how to use unity
I'd have to learn
And that's a lot of work
yeah, fair
how about you make a gun that you shoot and it outputs the room offset upon impact
That's what I did :)

It logs room, room rotation, and player position
After doing it enough I realized I can have it automatically output relative positions
So it does the calculation behind the scenes and spits out relative position
So it's as simple as
Find spot
Shoot
Put coords in plugin
Rotate at runtime
nodders
So peak
TransformPoint and InverseTransformPoint 💞💞
Literally
I won't lie just learned about transform point
I made my own function to rotate a point given the quaternion lmao
Time to update my codebase
hollow emoji
Hello. Is it possible to increase the visibility range of players when using FogControl.Intensity 1? For example, with a patch. Removing the OutOfRange flag does not help. Does it depend on FogController?
you can patch FpcVisibilityController.NormalMaxRangeSqr (or surface) if you want it to affect all players
Being possible? NormalMaxRangeSqr - protected virtual modifiier
Or in this ?
you should patch the property
how?
https://harmony.pardeike.net/articles/annotations.html
MethodType.Getter
ok
So question
How did you learn this voodoo wizardry?
I want to learn when I should be using GetComponent vs GetComponentInParent vs whatever else
Like would I do the same thing for a ReferenceHub? I want to know how I can learn to find the answer
Teach a man to fish-type shit
kek
basically
if you have a component on the root, use getcomponent for another component on the same object
GetComponentInParent for objects higher in the hierarchy
GetComponent(s)InChildren for child objects
GetComponent(s)InChildren checks for the current object too, not sure if Parent does that, too
Interesting






