#plugins-dev-chat

1 messages · Page 219 of 1

cyan crown
#

i figured out how SL stick to edges movement works it seems the only reason it happens is because OLD SL had both CharacterController & Capscule & Rigidbody being used at same

hearty shard
#

ók actually

upper vapor
hearty shard
#

Scp049ResurrectAbility::Duration

upper vapor
#

Why multiple ó

hearty shard
#

why not

hearty shard
#

beloved field ref delegates

sweet flax
#

@celest thorn could you tell me how to export the assembly-csharp to a project to add to private github and not have 5000 errors?

sweet flax
#

i just wanna change name of local variables and keep it that way for easier readability

hearty shard
#

what

sweet flax
#

and not have flag1 etc

hearty shard
#

oh

#

gl on that one

sweet flax
#

i will probably only change the ones that i read

#

example

hearty shard
#

i mean those are decompiler generated lel

plain gazelle
#

does player.Kill() bypass godmode?

hearty shard
sweet flax
#

however it will not invoke events like dying etc

plain gazelle
#

wack

#

thanks but i will just

hearty shard
#

patch PlayerStats::DealDamage Trol

upper vapor
plain gazelle
#

ugh, doesnt work on dummies
probably someone elses code in this cursed codebase

upper vapor
#

Destroy the dummy

hearty shard
#

obliterate it

royal mica
#

cease their existence

south socket
#

does anyone know how to force item use/cancel on a player?

sweet flax
south socket
#

yeah tried that that ran the thingy without the anim

#

wait maybe im dumb

hearty shard
#

client wont agree

#

you cant do it to a player and have the same player see the animation

south socket
#

ServerEmulateMessage should work on dummies right? (in the UsableItemsController)

sweet flax
#

It was changed to work with client

south socket
hearty shard
#

U sure?

#

@upper vapor

#

inform me

sweet flax
hearty shard
#

yes but

#

that doesn't mean that much lel

south socket
#

xd

sweet flax
#

I checked it and it worked

#

On my pc ofc

hearty shard
#

so you sent a use msg to yourself

#

and it let you see it using your item in ur hand

restive turret
#

If doesn't work blame eve

hearty shard
sweet flax
hearty shard
#

aka you hold a medkit
server tells you, the player holding it, that you are using it, and thus the animation begins

#

thats literally what im asking if its the case

upper vapor
restive turret
#

Ax casually eating all the memory

icy knoll
upper vapor
#

99% RAM usage 100% swap (24GB) usage

#

after like 5 min, the kernel finally killed unity

south socket
#

my ram is eating me

worn gull
#

I'm ramming the ram

upper vapor
south socket
#

anyone knows if u can spawn bulletholes directly serverside without a weapon? didnt found it yet

upper vapor
upper vapor
#

you can copy the write method from that and use SendRpc instead (skips the event)

#

np

late shoal
#

Is it already planned to increase the collectionid for sss beyond 20?

20 arent enough 😭

late shoal
hearty shard
#

hows that not enough 😭

late shoal
#

well it isnt for me tho

thin shuttle
#

why it is restricted ?

late shoal
#

idk ask nw

thin shuttle
#

it's a byte ?

hearty shard
thin shuttle
#

so why restrict to 20

hearty shard
#

they likely didnt expect you to have more than 20 settings saved in different collections 😭

late shoal
#

why is there even a limit

hearty shard
#

well it has to have a limit since its a byte

#

but another reason is they need to allow disabling it

#

which is easier to just have a cap on it and anything other than that = no save

thin shuttle
#

where is the file client side ?

hearty shard
#

and 20 should be more than enough kek

thin shuttle
#

i still don't get why force limit it ?

hearty shard
#

another reason to not allow more than 20 is to have file not be bigger than needed

thin shuttle
#

each roletype could have a specific config

late shoal
hearty shard
#

what

#

i dont understand you yamato

thin shuttle
#

where is the SSS config stored ?

thin shuttle
hearty shard
#

i already asked for seekos use case and they just didnt answer

#

so im confused

thin shuttle
#

do you know where they are stored i am curious about how they look

late shoal
late shoal
#

so 20 isnt enough for me

hearty shard
#

why specifically do you need collection id to be different for all of those

#

why not just

#

set the id of the setting itself

hearty shard
#

which has 2 billion possible ids

#

SettingId

late shoal
#

i know

#

but i have 4 servers rn

hearty shard
#

ok then it doesnt make sense still 😭

thin shuttle
#

can someone said me when where it's stored ?

hearty shard
#

eg if you only want each setting shared between 2 different servers and not any more than that - youd need 41 servers

hearty shard
#

ig

hearty shard
#

right

#

imagine each id has its own list

#

like a dictionary

#

of settings

thin shuttle
hearty shard
#

it will only share the settings that have the same id and is in the same collection

#

if you want 4 servers to all share settings why not just

#

set them all in collection 0?

#

or 1

#

or wtv

#

why do all settings need to be seperated from each other into seperate collections, it makes no sense

late shoal
#

@hearty shard did you ever work with collectionids?

hearty shard
#

yes

#

but i dont have a server anymore

#

maybe they changed it... but itd be weird for them to make it require every setting to have a different collection id when settingid exists

late shoal
hearty shard
#

yep

upper vapor
terse bone
#

imgui asserts dominance over unity

pallid galleon
#

Is there an easy way to get the amount of alive human players that doesn't require looking through each player to see if they're alive and getting a count that way?

#

Maybe I can use whatever scp's target tracker uses?

hearty shard
icy knoll
hearty shard
#

this does include flamingos which idk if youd wanna be counting but PI_Shrug

pallid galleon
#

Funnily enough 106 attacking the last human kills them instantly instead of teleporting them, but it still runs the OnScp106TeleportedPlayer event

#

so I'm just fixing that so it doesn't run if the target is last alive

