#plugins-dev-chat

1 messages ยท Page 14 of 1

restive turret
#

I mean if default isnt

icy knoll
#

figure it out?

hearty shard
#

StaticUnityMethods.OnUpdate += Update;

#

if you error in the Update method

#

it will break everything

#

๐Ÿ’€

restive turret
#

Isnt it goes tru & search for netId? Player.GameObject should have it

upper vapor
icy knoll
upper vapor
#

Don't

worthy rune
restive turret
#

Call Timing.CallDelay(0.1) MTFBigBrain

hearty shard
#

rahhhh

#

kills you

upper vapor
#

I've had that before
The whole server went to shit

worthy rune
#

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

hearty shard
#

yea but did it use StaticUnityMethods.OnUpdate event

worthy rune
#

it was the exact same error

restive turret
#

Eve breaking the game

hearty shard
#

breaking YOU

#

now official servers pls come alive

#

i need you

worthy rune
#

should work fine even when static

restive turret
#

how u parenting?
cus the .Create and the transform being
player.GameObject.transform isnt working for me

hearty shard
#

this doesnt work

worthy rune
#

ill have a look now

#

ohh i see

upper vapor
#

Oh yall are talking about LabApi

worthy rune
#

when you provide a parent, the pos is you provide is local to the parent, so for you just dont provide it

hearty shard
#

yes ?

worthy rune
#

the admintoy.Create functions should work fine

upper vapor
#

Does the wrapper set the position sync var or the transform?

worthy rune
#

transform

restive turret
#

Transform only not the NetPos

worthy rune
#

actually its Object.Instantiate iirc

restive turret
#

I get it aaaa

#

So if has a parent use position to V3 zero

worthy rune
#

pretty much

restive turret
#

If I remove a parent

#

Where would the object go?

upper vapor
restive turret
#

Should stay where the object was right?

upper vapor
#

Oh I thought you meant destroy

restive turret
#

I destroy my brain

upper vapor
worthy rune
#

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

upper vapor
#

You need to re-sync the transform props if the object is static I think

worthy rune
#

internally it uses the local-pos retaining method

restive turret
#

Ah nice, mine isnt static so nice

#

I was like (where the hell my light moved? When I parented to myself

upper vapor
worthy rune
worthy rune
upper vapor
#

Oh

worthy rune
upper vapor
#

Then it makes sense

restive turret
upper vapor
#

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)

worthy rune
#

yeah

restive turret
#

Also I think would be good to jave UnSpawn or Despawn as an admin toy. Basically "hiding" it so doesnt need to create new Fear

worthy rune
#

if only using the wrapper it should handle it correctly

restive turret
#

I just use NS.UnSpawn or smth

hearty shard
#

omg my hints work

#

i dont know why

#

it just fixed itself

upper vapor
hearty shard
#

also riptide pls fix the crashes

#

even tho its probably unity issue

worthy rune
upper vapor
#

Yeah

#

Great

upper vapor
hearty shard
#

me when i cant restart the server without my game crashing

worthy rune
hearty shard
#

๐Ÿ’”

#

this game gives me depression

upper vapor
restive turret
unique crane
#

Bruh

#

I tested these...

#

Unless you made that yourself

hearty shard
#

thats my own code

unique crane
#

Why

hearty shard
#

grenade doesnt spawn tho

unique crane
#

Labapi has code for that

hearty shard
#

i ported early

unique crane
#

Ok

hearty shard
#

this was one of those that got ported really early

unique crane
#

Switch to labapi one then

hearty shard
unique crane
#

Yep

#

There is static method for spawning active ones

crimson dune
#

would anyone have an idea why rpcchangeparent is not working?

hearty shard
worthy rune
unique crane
#

We should make that rpc private

worthy rune
#

yeah i fucked up

unique crane
#

Happens

worthy rune
#

was going to use it in the wrapper then afterwards realized it was useless

covert flame
#

Is anyone alive right now?

restive turret
#

im ded

unique crane
restive turret
unique crane
#

Like SpawnActive

