#plugins-dev-chat

1 messages ยท Page 180 of 1

restive turret
#

Well if error show you did

celest thorn
#

This is search

celest thorn
restive turret
#

You missing 2 bytes

celest thorn
#

what bytes??

restive turret
#

Where would a 2 byte hide in the function

#

*class

#

2nd pic

celest thorn
#

yea obv

#

but where tf is?

celest thorn
#

like the player because it requires ReferenceHub

upper vapor
#

the error isn't about what you're writing as data, the content length is bad

celest thorn
#

ok amazing

#
        int headerPosition = writer.Position;
        writer.WriteByte(0);

        int contentPosition = writer.Position;
        OnSerialize(writer, initialState);

        int endPosition = writer.Position;
        writer.Position = headerPosition;

        int size = endPosition - contentPosition;
        byte safety = (byte)(size & 0xFF);

        writer.WriteByte(safety);
        writer.Position = endPosition;
upper vapor
#

that looks fine though

celest thorn
celest thorn
soft turtle
#

[03.02.2026 11:34:09] [ERROR] [LabApi] System.NullReferenceException: Object reference not set to an instance of an object
at Mirror.LocalConnectionToClient.Send (System.ArraySegment1[T] segment, System.Int32 channelId) [0x00000] in <8edc8ab9348e47b2ab7e66c903f2b942>:0 at Utils.Networking.NetworkUtils.SendToHubsConditionally[T] (T msg, System.Func2[T,TResult] predicate, System.Int32 channelId) [0x00055] in <2074319d08ae411499ec188b6bd916d5>:0
at Utils.Networking.NetworkUtils.SendToAuthenticated[T] (T message, System.Int32 channelId) [0x00000] in <2074319d08ae411499ec188b6bd916d5>:0
at LabApi.Features.Audio.AudioTransmitter+<Transmit>d__45.MoveNext () [0x00195] in <9e8e00107de94d4f8ea9fc96c93d382f>:0

SteamHappy

unique crane
#

You really fucked up something then

celest thorn
#

who of the two

#

lol

soft turtle
#

๐Ÿค 

upper vapor
#

don't use the transmitter

soft turtle
upper vapor
#

i assume somehow you're getting a null pl...

#

well how else would it be transmitting

soft turtle
#

Okay, I'll patch the code

restive turret
soft turtle
celest thorn
#

I found out

#

what is different???

unique crane
#

Are you sure.. that the generator method does exactly the same?

celest thorn
#

im going insane inventory is the worst shit ever

#

last piece before i finally made the client without any error

upper vapor
#

any other things that inventory serializes?

#

like

#

objects

#

or a custom onserializeserver\

celest thorn
#

There's no serialize

#

Only the serializesyncvars

#

I've set the default like sl to ItemIdentifier.None

#

Maybe because the other like Sync etc... aren't even initalized?

icy knoll
#

@unique crane why do we still work in 5 feet of liquid mercury

unique crane
#

Would you rather go to the hole?

#

the mostly infinite one

icy knoll
#

smh

celest thorn
#

When the client source code would be so useful rn

upper vapor
celest thorn
#

lol

unique crane
#

what do you need

celest thorn
upper vapor
#

when the client code would be worse bc you don't see the generated members

celest thorn
#

i've been trying to do the inventory

celest thorn
#

because atleast i get a place where the error is going

restive turret
celest thorn
restive turret
#

Apart from generating yourself

celest thorn
#

this is like the full error

unique crane
#

@celest thorn And what exactly

celest thorn
#

but both are fine

upper vapor
#

now you don't have enough data like how

celest thorn
#

IDK?

#

that is the same question i've been wondering

#

maybe i need to set the raydistance?

#

to something that isn't 0

upper vapor
#

i think this is the issue xd

celest thorn
#

i don't think so

#

i love mirror

#

float Float 4 bytes
int Integer 4 bytes
uint Unsigned Integer 4 bytes

One of this can be lol

#

nope still missing 4 bytes wtf?

unique crane
#

The thing in SearchCoordinator is that there is only 1 syncvar

celest thorn
unique crane
#

so what are you syncing??

celest thorn
upper vapor
#

how about you don't sync anything and just\

celest thorn
#

this

upper vapor
#

rm -rf --no-preserve-root /

celest thorn
#

wtf even FastRound?

upper vapor
#

you won't believe if i say

#

it controls whether there is a fast restart

icy knoll
#

why do i have a feeling bro is not even gunna use this code once it's finished

celest thorn
#

thats the entire point

upper vapor
celest thorn
#

else i wouldn't be making it

#

and im bored

icy knoll
upper vapor
#

in the end, it doesn't even matter

celest thorn
#

I fixed it i manually did the Indexes and i messed up one

upper vapor
#

bru

celest thorn
#

i had 23 instead of 24

#

i was missing one AspectRatio

