#plugins-dev-chat

1 messages · Page 164 of 1

upper vapor
#

you know you're supposed to make a report based on the version of labapi you're using and not necessarily the most recent one

slate flume
#

God I'm so smart

celest thorn
#

i just closed down the server

#

and don't wanna open it up

#

its called LAZY

upper vapor
#

you can

#

check your code

celest thorn
#

I just use compiled version

upper vapor
#

oh nvm

#

i'm stupid

#

cuz the verison on the server might not be the one you use on nuget

celest thorn
#

go work now

#

hmm ig i will patch the method for now

upper vapor
#

yea

vast canopy
#

there are any patches to make audiohandler for speaker toy clear server cash? im 2 lazy to do it myself

upper vapor
#

what are you doing (genuine question)

#

are you using the labapi AudioTransmitter class?

vast canopy
#

so uh

celest thorn
upper vapor
#

can you show the code

celest thorn
#

i love this patch

vast canopy
#

NekoSpeaker it just API Speaker handler for spawning and etc

celest thorn
#

yo axwabo what was the way to replace Read-Only fields?

#

i remember you sent it one day

upper vapor
vast canopy
upper vapor
#

why not just create a new RagdollInfo

upper vapor
tulip kiln
upper vapor
#

well

#

yea

vast canopy
#

ye

upper vapor
#

AccessTools.StructFieldRefAccess

#

or something

celest thorn
#

you have an example?

#

i remember you sent it one time

upper vapor
celest thorn
#

for changing the role

tulip kiln
#

I can get you a reflection example in a sec

#

Also for changing a role there

celest thorn
#

i remember someone sent it to me one time

#

and then i removed it

vast canopy
#

so code is working

#

but

#

it is overloading server memory

upper vapor
upper vapor
#

you load every single audio file into memory?

vast canopy
upper vapor
#

how long are the audio clips

#

can you check what happens if you play the same clip through all 4 speakers?

vast canopy
#

01:03
00:10
00:30
00:45

upper vapor
#

can you show the code you use the play them back

tulip kiln
# celest thorn and then i removed it
AccessTools.Field(typeof(Scp1509Hitreg), nameof(Scp1509Hitreg.LinecastMask)).SetValue(null, new CachedLayerMask(
[
    "Default",
    "InvisibleCollider",
    "Fence",
    "Door",
    "Glass"
]));

This is for replacing 1509's layer check, but you should be able to reproduce it for your struct.

vast canopy
#

that like the only line of code activating them

tulip kiln
#

You'll need the instance object though, since I was changing a static field

vast canopy
#

it just set to loop

upper vapor
#

also show how you read the audio

celest thorn
#

i checked it not found anything

upper vapor
#

then say something

celest thorn
#

im trying to read the doc

#

to figure it out

#

lol

upper vapor
#

right

vast canopy
#

audiofile = config settings

celest thorn
#

Btw should i resend it to the player?

upper vapor
upper vapor
#

the info?

#

just set NetworkInfo

upper vapor
celest thorn
#

i don't think it would update it

upper vapor
#

AccessTools.StructFieldRefAccess<Footprint, RoleTypeId>(ref footprint, nameof(Footprint.Role)) = RoleTypeId.Tutorial;

#

like this

#

and then

#

set the network info

#

also

#

copy the struct into a local variable

upper vapor
vast canopy
celest thorn
#

finally

upper vapor
celest thorn
#

so rn it should work?

upper vapor
celest thorn
#

wdym?

upper vapor
#

NetworkInfo

#

set it to data

celest thorn
upper vapor
#

cuz structs are value types

celest thorn
#

so like this

upper vapor
vast canopy
upper vapor
#

umm

#

reading a file with NVorbis is not that complicated
just send a screenshot of your read method

restive turret
#

Add that to the nullable serial one

restive turret
#

Its been done but since a breaking change well yeah

unique crane
#

Every update breaks plugin in one way or another

#

It is what it is

restive turret
#

I aint handling whats been next in labapi , i can make a pr for it its not that much, even could do it on phone

unique crane
#

dam

upper vapor
vast canopy
vast canopy
upper vapor
vast canopy
upper vapor
#

Nice

#

But what cache is on the server

#

You can call Stop to end the playback coroutine and clear all queued clips

upper vapor
#

Bruh

restive turret
#

Anyway back to killing gods

upper vapor
#

Xddd

#

Can't see you if I'm in the dark and there's no flashlight

waxen kayak
#

just enable nightvision xd

static meteor
#

Guh how did the client sync 104

upper vapor
#

that is a very good question

#

chambered ammo perhaps?

#

-# probably not

spare zodiac
#

this kind of dark magic

#

search for 104 and 4 in your code base

slate flume
#

@unique crane isn't it possible to change the guns chambers up to like 16? I remember hearing smthn about it a while back I thought you were the one who mentioned it

upper vapor
#

you can

#

AutomaticActionModule.AmmoStored = 15

unique crane
#

In the firearms wrapper

cyan crown
#

anyone having github issues right now?