covert flame
#

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

hearty shard
#

cuz its not in those

unique crane
#

TimedGrenadeProjectile

#

SpawnActive

hearty shard
#

is bro looking at a different version

#

nvm im blind

#

Oh

#

cuz the method is above the constructor

#

๐Ÿ’€

hearty shard
#

yeah i got it

#

you just placed it above a constructor

#

above methods

#

๐Ÿ˜ญ

white matrix
#

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?

upper vapor
white matrix
#

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

upper vapor
#

Uh

#

Tbh I don't really know that system

#

Better at david or riptide lol

white matrix
#

don't know who they are but I might f ind them around laters

#

I'll keep nosing around a little bit

unique crane
white matrix
#

oh would you look at that

white matrix
unique crane
#

Like a class

#

I'm on phone..

hearty shard
#

@unique crane is ItemSpawned only called on default basegame pickups ?

restive turret
#

call yours and see

#

prop not

hearty shard
#

its called from these only

worthy rune
#

its for distributed pickups

restive turret
#

ah then its not

hearty shard
#

what is the event for other ones then guh

worthy rune
#

i added a pickup spawned one

hearty shard
#

ah PickupCreated

#

now i just gotta figure out what causes the desync

white matrix
#

Respawning.RespawnTokenManager

#

sorry I was grabbing lunch a sec horrible timing

hearty shard
#

!rep @worthy rune

regal lakeBOT
#

You have just given @worthy rune a reputation point!

white matrix
#

why this isn't at the top is a little interesting to me but it is what it is

worthy rune
#

@rep @hearty shard

#

๐Ÿฅ€

#

!rep @hearty shard

regal lakeBOT
#

You have just given @hearty shard a reputation point!

restive turret
hearty shard
#

booooo

carmine prawn
#

what?

unique crane
#

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

carmine prawn
unique crane
#

75 is maximum default value

#

You can change the max while you have some ahp active

carmine prawn
#

If all AHP is consumed, it will back to 75

unique crane
#

Yep

#

Cause it reset

hearty shard
carmine prawn
#

even I set a value over that, like 200, ahp is actually still active, but it only shows 75

unique crane
#

Bruh

#

Value or max value?

carmine prawn
#

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

icy knoll
#

im sure this question has been asked multiple times, is there a guide on making custom keycards? any examples?

restive turret
#

check exiled how its doing or the ingame code

#

basicly

upper pike
#

Shouldn't it be documented in the Git repo?

restive turret
#

or set:

NametagDetail._customNametag
CustomItemNameDetail._customText
CustomSerialNumberDetail._customVal
CustomWearDetail._customWearLevel
CustomTintDetail._customColor
CustomPermsDetail._customColor
CustomPermsDetail._customLevels

keycard.Base.OnAdded(null);
icy knoll
icy knoll
#

thanks

#

I just dont know how to get this Keycard elem

restive turret
#

10

#

huh create an item

icy knoll
#

oh

restive turret
#

that is a keycard

icy knoll
#

Exiled.API.Features.Items.Keycard

restive turret
#

or get the keycard

#

I guess

#

or same with albapi

icy knoll
# restive turret I guess

well with the thing you sent, it requires keycard, and to make a keycard it requires KeycardItem what the hell

restive turret
#

huh

icy knoll
#

ill figure it out

restive turret
#

oh ye it makes a keycard

#

i mean a template

icy knoll
#

what's the weight of a keycard?

restive turret
#

pickup's weight

#

how much should wait until you picked up

icy knoll
#

well

#

i want the default weight

#

i know what weight is

#

i just want the default weight smh

worthy rune
#

you could do 1kg, no ones going to notice

icy knoll
#

i think they would if it takes fucking 10 seconds to pick up a card

#

found it

restive turret
#

found what

icy knoll
#

the default weight

#

of a card

#

bruh

worthy rune
#

how much is it

icy knoll
#

0.175

restive turret
#

0.01 for me

icy knoll
#

well

#

KeycardPickup.WeightToTime is 0.175

restive turret
#