hearty shard
#
else
      {
        Scp106TeleportingPlayerEvent ev = new Scp106TeleportingPlayerEvent(this.Owner, this._targetHub);
        LabApi.Events.Handlers.Scp106Events.OnTeleportingPlayer(ev);
        if (!ev.IsAllowed || this._targetHub.IsLastScpTarget() && !this._targetHub.playerStats.DealDamage((DamageHandlerBase) new ScpDamageHandler(this.Owner, -1f, DeathTranslations.PocketDecay)))
          return;
        Scp106Attack.PlayerTeleported playerTeleported = Scp106Attack.OnPlayerTeleported;
        if (playerTeleported != null)
          playerTeleported(this.Owner, this._targetHub);
        effectsController.EnableEffect<PocketCorroding>();
        this.VigorAmount += 0.3f;
        LabApi.Events.Handlers.Scp106Events.OnTeleportedPlayer(new Scp106TeleportedPlayerEvent(this.Owner, this._targetHub));
      }
      this.SendCooldown(this._hitCooldown);
      this.ReduceSinkholeCooldown();
      Hitmarker.SendHitmarkerDirectly(this.Owner, 1f);
    }
#

lel

#

yeah it calls the event before checking it

#

LastHumanTracker is what it uses tho btw

#

or hub.IsLastScpTarget() extension which just calls the above

upper vapor
plain gazelle
#

before i try to tackle it myself
is there any easy way to modify the recoil of a weapon via code?

For example i want Class-D to have like 5x the recoil that MTF have. How i check for that shouldnt be hard, but im mainly interested in like
OnChangedItem, get for firearm, get recoilwhenshootingmodule or sth like that and then tweak stuff?

static meteor
#

You can fake it by set the camera rotation

#

Since recoil dosent sync between the server and client

plain gazelle
#

Yeah that was my second approach, applying some recoil calculation to the player camera on shot fired.
But was hoping the giganticly modular weapon system would have something to use for this

#

Considering some attachments have stats for recoil +- and such

plain gazelle
#

alright, bummer

spare zodiac
#

who tf named the rooftop ts 😭

restive turret
#

What

spare zodiac
restive turret
#

I guess

cosmic echo
#

how much do I have to pay to get proper triangle primitives in scp sl

sharp hedge
#

holy moly

cosmic echo
#

Four years and 5 months now there has been a serverhost suggestion to add triangle primitives and it has 0 downvotes

upper vapor
#

ok and?

cosmic echo
#

When are they coming

upper vapor
#

nothing has been confirmed yet

#

they might never even be added

cosmic echo
#

It can’t be that hard

#

The pros outweigh the cons by a large margin

upper vapor
#

it's easy to say "it can't be that hard" if you haven't worked in a game studio

cosmic echo
#

Is coordination between devs so bad that it’s that hard to add a single triangle mesh prefab with some primitive toy code

upper vapor
#

we're a studio of volunteers, and right now, 15.0 is a much bigger priority compared to this
it's not as simple as "yo i made this, merge it RIGHT NOW"

#

triangles might be added in the future, or they might not be added in the future
studio priorities have been explained plenty of times already

cosmic echo
#

Nobody is saying “add it right now and release an update with them right now,” but at some point it feels like northwood is purposefully ignoring this very popular suggestion, with no real updates on it whatsoever. I’ve heard very little from northwood on this suggestion, which has been requested many times, by many people, and all I do hear is “it’s more work than you think”, with no visible attempts at actually doing it. Not even an update to the community or anything, no official statement on “why we haven’t added triangle primitives”

upper vapor
#

it would be ideal to fit more use cases than just one, and adding a singular triangle mesh doesn't solve a lot of problems
there have been discussions about this before

royal mica
#

They have no benefit of hanging the idea above our heads and silently dropping it

#

also there is a priority queue, the things that needs more attention than that

#

and priority is not exactly a "how many people want it"

upper vapor
#

this guys gets it

royal mica
#

As someone who had tickets assigned that are 2yr old, I know firsthand what is "this can be done later" :D

unique crane
#

Why? Well things has been promised before and never added to the game..

#

We never ruled out triangle primitives, but there will be no updates on them until we are 100% sure they will be in any update (and which most importantly)

royal mica
#

Honestly I see a more generic rework for the primitives before anything happens to them

pulsar locust
#

So what you're saying is
Triangle update tomorrow /j

upper vapor
pulsar locust
icy knoll
#

tomorrow never becomes today

#

today never becomes tomorrow

#

wow

upper vapor
#

Is Shakespeare really dead?

restive turret
#

Me omw to send denied to all suggestions

hearty shard
#

Honk shoo mimimi

icy knoll
hearty shard
icy knoll
#

WOAH

unique crane
#

im selling her

#

and no one wants to so far

#

I wonder why

hearty shard
#

I HATE YOU

icy knoll
unique crane
hearty shard
#

look hes evil

#