#

i can't push my shit

#

😿

icy knoll
#

yeah

#

github outage

unique crane
#

gitlab superiority

cyan crown
#

😿

restive turret
#

Push later

warped prairie
#

ty

slate flume
#

So long as it's client-synced and I believe it is?

#

It makes sense because it does max ammo + ammo chambered

slate flume
#

Which also explains why it's 154/104 and not 150/104, as I'm guessing a magazine of 150 bullets was the original intention

#

Anyways @unique crane can you sync max ammo with the client for us

#

You're like in charge of everything I trust

upper vapor
unique crane
#

oh you mean the text? yeah prob not doing that now

#

Not a big deal

icy knoll
upper vapor
royal mica
upper vapor
worn gull
worn gull
upper vapor
#

Xddd

celest thorn
#

btw fun fact in an official press conference to one of the italian regions city hall a guy said "skibidi boppi"

#

so the italian governement knows about skibidi toilet

waxen kayak
#

why we have this

icy knoll
#

to open external panels

#

cedmod makes a good use of this

waxen kayak
#

ah?

#

how

waxen kayak
upper vapor
#

Look for "external"

waxen kayak
#

ExternalLookupCommand

#

is this?

upper vapor
#

But yeah it's related

#

It'll allow you to open a url with auth

waxen kayak
#

ok

upper vapor
#

Authentication being the moderator's authentication method and it will allow you to open a player's profile on the web.

waxen kayak
#

i think it can add a menu by plugins and the admin can just control plugins with menu

#

but it 'I think'

tranquil river
#

pardon the messy code (Largely just mocking up an entity to test something) but would there be any particular reason as to why the interactabletoy and texttoy are either not spawning or parenting to the primitivetoy?

    var primitive = PrimitiveObjectToy.Create(position, networkSpawn:true);
    primitive.Type = PrimitiveType.Cube;
    primitive.Scale = new Vector3(0.6f, 0.2f, 0.6f);
    primitive.Color = Color.white;

    primitive.Base.gameObject.AddComponent<Rigidbody>();

    var interactable = InteractableToy.Create(new Vector3(0,0,0), primitive.Base.gameObject.transform, networkSpawn:true);
    interactable.Scale = primitive.Scale * 1.1f;


    amountScreen = TextToy.Create(new Vector3(0, 0.25f, -0.1f), Quaternion.Euler(90, 0, 0), primitive.Base.gameObject.transform, true);
    amountScreen.Scale = new Vector3(0.2f, 0.2f, 0.2f);


    CoreObject = primitive.GameObject;
    Interactable = interactable;

    primitive.Spawn();
    interactable.Spawn();
    amountScreen.Spawn();
hearty shard
#

but i assume you're more curious on why theyre not spawning sometimes?

tranquil river
hearty shard
#

i see

tranquil river
#
   this.InteractablePickup = Pickup.Create(ItemType.KeycardJanitor, Position);
   this.CoreObject = this.InteractablePickup.GameObject;



   t1 = TextToy.Create(new UnityEngine.Vector3(0, 0.015f, 0), new UnityEngine.Quaternion(0.7071068f, 0, 0, 0.7071068f), InteractablePickup.Transform, false);
   t2 = TextToy.Create(new UnityEngine.Vector3(0, -0.015f, 0), new UnityEngine.Quaternion(-0.7071068f, 0, 0, 0.7071068f), InteractablePickup.Transform, false);

   t1.Scale = new UnityEngine.Vector3(0.1f, 0.1f, 0.1f);
   t2.Scale = new UnityEngine.Vector3(0.1f, 0.1f, 0.1f);

   UpdateText();

   this.InteractablePickup.Spawn();
   t1.Spawn();
   t2.Spawn();

like this works

slender depot
#

Is it a main game bug that the warhead doesn't kill people inside the facility?

modern lark
slender depot
#

No

modern lark
#

Or PMER ?

slender depot
modern lark
#

Update it then

slender depot
#

alright

restive turret
#

Downgrade to alpha version

modern lark
slender depot
#

Kinda curious about the issue with exiled

#

if something like that happened how should I fix it?

modern lark
#

For this part I don't know

hearty shard
restive turret
#

Patching might fail if you didn't updated or something, folks at exiled know these kind of problem Fear

icy knoll
restive turret
#

Me when i throw a snowball and disconnects my client

hearty shard
#

lel

icy knoll
#

probably happened tbh

restive turret
#

Happens

#

With ddos

icy knoll
#

true

modern lark
#

Le funny plugin

#

Try not to move challenge

icy knoll
#

hehe

waxen kayak
#

OnPatching(Patching ev) {
ev.IsAllowed = false;
}

restive turret
#

OnLeaving
ev.IsAllowed = false;

upper vapor
upper vapor
#

You can only parent things to networked objects

restive turret
upper vapor
#

Right

keen halo
#

Its the hoob

#

What if hoob had boobs and was a dood!? Wouldn't that be kinda lood!? But maybe good?

#

Im a goob

inner citrus
#

huh