Weight is 0.01 so

icy knoll
#

where did you get that value?

restive turret
#

pickup.Weight

icy knoll
#

ok so 0.01 it is then

restive turret
#

labApi's one

icy knoll
#

does labapi even have a custom keycard thing yet or no?

restive turret
#

prob not

worthy rune
#

yeah WeightToTime is a duration in seconds

restive turret
#

even missing permission get

worthy rune
#

yeah its done internally

icy knoll
#

ill wait then because the exiled solution seems like it was crafted in 2s

restive turret
#

ah im dumb af

subtle ravine
#

gimme discord logging plugin

#

Lumi

#

what was the name

restive turret
#

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

subtle ravine
#

i forgor

restive turret
#

๐Ÿ˜ญ

icy knoll
subtle ravine
#

oke

icy knoll
#

it has logging modules

subtle ravine
#

yea yea

icy knoll
#

but it's a discord bot

#

not webhooks

subtle ravine
#

forgot the name

unique crane
subtle ravine
#

gimme

unique crane
#

It works, but not merged

#

๐Ÿ˜ญ

subtle ravine
#

thanks

icy knoll
#

exiled plugin tho so ye

subtle ravine
#

its alright

icy knoll
unique crane
#

He said he is quite busy these days

#

Which is completely understandable

icy knoll
#

ye

restive turret
#

i mean u can push into github

hearty shard
unique crane
#

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

worthy rune
unique crane
#

Or wait

#

Yea

#

I did

worthy rune
#

oof

unique crane
#

"Added direct set arguments method instead of parsing from a string"

worthy rune
#

i guess spam ping cedric next time it happens ClassDTroll

restive turret
#

i mean its there

#

it just private

upper vapor
restive turret
#

thats what I said

icy knoll
icy knoll
restive turret
hearty shard
#

why is the keycard properties static

#

_customNametag etc

restive turret
#

ยฏ_(ใƒ„)_/ยฏ

restive turret
hearty shard
restive turret
#

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

fresh zenith
#

Also how do i get the permissions from the keycard?

hearty shard
fresh zenith
#

K

#

Thx

agile oasis
#

is it possible to specify weight of pickup for specific player or need to patch stuff?

upper vapor
restive turret
#

labapi's pickup already has Weight there

upper vapor
upper vapor
agile oasis
upper vapor
lethal cradle
#

greetings nerds

unique crane
#

Do you have any server logs?

astral sorrel
#

is there a LabAPI nugget?

static osprey
upper vapor
astral sorrel
#

Thank you

upper vapor
#

np

hearty shard
#

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

restive turret
#

well

#

remove plugins and readd until you find out

hearty shard
#

i am deleting parts of my code

#

and i still have no clue

restive turret
#

do you have some plugin that it may delete those?

hearty shard
#

ruei, mer & cedmod

#

and my own

#

it is my own

#

i removed EVERYTHING it does

#

except commands

#

bruh

#

wtf is the issue

upper vapor
hearty shard
#

idfk

upper vapor
#

is it secretapi?

hearty shard
#

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

vast canopy
#

@ashen hornet after releasing mer on 14.1 there gonna be no lego building on spawning schematics?

upper vapor
# hearty shard

NamesValue.Add
i think you update the collection twice with the same key

hearty shard
upper vapor
#

um

hearty shard
upper vapor
#

no..?

upper vapor
#

i'm dumb

hearty shard
upper vapor
#

so if you comment out these two methods, 3114 works?

hearty shard
#

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

vast canopy
#

I just opened chat. What r u trying 2 do?

hearty shard
#

hes broken for me

#

but why would blacklisting 3114 cause the issues

#

why would RoleTypeId.Scp3114 cause issue

upper vapor
#

uhhhh

vast canopy
#

Uh..

hearty shard
#

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

vast canopy
#

I cant write method name that u r using on role

hearty shard
#

ONLY this

vast canopy
#

What it returns?

hearty shard
vast canopy
#

roleText

hearty shard
#

ToString()

vast canopy
#