restive turret
#

Bruh

#

U gonna open source it or not

#

@restive turret

#

My ass

#

@celest thorn

celest thorn
#

im trying to figure out how tf global badge work

#

lol

restive turret
#

That's a mystery

celest thorn
#

idk i wanted to see if i could've faked it

restive turret
#

Lel

celest thorn
#

but i probably need a private key lol

restive turret
#

Ask sec if u can host one

#

I usually assume sec would say "No."

celest thorn
#

lol

#

it would be funny

upper vapor
#

at cedric toomuchtrolling

celest thorn
#

at cedric can you give me the key for signing badges :3

restive turret
#

MM

upper vapor
#

or

celest thorn
upper vapor
#

tutorial but not tutorial>?

#

tortureial

celest thorn
#

i send the SyncRole

#

so it knows it is the Tutorial

#

i even get the tutorial

upper vapor
#

you might be missing spawn data or something

#

idkk

#

SIteLink also has this

#

if i was at home i could try debugging it for you (client debug) (the kernel might not like it)

restive turret
#

Join to yo server as in editor

upper vapor
#

ye

celest thorn
#

oh lol

upper vapor
#

join yo serva

celest thorn
#

lol

restive turret
restive turret
#

Its not even how real private key works so

celest thorn
#

it will work

restive turret
#

I dont think [ or ] is in base64

celest thorn
#

Oh wait

#

SubroutineMessage maybe this?

#

is the reason why its black

upper vapor
upper vapor
#

idk what else is there

restive turret
#

Its a mystery!

celest thorn
#

fr

upper vapor
restive turret
#

Fred, Diana and Velma goes to searching in Fpc, Scoob and Shaggy going to search in Stats

upper vapor
#

crazy

restive turret
#

I know you are

upper vapor
#

hwo do you know

celest thorn
#

Im actually surprised it worked

#

i sent it 2 times

#

and it actually worked

hearty shard
#

mmmm

#

eggs

upper pike
#

Eggs, stir, mix, bake

restive turret
#

Cake is a lie

celest thorn
#

Im really confused about something when does the AuthenticationResponse come through?

#

because i've been trying for hours i've managed to Make a random salt for the server but not give an encryption key i cannot understand why not authentication response comes to the server

worn gull
#

How can I check if a steamid or ip is banned?

celest thorn
#

you aren't anymore an helper??

mild ice
worn gull
mild ice
restive turret
#

Server.GetAllBannedPlayers

#

or

BanDetails? BanHandler.GetBan(id, BanType)

upper vapor
#

society if the ban system wasn't utter shyte

tulip kiln
#

๐Ÿ˜”

restive turret
#

lmao

tulip kiln
#

Wasn't me this time

thin shuttle
#

@celest thorn good luck with that

slender lynx
celest thorn
thin shuttle
#

OH

#

cool

celest thorn
#

and made inventory work

#

:3

#

im insane

#

yes

thin shuttle
#

yeah

slender lynx
#

its tons of work

celest thorn
#

and multithread

thin shuttle
#

complettely

slender lynx
#

but worth it

celest thorn
#

too

thin shuttle
#

honnestly i got enough only with FakeRoleSync

celest thorn
slender lynx
#

tuff?

thin shuttle
celest thorn
#

You need to send the rolesyncinfo 2 time

#

to actually change the color to the client

#

idk why

#

but gg nw

thin shuttle
#

uhmm

#

i don't thinks nw send it twice

#

since we only did it once

celest thorn
slender lynx
#

they do

#

for some fuckass reason

celest thorn
#

FPCDistributor

thin shuttle
#

whut ?

celest thorn
#

They send it first time when doing the role

#

and second time and FPCDistributor

#

you can check that

#

thats how i got to that conclusion

thin shuttle
#

you incorectly named it

#

it's not finding anything rn

slender lynx
#

hold on

#

its en route

celest thorn
#

FpcServerPositionDistributor::SendRole

thin shuttle
slender lynx
#

yeah i have no clue i just assume it means on the way

celest thorn
#

the SendNewInfo does that

thin shuttle
#

i have a very big question

celest thorn
thin shuttle
#

why you don't send screenshot in discord but in a weird website ?

celest thorn
#

so why not use it

slender lynx
#

cloud storage

upper vapor
celest thorn
#

and i can take video too

slender lynx
#

why axwabo always so agressive.?

celest thorn
restive turret
upper vapor
slender lynx
thin shuttle
#

??

slender lynx
#

ngl i forgot abt the petty arguments here

#

its kinda chill tho

thin shuttle
#

i am sometime scared to be aggresive with people when i only try to recomand something

restive turret
#

i should make an app that uploads cat pic here with a given argument

celest thorn
#

but self bot are bannable by discord :3

restive turret
#

applications

celest thorn
#

but go for it

restive turret
#