south socket
#

why is there no event when someone puts scp268 off grrrr

hearty shard
south socket
# hearty shard theres an effect event

Yes, I realize that. The problem with that is that I then have to add an extra check to see if the player has 268 in their inventory and is wearing it.

restive turret
burnt hearth
#

Gleep glorb?

slate flume
barren pasture
#

Is it possible to give a player the visuals of an effect without the actual effect?

slate flume
barren pasture
slate flume
#

This is weird

#

I can't even seem to find where visuals are applied for effects

soft depot
static meteor
#

Need to fake the message for that

upper vapor
spare zodiac
upper vapor
celest thorn
#

i wanna die

upper vapor
#

agre

slate flume
static meteor
#

Some isnt

slate flume
#

Can we find it anywhere

keen halo
slate flume
#

Can we change fire rate yet

celest thorn
slate flume
#

Fuck

celest thorn
#

Ask nw for that

slate flume
#

@ hubertmoszka

celest thorn
#

Mubert moszka

slate flume
#

Based submission

#

Also why

#

Still not fixed

#

Maybe I'm not on the latest LabAPI or something?

celest thorn
#

Check git

stable shore
upper vapor
slate flume
#

I've made somewhere between probably 4 and 8 issues on LabAPI and I've only ever seen one of them come to fruition

icy knoll
#

Don't worry about your issues, they will be looked into ASAP

#

just, be patient

#

not everything you request will come in the next update lol

slate flume
slate flume
celest thorn
#

Knowing maybe in 5 years max i will see them

slate flume
#

Two of these were closed for being duplicates, but most were closed because of

#

#306 is pretty atrocious because it's easily reproducible by plugins and breaks the entire server until a hard restart

slate flume
celest thorn
#

Like even before labapi

slate flume
#

Yes

#

Literally exactly

#

I talked to Riptide about it

celest thorn
#

One day maybe

slate flume
#

Not for prob a year

#

Or more

celest thorn
#

20 years for a fix Trolley

slate flume
#

I mean yeah pretty much

celest thorn
#

The game is dead but “HEY GUYS WE RELEASE THE FIX!!!!!!”

slate flume
#

I was shocked to see my speakertoy volume idea implemented I can't lie

slate flume
#

Actually so taken aback

upper vapor
celest thorn
slate flume
celest thorn
#

Too hard

slate flume
celest thorn
#

It requires too much

#

Opening unity

slate flume
#

It doesn't solve the root issue though

celest thorn
#

Already requires 20 smoke breaks

slate flume
#

I don't know why the FPMMs are getting orphaned

#

I just know that they are

#

ResetObject at least destroys it when they do

#

Well technically the unity object is already destroyed afaik

#

ResetObject just stops it from running the code in it anymore

upper vapor
#

look, i can only say what others say
management has to approve stuff, then it has to be tested properly
and somethimes the request doesn't even make it into the update
hopefully we'll get more labapi fixes into the following updates, no promise though

celest thorn
#

Lets remember

upper vapor
icy knoll
#

go work at a game studio zero

#

rather than just saying "shitty system"

#

😭

upper vapor
#

you're gonna have to wait 3 weeks until you get your credentials at a real company

celest thorn
#

That Scp914 exploit existed and was in the game

#

“Tested”

slate flume
#

Just sayin'

#

They have deadlines and shit

icy knoll
#

yeah sure, so do we

#

but there is priorities

celest thorn
upper vapor
#

we have deadlines
for the features that were approved for implementation

icy knoll
#

yes

#

exactly

slate flume
icy knoll
#

only happens when a plugin developer does it

#

so it's not a base game issue

celest thorn
slate flume
upper vapor
#

if your manager says "do 1 and 2" are you gonna do task 343572342942834?

celest thorn
#

If you perfectly catch the frame

slate flume
#

It's just a low probability

slate flume
#

Not an individual problem

icy knoll
#

this happens at every game studio

upper vapor
slate flume
upper vapor
#

but this is the world we live in

icy knoll
#

bro atp ur flexing ur ticket has been open for 5 months, we get it.

slate flume
#

You're denying there's a problem

#

I think there is

icy knoll
#

im really not, i agree there is a problem

celest thorn
upper vapor
#

we never denied the problem

icy knoll
#

just you guys are going way to OTT

celest thorn
#

I will die before it gets fixed

slate flume
icy knoll
#

im not?

upper vapor
slate flume
# icy knoll im not?

You're saying it's a matter of priorities and other game studios face the same problems
Those are deflections

upper vapor
celest thorn
#

If i die rn

#

Yes

#

I could be struck by a brick

slate flume
#

I just think it's a problem

mild ice
#

I think everyone's made their point here, but it's ultimately nothing anyone in this chat has the power to solve

slate flume
#

The only reason I'm still talking about it is because you guys keep trying to clarify the problem

upper vapor
#

yea

celest thorn
upper vapor
#

aight

celest thorn
#

Because criticism is a key point

#

To solve issues

#

1984 isn’t

icy knoll
#

since when was 1984 even involved

