#plugins-dev-chat

1 messages · Page 60 of 1

restive turret
#

Tag david ig

#

Nvm hes not online

random scaffold
#

@unique crane fix need

unique crane
upper vapor
#

it's probably the stale room references again

restive turret
#

Yep, probably issue regarding the room stuff

#

Which when 14.1.2 release will be fixed

upper vapor
worthy rune
#

theres a PR for it, but its breaking(for other reasons) i can ask about moving the changes as im very busy atm but no promises

random scaffold
#

lol

#

im just used room.Position

#

from var room in Room.List

#

@restive turrethgkorko

#

how i can reset list to default?

#

which was before .SendFakeSyncListSet(

upper vapor
#

send a clear sync thingy, then add all original items

celest thorn
#

Hi

restive turret
restive turret
#

SendFakeSyncListClear
Then
SendFakeSyncListAdd
Or smth

#

Oh resetting uhhh

upper vapor
restive turret
#

¯_(ツ)_/¯

restive turret
#

I haven't even tested if the sendfakesynclist works

upper vapor
restive turret
upper vapor
upper vapor
#

what

#

haii

#

i pressed i and k at the same time

celest thorn
#

Is this game peak?

#

idk i was waiting this day for a long time

restive turret
#

Idk

#

I only played the Doom (2016) and Doom Eternal, i don't think my gpu can run the dark ages

#

I even get crashes on DE

celest thorn
#

I think my gpu can

#

and i hope

#

because else im going to cry in a corner

restive turret
#

My gpu is a 1050

celest thorn
restive turret
#

Min 8gb vram 😭

#

My gpu isn't even 2

celest thorn
#

1060 cost probably 50 bucks

restive turret
#

I wait for end of the year to buy a better gpu 💔

random scaffold
#

why after reset keycard limit changed to 0?

#

when _indexCategory = Weapon

#

and it works normal in first but not for reset

#

slejm moment

restive turret
#

Skill issue

#

Check player and server log

random scaffold
restive turret
#

Bro

#

I have not even tested any FakeSync stuff

random scaffold
restive turret
#

Are you sure

random scaffold
#

yes

#

after ew was reset

random scaffold
#

doesnt one toy exists on the server

plain gazelle
#

is it possible to change the volume rolloffmode for an audioplayer? that variable is only on the AudioSource unity component but idk how to access it

-# because i think by default it is Logarithmic, but i want it to be Linear

soft turtle
#

How to give a server all rights to all commands? Server.RunCommand($"/{commandRequest.Command}", Server.Host.ReferenceHub.queryProcessor._sender)

upper vapor
upper vapor
#

Did you mean to use the sudo command?

#

-# I wouldn't be surprised if it didn't work properly

soft turtle
soft turtle
royal mica
#

How does your server have no permission for that wtf

#

The client console should be excluded from all permission check

hearty shard
upper vapor
#

The server console has FullPermissions

royal mica
upper vapor
#

If the plugin handles it wrong, oh well

#

There's an Scs field in some class

#

Use that as the sender

#

(Double shift in Rider)

restive turret
#

@grand flower

upper vapor
#

Signatories
Why is that a word

soft turtle
#

How to understand that sender is a server?

sender is PlayerCommandSender
? Player.Get(sender)
: Server.Host

Not work

upper vapor
#

sender is ServerConsoleSender

#

Try that

#

What are you doing with this?

soft turtle
upper vapor
#

What command is not working

icy knoll
#

uh guys i have a minor problem...

Assembly-CSharp-firstpass has Discord.ActivityType, which conflicts with Discord.Net's Discord.ActivityType and I am now not able to use ActivityType anywhere because of this... is there a way to fix this maybe if someone knows?

#

me when i just remove firstpass as I don't think i need it, i probably will here :c

terse bone
upper vapor
#

put it in a global using and booom

icy knoll
upper vapor
#

you literally type the word global before using

icy knoll
#

but like would that actually fix it 😭

upper vapor
#

usually you put it in GlobalUsings.cs

#

you can place global usings in whichever file you want

#

there are msbuild directives for that, too
so you can put global usings in Directory.Build.props

unique crane
#

Am home

#

yey

unique crane
restive turret
grand flower
restive turret
#

now its 1.025M

grand flower
#

Hopefully we get a good amount over

#

In case of invalid signatures

upper vapor
upper vapor
#

is your middle name "LabAPI?"

severe cave
#

Why is that when in the OnPlayerMoved event plays when I am not even moving

restive turret
#

home "LabAPI" david

upper vapor
severe cave
#

northwood fix this thx

unique crane
#

No we dont

#

@severe cave You sure your on correct server?

grand flower
#

Fire an event every time a player moves, must be efficient

severe cave
severe cave
grand flower
severe cave
#

still northwoods fault

hearty shard
#

heh?

grand flower
#

Wat

hearty shard
#

schizophrenia hits hard

grand flower
#

Apparently

hearty shard
#

😭

grand flower
#

Oh right I forgot

#

To show you the folder structure

hearty shard
#

why did you forget?

grand flower
#

Gimme five mins almost home

hearty shard
#

Oh

#

that

#

i cant believe this

grand flower
#

I fell asleep, had a long day yesterday

#

Okay i'm home

#

@hearty shard anything in particular you're looking for?

hearty shard
#

curiousity

grand flower
#

I'll pick one i'm working on, gimme a sec to censor some of it

unique crane
#

1984

hearty shard
grand flower
hearty shard
#

interesting

grand flower
#

that's generally the way I go

#

and like

#

I'm not afraid of having lots of subdirectories

#

the more organisation the better

#

Like this is the kind of stuff we deal with at work (that's only source code, all written by hand)

severe cave
#

What is up in unityengine vector3, what does it do?

grand flower
#

it's just the up vector

#

points upwards

random scaffold
severe cave
#

Why is scaling players so goofy

true cedar
#

so like

#

why does the pool create a list with a capacity of 512

#

in what world would you need a list with 512 elements for only 1 thing

#

^ and because this is instantiated for every single T, there's like 10-15 different list pools with a list of capacity 512

severe cave
grand flower
#

what

true cedar
#

no im not asking about that specific numnber

#

im asking why its so large

#

by default

grand flower
#

Memes

true cedar
#

it just seems like wasted memory

grand flower
#

Not like SL tries to be efficient all things considered DogKek

true cedar
#

yea but like

#

they could change it to like. maybe 32

#

prob even less

#

same issue with HashSetPool

severe cave
#

obv why its 512

true cedar
true cedar
#

also for some reason this is used instead of the networkwriter / networkreader pool

true cedar
#

this hashset is never returned

#

RAAHHHH

grand flower
#

Yeah there's plenty of instances like this

true cedar
#

why not just return an ienumerable

#

then people can do whatever they want

#

List.Players.Where(x => ReferenceHub.IsSpectatedBy(x.Referencehub));

grand flower
#

yeah some scenarios should

true cedar
#

i dont see a scenario where it shouldnt

grand flower
#

me neither so far

restive turret
#

So you want me to change it again

upper vapor
grand flower
#

Imagine not knowing you need to return it like the majority of devs here

#

(it's bad design)

upper vapor
#

xml docs? mhm

grand flower
#

would make it a bit better but still bad design imo

upper vapor
#

agree

restive turret
#

Make a wrapper into it

upper vapor
#

what

#

you want like a
readonly ref struct ListWrapper<T>?

restive turret
#

ListPooler<T> : IDispose

#

And you just dispose aka return

#

Like the networkpooler

upper vapor
#

that will NOT prevent people from forgetting to dispose it 😭

restive turret
#

Or whatever the name

restive turret
upper vapor
#

not if you forget the using keyword

#

(a lot of people do)

restive turret
#

😭 cry fear

upper vapor
#

at eve, khm...

restive turret
#

well atleast you have other things to make fun of eveClassDTroll1

#

Vector.one gravity

upper vapor
upper vapor
icy knoll
#

why not just fix the pooled versions

upper vapor
#

because you can't fix the pooled versions

#

ultimately, people will not return the list

#

cuz they don't know that it's a pooled list

restive turret
#

Because I didn't wanna touch pooled version

#

They can use it to return if want

upper vapor
#

i don't really get the pooling for these things though

restive turret
#

But I guess some can be done to use IEnumerable ir smth idk

#

I never used pooling

upper vapor
#

not sure why people can't just .ToList() if needed

grand flower
#

Yeah IEnumerable is a good idea

upper vapor
#

i also opted to switching to enumerable, sometimes you just need a foreach, allocating a list is unnecessary

restive turret
#

Ok, so I gonna change those thing again to just use IEnumerable

#

And no pool

upper vapor
#

i guess it's kinda evident from the files changed and title

restive turret
#

I cant compile since not on pc

upper vapor
#

dotnet build Smart

restive turret
#

I edited via github.dev

upper vapor
#

you can compile on mobile

restive turret
#

My ass

#

I just wait 9 hour to compile

upper vapor
celest thorn
#

hiii

restive turret
royal mica
#

I have a weird question. Does the client console pl fetched from central or the server itself?

#

Cause it is not triggered by OnCommandExecuting

hearty shard
royal mica
#

great

hearty shard
#

what is pl comamnd

#

i forgot

royal mica
#

playerlist

hearty shard
#

ah

royal mica
#

Lists all the players online with steamid (if DNT is off) and PlayerID

#

Now that is fantastic, cause that is not patchable than from serverside

upper vapor
#

isn't it a player list request somehow?

hearty shard
upper vapor
#

i doubt that the LA itself could determine the nicknames and steam IDs

hearty shard
#

and if you had to request it every time you looked over someone, clicked N etc

#

thatd be annoying

upper vapor
#

we're talking about the local admin command though

upper vapor
#

ah

#

i might be blind

hearty shard
#

yes you might be

royal mica
#

PlayerList is different from the pl

#

PlayerList does not provide the UserID + SteamID

#

only names, roles, etc

#

while pl is ondemand

#

PlayerList comes from the server itself, I checked the serialization

hearty shard
#

yeah but client already has it

hearty shard
#

its when a player joins

royal mica
#

As far as code goes, the PlayerList itself is fetched from the Server

hearty shard
#

yes when server tells client that "hey a player has joined" no ?

royal mica
hearty shard
#

yes but pl command... client already has what it needs too

#

lmao

celest thorn
#

Helo chat

#

btw why TextToys have a SyncList what's the point lol?

#

like a string wasn't enough?

unique crane
#

I said this like 567775678967 times 😭

#

And to you too

celest thorn
#

fr?

#

i forgot sorry ;(

unique crane
#

Its to bypass the message size limit (UDP packet size)

celest thorn
#

OH lol

unique crane
#

My first idea was to not send whole message at once

royal mica
unique crane
#

but to let you define base and then format it

#

But then

#

This nice side effect

royal mica
#

I like this elegant solution tbh

#

Even makes sense. Create a template with arguments and then dynamically provide the arguments

celest thorn
#

Its so hard to do client side text toys

royal mica
#

Why?

celest thorn
#

that im going to quit and not even touch them

royal mica
#

It is just literally a string format

unique crane
#

Then just make them server-side

celest thorn
unique crane
#

So I wanted to visit a friend this weekend

celest thorn
#

next thing will be make a fake server

unique crane
#

but

#

half of czech republic is without power so

#

gg

royal mica
#

gg

celest thorn
#

btw nice enough my internet cable melt for the hot summer

#

and funny enough i couldn't play doom dark ages

#

because of denuvo ;(

royal mica
#

if the game has denuvo, everything is legal mmLol

celest thorn
#

Denuvo sadly is hard asf to hack and id software cooked so i will pay their game

#

because its a film and not a game they cook like everytime

grave eagle
celest thorn
#

i can and fine

grave eagle
#

😦

celest thorn
#

the only problem i had driver not updated for just 1 version

#

lol

upper vapor
celest thorn
#

and the version was out for an hour

upper vapor
celest thorn
#

honestly anyone has a good game to play

upper vapor
#

more difficult to change them

celest thorn
upper vapor
celest thorn
#

Nah

#

i will not play

#

im sorry i refuse to play base sl

#

too boring

upper vapor
#

play on a server with a shit ton of plugins

celest thorn
#

i have more fun developing than playing the game

celest thorn
#

and honestly i play sometimes CT

#

but kids screaming ;(

upper vapor
celest thorn
#

Crazy

#

Im about to

upper vapor
celest thorn
#

after playing doom dark ages

#

im going to replay dead space again

#

im so tempted

upper vapor
#

who killed the space

celest thorn
#

you should play it

#

everyone should

upper vapor
#

is it more than 0 hufs

celest thorn
#

2008 games from EA are the best

upper vapor
#

it yes, i ain't

celest thorn
#

Wait i forgot is the new mafia out?

#

nop

#

in 4 weeks ;(

#

crazy game to play

#

Oh wait gamepass has alot of indie titles

#

idk should i play celeste?

restive turret
#

I guess

unique crane
#

Czech games

restive turret
#

u r better

celest thorn
#

i had all of them

unique crane
#

Mafia 3

#

💀

celest thorn
#

btw its so relaxing playing doom after screaming at this game

celest thorn
#

shit game

unique crane
#

good

#

KCD / KCD 2?

celest thorn
unique crane
#

These games

#

You know them?

#

Kingdom Come Deliverance

celest thorn
#

if i search this

#

this is the first thing that shows up

#

and im not even kidding

#

Btw this doom they cooked so much

#

YOU CAN FLY A DRAGON

#

YOU CAN PUNCH DEMONS WITH A METCHA

#

like crazy

#

but parry

#

like main mechanic master that

celest thorn
unique crane
#

ignore the reddit post

restive turret
#

Nah

#

Best post

grave eagle
restive turret
#

🔥

celest thorn
grave eagle
#

Reddit

unique crane
#

Game: You're Henry, the son of a blacksmith. Thrust into a raging civil war, you watch helplessly as invaders storm your village and slaughter your friends and family. Narrowly escaping the brutal attack, you grab your sword to fight back. Avenge the death of your parents and help repel the invading forces!Story: Bohemia – located in the he…

Price

$5.99

Recommendations

124587

Metacritic

76

▶ Play video
#

very good yes

#

And second game even better

celest thorn
#

Honestly

#

rn after screaming

#

for hours at networking

#

doom is perfect

unique crane
#

Its from same creator as Mafia

celest thorn
unique crane
#

National treasure

restive turret
#

Network deez

#

Love mirror! You are forced

unique crane
#

Okay so Im making PR for speaker toy volume above 1f

celest thorn
#

I love slayering demons

unique crane
#

after spending hours with proximity SCP VC

celest thorn
#

LEAKING

restive turret
#

NOWAY

#

Thats what we been waiting for

unique crane
#

Gonna do livestream like Hubert

#

Of changing the 1 line of code

restive turret
#

So can fakesync it to player

unique crane
restive turret
#

So can change other volume as you want

restive turret
#

Or 10

unique crane
#

What

#

no lol

restive turret
#

Wdym

#

You need a SyncVar

celest thorn
#

Guys

restive turret
#

Setter

celest thorn
#

why nw is becoming peak

restive turret
#

And void to set

unique crane
#

Okay its 2 lines

restive turret
#

Show the new 2 lines

#

I not believe in yo

unique crane
restive turret
#

Oh

#

Clamp deez

#

Why clamping

hearty shard
#

why not

restive turret
#

But i want 98f as a volume

unique crane
#

I guess for loudness safety

#

honestly you can just

#

Make the audio louder

#

Does unity support it tho?

celest thorn
#

float.MaxValue

unique crane
#

bad news

upper vapor
hearty shard
#

good news

slate flume
#

I made

#

A request

#

To be able to turn the volume up

upper vapor
restive turret
upper vapor
#

you can just amplify the decoded audio data

celest thorn
restive turret
#

Since already only can be 0-1

upper vapor
#

show the audio mixer

unique crane
#

Where tf is that

restive turret
#

In your mind

upper vapor
#

window toolbar

celest thorn
#

if i join Hangout and stream doom lol

restive turret
#

Cant join sorry

#

I'm at work

celest thorn
#

bro works

#

incredible

random scaffold
#

slejm works

celest thorn
#

this game is full of secrets

#

its incredible lol

restive turret
random scaffold
#

when nw can fix bug if join when round restart it just show empty lobby and impossible exit

#

6 month not almost?

upper vapor
#

not sure what other cause is there

restive turret
#

Or when server restart at join time window

untold raft
#

Hi how can i send fake sync to update content of text toys, how to use Synclist idk what is that

restive turret
#

My thing has it I think

#

Never ever tested it tho

upper vapor
#

how about you don't

restive turret
#

Dont test it?ClassDTroll1

upper vapor
#

don't fake sync it

restive turret
#

Ye i expect everything to work

upper vapor
#

create a text toy per player and hide it for others

#

no fake sync list bullcrap

restive turret
#

More memory

upper vapor
#

thenm

#

don't use text toys

restive turret
#

Mlem more memry to eat

#

😋

upper vapor
#

you're not a protogen

untold raft
#

NetworkRotation update work

#

but idk how to update Networked text

upper vapor
#

oh you wanna update the text but not the arguments

restive turret
#

Y'know

#

Test can be the text

#

*text csn be the text itself

upper vapor
#

how about i make a gist about fake sync shit with your thingy linked

restive turret
#

I never use them

upper vapor
#

for other people to understand

#

because

#

admin toy sync vars are painful

restive turret
#

I am professional of not writing documentation

restive turret
#

That

#

Painful

upper vapor
#

but people will get confused

#

by the subclasses

restive turret
#

Not my issue Fear

upper vapor
#

that's why i wanna make a gist

restive turret
#

Subclass on deez

upper vapor
#

🤯

#

btw this wouldn't work properly

#

should be a > and not >=

#

wait...

#

wtf are you doing in this method 😭

restive turret
#

Dont know which one

upper vapor
#

sendfakesyncvars

#

can't you just hardcode tha subclass min ulong

#

like

#

yea

restive turret
#

What if other class starting using that too?

upper vapor
#

surely they won't

restive turret
#

I am NOT that sure about anything at NW

upper vapor
#

are you serious

restive turret
restive turret
upper vapor
#

then it'll write the same thing twice

#

<= and >=

#

ugh

#

how about i just PR it

restive turret
#

Oh ye
it should be < isntead of <=

#

Nvm the other one

#

Ye u right

#

Tbh I didn't tested the multiple one so i have no idea if that works or not

upper vapor
restive turret
#

Yes

#

Yaml can suck me off

#

Thats it

upper vapor
#

why not just create an object for the config

restive turret
#

Not supporting list<object>

#

It will be string

#

Or back go Object

icy knoll
#

hey guys im asking here as idk where else to ask... i have a class that i make every time a log needs to be sent to discord that contains lists and dictionaries that are created every time the class is created... would i need to make it an idisposeable to destroy those lists/dictionaries or will the GC just clear everything up when the method ends anyway?

restive turret
#

And easier to parse like that

upper vapor
icy knoll
# upper vapor GC

okie cool, i just remember u guys hating it when new Class() is called every so often on specific classes and idk why 😭

#

but if GC clears without IDisposable then cool

upper vapor
#

we yap about allocations because sometimes it's done excessively

#

like... PlayerValidatedVisibilityEventArgs

#

that puts a lot of pressure on the GC and wastes time by doing so

restive turret
icy knoll
upper vapor
icy knoll
#

stuff like this, ill put it in the send message method and never use it again

upper vapor
#

fix up the whole class

#

that's not gonna be allocated often so you're fine

#

slejm... why do you have 2 csprojs

restive turret
# upper vapor i'll make a PR

Kk.
Btw I using a
Dict<string, List<object>> .
and inside that list sometimes a string, item enum, or effect config, etc

restive turret
upper vapor
#

ohhhhh

restive turret
#

The other for git

upper vapor
#

also, why didn't you use SyncList<T>.Change in FakeSyncListExtension

restive turret
#

I do

#

Oh that uhh

upper vapor
#

what

#

kek

restive turret
#

Its internal

upper vapor
restive turret
#

And shit naming for enum

upper vapor
#

me who's publicized mirror

upper vapor
restive turret
#

I think i did but i forgot

#

Idk

upper vapor
#

also please fix your naming conventions 😭

#

sometimes you use pascal case, sometimes camelcase

#

like can you decide

restive turret
#

Wheree

upper vapor
#

many many places

unique crane
#

skull

restive turret
#

Ye my IDE dont care about those

upper vapor
#

why doesn't vs yell at you when you have it named wrong

#

it has an inspection

#

!!1!

restive turret
#

No it doesn't do shit for naminf

upper vapor
#

probably methods only

#

oh well

restive turret
#

Not for me

upper vapor
restive turret
#

I prob disabled long time ago

#

Or idk

upper vapor
#

😭

restive turret
#

If u want u can fix those

untold raft
restive turret
#

Probably ye

#

You have to maybe do something if you wanna fake sync like LightType in admintoy

upper vapor
#

i wonder if anyone uses the ListChanger class

#

besides the extensions themselves

restive turret
#

Nope, prob can change to SyncList<T>.Changer

#

Or.smth

upper vapor
#

i thought about converting it to a struct but then realied that we box them anyway

restive turret
#

Oh it might be fucky since some people doesnt publicize that

#

So probably cant do new(val, ...Set)

upper vapor
#

boom

restive turret
#

Boom

#

🤯

#

Btw if you see the thing it will do such as
writeulong
write
Writeulong

Or
Writeulong
Writeulong
Write

For AdminToy stuff

upper vapor
#

yes

#

that's what we want

restive turret
#

Ahh ye

#

Had to check again

upper vapor
#

what do people use fake syncing for besides admin toys

unique crane
#

roles

upper vapor
#

that's...

restive turret
#

Yes

upper vapor
#

yea

#

sync vars though?

#

i guess player info area

unique crane
#

Uh no

restive turret
#

Idk ehat using syncvars tho

unique crane
restive turret
#

Search what can be syncvarred

#

Lel

unique crane
#

128 references

#

You can fake light color

upper vapor
#

that's also an admin toy

unique crane
#

Room light

upper vapor
#

ohhhhh

restive turret
#

Ye

#

Funny

hearty shard
#

green ntf

upper vapor
#

slejm you didn't return the writer

restive turret
#

Its pooled

upper vapor
#

pooling isn't handled by the GC

restive turret
#

I frogot to add using on the pooled

upper vapor
#

i'll push the fix

restive turret
#

Push me

hearty shard
#

off a cliff

unique crane
#

Huh

restive turret
upper vapor
icy knoll
#

what would you guys say is better for arrays? T[] or IEnumerable<T> or does it not matter

upper vapor
#

in what scenario

#

also, Spans are better :3

icy knoll
#

I would use list if it needed modifying

icy knoll
upper vapor
#

you can return the array as IReadOnlyList
if you only wanna enumerate it, probably better to have it as an enumerable without allocating an array in the first place

#

either with LINQ or your own iterator

#

-# like with coroutines, but the method will have a return type of IEnumerable<T>

true cedar
#

are you returning it

icy knoll
#

ah yeah with T[] you need to use .ToArray() in most cases

#

but with IEnumerable<T>

#

you don't

true cedar
#

if you're storing it you should prob store it as an array

#

but if you're returning it return an ienumerable

icy knoll
#

public static IEnumerable<Module> CurrentModules { get; internal set; } = [];

#

I was using Module[] before

upper vapor
#

uh

#

IReadOnlyCollection or IReadOnlyList

icy knoll
#

changed to IEnumerable<Module> and now I don't need to use .ToArray()

icy knoll
upper vapor
#

since you wanna keep it for later, not just enumerate once

#

what pai said

true cedar
#

(list)

icy knoll
#

I don't need an order really

#

I do loop through the items tho and return them

true cedar
#

i think what u can do is make a private Module[]

#

and then return an IEnumerable<Module> to that

upper vapor
true cedar
#

but it depends on what you're doing

upper vapor
#

IReadOnlyCollection is perfect for this
Array implements that

true cedar
#

ik but like

#

what class is this in

icy knoll
true cedar
#

well ik

upper vapor
#

do you plan on mutating the collection after getting all the modules?

icy knoll
#

I just do CurrentModules = foundModules

upper vapor
#

yeah then use IReadOnlyCollection for this

icy knoll
#

okie cool

#

been there done that

#

what about returning a list of modules tho?

#

IReadOnlyCollection too? or IEnumerable

upper vapor
icy knoll
#

like here, this will return the outdated modules

public static async Task<IEnumerable<Module>> ManageUpdates()

upper vapor
true cedar
#

im confused @_@

icy knoll
upper vapor
#

yes

icy knoll
upper vapor
#

then you can do await foreach (var module in ManageUpdates())

upper vapor
true cedar
#

im not sure if you want IAsyncEnumerable

true cedar
icy knoll
upper vapor
upper vapor
#

yield return tells the iterator to "let this be the next item"

icy knoll
#

this is the code

upper vapor
#

ohhhhhh

true cedar
#

oh

upper vapor
#

yeah you should probably return a task of ireadonlycollection or ienumerable here

#

yield break exits the iterator, like a return in a "normal" method

icy knoll
#

yeah okie done

#

thanks guys

upper vapor
true cedar
#

:3

icy knoll
#

:3

#

ive worked so hard on this shit... blegh

#

also why did c# have to make this easier to do in C# 5...

upper vapor
#

kek

#

(T[]) Enum.GetValues(typeof(T)) also works in older .NET
does the same thing as linq cast basically

#

but yeah they added a generic overload

icy knoll
#

yeah

#

also why isn't there a method to get flags already

#

like

#

😭

upper vapor
#

um

#

🤓

#

it would bloat the AOT libraries

true cedar
#

the c# experience

upper vapor
icy knoll
upper vapor
#

okay

icy knoll
#

:3

#

sorry but lots of c# rants today... WHY ARE DICTIONARIES LIKE THIS

upper vapor
#

oh uh

#

you also have the {} syntax

icy knoll
#

well it yells when i use [] because, well, dictionaries aren't arrays typically...

icy knoll
#

why []

true cedar
#

oh

upper vapor
#

why ai

true cedar
#

im guessing for parsing reasons

#

oh because

upper vapor
#

the {key, value} syntax calls add, the [key] = value syntax overwrites

#

so the former would throw if you have duplicate keys

icy knoll
#

interesting...

upper vapor
#

Rider will yell at you if you have duplicate keys with the {} syntax tho

true cedar
#

because you can do

#

new X {
Y = "hello"
}

worn gull
#

Hi! I made a custom room with mer and I have 2 questions, where is the best place to put it, just to a random coord or where? And the other one is that is it possible to make the game to detect the players that they're in the surface room while they're in that custom room?

#

Or put a RoomIdentifier to that room

icy knoll
#

is there a way to change the results of the Request Data -> Request button? or is that all client side stuff

upper vapor
#

place the component on the root of the schematic gameobject

#

also set the zone

humble haven
#

Is it possible to spawn game props? Like boxes and pipes

hearty shard
#

i believe so

#

youd just need to get the prefab

humble haven
humble haven
celest thorn
#

Im making an emoji system and i want to have emojis etc... but some of them sl doesn't support from which version does sl support them?

icy knoll
#

i can’t remember the link

celest thorn
#

i tested and figured out which one didn't and which one did

#

im going to cry

#

its 1 hour im doing this

icy knoll
#

bruh

celest thorn
#

now i can finally do

#

\🌇

#

fuck discord

#

:city_sunrise:

hearty shard
#

damn

celest thorn
#

im going to bed

#

i found out tho

#

that sl doesn't support emojis that are present on android 3.0

#

lol

#

at least i have a new way to make fun of this game

#

android 3.0 has more emoji than this game

icy knoll
celest thorn
#

Example it has 2 man

#

But it doesn’t support other type of 2 like transflag or lgbt flag

#

Frown etc…

#

Like its so strange

#

Idk whats the logic behind of it i tried even downloading the font but it seems sl is using an outdated version of it

#

So yea most likely android 3.0 has more emojis than sl i went from 2k emojis from android 4.0/3.0 to like 300 or something like that

#

But yea sl skips some version of unicode and skips some emojis even from the same version ex. Rfl is fine, lying doesn’t work

#

Both from 3.0

teal junco
#

yeah hubert please add pride flag emojis to sl

random scaffold
#

coordinates 500 500 500, there is a door for people to walk and small schematic, but items and people randomly fall from scp-106's dimension to 500 500 500, why?

celest thorn
upper vapor
#

you need to remove it from the pocket exit finder's detection

upper vapor
#

<mspace=0.045em><color=#E40303>▀</color><voffset=-0.5em><color=#FF8C00>▀</color></voffset><voffset=-1em><color=#FFED00>▀</color></voffset><voffset=-1.5em><color=#008026>▀</color></voffset><voffset=-2em><color=#004CFF>▀</color></voffset><voffset=-2.5em><color=#732982>▀</color></voffset></mspace>

random scaffold
#

which method?

upper vapor
royal mica
#

I'M pulling my hair out.
It is using the wrong ragdoll in the event

#

another thing to patch SMILE

#

Also I assume I cannot update the gitlab issue, right?

grand flower
# royal mica I'M pulling my hair out. It is using the wrong ragdoll in the event
/// <summary>
/// Fixes an error with LabAPI where the PlayerSpawnedRagdoll event gives the ragdoll prefab instead of the spawned ragdoll.
/// </summary>
[HarmonyPatch(typeof(RagdollManager), nameof(RagdollManager.ServerSpawnRagdoll))]
public static class NWServerSpawnRagdollFixes
{
    [HarmonyTranspiler]
    public static IEnumerable<CodeInstruction> ServerSpawnRagdoll_Transpiler(IEnumerable<CodeInstruction> instructions, MethodBase method,
        ILGenerator generator)
    {
        var matcher = new CodeMatcher(instructions, generator)
            // LabApi.Events.Handlers.PlayerEvents.OnSpawnedRagdoll(new PlayerSpawnedRagdollEventArgs(owner, currentRole.Ragdoll, handler));
            .MatchStartForward(
                new(OpCodes.Ldarg_0),
                new(OpCodes.Ldloc_0),
                new(OpCodes.Callvirt),
                new(OpCodes.Ldarg_1),
                new(OpCodes.Newobj),
                new(OpCodes.Call, AccessTools.Method(typeof(PlayerEvents), nameof(PlayerEvents.OnSpawnedRagdoll)))
            )
            .Advance(1)
            .RemoveInstructions(2)
            // LabApi.Events.Handlers.PlayerEvents.OnSpawnedRagdoll(new PlayerSpawnedRagdollEventArgs(owner, basicRagdoll, handler));
            .InsertAndAdvance(new CodeInstruction(OpCodes.Ldloc_1));

        return matcher.InstructionEnumeration();
    }
}
royal mica
#

wait what is Code Matcher

icy knoll
#

the better way to do transpilers

royal mica
#

I was pulling my hair out by juggling with Rider IL and ILSpy IL and ingame logging (ALL THREE PRODUCES DIFFERENT IL) and I could have used this

grand flower
#

Use dotpeek

royal mica
#

dotpeek is the same as rider tho

unique crane
grand flower
#

On my second screen

#

because Rider's IL window sucks when you try to look at some other code at the same time

upper vapor
#

yeah it's annoying that you can't pin the IL to one file

grand flower
#

yup

#

anyway what I sent will fix the event

#

hf

upper vapor
#

solution:
new scratch file -> IL

#

copy, paste

royal mica
#

Cause I need to fix the serial as well

#
            var codeMatcher = new CodeMatcher(instructions, generator)
                .MatchStartForward(
                    new CodeMatch(OpCodes.Callvirt),
                    new CodeMatch(OpCodes.Ldc_I4_0),
                    new CodeMatch(OpCodes.Newobj),
                    new CodeMatch(OpCodes.Newobj),
                    new CodeMatch(OpCodes.Call, AccessTools.Method(typeof(RagdollData), "set_NetworkInfo"))
                )
                .Advance(1)
                .RemoveInstruction()
                .Insert(CodeInstruction.Call(typeof(RagdollSerialGenerator), nameof(RagdollSerialGenerator.GenerateNext)))
                .MatchStartForward(
                    new CodeMatch(OpCodes.Ldarg_0),
                    new CodeMatch(OpCodes.Ldloc_0),
                    new CodeMatch(OpCodes.Callvirt),
                    new CodeMatch(OpCodes.Ldarg_1),
                    new CodeMatch(OpCodes.Newobj),
                    new CodeMatch(OpCodes.Call, AccessTools.Method(typeof(PlayerEvents), nameof(PlayerEvents.OnSpawnedRagdoll)))
                )
                .Advance(1)
                .RemoveInstructions(2)
                .InsertAndAdvance(new CodeInstruction(OpCodes.Ldloc_1));
#

blerg

upper vapor
#

yea

royal mica
#

coolio, time for another 2 hours of debugging

#

Thanks for the help

#

also this new toy

unique crane
#

Wdym new toy

royal mica
#

CodeMatcher

#

makes writing patches much easier

#

just called it a toy

#

don't mind me, I might have some blood running in my coffee veins

grand flower
#

just keep in mind where you are in the IL instructions atm to determine if you want MatchXForward or MatchXBackward

grand flower
icy knoll
#

Is there any way to get the list of commands that are registered? I see there is CommandHandler::Commands but it is abstract and there is no way to get to this list statically via the places that inherit it... so idk if there is a way to get the full commands list 😭

unique crane
#

CommandProcessor.RemoteAdminCommandHandler.Commands
QueryProcessor.DotCommandHandler.Commands

#

@icy knoll

icy knoll
#

is there anything for local admin commands or does that fall under remote admin?

unique crane
#

RA I believe

icy knoll
#

okie

hearty shard
celest thorn
#

Someone knows if its possible to patch a patch

#

i need to patch cedmod patch

restive turret
#

Yes

#

I did it with Exiled

#

Patched their patch

celest thorn
#

Crazy

celest thorn
#

Is it possible to remove people from the player list? i have a risky idea

upper vapor
unique crane
celest thorn
#

prefix are impossible to work with

#

with cedmod patching the RA i cannot work on hiding the players from RA

#

i think i will leave it lol

#

cedmod won again

worn gull
#

        var surface = Room.Get(RoomName.Outside).First().Base;
        var roomIdentifier = ev.Schematic.gameObject.AddComponent<RoomIdentifier>();
        roomIdentifier.Name = surface.Name;
        roomIdentifier.Zone = surface.Zone;
        roomIdentifier.Shape = surface.Shape;
        roomIdentifier.MainCoords = surface.MainCoords;
        roomIdentifier.WorldspaceBounds = surface.WorldspaceBounds;
        roomIdentifier.LightControllers.AddRange(surface.LightControllers);
        roomIdentifier.ConnectedRooms.UnionWith(surface.ConnectedRooms);
        roomIdentifier.Icon = surface.Icon;
        roomIdentifier.RegisterCoords();```
This is the current code
upper vapor
#

schematic.gameObject.AddComponent<RoomIdentifier>

#

uhhhh

celest thorn
#

i don't think you can?

upper vapor
#

i mean if you patch RaycastRoom and stuff

unique crane
#

Thats gonna cause a looot of trouble

worn gull
#

Then it's not possible, sad

#

Then I need to do it the patch way 😄

unique crane
#

Yea

upper vapor
#

it'll be difficult though

#

and likely inefficient

#

what if you made a collider in the uh

#

like a big big collider around the whole thing, put it on a separate layer

#

and in the raycast patch you first raycast for that layer only

#

if it doesn't hit, let the original method handle it

unique crane
#

Or you can bounds check

#

around surface

upper vapor
celest thorn
#

someone know if its possible to detect changes on a list like

public List<Player> players; 

This types or if there's anything like that because i don't want to write massive logics for doing this

upper vapor
#

TRUE

celest thorn
#

wtf is that

unique crane
#

List with events

#

OnChanged

#

etc

#

fired with addition/removal

celest thorn
#

Ohhh nice :3

upper vapor
celest thorn
#

This could've saved me alot of time

#

in the past

upper vapor
#

didn't know it was in .net framework

#

dam

upper vapor
unique crane
#

Behold

#

the navmesh

#

aaah my editor is fucking dying

#

(Note that im just figuring out whats wrong with HCZ navmesh)

#

im not adding it to the game

celest thorn
upper vapor
celest thorn
upper vapor
#

make a navmesh

#

yourself

celest thorn
#

i could try doing it

#

but i don't wanna

#

too boring

unique crane
#

@celest thorn what exactly is the issue like

celest thorn
#

in every room

#

or tries to move

#

and then goes to the corner to cry

unique crane
#

They are getting self aware

royal mica
upper vapor
celest thorn
#

cedmod won

#

im leaving it

#

lol

royal mica
#

            if (CommunicationProcessor.ServerCommunication[0] is not CustomRaPlayerList) {
                CommunicationProcessor.ServerCommunication[0] = new CustomRaPlayerList();
            }
upper vapor
#

ohhhh

#

but you need to implement the methods

#

copy + paste

celest thorn
#

Idc

worn gull
upper vapor
celest thorn
#

honestly

royal mica
celest thorn
#

cedmod won

royal mica
#

that is what I did xdx

upper vapor
celest thorn
#

at the end its nothing crazy that i needed and probably got removed

worn gull
#

I will try it

royal mica
# unique crane

Wish we had like a map like object (old tablet reintroduced wink wink?) that showed this

#

cause that looks awesome

unique crane
#

Okay but how you can see the layout

#

its quite funny

royal mica
#

that is up for the player to figure out

#

it looks kinda like the borderlands 3 minimap

icy knoll
#

me when im adding a temporary mute manager to a discord bot plugin...

unique crane
#

I still dont understand whose idea it was at Unity

#

to not let you rebake navmesh in editor via a button

#

but you can by code

celest thorn
#

Unity

#

its unity

#

like nw is nw

#

unity is unity

celest thorn
#

because its outdated most likely

unique crane
#

¯_(ツ)_/¯

#

I can check ra buttons what they use

celest thorn
#

FontAwsome

#

i know because its in AssetsRipper

#

lol

unique crane
#

oh

celest thorn
#

Im destroying the player and everything but doesn't work they are still here wtf

celest thorn
#

im pretty sure

upper vapor
#

grabbed from 14.0.2

celest thorn
upper vapor
#

that won't show you the emojis 😭😭😭

celest thorn
#

yes?

upper vapor
celest thorn