Automod doesnt like word in method naming

#

Yep

hearty shard
#

thats on ALL objects

#

but it should return Scp3114

#

for 3114

#

but it wouldnt even make it that far

vast canopy
#

Oh..

#

I gonna reread what problem u have and comeback in 2 minutes

hearty shard
#

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

vast canopy
#

Oh

hearty shard
#

also for some reason a disguised WORKING 3114 is small for me

vast canopy
#

Wait. But code doesnt touching that part of code

hearty shard
#

๐Ÿ’€

#

yes

#

correct

vast canopy
#

R u sure problem is here?

hearty shard
#

yes?

#

it works if i remove 3114 from the lists

vast canopy
#

Eh...

hearty shard
#

and then breaks again if i add

upper vapor
vast canopy
#

U r not using that list anywhere else?

hearty shard
vast canopy
#

I have some ideas that u can test

hearty shard
vast canopy
#

First - try hashset

hearty shard
#

and how would that fix it

vast canopy
#

Second - try add it to another list which you are not using in swap command

hearty shard
#

yes but the swap command is never used

vast canopy
hearty shard
#

at least not in my testing

#

in normal gameplay sure itd be used but hasnt been used once in testing

vast canopy
hearty shard
#

it has to be 3114

#

part of the list

#

or part of the dictionary

#

either one will do the issue

vast canopy
#

Okay

#

Thats sound crazy as hell

hearty shard
#

yes

#

idfk

vast canopy
#

U r using dummy corpses?

#

Or some player

hearty shard
#

real player

vast canopy
#

Ehh..

hearty shard
#

@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

unique crane
#

Any erm

#

exception?

hearty shard
#

ill double check but i havent seen one

vast canopy
#

I guess that just beta bug cause like, i was testing it today and he was acting very strange

lethal cradle
#

eve crashout

hearty shard
# unique crane exception?