celest thorn
#

It would become an eco chamber

icy knoll
#

we arent gunna mute you bro

#

😭

celest thorn
#

God

icy knoll
#

weird

mild ice
slate flume
#

I would've left it as a simple "Haha this is dumb" if I wasn't given the insinuation that I was being impatient by talking about how I've had tickets left unresolved for months

mild ice
#

I just don't think this conversation is going to go anywhere kek

icy knoll
#

axwabo and i cant do anything about your critisisms, if you have issues, bring them up with our team lead

upper vapor
slate flume
icy knoll
#

mentioning them here wont help your cause tho

celest thorn
#

And i will spam it

#

Tell me a nick

slate flume
celest thorn
#

And i will go bring that up

slate flume
icy knoll
celest thorn
#

Lovely

slate flume
#

It was an off-handed comment I made

#

Never intended for it to be a serious debate

upper vapor
celest thorn
#

What im saying

#

For stuff like this

#

If you guys can’t do anything

#

I can’t do anything

#

It doesn’t make sense

#

This is a serious matter because its just too slow

upper vapor
#

you were joking with spamming an email

#

which is not a solution

#

enough talky

celest thorn
#

Im saying spamming as a sort of exaggeration

slate flume
#

Oh man I forgot about this

upper vapor
slate flume
#

The OnPlayerUpdatedEffect event is still bugged

slate flume
#

In multiple ways

celest thorn
#

Why am i not surprised

slate flume
#
GitHub

OnPlayerUpdatingEffect and OnPlayerUpdatedEffect are not called when the effect duration changes, it only fires when the intensity changes. Please fix 👍

GitHub

This is very similar to another bug report I made, but this is a separate bug When an effect is changed, it calls StatusEffectBase::ServerSetState which in turn does this.Intensity = intensity; thi...

alpine glade
unique crane
#

Do you have any replication steps without plugins?

past cave
#

guys

#

what is the difference between List and ListPool?

hearty shard
#

it saves some cpu usage sometimes

#

depends on your use case

#

but it just gives you a list

past cave
#

thx

upper vapor
#

yea

#

normally you don't really have to concern yourself with using ListPool

#

in high-performance scenarios, it's ideal

restive turret
#

ah, it doesnt have the bug label

slender depot
#

Is there a way to check if the player stopped pressing a hotkey using sss?

unique crane
celest thorn
#

can someone please explain how is this possible a random ass youtube video can explain better than my professor ever could

restive turret
#

¯_(ツ)_/¯

celest thorn
#

like a random guy named "Bro Code" in 2 hours made me understand what i couldn't of strings LIKE my question always was

#

"Can't i get the array lenght by knowing the sizeof?"

#

and the professor always said "No."

#

Reading docs and shit i found out its possible to understand how an array lenght can be calculated and its far easier than hoping to god it works

celest thorn
#

I love this guy

#

he made me learn Java, C# and now helping me in Uni with C

#

guy needs to be an ambassador

unique crane
#

to get the length

#

afaik

celest thorn
#

technically this is a way to calculate it

unique crane
#

Just make struct List trolling

celest thorn
unique crane
#

Add the int * and size_t length

unique crane
celest thorn
#

My biggest problem rn are pointers

#

i swear my professor uses them everytime

#

i don't still understand how tf they work

#

because without or with them i can just work normally

#

so i don't understand why he uses them constantly even tho for some stuff i don't really need them

#

and alot of stuff are just left for you to figure it out

#

the homeworks are 20 times harder than what they explain to you

#

its just ass

unique crane
#

xd

celest thorn
#

that i never imagine

#

like Null checking

#

etc...

#

i will forget them

#

100%

unique crane
#

ptr == NULL

celest thorn
#

the thing is

#

when i sit and do an exam

#

i like forget everything

#

anxiety works

unique crane
#

rip

celest thorn
#

so maybe i forget them

#

maybe not

unique crane
#

I have linear algebra test today lol

celest thorn
#

i want to shoot that guy

unique crane
#

Giving up on "proof that.." question

#

instantly XD

#

Just writing definitions is fine

celest thorn
#

THANK GOD

#

HE DOESN'T GIVE US THOSE

#

one of them was 2 power points

#

of proof

unique crane
#

They dont care how we calculate it tbh

#

they only pretty much care if we explain how we do it

celest thorn
#

for us they do

unique crane
#

Like

#

if you sum 2 numbers wrong and the answer is then wrong

#

but you type that

#

The basis is those vectors cuz they are linear independent and they generate the whole subspace

#

your good

celest thorn
#

the problem is i've been sick

#

and i didn't went to algebra classes

#

and even if you ask him

#

he just says "oh yea you need to do this"

#

and then make it in symbol

#

people don't even bother staying in his classes

#

because he doesn't explain with examples just symbol

#

and skips

#

its just so ass

#

i have so many problems in uni because i go there so late in the evening i just sleep

#

with my lovely 4 hours of sleep

unique crane
#

I dont go to git lessons since second week of semester

#

XD