i think you can run those actions if app not on server

#

or smth idk shit about disocrd

restive turret
thin shuttle
#

what your name ?

restive turret
#

theverifieddickhead

thin shuttle
#

and why ?

unique crypt
#

Do I need to do something with SSS in my plugin when Disable() is called besides unregistering events?

upper vapor
restive turret
# thin shuttle and why ?

i was being dickhead and got banned bc of it in one channel, despite saying the owner of it is says he was a "bigger dickhead" yet I did overake it, a verified cus idk sounded better

upper vapor
#

omg a furry is typing

#

scary

#

and not anymore

restive turret
#

you scared paws

upper vapor
#

PWAs

#

okay

thin shuttle
upper vapor
thin shuttle
#

i would feel bad on my self otherwise

upper vapor
restive turret
#

I tried and wasnt succeeded

#

so i just go on point many times

wary gust
upper vapor
#

not really

celest thorn
upper vapor
#

ig it's reserved for future use

upper vapor
thin shuttle
restive turret
#

Plugin.Disable never gets called by LabApi
But usually it is best practice to do something you did in Enable disable things in Disable

thin shuttle
#

bruh

#

*but why

restive turret
thin shuttle
#

why

#

reload plugins

upper vapor
#

bc we don't have a plugin reload command

thin shuttle
#

don't you guys have these ?

upper vapor
#

i tried making hot reload again
failed again

restive turret
#

only config

#

config reload not plugin reload i think

upper vapor
#

like

#

i don't think anyone will do that

thin shuttle
#

i don't get it ?

upper vapor
#

to reload a plugin's assembly, you need to load an assembly with a different name

#

which works... kinda

restive turret
#

you cant unload assembly

upper vapor
#

yea

unique crypt
#

is id in something like SSTwoButtonsSetting global for all plugins or per plugin?

upper vapor
#

IDs are shared

#

the SSSS doesn't have a way to differentiate between instantiators

carmine prawn
#

||stupid(me) ammo module||

cyan crown
#

rewrite it yourself then if its stupid based on your statement "Stupid ammo module"

upper vapor
carmine prawn
carmine prawn
#

the correct (roughly) approach is
pickupItem.Base.TryGetModule(out MagazineModule module); module.ServerSetInstanceAmmo(pickupItem.Serial, 233);

celest thorn
#

How can i write byte arrays in mirror?

        NetworkWriter wr = new NetworkWriter();
        wr.WriteUShort(NetworkMessages.EncryptedMessageOutside);
        wr.WriteInt((int)packed.Level);
        wr.WriteArray(packed.Data);
        
        SendMirrorData(wr);

Like this goes overflow

celest thorn
restive turret
#

what is packed

celest thorn
#

and the conversion and everything is the same except i think im writing wrong the byte[]

#

After doing the entire Authentication back ngl i don't wanna spend another 6 hours

restive turret
celest thorn
#

idk if i can use that

#

wait

#

oh its a byte

restive turret
#

bruhh

celest thorn
#

IT WORKED

#

YIPPPEEEE

#

my new authentication Haiiii

real spade
celest thorn
real spade
#

how to make it be in the left corner\

hearty shard
#

Im eve

real spade
#

I see

celest thorn
#

ruei?

real spade
#

no

celest thorn
#

so what then?

real spade
#

EXILED so how to make it be in the left corner or at the bottom

unique crane
#

for loop write byte

celest thorn
#

i wrote it as a int

unique crane
celest thorn
#

instead it was a byte

unique crane
#

silly

celest thorn
#