[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

vast canopy
#

R u sure?

lethal cradle
vast canopy
#

Cause yeah

vast canopy
#

Yea..

ashen hornet
#

no, it should spawn instantly

hearty shard
#

which is ruei issue

#

ok whatever

#

but still

vast canopy
#

Its look like some lego guys just building it

hearty shard
#

michal do you know whats happening

vast canopy
#

Try turn off ruei and check again

#

what is ruei

ashen hornet
#

no idea

hearty shard
#

its a hint framework

#

only does hints

#

also that error was one time

icy knoll
#

ruei is peak

hearty shard
#

and is also unrelated to the issue im having

#

wtf is wrong with skeleton

vast canopy
#

Never used, sorry i guess

hearty shard
#

basegame has a null check on ragdoll

#

so ragdoll is null because i use RoleTypeId.Scp3114

#

idfk

lethal cradle
#

skill issue

hearty shard
#

shush

#

ive been at this the entire day

#

i cant figure this bs out

lethal cradle
#

put the fries in the bag

vast canopy
#

Put some null checkers for being sure thats not ur side problem

#

ยฏ_(ใƒ„)_/ยฏ

hearty shard
#

there would ba log if it was an error

#

idfk

#

this has to be a weird ass nw issue

#

surely

unique crane
#

Does it happen without the plugins?

hearty shard
#

No

#

its with plugin

#

I can fix it by commenting out what i showed

#

or having it not called

#

But

lethal cradle
#

remove it and pretend it never existed

soft depot
hearty shard
#

a literaly if .Contains check on the roletypeid causes it

vast canopy
hearty shard
#

it looks like

vast canopy
#

Mhm

white matrix
#

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

hearty shard
#

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

vast canopy
#

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..

hearty shard
#

it was

#

this code worked before

#

not on the update though

vast canopy
#

Eh..

#

What about

#

Any()

#

Nah..

#

What is EnumUtils..

hearty shard
#

nw

vast canopy
hearty shard
vast canopy
#

NamesValue also making 3114 invinsible?

hearty shard
#

& this

#

again

#

adding to blacklisted will cause the issue

#

removing will fix

#

this fixes

#

this breaks

restive turret
#

why is my pickups getting deleted!!

white matrix
#

wuh uh oh

#

there goes my entire plan as a first draft

#

I'm sobbing and crying right now

hearty shard
#

i love this

#

its just stuck there

#

permanent downloads

#

oh nvm it disappeared when i closed SL

restive turret
white matrix
#

also that's an on round start, right?

#

I did set up the event handler thingy

restive turret
#

ye

white matrix
#

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

restive turret
#

WaveManager.Waves

white matrix
#

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

hearty shard
#

im gonna crash out

white matrix
#

I love making the compiler scream

white matrix
upper vapor
#

(not suggesting the shortcut cuz i use a very weird keymap)

#

it should tell you anyways

white matrix
#

is it not screaming because CustomEventsHandler is missing OnRoundStarted and can thus not override it?

upper vapor
#

you can also just start typing override and Rider should suggest what you can override

white matrix
#

well rider suggested this so

#

I feel conflicted about this

upper vapor
#

OnServerRoundStarted

white matrix
#

oh that's it

upper vapor
white matrix
#

damn

upper vapor
#

uh

white matrix
upper vapor
#

maybe turn that off

#

oh

#

good

#

lol

white matrix
#

just autocomplete options it gave me

#

weird times

restive turret
#

smth like this would give them 1 point

white matrix
#

I wrote down a class method/attribute or two

upper vapor
restive turret
#

ye? i guess

white matrix
# restive turret 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

restive turret
#

there you go

#

skipping mini waves

upper vapor
white matrix
#

no they don

#

t

#

I should learn to look and read before talking

hearty shard
#

i hate 3114

#

fuck 3114

#

pls delete from the game again

restive turret
upper vapor
#

i'm not sure if that's intended

#

but i'm too lazy to open an issue

white matrix
restive turret
#

#69 i think

upper vapor
#

or WaveBase or whatever

white matrix
upper vapor
restive turret
#

ye i guess

upper vapor
#

now you have access to the plugin instance and therefore the config

white matrix
#

sorry

restive turret
white matrix
#

just like a public static CustomConfig Config onto Plugin or something

restive turret
#

smth like this

white matrix
#

ah like that

upper vapor
#

ye

white matrix
# restive turret

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

upper vapor
#

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

white matrix
#

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

upper vapor
upper vapor
restive turret
#

I use it so i can disable the plugin

upper vapor
#

has is_enabled

restive turret
#

or forcefully doing it

#

ye

white matrix
#

properties always present?

restive turret
#

ye

upper vapor
#

you can double disable it

white matrix
#

kek

#

like me, doubly disabled in cognitive capacity

unique crane
upper vapor
white matrix
#

*gulp* slightly more orange than I want it to be

upper vapor
white matrix
upper vapor
#

i have it underlined, not highlighted

white matrix
upper vapor
#

ohh

#

still not as dark as if you were to peek into my head

unique crane
white matrix
#

I mean mood

hearty shard
#

please

#

i cant do this anymroe

upper vapor
#

musou black or what is it called

white matrix
#

colour theory is for nerds

#

I think

upper vapor
unique crane
upper vapor
#

maybe the vibes will be better

lethal cradle
#

david make plugins written in assembly only

white matrix
#

bruh why is the fucking PLUGIN nullable

hearty shard
#

why is 3114 invisible

white matrix
#

or at least possibly null

hearty shard
#

id understand if i deleted a ragdoll

#

but i dont

unique crane
#

well...

#

I cant see the code

hearty shard
#

give github user

#

i will give you access

#

i cant do this

#

im gonna crash out

white matrix
upper vapor
#

i guess you can do

public new MyConfig Config => base.Config!;
#

in the plugin class

hearty shard
#

in case it doesnt load properly i believ

white matrix
upper vapor
white matrix
hearty shard
#

i can fix it by commenting 1 line

white matrix
#

like doesn't the load error handle itself or something?

upper vapor
#

it does

#

but

#

NW

upper vapor
white matrix
#

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

white matrix
#

fuck

#

nevermind I didn't say anything

unique crane
#

๐Ÿ’€

white matrix
#

๐Ÿค

vast canopy
#

Man

upper vapor
#

stealing this

white matrix
#

๐Ÿ’€ look

#

I dun oofed

white matrix
#

please feel free to shame it's deserved

white matrix
#

turns out I do not know how a decompiler works ๐Ÿ˜ญ god damnit man

upper vapor
# white matrix nevermind I didn't say anything

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)

