#plugins-dev-chat
1 messages ยท Page 14 of 1
figure it out?
StaticUnityMethods.OnUpdate += Update;
if you error in the Update method
it will break everything
๐
Isnt it goes tru & search for netId? Player.GameObject should have it
The GetUserGroup you posted should work
ok cool
true, but im refering more to the null CC
Call Timing.CallDelay(0.1) 
I've had that before
The whole server went to shit
yeah
also only way i fixed it was reverting a feature i recently made
it had nothing todo with the CC, but that fixed it
yea but did it use StaticUnityMethods.OnUpdate event
it was the exact same error
Eve breaking the game
should work fine even when static
how u parenting?
cus the .Create and the transform being
player.GameObject.transform isnt working for me
What create ๐ญ
Oh yall are talking about LabApi
when you provide a parent, the pos is you provide is local to the parent, so for you just dont provide it
yes ?
Yeah
Exactly
oh.
the admintoy.Create functions should work fine
Does the wrapper set the position sync var or the transform?
transform
Transform only not the NetPos
actually its Object.Instantiate iirc
Omfg
I get it aaaa

So if has a parent use position to V3 zero
pretty much
Gone
Done for
Destroyed
Should stay where the object was right?
Oh I thought you meant destroy
I destroy my brain
Setting it to null keeps world-space position
its local pos is converted to world pos, so it would move to 0, 0, 0 world space if its local pos was 0, 0, 0. this only applies if its static, if its non static the server will resync and you can do what ever
You need to re-sync the transform props if the object is static I think
internally it uses the local-pos retaining method
Ah nice, mine isnt static so nice
I was like (where the hell my light moved? When I parented to myself
SetParent(transform, false)?
since it retains the local transform no need to resync(although its not very usefull)
What
yeah
Oh
the client and server always remain in sync
Then it makes sense
Except when it doesn't 
But if you set the parent with the equals sign then the world position stays
So then you do need to resend it
(If the object is static)
yeah
Also I think would be good to jave UnSpawn or Despawn as an admin toy. Basically "hiding" it so doesnt need to create new 
if only using the wrapper it should handle it correctly
ObjectHideMessage?
I just use NS.UnSpawn or smth
Yeah
The illusion of choice
Fix unity
i cant help but think thats its all your fault
Can you get depressed from SL if you're already depressed from SL? (Speaking on my behalf)
thats my own code
Why
grenade doesnt spawn tho
Labapi has code for that
i ported early
Ok
this was one of those that got ported really early
Switch to labapi one then
TimedGrenadePickup?
would anyone have an idea why rpcchangeparent is not working?
where
recommend you just set the parent directly instead of calling the RPC
We should make that rpc private
yeah i fucked up
Happens
was going to use it in the wrapper then afterwards realized it was useless
Is anyone alive right now?
im ded
Static method
Like SpawnActive
I would love some help in #1366346891306205194 because I have stuff that I need to do but cannot do until the thing that I need fixed is fixed O.o
is bro looking at a different version
nvm im blind
Oh
cuz the method is above the constructor
๐
so I'm looking at LabApi.Respawning.RespawnTokensManager, which has 2 fields DefaultTokensCount which I presume is the amount of respawns for each team, and then it also has InitialRespawns; what's this do?
That sets how many respawn waves the team has by default
Both NTF and CI have 1 allowing each to respawn at least one even if they don't gather enough influence to earn extra waves
that's public const int DefaultTokensCount = 1; right? But what does private const int InitialRespawns = 3; do?
I'm sorry if I don't understand
it's early
I haven
't slept much
don't know who they are but I might f ind them around laters
I'll keep nosing around a little bit

oh would you look at that
David you wouldn't happen to know more about these fields? I'm trying to look into altering respawn tokens for teams
Where are they?
Like a class
I'm on phone..
its called from these only
its for distributed pickups
ah then its not
what is the event for other ones then 
i added a pickup spawned one
Oh one second
Respawning.RespawnTokenManager
sorry I was grabbing lunch a sec horrible timing
!rep @worthy rune
You have just given @worthy rune a reputation point!
about halfway down the class.
why this isn't at the top is a little interesting to me but it is what it is
You have just given @hearty shard a reputation point!
it was u
booooo
AHP bar is dynamic
So the max value you get is the max so far
Eg you get 20AHP from blue candy
It's bar from 0 to 20

If all AHP is consumed, it will back to 75
also ๐ค its actually 30 for blue
even I set a value over that, like 200, ahp is actually still active, but it only shows 75

max value
for example, I set a 100 max ahp for all class-d on ChangedRole
if I don't give AHP at the same time, it will only show 75 as the maximum
In fact it is indeed capable of reaching 100, but it will only show up to 75
im sure this question has been asked multiple times, is there a guide on making custom keycards? any examples?
Shouldn't it be documented in the Git repo?
or set:
NametagDetail._customNametag
CustomItemNameDetail._customText
CustomSerialNumberDetail._customVal
CustomWearDetail._customWearLevel
CustomTintDetail._customColor
CustomPermsDetail._customColor
CustomPermsDetail._customLevels
keycard.Base.OnAdded(null);
no exiled pr open yet
oh
that is a keycard
Exiled.API.Features.Items.Keycard
well with the thing you sent, it requires keycard, and to make a keycard it requires KeycardItem what the hell
huh
ill figure it out
what's the weight of a keycard?
well
i want the default weight
i know what weight is
i just want the default weight smh
you could do 1kg, no ones going to notice
found what
how much is it
0.175
0.01 for me
Weight is 0.01 so
where did you get that value?
ok so 0.01 it is then
labApi's one
does labapi even have a custom keycard thing yet or no?
prob not
yeah WeightToTime is a duration in seconds
even missing permission get
yeah its done internally
ill wait then because the exiled solution seems like it was crafted in 2s
ah im dumb af
want to set cusom thing on the regular kc but it doesnt sync, and I just checked custom one has SyncedDetail regular does only have DetailBase
i forgor
๐ญ
discordlab
oke
it has logging modules
yea yea
forgot the name
It is done
gimme
thanks
exiled plugin tho so ye
its alright
please beg ced to merge we need this smh
ye

But like I can ask if I can share the code
Cause the base-game MR is merged
And is in public beta
So you can theoretically write it yourself
it was?
oof
"Added direct set arguments method instead of parsing from a string"
i guess spam ping cedric next time it happens 
Check the base game command
thats what I said
you sent a code snippet ๐ญ
okie
thats what it is guhh
ยฏ_(ใ)_/ยฏ
rah
btw
Inventory Item name doesnt seem to work
it should have a name while getting a kc but doesnt show
ckeycard 2KeycardCustomTaskForce TESTINV 3 3 3 default white holder 666 0
And you see the inv there is no name for it
also the icons doesnt show in inv either

Also how do i get the permissions from the keycard?
is it possible to specify weight of pickup for specific player or need to patch stuff?
I believe you just set the weight on the PickupSyncInfo
It's a struct so you need to put it into a local variable before modifying it, or use with
pickup.NetworkInfo = pickup.NetworkInfo with {WeightKg = weight}
labapi's pickup already has Weight there
Bruh
Wait, did you mean you want to customize it only for select players? That's not that easy
yea, but I got already its not easy ๐
Firstly you'd need to send a fake sync var, secondly you have to patch the one if the item classes to provide a different weight for the search completor if that specific player is trying to pick up the item
greetings nerds
is there a LabAPI nugget?
no noones made a labapi shaped nugget yet
not yet, you need to use the dlls in the SCPSL_Data/Managed folder
Thank you
np
i still cant find out why 3114 disguising will consider the ragdoll as None
i tried removing my code that deletes ragdolls
basegame only sets it as None when ragdoll is null
sooo
wtf is deleting the ragdoll
do you have some plugin that it may delete those?
ruei, mer & cedmod
and my own
it is my own
i removed EVERYTHING it does
except commands
bruh
wtf is the issue

idfk
is it secretapi?
no
i dont use it
its my own everything
i think ik what it is now
we'll see in a ssec
ok wtf
brooo
this is 1/2 issues that cause it
looks like at least
please note that 3114 is part of BlacklistedRoles
@ashen hornet after releasing mer on 14.1 there gonna be no lego building on spawning schematics?
NamesValue.Add
i think you update the collection twice with the same key
and that would make skeleton invisible when disguised ?
um
also
no..?
well thats the issue im having
so if you comment out these two methods, 3114 works?
with 3114 being removed from BlacklistedRoles & from the Translates
no if i remove him from my dictionary / lists
/// <summary>
/// Gets or sets a list of roles that are not allowed to Swap.
/// </summary>
public static List<RoleTypeId> BlacklistedRoles { get; set; } = new()
{
// RoleTypeId.Scp3114,
RoleTypeId.Scp0492,
};
private static Dictionary<string, RoleTypeId> Translates { get; } = new()
{
{ "173", RoleTypeId.Scp173 },
{ "peanut", RoleTypeId.Scp173 },
{ "939", RoleTypeId.Scp939 },
{ "079", RoleTypeId.Scp079 },
{ "79", RoleTypeId.Scp079 },
{ "computer", RoleTypeId.Scp079 },
{ "106", RoleTypeId.Scp106 },
{ "larry", RoleTypeId.Scp106 },
{ "096", RoleTypeId.Scp096 },
{ "96", RoleTypeId.Scp096 },
{ "shyguy", RoleTypeId.Scp096 },
{ "049", RoleTypeId.Scp049 },
{ "49", RoleTypeId.Scp049 },
{ "doctor", RoleTypeId.Scp049 },
{ "0492", RoleTypeId.Scp0492 },
{ "492", RoleTypeId.Scp0492 },
{ "zombie", RoleTypeId.Scp0492 },
/*{ "3114", RoleTypeId.Scp3114 },
{ "skel", RoleTypeId.Scp3114 },
{ "skele", RoleTypeId.Scp3114 },
{ "skelly", RoleTypeId.Scp3114 },
{ "skeleton", RoleTypeId.Scp3114 },
{ "sans", RoleTypeId.Scp3114 },*/
};
this
I just opened chat. What r u trying 2 do?
fix skeleton
hes broken for me
but why would blacklisting 3114 cause the issues
why would RoleTypeId.Scp3114 cause issue
uhhhh
Uh..
thats also not the only thing causing the issue i just havent found out what the 2nd thing is yet
but ive removed the other issue for now
so its only this code that breaks it
I cant write method name that u r using on role
ONLY this
What it returns?
which one
roleText
ToString()
thats on ALL objects
but it should return Scp3114
for 3114
but it wouldnt even make it that far
no ill just say it
When this is used
it will make it so when 3114 at any point in the game disguises himself
he will permanently turn invisible
Oh
also for some reason a disguised WORKING 3114 is small for me
Wait. But code doesnt touching that part of code
R u sure problem is here?
Eh...
and then breaks again if i add
how do you turn them invisible
U r not using that list anywhere else?
i TryGet it at some point but thats when a command is called
I have some ideas that u can test
First - try hashset
and how would that fix it
Second - try add it to another list which you are not using in swap command
yes but the swap command is never used
Different approach in swap method
at least not in my testing
in normal gameplay sure itd be used but hasnt been used once in testing
I just wanna test do u need have 3114 spefically in that list or it can be anywhere else
it has to be 3114
part of the list
or part of the dictionary
either one will do the issue
real player
Ehh..
@unique crane can u help
i dont get this issue
TLDR calling this code with BlacklistedRoles or Translates having Scp3114 in it it will cause skeleton to be invisible
ill double check but i havent seen one
I guess that just beta bug cause like, i was testing it today and he was acting very strange
eve crashout
[2025-04-28 20:08:52.828 +02:00] [STDOUT] ArgumentNullException: Value cannot be null.
[2025-04-28 20:08:52.828 +02:00] [STDOUT] Parameter name: key
[2025-04-28 20:08:52.828 +02:00] [STDOUT] at System.Collections.Generic.Dictionary2[TKey,TValue].FindEntry (TKey key) [0x00008] in <069d7b80a3914a08b6825aa362b07f5e>:0 [2025-04-28 20:08:52.828 +02:00] [STDOUT] at System.Collections.Generic.Dictionary2[TKey,TValue].TryGetValue (TKey key, TValue& value) [0x00000] in <069d7b80a3914a08b6825aa362b07f5e>:0
[2025-04-28 20:08:52.828 +02:00] [STDOUT] at EveLabs.API.Features.Settings.CustomSetting.TryGet[T] (LabApi.Features.Wrappers.Player player, T& setting) [0x0000c] in <3a01e9dab24f4e519fb013d46dfb625a>:0
[2025-04-28 20:08:52.828 +02:00] [STDOUT] at EveLabs.CustomModules.ScpInfoModule.ScpInfoModule.GetContent (RueI.Displays.DisplayCore core) [0x0000b] in <3a01e9dab24f4e519fb013d46dfb625a>:0
[2025-04-28 20:08:52.828 +02:00] [STDOUT] at RueI.Elements.DynamicElement.GetParsedData (RueI.Displays.DisplayCore core) [0x0000c] in <b260d1f8d9a44d91b7a426d96dbfff25>:0
thats unrelated though
wait wtf is that error
ok whatever
R u sure?
value can't be null mate
Cause yeah
what?
oh
Yea..
no, it should spawn instantly
oh thats a null player
which is ruei issue
ok whatever
but still
Its look like some lego guys just building it
michal do you know whats happening
here
no idea
i rely on it
its a hint framework
only does hints
also that error was one time
ruei is peak
Never used, sorry i guess
basegame has a null check on ragdoll
so ragdoll is null because i use RoleTypeId.Scp3114
idfk
skill issue
put the fries in the bag
there would ba log if it was an error
idfk
this has to be a weird ass nw issue
surely
Does it happen without the plugins?
No
its with plugin
I can fix it by commenting out what i showed
or having it not called
But
remove it and pretend it never existed
HSM better 
a literaly if .Contains check on the roletypeid causes it
Peak
it looks like
Mhm
Alright so I've come to edit the default respawn tokens, do I need to do this in Enable (so only on plugin load) or every round
i also know somewhere else has the issue
2+ places cause this issue
i can disable them all mostly
i havent found what the other actual cause is tbh
I just trying to remember
If checking 3114 role was working properly before
We just erased all his code mentions after 14.0 so i cant check it rn..
nw

NamesValue also making 3114 invinsible?
this
& this
again
adding to blacklisted will cause the issue
removing will fix
this fixes
this breaks
why is my pickups getting deleted!!
wuh uh oh
there goes my entire plan as a first draft
I'm sobbing and crying right now
i love this
its just stuck there
permanent downloads
oh nvm it disappeared when i closed SL
foreach in all and set the RespawnTokens to your val
the wuh?
also that's an on round start, right?
I did set up the event handler thingy
ye
but you'd want to iterate over all teams and set the respawns then
where would I get those teams from? any idea or should I just gander around dnSpy a lil more
also who the hell decided to put local variables as 'value' 'value2' 'value3' shit shit difficult to read
WaveManager.Waves
ah alright thanks
I eventually would like to add a lil bit of flexible config to it or I'll go mad, but for now I'll see if that works well enough
im gonna crash out
I love making the compiler scream
send the corresponding error code back to the packet sender if possible
okay sorry that was horrible I'll shut up
double shift -> override methods
(not suggesting the shortcut cuz i use a very weird keymap)
it should tell you anyways
is it not screaming because CustomEventsHandler is missing OnRoundStarted and can thus not override it?
you can also just start typing override and Rider should suggest what you can override
it is
OnServerRoundStarted
oh that's it
JB AI?
damn
uh
I turned all that A1 garbage off
smth like this would give them 1 point
I thought it'd be possible to set their token value directly, hold on
I wrote down a class method/attribute or two
wouldn't that also add a milestone for mini waves?
ye? i guess
Respawning.ChaosSpawnWave / NtfSpawnWave have public int InitialRespawnTokens { get; set; } = 1; and public int RespawnTokens { get; set; } which should be settable
one is default the other is like.. current in round I guess
I was looking to alter those separately
have one config int for Foundation one for Chaos
because in a small lobby it's really tough to achieve a second token through milestones
when
oh yeah fair enough, do those get their own respawn tokens depending on the most respawned wave?
no they don
t
I should learn to look and read before talking
ah ye i didnt seen that
I don't really get what's going on here I'm not going to lie
that's the LabAPI wrapper for the RespawnWave class
or WaveBase or whatever
Using a method like this, how would you get the config ints in here though
create a static singleton property for your plugin and set it in Enable()
ye i guess
now you have access to the plugin instance and therefore the config
'static singleton' is not a term I've heard before
sorry
just like a public static CustomConfig Config onto Plugin or something
smth like this
ah like that
ye
do you even need the Config.IsEnabled check? For me it auto-generated a properties file which has that bool in it; or did I just do an oopsie
also yes this has been asked before but why is the config property nullable
it's either loaded or re-instantiated
the only scenario where it would be null is if the default constructor throws
yeah it's frustrating because I have to enjoy either the orange highlight of DOOM or put a ! too many in my code and.. that's not a big deal it's just annoying
it's indeed not necessary now
they probably kept it when porting from nwapi(?)
orange highlight of DOOM is real
I use it so i can disable the plugin
properties always present?
ye
Someone did MR for that already
and also gray higlight of DOOM when VS inserts its useless dumb default usings like System.Whatever.Why, and the person who commits the file doesn't remove them
<GlobalUsings>true</GlobalUsings> but why do you give lines of redundant code bruh
*gulp* slightly more orange than I want it to be
what theme is this
i have it underlined, not highlighted
https://plugins.jetbrains.com/plugin/14059-darcula-pitch-black this theme to be exact
๐
I mean mood
musou black or what is it called
prompt again tomorrow
Why
maybe the vibes will be better
david make plugins written in assembly only
bruh why is the fucking PLUGIN nullable
or at least possibly null
nvm the issue was config I'm stupid
config is
in case it doesnt load properly i believ
I hope so because I swear I'm going to scream
what if the bug only appears when Random.value < 0.1
then doesn't it create a new one from scratch?
no cuz i can do it consistently
i can fix it by commenting 1 line
like doesn't the load error handle itself or something?
pain and suffering
honestly
no hate to nw personally but these are not good variable names, and I've seen worse around it's so bloody confusing. Please I beg ๐ฅบ just type out in one word what it is. Like logiPlayers is all that num is, it makes all our lives so much easier
that's just the decompiler
๐
๐ค
Man
๐ฃ๏ธ๐ฃ๏ธ๐ฃ๏ธ๐ฃ๏ธ
stealing this
please feel free to shame it's deserved
extremely fitting
turns out I do not know how a decompiler works ๐ญ god damnit man
local variable names aren't saved in the assembly, they would use up too many precious bytes
if you got your hands on pdb files the decompiler would be able to reconstruct local variable names (and better code overall)
ah yeah I only downloaded it yesterday turns out that I don't know how it works
that's fine, you don't magically know everything right off the bat
Ah well it's all good
making a fool of myself is my talent and my hobby
I'm by far not the sharpest tool in the shed
arguably it would be a bit boring if you had all the knowledge in the world
so in this sense if you like entertainment, you can make it happen 
I mean I've sometimes dabbled on some twitch recording it can get very stupid, but that's not important and please don't follow me I'm not funny.
I want to code now
it compiled
let's see if I crash somethign
if it does
imma crash out
well you can't crash eve cuz she's crashed out
no I can crash out myself no?
i mean yeah
I'm really hoping I can get this to work
I hope you do better soon
kitty
I had a shit day and I somehow managed to make it ballin
in part thanks to my small Blahaj Finn because holy hell is that rat soft and cute
how can world be bad when soft shar exis
bro
im gonna crash out
someone else has to figure this 3114 out for me atp
cuz wtf
I have literally 0 experience with this, tell me the problem
3114 work
add key to dictionary
3114 shit
that sounds incredibly frustrating
she's been at this for hours now
idk if it's as frustrating to see that the entire token thing did fuckall but yk you win some you lose some
I might have not compiled it with the right dll though I'll double check in a second
I wonder how such an interaction can occur
it did something
but.. not exactly what I'd like it to do
I guess I gotta do a round start and set the current value immediately?
there is another issue but
i found a way to disable that
yeah try that
confuse
I wonder if it updates when I force a spawn
but I don't think it will
darn I think the problem is that my plugin runs after the values have been set, and thus I run into a problem there.
because the Event should fire after the actual thing has finished, no?
then that would imply that the current tokens for each team have already been set, and the initial tokens are changed with wave.RespawnTokens
public override void OnServerRoundStarted()
{
foreach (SpawnableWaveBase item in WaveManager.Waves)
{
var wave = RespawnWaves.Get(item);
if (wave is null) continue;
if (wave is MiniRespawnWave) continue;
wave.RespawnTokens = MyFirstPlugin.Instance.Config.DefaultRespawnTokens;
}
}
``` meaning this would run too late or alters the wrong data.
Timing.CallDelayed()
So I delay the execution of the override? I don't directly see how that would work though? I can't enter a negative number to make it run before right?
this is basically
for SL plugins
you could subscribe to WaitingForPlayers if you wanna do that earlier
Also where would I find that in the files
Timing.CallDelayed(5f, () =>
{
.. stuff here
});
How would I do that?
can't find timing in the files I might be stupid lemme take a look
ah that might be an option yeah
its ACS-firstpass
and in MEC namespace
ah I don't have that referenced
I'll add that in a moment first I want to see if doing it at waiting for player will work.
because what I assume to be the problem is that I set the initial Respawn Tokens too late
which means a time offset of a little bit won't really do much
because clearly the code executed correctly.
that 10 token start is not usually there
buh the waiting for players did not fix it.
There has to be a different value that I can edit lemme look this up
ffs
try adding WaveUpdateMessage . ServerSendUpdate(spawnWave, UpdateMessageFlags . Tokens);
alright can do
:/
let me try the timout
maybe it works with an on-server-start
does anyone know where the generator KeycardPermissions may be got?
generator.PermissionsPolicy.RequiredPermissions
no static method?
yeah it's specific to each instance
what if you modify it yknow
fair
I think I might have found another option in the code of RespawnTokensManager
I'm going to try it and if it works I'll sharei t
you could do stuff like this,
if (wave.Base as ILimitedWave limitedWave)
limitedWave.RespawnTokens = 666;
hmm
trying this solution first then doing that one if it doesn't work
though I don't think I did much with this at all.
oh!
something has happened
I don't know waht but something has happened.
I did a lil oopsie but
sadly currently mini waves are included
which I've got to exclude
but technically it works now I think?
yup it does.
I'm uncertain of the AvailableSpawnsLeft, I need to exclude Mini Waves
however
I just waited out a spawn timer
and it spawned me in as a ntf backup
which promptly set it's own tokens to 0.
this looks fine, however it's still not what I'd like it to be.
ah regular chaos spawned and only subtracted one token
which is good
alright I'm going to figure out how to get this worked out a little nicer
Does anyone know if a Miniwave subtracts from the total respawns left?
or does it not care
it doesnt care
alright awesome
it's awesome. It works.
Now I just gotta split the two numbers into separate config things
but this is working now it's great
alright I'm going to gather some thoughts on what I want to do with this knowledge now as I'd like to work it out into some fully fledged configurable plugin but for that I'll need some concept to work off of
Is anyone willing to test smth for me
ban her
I just need you to copy paste a file, call a method and go ingame
guys she's trying to hack you don't give in
im gonna punch you
ur mum
if you're down to cope with my incredible stupidity why not
It's not as if I'm doing much better
Dms then
also, how would I go about taking in some amount of numbers 0 - whatever
in my config
just like a list input with default value?
I've sent a friend request due to privacy settings
what
List<int> Numbers = new()
{
1,
2
}
In ur config
With get set
radical
I want to get a list of numbers for config reasons, minimum 0 numbers (so empty is default)
// first is ntf other is chaos
public List<int> RespawnTickets { get; set; } =
[
69,
420
]
Or dictionary
cant wait for this menu to get updated
Also
What happens if I add another spawnwave
Does it show inside that?
Faction as scp for example
it kinda stinks yeah but for not it works
I wanted to be able to configure the tickets per token per faction so I'd split it, but for that I need to take ints as input
Well then probably a dictionary would be good
first, a short break because I'm cooking up concepts I want to try out
considering the milestones are set like this, I reckon I'd just override it, no?
Dictionary<Faction, int> Tickets {get;set; } = new()
{
{ Faction.AgainstFacility, 60}
};
each input int would be the tokens for the next wave, if left empty it would default
I mean you already set the current wave as that number
Slejm can i kill u
Hmm? I'm not trying to modify the spawn waves left anymore but the ticket requirements for getting more.
I might be confusing myself here
I snacked a whole cucumber earlier and I think that like scrambled my brain all over the place
Oh uh
Well
That probably needs harmony patching
Or something that inserts into that
But be advised dont everything sync to server
๐
Hey you're so far the techiest support of persons I've had don't just ditch me like that >:(
(I really appreciate the help btw)
Im not knowing much about it I just play around with it
I spent 2 day for making a partial movement to labapi
Darn.. I had hoped I'd be able to just replace the returned list from a hardcoded one with a different one
And I havent finished it
rahhh
Hey fucking around and finding out seems to be working out for ya
That's what harmony with do, you can try I guess
I'm using whatever I'm picking up to slowly learn it too
I'm not going to try to make another remote controlled space hub launch bay control center again like I did with Space Engineers that was frustrating as hell
I'll take a look at it in a moment
You had no idea how much I swearing and screaming why not works
Until I figure out
I'm very good at stoically sitting in my chair and then not catching sleep from frustration afterwards
Same
I'm so used to environments where the debug button works that this is indeed quite frustrating
I never debug
I live debug
I change small thing and checking if still works
And checking for other ways too
I love using the debug tool to check the states of my local variables and parameters and whatnot to know what's going on
Catch 
Yeah I don't like that personally, breakpoints my beloved
Kills u
i thought ur name was dr dipshit

Maybe u right
Im never wrong!
But it can be ur mind misinformation
Dead
Oh noes
just noticed this is private static
coping
Publicizer: haiiiii
You still can patch it
just use reflection 
what's your suggestion?
So many ways
uh what
๐
grr
Desync is funny
its just a method
no can do on the reflection
There is no backing field
Like deleting H.E grenade sound 
patch to me means putting a bandaid on a product issue through a plugin, but I reckon you meant make a pr for the repo with a change then?
No
Patch means harmony patch
Which means modify the original code
keep in mind I'm no better than someone who's never done like any work with api's before, because I have practically 0 experience under my belt and most terms fly over my head like a motherfucker
oh boy I was so clueless
I still am but slightly less
ruh roh
alright time to break things
U can to patch really many things
You can patch everything
But sometimes reflection is the answer
And sometimes
Publicizing
even my statistics grade?
And something
I'd love to patch my statistics grade
Just let it go
fuck I hated that course
Do it
I'm going to read through this page real quick if I can't figure it out I'll start begging for help like a homeless man on a street corner again
so it wouldn't display in the doohickey then
Idk
Well the max value wont sync
So it max be like 75/50
While the server max is like 80
that's something I'm fine with
ok
it's about getting this to work first and foremost
if need be I'll figure out if I can create a little piece of text right below the bar to display the actual max, if that's not a huge deal. And if it would be a huge deal, then... we cope.
sometimes a visually flawed but functional solution is the best solution
You absolutely can do that with Hints
awesome, I'll look into it
Well be back at 2am
Shush
I have to be awake early again
do not tempt me
I might just go play something for a bit and then go to bed after for a bit
When working with Harmony, I will of course need to supply the dependency to the Server executable as well; I just throw this in the appropriate LabAPI folder and be done with it no matter the filepath inside of my csproj or do I need to watch out for anything
Dependencies folder
alright cool
Ye
And make sure you either using 2.2.2 or latest
On Harmony
Many plugins using 2.2 for it's thing
guys how do you format labapi-beta's permissions.yml i cant find it on docs ๐คฆโโ๏ธ
I downloaded latest
downloaded the dll off the ghub repo
should I use nuget?
I just thought 'oh boy annother dll to reference let's go'