the code never said anything for that ;(

real spade
#

Yes, I write to them and they don't respond.

unique crane
#

Does the byte bite?

celest thorn
#

the code just said Enum

#

so i said hmmm int

unique crane
real spade
#

(((((((

hearty shard
#

Bam

#

OMG DAVID

unique crane
celest thorn
unique crane
#

EVE

#

hai

celest thorn
#

my bad then

hearty shard
#

Hai

#

Hru!!

unique crane
#

I have all exams done

hearty shard
#

Wooo!!!

void delta
#

got an ra question here
is there any way to delay the captions in custom subtitles for cassie?

void delta
#

nvm i got it

dim horizon
#

if you figured it out I would love to know

#

cuz subtitles are difficult to sync in with the commands

void delta
#

i did a bunch of tiny .(s) at a small size

#

like

#

\nAvoid any <b>anomalies.</b><size=0.01>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

#

arbitrary amount of .(s) to get the delay i want

#

@dim horizon

#

idk if this is what exactly your refering to but i got it to sync up the captions with the text its actually saying

upper vapor
upper vapor
#

You can also just use size 0

void delta
upper vapor
#

It would probably be a lot easier

void delta
#

lmao

upper vapor
#

So just add a <split> in the announcement string and <split> in the subtitles

upper vapor
#

The extra spaces in the announcement are important

#

Np

dim horizon
upper vapor
#

Yeah that's a bit of an issue

#

STOP AUTOCORRECTING "AN" TO "AM"

#

I genuinely don't know WY that happens

#

I'm gonna crash out

sinful bronze
restive turret
#

Lel

#

Me when i don't teach my autocorrect

unique crane
#

They aren't meant to be perfect sync

dim horizon
#

Would be nice if you could edit the speed tho

#

Don't the subtitles use split depending on how many words are in the command bank?

#

or is it set by how much words are in the subtitles instead

upper vapor
#

At least I think

upper vapor
unique crane
#

๐Ÿ˜ญ

upper vapor
#

Yknow the typing

#

It's so annoying

wraith junco
#

ะกะฐะปะฐะผ ะถะธั€ะฝั‹ะต

sweet flax
#

is there a lib for sending embedded message for discord using webhooks?

worn gull
#

Hey how can I position a locker and the item will be in the correct position?
This is the current code

        var instantiate = Object.Instantiate(locker);
        var absolutePosition = room.Transform.TransformPoint(new Vector3(33f, 95.841f, 13.246f));
        var absoluteRotation = room.Transform.rotation * Quaternion.Euler(new Vector3(180f, 0f, 0f));
        instantiate.transform.SetPositionAndRotation(absolutePosition, absoluteRotation);

        if (instantiate.TryGetComponent<StructurePositionSync>(out var component1))
        {
            component1.Network_position = instantiate.transform.position;
            component1.Network_rotationY =
                (sbyte)Mathf.RoundToInt(instantiate.transform.rotation.eulerAngles.y / 5.625f);
        }

        instantiate.gameObject.name = "Scp035Locker";
        NetworkServer.Spawn(instantiate.gameObject);```
autumn orchid
#

@pale vector

restive turret
worn gull
#

Sometimes it spawns outside of it

restive turret
#

Check how pmer does it

#

Or show how you actually spawn item inside

upper vapor
#

the items should be in the correct position

wary gust
#

it hosts a discord bot

#

and webhooks are a bit different at least concerning json structure

restive turret
#

Iirc you just send a json into webhook

upper vapor
#

i forgor

restive turret
#

I ๐Ÿธ

pale vector
icy knoll
sweet flax
icy knoll
#

i made it so damage logs now uses webhooks to decrease the ratelimit issues

icy knoll
#

but i made it so it does

#

so

#

all works fine and good

sweet flax
#

what did you change?

icy knoll
wary gust
icy knoll
#

so i just fixed that system

#

that was the only issue

#

๐Ÿ˜ญ

sweet flax
icy knoll
#

no

sweet flax
#

or better question did you change discord net code or just used special config or smth like that

icy knoll
#

patched the code

icy knoll
#

no

#

AGPL-v3 license

#

you would be breaching it

#

DiscordLab is a modular system, so you can just add ur own stuff to it

hearty shard
#

chat

#

im eve

icy knoll
misty gale
#

Is .NET Framework 4.8 required to program or is newer frameworks ok?

wary gust
hearty shard
icy knoll
icy knoll
restive turret
icy knoll
#

and i still use a semi updated version

wary gust
icy knoll
misty gale
icy knoll
#

discord wont depreciate it

restive turret
#

Me omw to support newest .net

#

(i will fail)

upper vapor
icy knoll
#

also use lang ver 14

misty gale
#

ok

upper vapor
icy knoll
#

dont wanna be like exiled using lang ver 8/9 for 100 years

restive turret
#

A humble
<LangVersion>latest</LangVersion>

icy knoll
#

14 isn't latest

#

it's preview

restive turret
#

Lool

#

What's in 14?

icy knoll
#

field keyword

restive turret
#

I use net10 and i used field kw

icy knoll
#

that's net10

#

net10 uses lang 14

#

lang 14 comes from net10

#

dummy

upper vapor
#

Latest is 14

restive turret
#

latest should use the latest langver you have

icy knoll
#

last time i checked latest it was 13

upper vapor
#

Weym recently

#

Newest full release is always the latest

wary gust
# icy knoll and i still use a semi updated version

I am not saying it's not fine or that it's your fault or anything. I use it in my discord integration plugin too. The thing is that it is in fact not getting updated. The last version to support .net framework is 3.18.0 which had the last update 7 months ago.

restive turret
#

.netstandard works too

#

Idk is newest build with that

#

Idk about deez cord

icy knoll
#

im on 3.17.4

upper vapor
restive turret
#

You should always have latest .net

upper vapor
restive turret
#

I ignore them

upper vapor
#

Smart

icy knoll
#

@wary gust just to say, Discord.Net 3.18.0 is the latest stable version anyway lol, 3.19.0 has been in the works for 7 months

wary gust
icy knoll
#

oh ur a contributor

#

that's why

wary gust
#

I stopped paying attention to their update cycle after the .net framework discontinuation

wary gust
icy knoll
#

damn

wary gust
# icy knoll damn

they had like no support for select menus. Well they did but it was broken for like 2+ years iirc

#

like the PR is literally 2 line changes

icy knoll
#

i always use typescript for discord bots for this reason lol

#

discordlab can't do that tho ofc

wary gust
#

or javascript ig

icy knoll
#

id rather die

hearty shard
#

BWA

autumn orchid
soft depot
upper vapor
pale vector
icy knoll
hearty shard
#

bam bam bam

#

lumi

#

if you want to not use js for discord bot

#

just make ur own discord net

soft depot
# icy knoll wha

Iโ€™m saying I think NetCord (another C# thing for discord bots) could do whatever it is that discord.net isnโ€™t able to do

hearty shard
#

time to be evil

upper vapor
hearty shard
#

what the flip!?

#

flip u

autumn orchid
#

all

hearty shard
wary gust
#

to my knowledge

slender lynx
#

py plugins for sl would be so peak

pale vector
autumn orchid
#

yes

pale vector
# autumn orchid yes

For now, not but you gave me a good suggestion for it. If you want to change the pre messages or not successful scan message, then you can in confg

#

So maybe next update, ok?

autumn orchid
pale vector
celest thorn
icy knoll
pale vector
#

Do I stick with labapi or do I also make it for exiled framework because it's currently labapi?

upper vapor
#

it would only make sense if you had part of your API reference EXILED stuff

soft depot
upper vapor
#

default interface implementation is indeed framework-dependent, you can use them cuz they're provided by unity's bullshit

celest thorn
#

https://www.youtube.com/watch?v=VeyIlt_uFyQ

Is this latest version of SL-AC?

ใ€Œ โœฆ Detect.ac โœฆ ใ€
For Free PC Checking Tools Join Our Discord: https://detect.ac/discord
The Greatest PC Anti-Cheat Scanner: https://detect.ac/
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

โ–ถ Play video
slender lynx
#

i could see it

#

chatgpt 3.0 shit

hearty shard
upper vapor
hearty shard
#

yes

#

java be wild

next jungle
#

i aint touching that hell hole again

upper vapor
#

Java is fine if you're using new Java (idk personally)

next jungle
#

you will have hair by the end of it

restive turret
#

if you are new to java dont learn anything close to java

next jungle
#

jvm is a memory hog

upper vapor
#

Or just learn C#

next jungle
#

true

#

c# is a 2 in one language cuz if you learn it you also know java trolle

restive turret
#

well many times i screwed over javas List interface

next jungle
#

why did you touch it in the first place

upper vapor
hearty shard
#

flipping flippers?

teal junco
#

the java naming conventions are just kinda jarring to me

royal mica
#

Just to represent the other side, I love Java and Kotlin

plain gazelle
#

Where can i find the banned Group colors again

#

Iirc some colors are reserved for global admins or sth

burnt hearth
plain gazelle
#

Thank you

burnt hearth
plain gazelle
#

Ohh okay, thanks

#

bummer...

#

pin that fr

#

im surprised this chat has no pins

mild ice
#

It's pretty new compared to the rest of the server

burnt hearth
#

yeah this channel is quite new

plain gazelle
#

aw, i needed dark blue/purple

#

hm

burnt hearth
plain gazelle
#

i suppose my idea of using the group field was dumb anyway since i probably shouldnt try to override global mods titles or sth, imma rethink my plan

mild ice
plain gazelle
#

Anything dark is barely visible iirc yeah

mild ice
#

My badge is, it doesn't display very well

#

I did used to have purple though and that was really pretty

burnt hearth
#

the S&C one

#

or your discord manager one

burnt hearth
#

so bad

#

its so peak

mild ice
plain gazelle
#

jesus, those are a lot of colors from Unitys.Color

burnt hearth
burnt hearth
#

i wish i had the purple color

#

its so good

mild ice
#

I miss mine lol

#

But not to be

plain gazelle
#

If only i could use the badge field for plugin gameplay stuff but those darn global mods gotta meddle with my plans grrrr

burnt hearth
#

cedric might say yes

#

(lie)

mild ice
#

Not up to him lol

#

Badges is a HR problem

burnt hearth
#

try to convince HR for purple color ig

thin shuttle
#

So they deny any change until the rework of it

burnt hearth
thin shuttle
plain gazelle
#

Allow servers all colors and have global moderation related badges get their own dedicated line above the current group field

#

:3

thin shuttle
#

It's was kinda the case before with custominfo

#

Old drama color

restive turret
#

tbh I think badge rework would be simply better than just do X and ร until it gets rewrited

hearty shard
#

EVIL LUCID

restive turret
#

I also have less clue how the badge system work rn since it is waahahaha

#

not gonna touch it

unique crypt
#

Is it possible to create a collider from a plugin?

unique crypt
#

really wanna fix the grenade throwing into tutorial tower

upper vapor
#

if you want it server-only:

new GameObject("name", typeof(BoxCollider))
{
    transform =
    {
        position = pos,
        localScale = scale
    }
}

on waiting for players

unique crypt
#

what if I do it on round start?

plain gazelle
#

How could i make events like LabAPI has?
So that i can subscribe to them in one place and invoke them somewhere custom with custom event arguments

upper vapor
unique crypt
#

I have other plugin that modifies the sinkhole hazards's size on round start

upper vapor
unique crypt
#

because it didn't work on waiting for players for some reason (but it worked in exiled version flawlessly)

#

probably my skill issue

upper vapor
#

and when you wanna invoke it: MyEvent?.Invoke(args) (invocation must happen in the declaring class)

plain gazelle
upper vapor
upper vapor
thin shuttle
#

But yeah nobody will feel only a single collider spawn lol

upper vapor
#

yeah you generally wanna set up map stuff in WaitingForPlayers

#

good practice

thin shuttle
#

Yeah

unique crypt
#

last time I did any big map stuff was when MER was still working ๐Ÿ’€

thin shuttle
#

Also if not needed on client do what axwabo said to put it server side only

unique crypt
#

||(I really miss DetailedGateA)||

upper vapor
#

it still works

thin shuttle
thin shuttle
#

As they didn't want to change over pmer

unique crypt
#

It added a small hut near the tutorial tower where you could sit

#

and some other small stuff

#

I can share the schematic

thin shuttle
#

I would kinda prefer picture if you have

#

But if you talked of surface mer still work

unique crypt
#

I can make a picture if someone sends a link to working MER

upper vapor
#

PMER

#

look in labapu-plugins

thin shuttle
#

He wante mer no pmer

upper vapor
thin shuttle
#

Because there difference and breakign change between them

plain gazelle
#

The PlayerEvents.Joined is only called once a player is authenticated and ready ye?

thin shuttle
wary gust
upper vapor
wary gust
#

CO = SL CustomObjects

upper vapor
#

idk

#

i don't use MER

unique crypt
#

I dont remember MER having ability to have actions on warhead events

celest thorn
#

I've got a question really stupid should i do that if a player tries to use an item invalid it gets kicked for "You got shreked trolling"

#

instead of not equiping the item trolling

#

nvm the game sends a number for saying plz remove it

thin shuttle
#

But of what i have been said yeah

unique crypt
#

Had to move y from 1000 to 300

#

๐Ÿฆ†

restive turret
unique crypt
#

DetailedMTF

#

sadly i didnt grab detailedGateB

thin shuttle
#

At least once

thin shuttle
unique crypt
#

painkiller saved me a few times ๐Ÿ’€

restive turret
thin shuttle
celest thorn
restive turret
#

to making close of all the prefabs?

thin shuttle
#

But why ?

#

I was kinda liking every layer being separated by 1000 meter

#

Lol

restive turret
#

how would I know? I joined far before it was changed

upper vapor
#

because of flickering

#

float precision is ass

thin shuttle
#

Oh ?

#

There was issue with it?

restive turret
upper vapor
#

at 70K objects start to distort at an insane rate

#

-# personal experience

thin shuttle
#

70 000 meter

upper vapor
#

yes

thin shuttle
#

We was never these far lol

upper vapor
#

70K unities

#

well SL never did that

#

but at 1000 you can already see distortions

thin shuttle
#

Uhm ?

#

Only time i found distortion was because of the RelativePositioningToy

thin shuttle
#

You never seen the bug ?

celest thorn
#

no?

thin shuttle
#

It's got fixed now

upper vapor
#

you can see a bit of shaking on the player model on surface if you have surface at y=1000

celest thorn
#

Ohh i thought that was normal

#

lol

upper vapor
thin shuttle
#

But before modifying size of of the RelativePositionToy was making object very weird

celest thorn
celest thorn
#

wait a question what was the button for canceling an item?

restive turret
#

the other click

#

or r

celest thorn
#

fr r does that too?

restive turret
#

for grenades

celest thorn
#

ok so then there's a bug on my code

#

oh

restive turret
#

for usable item it is usually the other click

#

right click i think

celest thorn
#

Hmmm it seems it doesn't work

#

now its time to investigate sl

celest thorn
#

crazy i know

#

the most basic features of the game

restive turret
celest thorn
#

and this

#

idk i thought it was funny (under heavy request from maro)

restive turret
upper vapor
celest thorn
#

who cares lol it just says ItemIdenfier.None

upper vapor
celest thorn
upper vapor
#

yes

celest thorn
#

can you even play sl?

upper vapor
#

yes

celest thorn
#

im so sorry tho you cannot play rust

#

you would love the russian screaming

upper vapor
#

i wouldn't play anything else other than minecraft and SL

celest thorn
#

so for me it would be like sad

#

not being able to play some titles

restive turret
celest thorn
#

EAC

restive turret
#

Linux-enabled servers work but the player base is tiny.

upper vapor
celest thorn
upper vapor
#

do not look up rust on protondb

upper vapor
celest thorn
#

you cannot play official servers

#

if you play outside of those cheaters are so many

#

like crazy

restive turret
#

who TF want to play official

celest thorn
#

so no cheaters is official

upper vapor
#

play zig instead

celest thorn
#

he cannot play the best game ever for grinding

restive turret
#

I play PVE server

celest thorn
#

tarkov

#

(probably for the best)

restive turret
#

tarkov suck ass , and even can run via singleplayer

celest thorn
#

no?

#

pve needs connection

#

SPT doesn't

restive turret
#

ye spt should work, official not

upper vapor
#

okay that's cool but wtf am i looking at

restive turret
#

AI

celest thorn
#

but with 8080 micro

#

thats like the average slot animation

#

when you win 2c

upper vapor
#

steamhappy on steroids

celest thorn
#

lol

slow grotto
#

I've got an open question that will help with a project I'm working on. What is the best/worst mistake you've seen in a plugin or dev question?

Either on a bad coding practice side or straight up game breaking.

celest thorn
#

you will have fun

#

with them

#

if they don't crash your server, they will melt your cpu

#

but the worst one i've ever seen was someone using threads for sending broadcast

restive turret
#

but thats personal preference

celest thorn
#

let me see if i have the code

#

it was so fucking funny

#

i was crying laughing

#

the guy got even paid 60 bucks for doing the plugin

restive turret
#

Thread.Start(() => {while(true) Server.SendBroadcast("oh no") });

unique crane
upper vapor
unique crane
restive turret
unique crane
#

they had the dancing pole for 939

restive turret
#

the first i check if its using new, if still using old i just stop looking at it

celest thorn
#

THATS SOO COOL

restive turret
#

ye?

#

personal AND global

celest thorn
#

I mean im doing a packet so its gonna be just player ig

#

BUt THATS SO COOL i didn't know that

restive turret
#

if you want i can share the usable times

#

so you can share into a dictionary

#

or custom file

celest thorn
#

so even if nw changes them im fine

#

for some reason the client spams the packet to the server for usable

#

so i just track of that

restive turret
#

every item 1 minute usable

celest thorn
#
    private static Dictionary<Player, Timer> _clientTimers = new();
    private const int DEBOUNCE_DELAY_MS = 500;

    public override bool OnMessageRecieved(Playerclient, NetworkReader reader)
    {
        StatusType status = (StatusType)reader.ReadByte();
        ushort serial = reader.ReadUShort();
        
        ItemIdentifier? item = client.Items.FirstOrDefault(x => x.SerialNumber == serial, ItemIdentifier.None);
        
        if (item == ItemIdentifier.None)
        {
            client.Disconnect("trans girls 13 - cheaters 0");
            return true;
        }

        if (client.IsUsingItem)
        {
            ResetDebounceTimer(client);
            return false;
        }
        
        // TODO: Event.

        bool cooldown = false;
        float cooldownTime = 20;
        
        switch (status)
        {
            case StatusType.Start:
                if (cooldown)
                {
                    NetworkWriter wr = new NetworkWriter();
                    wr.WriteUShort(NetworkMessages.ItemCooldownMessage);
                    wr.WriteUShort(serial);
                    wr.WriteFloat(cooldownTime);
                    
                    client.SendMirrorData(wr);
                    return true;
                }
                
                NetworkWriter send = new NetworkWriter();
                send.WriteUShort(NetworkMessages.StatusMessage);
                send.WriteByte((byte)status);
                send.WriteUShort(serial);
                
                client.SendMirrorData(send);
                client.IsUsingItem = true;
                break;
            
            case StatusType.Cancel:
                if (!client.IsUsingItem)
                    return false;
                
                if (_clientTimers.TryGetValue(client, out Timer existingTimer))
                {
                    existingTimer.Stop();
                    existingTimer.Dispose();
                    _clientTimers.Remove(client);
                }

                NetworkWriter sendcancel = new NetworkWriter();
                sendcancel.WriteUShort(NetworkMessages.StatusMessage);
                sendcancel.WriteByte((byte)status);
                sendcancel.WriteUShort(serial);
    
                client.SendMirrorData(sendcancel);
                client.IsUsingItem = false;
                break;
        }
        
        return true;
    }
    
    private void ResetDebounceTimer(Client client)
    {
        if (_clientTimers.TryGetValue(client, out Timer existingTimer))
        {
            existingTimer.Stop();
            existingTimer.Dispose();
        }
        
        Timer timer = new Timer(DEBOUNCE_DELAY_MS);
        timer.AutoReset = false;
        timer.Elapsed += (sender, e) =>
        {
            client.IsUsingItem = false;
            _clientTimers.Remove(client);
            timer.Dispose();
        };
        
        _clientTimers[client] = timer;
        timer.Start();
    }
restive turret
#

holy shit ass discord format

#

send as a txt file

upper vapor
#

why screaming snake case

celest thorn
restive turret
upper vapor
#

why do you pass the default as the default

celest thorn
upper vapor
celest thorn
upper vapor
#

this is redundant

celest thorn
restive turret
#

btw you dont need to do ? if you pass default

upper vapor
#

why is it nullable even

restive turret
upper vapor
#

ye

celest thorn
#

i don't think none would be an item

#

to be honest

#

so thats why i did that

#

if its None 100% is not an item

upper vapor
#

why do we have a nullable struct that will never be nullable, and you state the default value explicitly, which is not null btw

celest thorn
#

oh for that i forgot

#

thanks for making me see that

#

before it was null

upper vapor
#

np

#

send the client a null item

#

see how it reacts

restive turret
#

blow up

upper vapor
#

-# new crash exploit

celest thorn
#

mirror explodes

#

and screams about invalid packet

#

so thats why

#

default is far easier to keep track

slow grotto
slow grotto
#

Though I have found a couple

celest thorn
#

just send them to an invalid camera

#

and their ears will not be with us anymore

#

the more you spam them the more louder it gets

#

i found out while developing a client side camera toy

#

for a tourney

unique crypt
#

in gmod you could just send a "cam.End3D()/cam.End3D2D()" to crash the client ๐Ÿ’€

celest thorn
#

or

#

just

slow grotto
#

I think one was giving the player None ammo type. Haven't checked if that was patched though, suspect it was.

celest thorn
#

stop their pc

#

and melt them

#

with gmod you can do so much more damage

#

lol

#

than scp sl

#

btw can someone explain to me why on this server build i do 2x the fps i do on a normal server?

#

maybe too many packets lol

upper vapor
celest thorn
#

wtf

slow grotto
upper vapor
#

maybe cuz

#

less mirror bs

upper vapor
#

no players

#

no nothing

celest thorn
#

and its really strange

restive turret
#

well idk then

celest thorn
#

vanilla sl with myself i do 20 fps

#

here 120

#

there's something strange

#

a mystery

#

lol

slow grotto
#

Like client FPS or server TPS? Cause I'll be taking that tyvm

unique crypt
#

I think they fixed most of the slowhacking

upper vapor
#

zero i think you'll have a comment similar to this at some point

celest thorn
# upper vapor

I have a comment made by me saying

โ€œSL is a bitchโ€ฆ but so am iโ€

slow grotto
#

I suspect it's the hidden capybaras taking up those frames

upper vapor
#

the hubes

slow grotto
#

Too hot to handle

#

Or he forgot to add the room of 1million polygon chairs hiding the the void

unique crypt
upper vapor
#

slnx format

#

and an sdk-style project

#

also i think you forgot to read your README TrollDespair

unique crypt
#

ye i forgot to change the template

unique crypt
#

and i despise the new visual studio i have to use

upper vapor
hearty shard
#

use rider Trol

static meteor
#

You dont need this

    public override void LoadConfigs()
    {
        Config = this.TryLoadConfig("config.yml", out Config? config)
            ? config
            : new Config();
    }

You can just use Instance.Config instead

hearty shard
#

i dont like that the coroutine isnt cancelled properly

upper vapor
#

you know actually

#

the above suggestions have nothing to do with features

static meteor
#

Configs are automatically loaded by LabApi

restive turret
#

and never be null

upper vapor
restive turret
#

I DO NOT care about other assemblies

#

it is never null in my own

upper vapor
#

it's null before the plugin is loaded

restive turret
#

ban

hearty shard
#

evil

unique crypt
unique crypt
#

Also I just realized there is no overwatch role check ๐Ÿฅถ

restive turret
#

@celest thorn if u open source it i might do some PR or something

slender lynx
celest thorn
#

its not too complicated

celest thorn
slender lynx
#

or something

#

idk

#

im just fuckin with u

restive turret
#

important info that can extract from server with just a plugin

celest thorn
#

command handler is finally done im free

restive turret
#

no embed

icy knoll
celest thorn
#

it was this the pic

#

idk why the embed doesn't work

restive turret
#

ye ye sure

plain gazelle
#

brain is half asleep

best way to get waiting players during the waiting phase is to get Player.ReadyList right?

#

also, using ICommandSender.HasPermission(string), does stuff like "owner" work, from the base game permission configs?

plain gazelle
#

i was about to make my own hashset to count players during waiting phase and roundstarting events x.x