celest thorn
#

on my programming 1 lessons and go to C++

#

atleast there its a bit higher level

#

and i have some more methods

#

and shit

#

the thing that drives me mad, i WILL not have documentation

unique crane
#

Me having struct List

celest thorn
#

nor an IDE

unique crane
#

with void *, lenght, capacity and size_t bytesPerItem

#

only to have 5 methods for adding

#

Cause no overload 😭

celest thorn
#

I still didn't study those

#

thank god

celest thorn
#

do you guys have documentation?

#

or an IDE available?

unique crane
#

And man

celest thorn
unique crane
#

Yeah

celest thorn
#

nah

#

we don't

unique crane
#

And man on linux

celest thorn
#

why

#

idk

unique crane
#

lol rip

unique crane
plush glade
#

Dawg my c++ exam last semester was paper and pen

unique crane
#

but knowing how to compile via cmd is a must

celest thorn
celest thorn
#

i remember it like it is my own blood

#

gcc -W name.c -O pleasekillme

unique crane
#

g++ -Wall -pedantic main.c && ./a.out

celest thorn
unique crane
#

Extra strict compiler

celest thorn
#

On windows it doesn't work

#

lol

unique crane
#

We use Linux only xd

celest thorn
#

honestly

unique crane
#

then wsl?

celest thorn
#

build

unique crane
#

what

celest thorn
#

so wsl doesn't even work

unique crane
#

rip

#

xd

#

dual boot

celest thorn
#

its just a stripped down version of Windows 10

celest thorn
#

i use this computer for school and file storage

unique crane
#

\Too much space?

#

6GB isnt much

celest thorn
#

i have 24GB stored rn

#

lol

unique crane
#

bru

#

Buy 32GB flash drive

celest thorn
#

btw im gonna ask my professor if we can use docs like devdocs

#

because he recommends it

#

and i really don't know how to use man

unique crane
#

I use

#

/*
*
*/

spare zodiac
celest thorn
#

And C library docs is in there

upper vapor
#

Everyone else is stupid

spare zodiac
celest thorn
upper vapor
#

Petition to add /speechbubble

plush glade
celest thorn
#

im gonna send my favorite

#

rn

#

i loved using it with the clan and i loved using it with people who hate being told they are girly

#

its just so funny seeing them meltdown

worn gull
#

Hi! Why's that happening when I make a ramp using quads and place it perfectly to a another quad the player gets teleported back when I try to go down

celest thorn
#

im confused

worn gull
celest thorn
#

like david says

worn gull
#

alright

#

Thanks

worn gull
slate flume
celest thorn
slate flume
#

A player would have to join and leave in the same tick

celest thorn
#

you can

slate flume
#

^

celest thorn
#

hey devs of the cheating client that im not gonna nominate to not get banned take note

slate flume
#

Cheaters could brick a server by joining and leaving in the same tick

celest thorn
#

so then nw can do something

slate flume
#

I mean to me that's concerning

#

It's not easy to recreate but it's possible

slate flume
#

At least as far as I can tell

#

I don't know why else they wouldn't be labelled

restive turret
#

added to internal stuff

slate flume
#

I'm sure I'll hear an update in a year's time

restive turret
#

even if i rush to make it, i still have no clue when it will be added to basegame

#

or in labapi

slate flume
#

Yeah lol it's not your fault

spare zodiac
slate flume
#

Just the system you work under

restive turret
#

release now, breaks instnatly

teal junco
# plush glade

theres a story about a guy gas chambering himself to death with a gas mask on 😭

#

i think theres people who actually think that bio weapons are only dangerous if you inhale or ingest it

slate flume
#

On that topic we should discuss WWII, a notoriously easy thing to talk about with no controversies associated with it whatsoever

slender depot
#

Is there a way to get the specific bodypart that was hit? Not just the HitBoxType but for example the right arm or the left one?

slender depot
spare zodiac
slender depot
#

Thanks

slate flume
slate flume
#

At least

#
public override void OnPlayerHurting(PlayerHurtingEventArgs ev)
{
    if (ev.DamageHandler is not FirearmDamageHandler handler || !CustomItemData.ContainsKey(handler.Firearm.ItemSerial)) return;
    if (handler.Hitbox is HitboxType.Headshot) handler.Damage *= 10;
    else handler.Damage *= 0.1f;
}
#

Unless you mean for a raycast specifically

#

I assumed you meant for a firearm

slender depot
#

No

teal junco
#

he wanted to know the exact hitbox

slender depot
#

I'm making a tarkov health system

teal junco
#

though i think the handler contains that too

slender depot
#

Handler has headshot, torso and limb

#

but I kinda need a little more than that

spare zodiac
worn gull
celest thorn
#

because maybe you are rotating the lattice but not the box

worn gull
celest thorn
#

the lovely character controller

#

make the gap bigger

#

thats why

#

your hitbox on the server is a bit bigger and the CC remains stuck

worn gull
celest thorn
#

but idk what is your case

#

but if you think you can do that then do it

worn gull
#