all i did was post some numbers :(((

unique crane
#

completely valid

icy knoll
unique crane
#

What

icy knoll
hearty shard
icy knoll
hearty shard
#

someone gets it

unique crane
#

what horse girls 😭

hearty shard
#

david the horse hater

unique crane
hearty shard
#

look

#

adorable

#

you hate it tho:(

pulsar locust
upper vapor
ornate kelp
#

anyone have a plugin thats Ball Gun

hearty shard
#

why shoot balls

#

just shoot guns

ornate kelp
#

a gun that shoots scp 018 the ball

#

because it will be funny lol

hearty shard
#

@icy knoll BONK

steel meadow
#

How do you rework any of those primitives

icy knoll
snow pulsar
#

Question... is there any remote keycard plugins that actually kill the Surface Access Pass even though it's in your inventory?
It works when the player hold out their card, but makes it just a bypass on the gates when it's in their inventory.

static meteor
#

It would be relatively simple to implement that

tribal dagger
#

maybe in 18.0 this bug will be fixed

tribal dagger
snow pulsar
sweet flax
upper vapor
#

XDD

#

eventually it'll be fixed i assume

harsh thorn
#

its like some weird state desync with mirror or something

#

forgot what it used, but i think the 2 commands use 2 different ways to look for connections

vast wharf
#

I have this same issue, i even disabled rate limit but still there

#

after 10 seconds it lets you in but it's a bit annoying

#

and it prevents me to restart the server without the players being kicked (Restarting just at round restart so it delays connections till it's ready)

upper vapor
#

did you use the sr command? (softrestart)

vast wharf
#

ohhhh

#

it would be cool if it did that on crash

upper vapor
#

umm
crashing is different Kek

vast wharf
harsh thorn
#

if you hit the ratelimit, your ratelimit is set too high

#

so you should lower the reset time

upper vapor
#

i'm also getting ratelimited on my local server after restarting

#

😭

#

reconnecting earlier than allowed, and then getting bonked

vast wharf
#

i set it to like 100 it didn't work so i disabled it and nothing

upper vapor
#

after the server's requested connection delay

harsh thorn
vast wharf
#

wait i just sr and it ratelimited me 😭

upper vapor
#

ye

vast wharf
#

does turning up the ratelimit work for sr?

harsh thorn
#

turning it up means youll hit it more

upper vapor
#

try increasing the full_restart_duration or whatever

vast wharf
#

i mean turning down

#

ok

harsh thorn
#

the ip_ratelimit_window and userid_ratelimit_window are the 2 settings you want to change

#

the value is seconds

the value should be less than the delay time of a server restart

#

iirc the default wasl ike 3

vast wharf
#

so if the sr takes 50 seconds, a value of 5 is fine?

upper vapor
#

-# why does softrestart take 50 seconds Fear

harsh thorn
#

so you should have 4 or less

#

default was 3 iirc

#

or atleast that is what the official servers is set to

restive turret
#

i never got rate limited

vast wharf
upper vapor
#

ummmmmmmmmmmmmmmmmmmm

hearty shard
#

ax ate the server

south socket
#

any idea why this code isnt working anymore since a few updates?

        private void SetupPlatform(GameObject platform, GameEvent ev)
        {
            var col = platform.AddComponent<BoxCollider>();
            col.isTrigger = true;
            col.center = new Vector3(0, 25, 0);
            col.size = new Vector3(1, 50, 1);
            col.tag = "collider";

            var p = platform.AddComponent<VotePlatform>();

            p.eventName = ev.Name;
            p.LongName = ev.LongName;
            p.PlayerVoted += OnPlayerVoted;
            p.PlayerUnvoted += OnPlayerUnvoted;
        }

idk just stopped working one day. (VotePlatform is just a MonoBehavior with OnTriggerEnter, OnTriggerExit). GameObject is just a primitive.

static meteor
#

I usually create a new gameobject then parent that to the primitive and added the trigger

carmine prawn
#

😭

#

Seems I only can use 4 directional light sources on map

carmine prawn
full wedge
#

who can make something for me dm me

carmine prawn
#

if you need a solid-color skybox, try using Text Toy

#

looks good

full wedge
#

@upper vapor for your moderatortools does this make it so if i do overwatch it keeps me as overwatch until i get off it or is there a modmode i can use for this or i need to add this?

full wedge
#

github

upper vapor
#

I don't really understand the question

#

If you're asking about overwatch persisting across rounds, that's been removed (well, not implemented)

royal mica
#

Where is the paid lootbox for commands

upper vapor
#

😭

cyan crown
royal mica
#

No idea, I only play MemeSCP

upper vapor
royal mica
#

A bundle of bananas

#

to make banana bread

upper vapor
#

Crazy

royal mica
#

we should be able to bake banana bread

upper vapor
#

Are you unable to do so?

royal mica
#

ingame no

upper vapor
upper vapor
#

You have the ability to make it happen

royal mica
#

oh, my, god

#

a banana bread cooking minigame

#

ok work can wait

upper vapor
#

Sleep emoji

vast wharf
#

is there any way to disable achievements for tutorials?

icy knoll
vast wharf
#

ah i thought i had seen some code for it on the server

hearty shard
#

a lot of code also isnt stripped from server builds even if its client side

rugged laurel
#

Most achievments are called server side so you can path the methods they are called in to check if not tutorial

sweet flax
vast wharf
#

oh, ok!

upper vapor
#

Not sure where it is

#

Maybe in MainBoolsSync

vast wharf
#

even better

#

ok

halcyon folio
#

I havent experimented with Transpiler patching, yet

static meteor
#

Isnt there a event for it

#

I swear I remember seeing one

sweet flax
sweet flax
restive turret
#

Ye there isn't

#

And there was a long talk about it

#

Use the syncvar thing it fixes like 90% of the stuff

sweet flax
#

Is there a syncvar thing

restive turret
#

Ye

#

Check the bade

#

Base there is a static bool that get set whatever the syncbool is set to

#

iirc its not a bool its like a int/uint

sweet flax
#

i think for his case patching it would be easier

#

since he would have to fake sync it every time the role is changed

restive turret
#

That's from the server

#

Not by role

restive turret
#

Ah

#

Well both options valid

#

Whatever he does after it his own thing

sweet flax
#

the sync var is the better one but harder

naive axle
#

yo

#

it worked

sharp hedge
#

how would one send a message in staff chat from code? i know cedmod does it and trying that code runs, but no message sends

upper vapor
sharp hedge
#

there was a method in that class that suited my goal better, thanks

#

i do have another question though

#

is it possible to remove the "Dedicated Server (1):" from this?

#

im using Server.SendAdminChatMessage

hearty shard
thin shuttle
#

if you don't want it to be show there modify the plugin ?

icy knoll
#

it could

#

but yeah

sharp hedge
#

yikes

thin shuttle
#

can you try that ?

public static void StaffMessage(string message)
{
    foreach (Player target in Player.List)
    {
        if (CommandProcessor.CheckPermissions(target.Sender, PlayerPermissions.AdminChat))
        {
            target.ReferenceHub.encryptedChannelManager.TrySendMessageToClient("999" + "!" + message, EncryptedChannelManager.EncryptedChannel.AdminChat);
        }
    }
}


sharp hedge
#

thats exactly what im doing right now

#

oh yes that did work

#

the background of the text is dark red though

#

if theres no fix for that then its fine

south socket
#

is the Player in the EnemyKillingObjectiveEventArgs the killer or "victim"? I guess killer. But yeah. Too lazy to test rn xd

upper vapor
#

"this object does not exist, therefore i must call OnValidate on it"
-# -unity

#

oh nvm

#

i called it

#

xd

unique crane
#

xd

hearty shard
#

is TROLLING

unique crane
#

@subtle ravine About that mod role...

regal lakeBOT
#

Done. Enough chaos.

unique crane
#

thamk

upper vapor
#

crazy

subtle ravine
serene vine
#

He's a little boring tho sadly

unique crane
#

Noemi got money for life from MrBeast

serene vine
#

Yeah, I moved out to a mansion now

#

That's very fortunate to not be on an island

unique crane
#

Is this the faith Dutch talked about?

#

winning mr beast money?

upper vapor
serene vine
#

Bruh

worn gull
#

Is it intentional that SSS Settings only work for 079 when the map is open?

hearty shard
#

prob not

slender depot
#

How to change particle disruptor's damage?

restive turret
#

onhurting

#

damage handler and set the damage there

cyan crown
restive turret
#

real

upper vapor
cyan crown
#

Did you see that chrome extension that changes word microsoft with microslop

pallid galleon
#

Anyone able to help me with something? I'm trying to make a role where peanut can blink faster (dw the blinking speed is only that fast for testing lol) but can't figure out how to make it work for non-consecutive blinks

#

Like blinking x amount of times in a row works fine, but being observed resets the cooldown no matter what and I can't seem to find a way to override that

upper vapor
upper vapor
pallid galleon
#

tried that and same results 🙁

upper vapor
#

uh

pallid galleon
#

meh no biggie lol

#

I'll just have it as part of its quirk that it only works for consecutive blinking

upper vapor
#

feature

pallid galleon
#

frfr

upper vapor
#

okay

#

so

#

just add a one-frame delay if it's the first observer

#

or postfix Scp173ObserversTracker.UpdateObservers

#

why does the observers tracker send and rpc every single frame 😭😭

pallid galleon
#

ah

#

yeah adding a delay worked, ty!!!

upper vapor
#

np

inner citrus
upper vapor
#

it's joever

hearty shard
#

or is it.

cyan crown
restive turret
inner citrus
#

It was a nightmare to switch Taj Mod from BRP to URP and then I made the mistake of switching directly from URP to HDRP instead of reverting the URP changes first.

restive turret
#

always test everything

#

and I recommend branches

#

especially unity update

#

I have a clear project with nothing inside it basicly so I can just switch to any version and not cause issues

inner citrus
# restive turret always test everything

This was in 2023 when I first started playing with the Unity project, I did use branches etc. but it also was mostly me testing and figuring stuff out, later I implemented some stuff and it was kind of too late to revert anything

restive turret
inner citrus
#

im talking as someone who updated from 2018 -> 2021 -> 6 -> 6.3 -> 6.4.3

unique crane
restive turret
hearty shard
#

slime boy

restive turret
#

evilgirl

cyan crown
inner citrus
cyan crown
#

I ported legacy to urp recently

inner citrus
#

cool

cyan crown
#

Progress is so so slow i barley work on it

marble cobalt
inner citrus
#

Or just what HDRP offers you

marble cobalt
#

The ones available in Unity through the post processing volume, believe you need the Unity package installed

cyan crown
#

Yeah camera layers is a huge issue in hdrp

marble cobalt
#

Well, not updating specifically

inner citrus
marble cobalt
cyan crown
#

Yep they dont update at all

#

You have to toggle the post processing on and off to see changes

marble cobalt
#

Yeah

inner citrus
#

I do remember having issues with Tonemapping but I didn't use that, only for testing

cyan crown
#

This also happens for select few of effects

inner citrus
#

works for me

marble cobalt
#

They do work, they just require a refresh I believe, but it's annoying af

cyan crown
#

Yeah i was recently working on a post processing heavy project it was so painful doing changes

inner citrus
#

I think I only have like a small amount of post processing

#

fog and some other things and that's all

cyan crown
#

I think you have only 3 of them

inner citrus
#

yeah something like that

marble cobalt
#

Makes sense, we do use a good amount of post processing effects for status effects & each SCP, hence why it's not as cut and dry as refreshing once

inner citrus
#

I was planning on using more post processing effects for SCP-079 so probably this is when I'll notice

marble cobalt
#

As I mentioned on the bug report, in case it's useful, you can use 4.3f1

That one does not have this issue, from my testing

cyan crown
#

I hope unity added cloud layers for volumetric clouds one layer seems a bit off imo

marble cobalt
#

🫡

inner citrus
#

I'll still have to make a system for toggling them since old ccm and stuff

#

unless trollSmile

pallid galleon
#

no way!

#

@lyric dagger @clear radish mr beamst wants to give ppl money

#

ty

upper vapor
upper vapor
shut sandal
icy knoll
#

DI?

harsh thorn
#

dependency injection

icy knoll
#

right

restive turret
#

I dont like DI

upper vapor
upper vapor
restive turret
upper vapor
#

can't believe i've typed that

restive turret
#

Dumb Injection

#

Because nearly impossible to backtrack and see what's wrong

#

Never really liked DI , and every time i see it, i feel like the javas "single object factory" type thing

shut sandal
upper vapor
#

i used DI in avalonia which made my life a lot easier

#

(impl for diff platforms)

restive turret
#

Bro half of the things I see used DI because just the purpose of using it

upper vapor
#

their skill issue

restive turret
#

No actual benefits, it just there to fuck my research up

#

There is no reason to use DI if you only do stuff in one way

glad pagoda
#

especially for mocking lol

royal mica
#

DI is only useful when you have a clear separation of layer, like in MVC

restive turret
#

I dont like asp net either

glad pagoda
#

like I do like writing proper OOP code with interfaces and such

#

but people tend to overdo it A LOT

#

also my pet peeve: people keep misunderstanding DRY

#

I see more people taking it literally than with the proper meaning

upper vapor
#

-# wrong emoji 😭

royal mica
#

model view view model?

upper vapor
#

yes

#

almost

#

model, view, viewmodel

royal mica
#

oh

upper vapor
#

extra space Kek

royal mica
#

when model and viewmodel is the fucking same

#

bruh

upper vapor
upper vapor
royal mica
#

yeah just making fun of ppl who usually have those as the same

glad pagoda
#

and not "dont have identical pieces of text" in your code

upper vapor
#

i'm not really a fan of writing the same method twice

#

third time is a nuclear explosion

restive turret
upper vapor
#

okay but

#

why

#

when you can just write minimal apis

restive turret
#

I dont like aspnet and has trillion dependency

upper vapor
#

so do you write your backend in java..?

restive turret
#

In C#

upper vapor
#

crazy

restive turret
#

Not in aspnet but in normal one

#

I use NetCoreServer as a base

#

And i wrote my own thing top on it

#

And I can change both however I like

upper vapor
#

i think i've heard of that

restive turret
#

Ye I said that thing too

upper vapor
#

what the fuck is this example

restive turret
#

Since I never a Client

#

And mostly the server

#

Custom stuff top on it

#

I use it for some of the stuff I have

upper vapor
#

why in 😭

royal mica
#

I can see the reason

upper vapor
#

???

#

why are the params in parameters

royal mica
#

so they are not out

#

idk

upper vapor
#

nah

#

americans would say in-n-out

restive turret
#

Sent by value idk

upper vapor
#

you can't send interfaces and classes by value though...

glad pagoda
restive turret
#

nih?

glad pagoda
#

Not In House (syndrome)

harsh thorn
#

tbf asp.net isnt too bad with dependencies

#

wait until you see laravel

glad pagoda
#

wait till you make the

#

300 JS dependencies Kek

#

i have one repo with it

harsh thorn
#

well thats js

glad pagoda
#

I get a vulnerability alert on a JS lib weekly from it

#

lol

upper vapor
royal mica
#

And not actually AngularJS

upper vapor
#

It's both toomuchtrolling

royal mica
#

Also any NPM based repo is like 300 deps lule

royal mica
upper vapor
restive turret
royal mica
restive turret
#

we use Playnite and that has like more dependency than i can remember

upper vapor
royal mica
royal mica
#

Idk why but sounds appropriate what the npm users would do

#

Welcomeing malware with open hands with a single npm i

upper vapor
restive turret
upper vapor
restive turret
#

jabba script

royal mica
upper vapor
upper vapor
royal mica
#

George

restive turret
#

idk

upper vapor
restive turret
#

you know

upper vapor
restive turret
#

living in the dark

upper vapor
#

Erm

#

Doesn't ring a bell

restive turret
#

day2 of github action and unity

glad pagoda
#

make sure to cache a lot of stuff

#

annoyingly enough

restive turret
#

ye i did that

glad pagoda
#

i dont know if youi can cache library

restive turret
#

caching Library and editor

glad pagoda
#

since i think the working dir changes on github actions

hearty shard
#

did u know

#

that

#

im gay

restive turret
#

yes

#

well my command to build the project is ass apart form it

terse bone
#

Puding

restive turret
#

holi moli

upper vapor
restive turret
#

no

#

I was

#

but it took me ~ 25m to build a simple project with nothing in it

upper vapor
#

Yep uhhh

#

Yea

restive turret
#

docker

#

I blame docker ass

upper vapor
#

Dokkoló

restive turret
#

dokkoljon oda

glad pagoda
restive turret
#

yes

#

but the project currently closed source

#

since i wanna do stuff with it before opening up

glad pagoda
#

cuz private repo acyions limits are too low for any unity builds

harsh thorn
#

better to make a selfhosted runner on some pc, or server

#

or just build yourself

glad pagoda
#

btw did you notice how much faster reimports became on refs on the CI now?

harsh thorn
#

havent looked at it

#

but cache server + funny disk things have probably increased speed

glad pagoda
#

from around 50 minutes to 35

#

for a full pipeline

glad pagoda
harsh thorn
#

hmm

#

disk things then

glad pagoda
#

yeah it's weird it improved this much since builds didn't, event after cache

restive turret
#

well even if it does not implicitly build I can try just doing the check if all things are valid and ask it on my PC to build it (or any CI machine that I will or will not buy)

rustic pecan
#

Hi, guys!
I am making a HarmonyPatch to prevent a specific player from damaging 079's BreakableWindow.
Maybe someone knows, how can I identify that window?

I try to get it name but its just Glass and NetID doesnt really gives much info abt it...
The only way I can think of is trying to get it with position smh but probs there is more smooth solution

restive turret
#

get the room its inside of

rustic pecan
#

There is sth in LabAPI for that, but it doesnt work if a player throws an item at the window

sweet flax
#

you can use event ondamagingwindow

#

and compare the glass

icy knoll
unique crane
#

The 079 glass isnt the only glass in the chamber

#

There is also the windw

icy knoll
#

Yeah true

unique crane
icy knoll
#

Make sure to compare the base of the window and not the wrapper lol

#

(I forget if there is a wrapper)

rustic pecan
#

Thanks for the help, guys ❤️

cyan crown
rustic pecan
#

Oh I get why throwing the items doesnt call the ondamagingwindow

tulip kiln
#

You know you can do is not

#

Unless that's decompiled

#

then I'm dumb

rustic pecan
rustic pecan
# rustic pecan

I patched it, but sth wierd is happening with the server
Its laggy even tho I run localhost

When I throw a nade into a group of nades they just do not activate

#
 [HarmonyPatch(typeof(CollisionDetectionPickup), nameof(CollisionDetectionPickup.ProcessCollision))]
  public static class CollisionDetectionPickupPatch
  {
            private static bool Prefix(
                CollisionDetectionPickup __instance,
                Collision collision)
            {
                var recontainer = UnityEngine.Object.FindObjectOfType<Scp079Recontainer>();

                if (!collision.collider.TryGetComponent<BreakableWindow>(out var window) ||
                    recontainer == null ||
                    window != recontainer._activatorGlass)
                {
                    return true;
                }

                if (__instance.PreviousOwner.IsSet)
                {
                    var hub = __instance.PreviousOwner.Hub;

                    foreach (var player in Player.List.Where(p => p.Role == RoleTypeId.Scp079))
                    {
                        if (CanDamage(hub, player.ReferenceHub) != false)
                        {
                            return true;
                        }
                    }
                    return false;
                }
                return true;
            }
        }
 }
#

I wonder what can be wrong here 🤔

hearty shard
rustic pecan
#

I have no clue how I can get this window

hearty shard
#

Window.List no? nvm

#

im also 99% sure theres a singleton somewhere

#

the main issue is that you're looping through every gameobject every time collissions are processed

hearty shard
#

also why != false? huh

sweet flax
sweet flax
hearty shard
#

its the looping through all gameobjects

#

its notoriously slow, especially compared to a player.list loop

#

assuming theyre 1 player on it locally, its only 1 loop
compared to the well, VERY many loops unity has to do when you ask it for object of a type

sweet flax
hearty shard
#

a fix can be uhhh

rustic pecan
#

Shitcoding PhD here

hearty shard
#

why can

#

why can a CanDamage return null 😭

#

ok then why not == true

#

instead of != false

rustic pecan
#

Null = basegame behavior
True = force damage
False = block damage

hearty shard
#

private BreakableWindow _knownWindow;

and then do

if (!_knownWindow)
    _knownWindow = UnityEngine.Object.FindObjectOfType<Scp079Recontainer>()._activatorGlass
#

so you only check it once, cache it, then if the cache is invalid, you just find the new one

rustic pecan
#

Yeah check it once somewhere during RoundWaitingForPlayers or sth

#

Thanks ❤️

rustic pecan
#

If he can attack at least one of them, well

#

Too bad for others 😎

#

CanDamage can be == null or == true

#

== true is when the damaged is forced by plugin (for friendly fire for example)
== null is when I want to have basegame behavior

hearty shard
#

guh...

#

me when enums

sweet flax
#

wdym enum?

rustic pecan
hearty shard
#

enum is cleaner than a nullable bool

rustic pecan
#

Finally done with this freaking button xD

upper vapor
#

@eveil stop recommending obsolete stuff!!1!1!

hearty shard
rustic pecan
upper vapor
#

Society if unity removed obsolete APIs

south socket
#

is there a way to mute/disable chase themes for players yet?

restive turret
#

nope

carmine prawn
thin shuttle
tribal dagger
#

also #makeCameraParentingGreatAgain

#

although it was never great

thin shuttle
#

(i kinda hope it's fixed like that on Master)

restive turret
#

it will be different

bright vine
#

NineTailedFoxAnnouncer was changed recently, right? what's the new thing again

restive turret
#

Cassie?

#

Dispatcher?

bright vine
#

the change was like 6 months ago lmao, im so behind 😭

#

i think it was cassie yes

#

that's the "new" code

upper vapor
#

You can use the Announcer wrapper, too, though it doesn't cover all use cases

bright vine
#

oh, so that's the one! thank you ❤️

#

great to know

upper vapor
#

Np

bright vine
#

gonna have to use dnspy for this

#

so i know enough

bright vine
rustic pecan
# thin shuttle can i know why you need this patch ?

I wanna prevent a specific player from pressing recont button of SCP079.

If I do it via LABAPI Ondamagingwindow it works only if a player shoots at the window. But what if he throws an item or projectile at it?

Apparently source code doesnt care and just lets ServerDamageWindow() do the job.

So Im patching the CollisonDetection itself that is partly responsible for computing the interaction between projectiles, items etc with windows.

bright vine
#

seems like it's still not possible to skip, so i'll continue using harmony

restive turret
#

ye there is no event for it yet for that

upper vapor
bright vine
#

thank you folks!

sweet flax
#

dear nw
please give us triangles
@sweet flax

bright vine
#

i noticed that in Remote Admin, ForceRole just takes the Role Name as the input, is there still a command that takes a Role ID as the input?

hearty shard
#

psure the force role command supports it

bright vine
#

it still does? weird, in the description, it doesnt say that

#

oh! you are right, it does, thank you

restive turret
hearty shard
#

dear slime

#

can we crush you into a liquid

#

i need it for my industrial foregoing adventures

restive turret
#

nuh uh

sweet flax
hearty shard
#

also is the zero post chatgpt

sweet flax
#

?

hearty shard
#

the description

#

of the suggestion

sweet flax
#

probably

upper vapor
restive turret
sweet flax
#

mf's at nw be sending to other people instead of implementing it into the game

hearty shard
#

tbf keyword was prototype

sweet flax
#

but still

sweet flax
upper vapor
restive turret
#

I use SL to protoype and see what unity capable and also make me learn special stuff, I aint gonna add stuff into SL just because i prototyped something.

And I can only say what david said too
#plugins-dev-chat message

#

even if i prototype like something that is ok for my game on SL I aint gonna add it simply because I use it as a base

sweet flax
#

but like why not support it 😭

sweet flax
sweet flax
restive turret
hearty shard
#

using sl for personal growth? nah this is NOT okay

#

ban this guy

upper vapor
restive turret
upper vapor
#

Air + evilness

restive turret
#

SL already has networking and some stuff thats why i do stuff on it, if I have million time i prototype off SL on my own game

sweet flax
#

why?

#

This feature is one of the most if not the most asked feature by the modding community yet there still is no plans

hearty shard
#

and ig meshes

#

i assume for some reason but no clue PI_Shrug PI_Shrug

grand flower
#

No fun allowed

sweet flax
#

Where my mesh

#

There is working code there is demand yet no feature

grand flower
#

Why limit it

sweet flax
#

The textures?

grand flower
#

Let players decide not to join servers that'll take them a long time to

#

Up to them

sweet flax
#

I think it would collide with the game vision and make it more gmodlike

#

But without the fucking lua

grand flower
#

Lua is great

sweet flax
grand flower
#

It's great for modding

#

although I personally use Luau since it does add a bit of type checking

sweet flax
#

And can be downloaded to the client

grand flower
#

The issue with C# modding is clients downloading scripts

#

You can spend a ton of time and effort sandboxing stuff sure but it's a pain in the ass

#

At least with Luau I'm certain that the worst scripts can do is crash the game. No malware.

restive turret
#

Does he know

#

The infostealers in lua

sweet flax
#

The luau os is the roblox one?

grand flower
#

What kind of info

grand flower
#

more performant, safer with sandboxing

sweet flax
grand flower
#

OOP isn't hard

restive turret
grand flower
#

With metatables and userdata

grand flower
#

Kind of

#

Havent heard of that in gmod tho

#

How would it work?

restive turret
#

Mihht be only roblox but I heard it had from gmod too tho

#

I remember but I cant find it

grand flower
#

gmod is overly cautious so I feel like that'd be solved very early on if it happened

quiet rune
#

how many bullets does a Revolver with the 7-Shot Buckshot Cylinder fire?

bright vine
#

was there a update that made it so you'd see the last remaining target...? like the goggles

bright vine
hearty shard
#

idk

bright vine
#

you mean everyone just has this setting enabled by default? 😭

hearty shard
#

by default since its a basegame mechanic, yes

tulip kiln
#

last target tracker or smth like that

bright vine
#

i wonder when this mechanic was added

tulip kiln
#

fortunately the server decides on that

tulip kiln
#
[HarmonyPatch(typeof(LastHumanTracker), nameof(LastHumanTracker.ServerUpdateLastHumanTracking))]
public static class ServerUpdateLastHumanTrackingPatch
{
    public static bool Prefix(LastHumanTracker __instance)
    {
        __instance.Network_lastTargetNetId = 0U;
        __instance.Network_lastTargetPos = null;

        return false;
    }
}
bright vine
#

i love how harmony is so common

#

oh right! i forgot to say, thank you

sweet flax
bright vine
#

yeah because you can edit the game code directly from there, i just find it funny how its rlly common

forest sentinel
tulip kiln
#

This might break SCP-106's pocket insta kill and the soundtrack

median sage
forest sentinel
#

orb toy when

restive turret
#

Toy toys when

tulip kiln
#

every player is a toy

#

every room is a toy

#

everything is a toy

topaz yacht
#

Am I a toy

remote cosmos
# sweet flax why?

While Northwood has a concrete vision for the overarching game that we develop, we choose to introduce modding opportunities as a way to give our community the ability to make their own things and have fun with the game in ways we never expected. Modders have been able to do very unique stuff and make more ways to have fun with the game. Heavily modded servers aren't my personal cup of tea, but I know the impact they have on our community. I also know RP servers are a pretty significant size of the community (though I can't speak much to it— I've never properly partaken in an RP server).

The reason we do not support customized textures and meshes are mostly due to the technical costs and long-term game impact that this will have to the SCP:SL project. While I am trusting that the security side of things could be eventually worked out, and we don't have to worry about potential issues that come with downloading things from members of the community, there's also the impact it will have on the actual game. For example, performance— we need to make sure that things are cached, meshes and textures are preemptively downloaded, and everything is sorted out there. Even right now the current implementation of primitives, despite us continuously improving them, can still have a heavy cost. Customized things like this result in amplifying that stress, potentially bringing down performance even more.

There's also the idea that the future of SL will look like— sitting on the main menu to download each server's unique asset collections a la GMod. This isn't really something we are desiring to go for. We have a core game at the base of SL, with the sandbox portion as an expansion of that. Unlike GMod, Roblox, s&box... which are games made for something like this. Whilst I understand it will start as a small scale thing it will inevitably grow and become larger. Even if that doesn't happen, it does mean that the game's identity will be eroded away from what we have it as right now. Some of you could see that as a good thing, you are all very creative and smart folks. But whether or not you feel that this is something we should desire, it's not something we want to pursue right now.

For now, we want to continue making the unique game that we are currently establishing. This obviously doesn't mean it's off the table. Priorities will shift over the years as we get things into states we are more happy with. For now though, we feel that pursuing this will work against the passion project we have in our hands. Folks will start to lose focus on what is base game, what is from plugins, what folks Northwood should be doing with the game, etc. Even now game identity is an issue that many folks take problem with. It's what I'd argue that is the core issue many people have with this game, whether they realize it or not. Muddying those waters further feels like it'd be shortsighted right now.

I do think that there is a time and place for something like this. Look at games like Space Station 13/14. They've found success and are able to financially and logistically support both the game and individual communities, all while creating a game that anyone can expand in whatever fashion they prefer. That's wonderful. While obviously there's issues I'm overlooking, that's the overaching idea I'd like to pose. I don't think SL is ready for that yet, much less what will happen to the Northwood company as a whole, but I do think that this something we'd like to have in the game. Likely more towards the project end, or later on when we feel much more brave with the impact it will have.

You don't have to agree with this. As I mentioned earlier, our plugin devs and modders are some of the brightest and passionate folk in the community. But this is our stance right now. We don't feel that pursuing this is all in the best interest of the game right now. It will be revisited though, and to say it's fully off the table is not the case. Just not right now.

#

We want to give more opportunities to the community while still retaining the core of the game we have today. I don't want to put anything like this off the table, as it'd be a wonderful thing if we could get it sorted out logistics wise. Something like a workshop is a common suggestion. Which this would somewhat be a first step towards, or otherwise be in the same ballpark. This is all not even considering moderation, ensuring security, or the other annoying headaches...

The long in short is that we aren't yet confident in moving away from our current development position. We're not putting this off the table though. I know there's a good use case and potential impact. When Northwood feels that we are ready, we could expand more towards giving community significantly more control of the project as a whole, even if it does come at the expense of our vision. All of us here in this chat wants the best for the game. So we will continue to assess and make that call. This moment is just not the right time.

If you disagree, that's plenty fine. This is our overarching stance though.

carmine prawn
hollow pewter
#

Long scary text

spring hornet
#

That is a giant wall of text. got the broad understanding of it tho, and i can kinda understand it

spare zodiac
#

can I somehow read all payloads sent to client?

restive turret
#

Yes, hook into sending the bytes

grand flower
#

Just make sure to keep whatever processing you do as optimized as possible

#

Hot paths and all

upper vapor
sacred sierra
upper vapor
unique crane
#

Yea

upper vapor
#

what the

tulip kiln
upper vapor
sinful bronze
#

math

carmine prawn
#

Bullet flavor

#

and

#

My English isn't good, so I'd better not explain

upper vapor
#

Git blame

carmine prawn
spare zodiac
# unique crane

you should like totally push each element randomly by -0.1 to 0.1 each update to remove consistency trollface

upper vapor
worn gull
restive turret
#

<center/>

cyan crown
tulip kiln
cyan crown
#

"hey jimmy my tokens ran out what do i do?"
(gets executed immediately)

forest sentinel
#

particle toy would be good

sweet flax
#

was already suggested i think but not accepted

sweet flax
# remote cosmos While Northwood has a concrete vision for the overarching game that we develop, ...

For example, performance— we need to make sure that things are cached, meshes and textures are preemptively downloaded
Here i would talk about meshes not textures. They would not be "downloaded" but sent like every other [SyncVar] .
Even right now the current implementation of primitives, despite us continuously improving them, can still have a heavy cost. Customized things like this result in amplifying that stress, potentially bringing down performance even more.
I will disagree here since allowing us to make custom meshes would allows the map makers to optimize the count of triangles used by a single build. Right now only using rectangles its hard to make more complex shapes without drawing some faces behind other.

But also im not saying that making custom meshes would not have its downsides network wise. Every mesh would require syncing an array of vector 3 (12 bytes * count) and an int array however it could be optimized by using ushort (limit to 65535 triangles) or even byte (255 limit). Let's say we would use ushort so the message size would be 12 * X + 2 * Y [Bytes].

If not using an custom mesh adding just a simple triangle toy would open a lot of possibilites and this would only need 36 bytes for every triangle sent

sweet flax
soft depot
icy knoll
#

@languid temple you know what time it is

#

@subtle ravine

subtle ravine
#

Free money....

tulip kiln
#

:DD

subtle ravine
snow pulsar
#

damn

unique crane
#

evil Alex

#

first he steals all wins in Crabgame

#

and then mr beast's money

upper vapor
#

crab/cancer

#

could mean either

obtuse spruce
# sweet flax > For example, performance— we need to make sure that things are cached, meshes ...

Im not from Northwood, but I wanted to share my perspective as both a server owner and a VHP, since I understand some of the infrastructure constraints involved here. Also, I used ChatGPT to help translate my thoughts into English since Im French and still struggle a bit with technical explanations in English

  • Here I would talk about meshes, not textures. However, even for meshes, Mirror should not be used as a CDN. SyncVars are designed to synchronize lightweight gameplay state, not to stream full asset data such as vertices, triangles, normals, UVs, tangents, etc.
  • While I do agree that custom meshes could help map makers optimize triangle counts and reduce the amount of overlapping primitive geometry currently required, there are still major infrastructure concerns that should not be ignored. You also have to account for serialization/deserialization cost, allocations, bandwidth spikes. Even if the networking side is technically feasible, continuously transferring mesh data through Mirror would scale very poorly on large servers.
  • Bandwidth is also a real world issue for hosting providers. Some providers especially those behind Anti-DDoS infrastructure operate under monthly traffic limits. For example, as a VHP, if multiple servers were running large custom maps with high player counts, repeatedly transferring mesh data to clients could quickly become a serious bandwidth problem without proper local caching.
  • I dont think custom meshes are a bad idea at all, but if Northwood ever decides to go in that direction, it should probably be backed by a proper asset delivery pipeline with CDN support and local client-side caching, so unchanged assets do not need to be re-downloaded or re-sent every connection.
  • Until then, I honestly think a more realistic intermediate solution would simply be expanding the current primitive system with additional shapes like triangles, cones, wedges, etc... That alone would already significantly improve mapping possibilities without introducing the full complexity of custom asset distribution.
#

@tulip kiln Tiny update about the Voice chat fix: It seems to be working really well. None of my moderators have reported any major issues with it 😉 Your name will remain engraved in my Git history realman

pale horizon
#

using Sitelink atm

worn gull
#

I guess

#

It needs to connect+load in to the server and that is the loading screen

soft depot
# pale horizon

just hack the client and remove the code that loads that scene ClassDBrainlet

pale horizon
#

pretty much figured it out

#

just fixing a few things

soft depot
#

Does it really regenerate the whole map?

pale horizon
soft depot
#

What’s the point of whatever it is you’re making?

pale horizon
#

will dm

soft depot
#

I’m just asking because I thought you were working on a seamless server hopping thing ig

upper vapor
# pale horizon

i cannot imagine the amount of tiny issues you'll encounter

barren pasture
#

Any ideas why neither Raycast nor RaycastAll will hit a player?

upper vapor
barren pasture
#

Pinging

upper vapor
#

Uh

#

Does it hit anything at all?

#

Try visualizing the ray using DrawableLines

barren pasture
#

Raycast hits "Outside" and RaycastAll hits everything behind the player I'm aiming at

upper vapor
#

Which lawyers are you using

#

Layers

barren pasture
#

Default

#

I've tried the layer "Player" on a raycast but that didn't give results

upper vapor
#

Maybe move the origin forward by a bit

barren pasture
#

Doesn't change the fact that RaycastAll doesn't hit, either, unless you are saying to hit it with the Player layer

upper vapor
#

I have no clue tbh

#

If you spawn a dummy next to the target, does it hit the dummy per chance?