white matrix
#

ah yes me making a fool of myself how usual

white matrix
upper vapor
white matrix
#

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

upper vapor
white matrix
#

I want to code now

#

it compiled

#

let's see if I crash somethign

#

if it does

#

imma crash out

upper vapor
#

well you can't crash eve cuz she's crashed out

white matrix
upper vapor
#

i mean yeah

white matrix
#

I'm really hoping I can get this to work

white matrix
#

I hope you do better soon

white matrix
#

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

hearty shard
#

im gonna crash out

#

someone else has to figure this 3114 out for me atp

#

cuz wtf

white matrix
#

I have literally 0 experience with this, tell me the problem

upper vapor
white matrix
#

that sounds incredibly frustrating

upper vapor
#

she's been at this for hours now

white matrix
#

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

white matrix
upper vapor
#

great questoin

#

david might tell us SoonTM

white matrix
#

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?

hearty shard
#

i found a way to disable that

hearty shard
#

so i could test the swap thing causing it

#

but i cant

#

idfk

upper vapor
#

confuse

white matrix
#

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.
restive turret
#

Timing.CallDelayed()

white matrix
# restive turret 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?

upper vapor
upper vapor
white matrix
#

Also where would I find that in the files

restive turret
#

Timing.CallDelayed(5f, () =>
{
.. stuff here
});

white matrix
white matrix
upper vapor
#

instead of round start

white matrix
#

ah that might be an option yeah

restive turret
#

and in MEC namespace

white matrix
#

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

upper vapor
#

ffs

#

try adding WaveUpdateMessage . ServerSendUpdate(spawnWave, UpdateMessageFlags . Tokens);

white matrix
#

alright can do

#

:/

#

let me try the timout

#

maybe it works with an on-server-start

icy knoll
#

does anyone know where the generator KeycardPermissions may be got?

upper vapor
icy knoll
upper vapor
#

oh

#

well

icy knoll
#

i can do that

#

was just curious

#

so

upper vapor
#

yeah it's specific to each instance
what if you modify it yknow

icy knoll
#

fair

white matrix
# upper vapor ffs

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

restive turret
#

you could do stuff like this,

if (wave.Base as ILimitedWave limitedWave)
limitedWave.RespawnTokens = 666;
white matrix
#

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.

restive turret
#

gg!

#

nice

white matrix
#

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

icy knoll
#

it doesnt care

white matrix
#

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

hearty shard
#

Is anyone willing to test smth for me

lethal cradle
#

ban her

hearty shard
#

I just need you to copy paste a file, call a method and go ingame

hearty shard
#

I need this for my sanity

lethal cradle
hearty shard
#

im gonna punch you

lethal cradle
#

ur mum

white matrix
#

It's not as if I'm doing much better

white matrix
#

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?

white matrix
restive turret
hearty shard
#

In ur config

#

With get set

white matrix
white matrix
# restive turret what

I want to get a list of numbers for config reasons, minimum 0 numbers (so empty is default)

hearty shard
#

ok so its my plugin issue

#

the same code works fine elsewhere

#

bruh i hate this

restive turret
hearty shard
#

Or dictionary

rain isle
restive turret
#

Also

#

What happens if I add another spawnwave

#

Does it show inside that?

#

Faction as scp for example

white matrix
white matrix
restive turret
#

Well then probably a dictionary would be good

white matrix
#

first, a short break because I'm cooking up concepts I want to try out

white matrix
restive turret
#

Dictionary<Faction, int> Tickets {get;set; } = new()
{
{ Faction.AgainstFacility, 60}
};