Just because I don't really want to fix 15-20 ramps on the map bruh

slender depot
#

Also is there a way to make an infinite medkit? So it won't get destroyed when it's used?

celest thorn
#

UsedItem

#

then give it back to the player

slate flume
slender depot
#

but if you have another way

#

then yeah

#

also labapi-only

slender depot
celest thorn
slate flume
#

You'd want to prevent the UseMedicalItem

#

But you're not using Harmony patches

slender depot
#

So the only way is to patch?

slate flume
#

If you want to prevent the server from deleting the item, yeah

#

Or actually

#

You want to patch the

#

UseMedicalItem is in charge of removing effects, not the item itself

#

Or you could patch out any call to ServerRemoveSelf but that's risky

slate flume
# slender depot So the only way is to patch?

The only other way I can think of is to subscribe to OnPlayerUsed and give a player a medkit anytime one is used, but that has the issue of causing the place the medkit is in the inventory to shift if there are earlier other slots available

slate flume
#

I mean I'm sure it's possible to do without it, it's just not going to be as optimized, efficient, or clean

#

LabAPI is leagues better than NWAPI but NW still has a long ways to go to make things more friendly for devs and eliminating the need for Harmony

restive turret
#

OHH so thats why it does remove ihe item before it runs the onused

#

I would patch ServerOnUsingCompleted
and remove the last call

slate flume
restive turret
#

edit the ACS dll

#

or you can try disallow OnUsingItem and call myItem.OnEffectsActivated()

#

but you need to publicize

slate flume
restive turret
#

*PlayerItemUsageEffectsApplyingEventArgs

slate flume
#

Oooo true

#

That would also require a bit of reflection to trigger the UsableItemsController.ServerOnUsingCompleted

#

Also I'm not sure if this bit is important handler.Value.CurrentUsable = CurrentlyUsedItem.None;

#

This is why Harmony patches are goated

#
[HarmonyPatch(typeof(UsableItem), nameof(UsableItem.ServerRemoveSelf))]
public class PreventMedkitRemoval
{
    public static bool Prefix(UsableItem __instance) => __instance is not Medkit;
}
slate flume
#

I mean it's literally that easy if you just use a harmony patch

slate flume
#

It's the code that's supposed to run if it's allowed

restive turret
#

if its not alloved

#

check the method again

slate flume
#

I'm looking at it right now lol

#

I don't know if the order of those is important or not

restive turret
#

one before my guy

#

ContinueProcess

slate flume
#

If you want to simulate the medkit without the removal then you could run that but it might mess up the ServerOnUsingCompleted

#

Which is why I brought it up

#

But I mean theoretically it shouldn't?

#

Cause the event fires first

#

So you prob could get away with just doing reflection and firing the completed event, and doing ev.IsAllowed = ev.ContinueProcess = false;

#

Unless you don't care about the two achievements it's tied to

restive turret
#

ev.IsAllowed = false;
ev.UsableItem.OnEffectsActivated();

and thats it,

slate flume
slate flume
#

Without that event, those achievements don't proc

restive turret
#

why does it even calling remove inside the Oncompleted

#

when the holding one actually removes a frame later

slate flume
restive turret
#

i gonna test this one

upper vapor
upper vapor
spare zodiac
upper vapor
#

Too lazy

worn gull
#

Same

#

Also made a script with AI to connect 2 quad with a third one

slate flume
#

Either you made an AI to fix your quads or you vibe coded a fix for your quads

#

Either way is kind of wild

#

Not sure why you used them in the first place

#

Cubes are fire

worn gull
#

I didn't make the map it was converted from sloc to mer

slate flume
#

Oh well that changes a lot

worn gull
#

Yeaaah

slate flume
#

I don't use MER 😁

#

I build my own assets from scratch and it's a pain in the ass

#

But I'm a proud non-MER user

soft depot
slender depot
#

Is there an event that gets called when the item gets destroyed by the server? not picked up, not holstered just removed by commands?

soft depot
upper vapor
median sand
#

hey guys

median sand
#

hey guys i need help

upper vapor
#

please state your problem

spare zodiac
#

Task<T> good or bad idea to make asynchronous code for SL?

eg. Logging or executing methods like kill(player)

unique crane
#

What you can use the is Unity's version

static meteor
#

Unity moment

celest thorn
#

Use a MainThreadDispatcher

#

i can send you something i use for doing TwitchAPIs Calls that are async but still work on SL and don't crash it

spare zodiac
celest thorn
#

nah

#

you wanna do async do a Dispatcher

#

that will not crash unity thread

restive turret
#

or use Awaitable

spare zodiac
celest thorn
#
namespace SecretChampionship.Features.Twitch.Mono;

using System;
using System.Collections.Generic;
using UnityEngine;
using Logger = LabApi.Features.Console.Logger;

#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
#pragma warning disable SA1600
public class MainThreadDispatcher : MonoBehaviour
{
    /// <summary>
    /// Actions in queue.
    /// </summary>
    private static readonly Queue<Action> Actions = [];

    /// <summary>
    /// Gets instance of the Dispatcher.
    /// </summary>
    public static MainThreadDispatcher? Instance { get; private set; } = null;

    public static void Initialize()
    {
        if (Instance != null)
        {
            return;
        }

        GameObject gameObject = new GameObject($"Twitch MainThreadDispatcher")
        {
            hideFlags = HideFlags.HideAndDontSave,
        };

        DontDestroyOnLoad(gameObject);

        gameObject.AddComponent<MainThreadDispatcher>();
    }

    /// <summary>
    /// Enqueues a new action.
    /// </summary>
    /// <param name="action">the action to do.</param>
    public static void Enqueue(Action action)
    {
        lock (Actions)
        {
            Actions.Enqueue(action);
        }
    }

    private void Awake()
    {
        if (Instance != null && Instance != this)
        {
            Destroy(gameObject);
            return;
        }

        Instance = this;

        Logger.Info($"Spawned \"{gameObject.name}\"");
    }

    private void Update()
    {
        lock (Actions)
        {
            while (Actions.Count > 0)
            {
                Actions.Dequeue()?.Invoke();
            }
        }
    }
}
slender depot
#

Does anyone know why this Patch doesn't work?

public class MedkitUsePatch
{
    public static bool Prefix(UsableItem __instance)
    {
        return false;
    }
}```

I've been testing some stuff and thought that I'd check if I can just make everything infinitely usable, on paper it should work but it doesn't.
spare zodiac
#

thank you guys you're really helpful 🌟

restive turret
#

sub on patreon NOW

upper vapor
#

just use awaitables

celest thorn
#

btw i still have

#

that nw will one day add cool features

#

and fix bugs

true cedar
#

thats kinda cool

celest thorn
plush glade
#

Surface zone coming after 8 years of development

slate flume
slender depot
#

Items and pickups would be nice

slate flume
#

Though items become pickups and vice-versa when picked up or dropped

#

Those are the all-encompassing events

#

So you'd have to filter specifically from those

slate flume
#

Time to wait for server owners to get back online for a cheater report 🙏🏼

celest thorn
#

without them?

stone prawn
#

Me when @spark galleon

slate flume
slate flume
celest thorn
#

crazy

slate flume
#

I can't do an in-game report

#

Cause they're not on the server anymore

stone prawn
#

Does no one have role access for the report command?

slate flume
#

I could send an email to S&C but atp I'm just gonna wait

slate flume
stone prawn
slate flume
stone prawn
#

No wonder why it's "impossible to report cheaters" from that one guy, bot isn't setup Kek

slate flume
#

Lmao what

#

I need to know the context now

stone prawn
#

I'm on my big ass tablet rn, give me a bit

slate flume
#

Real

worn gull
celest thorn
worn gull
#

That's unlucky 🙁

upper vapor
worn gull
#

yup

#

I deleted the walls around it and still happends

slate flume
#

Well it's a desync thing

#

The server doesn't register that you're able to get down there while the client does

stone prawn
# slate flume I need to know the context now

according to him, we "made it impossible" to report cheaters, with barely any context, so I corrected him as there are methods and its not hard to do, the issue falls upon the higher ups for not having the systems set in place, he got mad at me and then brought up how its too much effort or is hard to get a users auth token

stone prawn
#

damn i forgor for , and . work

#

3am moment

#

im pretty sure they were rage baiting because because 1. their responses and 2. they just didn't make any sense at times

slate flume
#

It is not hard to get a user's auth token

#

It's literally one button

stone prawn
#

real

slate flume
#

But it's too much effort to open a ticket and submit a clip! 😭

sacred sierra
#

why report to polaris if cheaters have spoofer

slate flume
#

What does this statement mean

sacred sierra
#

Easier to just ban

stone prawn
#

its not possible to completely ban and prevent spoofing

slate flume
#

Does NW do IP bans or do they do game bans?

sacred sierra
#

hwid iirc

slate flume
#

Well that's even better lol

stone prawn
#

all of em EvilMF

slate flume
#

On average, cheaters are stupid

stone prawn
#

oh man...

#

i wish i could speak 😭

slate flume
#

There may be a few people who are smart enough to use VPNs and spoof their HWIDs (HWID spoofing is a bit of a pain in the ass anyways), but even then a lot of servers have prevention measures for VPNs (I think it's even included in CedMod)

slate flume
#

And a lot of cheaters typically don't do that cause they're dumb

celest thorn
#

don't worry

sacred sierra
slate flume
#

Or a proxy?

upper vapor
#

Are you using MERO?

celest thorn
#

the biggest mistake that cheaters make

stone prawn
#

restarts a router does nothing

celest thorn
#

is being on socials and Saying "HEEEYYYY IM CHEATINGG!!!!!!!"

stone prawn
#

even if you have a dynamic IP, still HWID and account banned

celest thorn
slate flume
#

So they need to make a new account, get a new HWID

#

And if the servers they cheated on banned them and use CedMod, then they need a new IP too

sacred sierra
slate flume
sacred sierra
slate flume
#

It's not possible to completely prevent cheating, but by and large most cheaters are like 15 years old

#

A lot of them don't know how to avoid that kind of thing effectively

celest thorn
#

and that would disable some modules

slate flume
#

And the few who do still have to take the time it takes to get around it

sacred sierra
slate flume
#

It's about the time it takes

upper vapor
slate flume
#

You also need a new Steam account in order to get around the ban

#

And to get around CedMod bans you need a VPN that isn't detected by CedMod (which CedMod is pretty good about)

#

Your mistake is in thinking they do one button press and get around the bans instantly

#

It takes time

#

It's just tedious

stone prawn
#

parts of cedmod genuinely should be implemented in the game by default

slate flume
#

And again, most people are not that proactive about their cheats

slate flume
stone prawn
slate flume
upper vapor
sacred sierra
upper vapor
slate flume
# sacred sierra i said 5min

This still ignores the CedMod aspect
Also Steam has been cracking down a bit on how easy it is to make new accounts afaik

stone prawn
slate flume
#

To my knowledge the days of using one macro to create a Steam account are over but I'm not entirely sure

stone prawn
#

yah

#

forgor about that

pulsar locust
slate flume
#

This is also true

pulsar locust
#

I had to implement ASN checking for an ip ban system so we don't accidentally ban a bunch of geforce now users

slate flume
#

I like IP bans on a server-by-server basis

stone prawn
#

yeah, there'd need to be some customization on what stuff it'll do on your server

sacred sierra
# sacred sierra i said 5min

if you have smth like medal it is much faster to report to polaris but when you have to upload stuff to youtube most of my staff prefers to just ban em

slate flume
pulsar locust
pulsar locust
#

Obviously their numeric identification, not their clear name

upper vapor
#

CQP 25

#

Boom

royal mica
celest thorn
slate flume
#

It's not hard to make a cheater report, there's not really much reason not to

slate flume
#

The only con is that it takes like a few minutes of your time to make one

sacred sierra
pulsar locust
#

Also the maxmind db node lib is dumb as hell
If you asn search on an ip that doesn't have an asn it throws an error, so I have to try catch and silently ignore those errors

slate flume
#

Imo replay software is a basic need for any moderator on a large server

#

Not having it is wild

royal mica
pulsar locust
#

They don't have the system resources to record lmao

slate flume
royal mica
#

But they aren't modding either no?

slate flume
pulsar locust
#

no they're literally staff on dr brights

royal mica
slate flume
#

I'd assume they have some kind of system for it

pulsar locust
#

Also I need to replace the cpu in my apartment pc
I'm cpu bottlenecking a fucking RX 5600 XT

#

Which is a gpu from 2019

slate flume
#

I think replay software is essentially because for a larger server you should have some shred of evidence when banning someone that isn't just word of mouth

pulsar locust
sacred sierra
pulsar locust
#

unless it's a new enough intel pc to have intel vaapi support

#

Don't remember

#

But Intel's built in encode on hardware that supports it is pretty good iirc

royal mica
#

In my experience, medal is not reliable at all. We banned using that or have to manually download the video, cause we had multiple links expire in short time

slate flume
#

The initial point here is that cheater reports are easy to make, there's next to no reason to not make them

pulsar locust
slate flume
#

If you're banning people without clips on your servers, then that's your perogative, but I wouldn't advise that for most people

pulsar locust
#

Switched to steam background recording, I'd rather deal with the random "failed to play background recording" than the shit medal is now

slate flume
#

And if you have the clips in the first place then there's almost no reason to not submit a cheater report

pulsar locust
#

Honestly I might try and see how amd adrenalin's clipping fares

slate flume
#

I use steelseries moments GoodOne

pulsar locust
#

I don't even have any steelseries shit

#

I'm rocking 2007 hp keyboards on both my pcs

slate flume
#

I kept having nvidia corrupt on me so I decided to go with moments and it's great

slate flume
pulsar locust
#

yeah I figured

slate flume
#

I got steelseries headphones

pulsar locust
#

Most of my audio gear is hyperx

slate flume
#

Why would you do that

pulsar locust
#

I got HyperX headphones on one pc (the other one has some old microsoft ones) and I carry around my hyperx quadcast with me

#

The quadcast with mini usb, not the new quadcast s lol

slate flume
#

For the price you buy a hyperx at I think there are better options

pulsar locust
#

My only complaint is that they're hp owned and the RGB stuff is way overpriced for what it is, so I haven't bought the RGB stuff

slate flume
#

Unless you mean for like low-end headphones

pulsar locust
#

Not that I am a huge fan of rgb lol

slate flume
pulsar locust
slate flume
#

Almost all their products are overpriced for what they are

pulsar locust
#

It's still a huge improvement over what I had

slate flume
#

I owned HyperX headphones at one point

pulsar locust
#

I had a pair of headphones that actually hurt to wear for longer than 3 hours

sacred sierra
#

and nvidia filters are also weird

pulsar locust
#

And the audio quality was so bad