white matrix
#

each input int would be the tokens for the next wave, if left empty it would default

restive turret
#

I mean you already set the current wave as that number

hearty shard
#

Slejm can i kill u

white matrix
#

I snacked a whole cucumber earlier and I think that like scrambled my brain all over the place

restive turret
#

Oh uh

#

Well

#

That probably needs harmony patching

#

Or something that inserts into that

#

But be advised dont everything sync to server

restive turret
white matrix
#

(I really appreciate the help btw)

restive turret
#

Im not knowing much about it I just play around with it

#

I spent 2 day for making a partial movement to labapi

white matrix
restive turret
#

And I havent finished it

hearty shard
#

rahhh

white matrix
restive turret
white matrix
#

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

white matrix
restive turret
#

Until I figure out

white matrix
#

I'm very good at stoically sitting in my chair and then not catching sleep from frustration afterwards

restive turret
#

Same

white matrix
#

I'm so used to environments where the debug button works that this is indeed quite frustrating

restive turret
#

I never debug

#

I live debug

#

I change small thing and checking if still works

#

And checking for other ways too

white matrix
#

I love using the debug tool to check the states of my local variables and parameters and whatnot to know what's going on

restive turret
#

I print out

#

Console.WriteLine my beloved

sinful bronze
#

Catch HIII

white matrix
#

Yeah I don't like that personally, breakpoints my beloved

hearty shard
hearty shard
white matrix
sinful bronze
hearty shard
sinful bronze
#

But it can be ur mind misinformation

restive turret
white matrix
sinful bronze
#

Debug me plz the...

#

Random.

restive turret
#

random.GetRandomNumber() => 7;

#

So any mr remote kc gamersCIPlushie

white matrix
#

coping

unique crane
#

Publicizer: haiiiii

restive turret
#

Tbh it's a getter only so

#

Idk how would you even fight with that

unique crane
#

You still can patch it

icy knoll
#

just use reflection TrollDespair

white matrix
sinful bronze
#

So many ways

unique crane
#

Well.. what I said

#

patch it xd if you want to change it

unique crane
#

Also this wont be reflected on the client

#

Im pretty sure...

hearty shard
#

๐Ÿ’€

restive turret
#

We love desync!

icy knoll
sinful bronze
#

Desync is funny

hearty shard
#

no can do on the reflection

#

There is no backing field

sinful bronze
white matrix
unique crane
#

No

unique crane
#

we mean this kind of patch

hearty shard
#

Which means modify the original code

white matrix
#

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

white matrix
#

I still am but slightly less

unique crane
#

Its still IL code, you can edit that

#

Even at runtime

sinful bronze
hearty shard
#

ruh roh

white matrix
sinful bronze
#

U can to patch really many things

hearty shard
#

You can patch everything

#

But sometimes reflection is the answer

#

And sometimes

#

Publicizing

white matrix
restive turret
#

And something

white matrix
#

I'd love to patch my statistics grade

restive turret
#

Just let it go

white matrix
#

fuck I hated that course

hearty shard
white matrix
restive turret
#

I mean it would only work on server and not on client so

#

You can try

white matrix
#

so it wouldn't display in the doohickey then

restive turret
#

Idk

unique crane
#

Well the max value wont sync

#

So it max be like 75/50

#

While the server max is like 80

white matrix
#

that's something I'm fine with

unique crane
#

ok

white matrix
#

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

unique crane
#

You absolutely can do that with Hints

white matrix
#

awesome, I'll look into it

restive turret
#

Well be back at 2am

white matrix
#

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

unique crane
#

Dependencies folder

white matrix
#

alright cool

restive turret
#

Ye

#

And make sure you either using 2.2.2 or latest

#

On Harmony

#

Many plugins using 2.2 for it's thing

shy wolf
#

guys how do you format labapi-beta's permissions.yml i cant find it on docs ๐Ÿคฆโ€โ™€๏ธ

white matrix
restive turret
white matrix
#

should I use nuget?

#

I just thought 'oh boy annother dll to reference let's go'