#plugins-dev-chat
1 messages · Page 219 of 1
ók actually
Ók
Scp049ResurrectAbility::Duration
Why multiple ó
why not
beloved field ref delegates
@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?
what
for CI?
i just wanna change name of local variables and keep it that way for easier readability
what
and not have flag1 etc
i mean those are decompiler generated lel
does player.Kill() bypass godmode?
prob not
use Player::ReferenceHub::playerStats::KillPlayer(DamageHandlerBase base)
however it will not invoke events like dying etc
patch PlayerStats::DealDamage 
✅
ugh, doesnt work on dummies
probably someone elses code in this cursed codebase
Destroy the dummy
obliterate it
cease their existence
does anyone know how to force item use/cancel on a player?
Usableitem is using
client wont agree
you cant do it to a player and have the same player see the animation
ServerEmulateMessage should work on dummies right? (in the UsableItemsController)
LabAPI, the Official Modding Framework for SCP: Secret Laboratory. - northwood-studios/LabAPI
It was changed to work with client
Check it
ah yeah that is using that thingy that i want to test rn
I personally pr'd it
xd
If doesn't work blame eve
WHAT
it just sends StatusMessage
yes but does that do what i said it does
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
Yes
@cyan crown 
Ax casually eating all the memory
if unity, discord and firefox dont eat it, then it's his to eat
99% RAM usage 100% swap (24GB) usage
after like 5 min, the kernel finally killed unity
my ram is eating me
I'm ramming the ram
🐏
anyone knows if u can spawn bulletholes directly serverside without a weapon? didnt found it yet
use a firearm template (InventoryItemLoader.TryGetItem) then get the ImpactEffectsModule, and call ServerSendImpactDecal
thank you. My goat.
you can copy the write method from that and use SendRpc instead (skips the event)
np
Is it already planned to increase the collectionid for sss beyond 20?
20 arent enough 😭
what the scallops?
huh?
hows that not enough 😭
well it isnt for me tho
why it is restricted ?
it's a byte ?
yes
they likely didnt expect you to have more than 20 settings saved in different collections 😭
why is there even a limit
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
where is the file client side ?
and 20 should be more than enough 
i still don't get why force limit it ?
each roletype could have a specific config
doesnt matter that much tbh, if you join a lot of servers with sss, you quickly fill up your file
yes but you could also save it with a different id?
what
i dont understand you yamato
where is the SSS config stored ?
there could be multiple reason you want more than 20
yes but your use case you specified doesnt make sense
i already asked for seekos use case and they just didnt answer

so im confused
do you know where they are stored i am curious about how they look
well i want to give players the freedom to change everything in the hud or other things
yes
but
so 20 isnt enough for me
why specifically do you need collection id to be different for all of those
why not just
set the id of the setting itself
ok then it doesnt make sense still 😭
can someone said me when where it's stored ?
eg if you only want each setting shared between 2 different servers and not any more than that - youd need 41 servers
u kinda confusing me rn
CollectionId is for sharing across servers
right
imagine each id has its own list
like a dictionary
of settings
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
@hearty shard did you ever work with collectionids?
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
it works, didnt know that lol... i thought collectionids would function differently
yep
imgui asserts dominance over unity
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?
psure thats the same thing 
atleast it's already calculated, meaning you dont need to do it twice lol
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
make a bug report
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
404
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?
You can fake it by set the camera rotation
Since recoil dosent sync between the server and client
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
client side
alright, bummer
who tf named the rooftop ts 😭
What
the invisible roof above MTF spawn
I guess
how much do I have to pay to get proper triangle primitives in scp sl
this much
holy moly
Four years and 5 months now there has been a serverhost suggestion to add triangle primitives and it has 0 downvotes

ok and?
When are they coming
Is coordination between devs so bad that it’s that hard to add a single triangle mesh prefab with some primitive toy code
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
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”
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
If it were singled out, or completly rejected, then they would say so
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"
this guys gets it
As someone who had tickets assigned that are 2yr old, I know firsthand what is "this can be done later" :D
We will not promise anything publicly as long as we aren't sure we can deliver it in time, or anything that isn't merged in master yet
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)
Honestly I see a more generic rework for the primitives before anything happens to them
So what you're saying is
Triangle update tomorrow /j
Tomorrow is relative
Scrap mechanic chapter 2 tomorrow
tomorrow is never
tomorrow never becomes today
today never becomes tomorrow
wow
Is Shakespeare really dead?
Me omw to send denied to all suggestions
Honk shoo mimimi
can't be sleeping right now eve!!!!!!!! /j
Ur FIRED
WOAH
Do you want to buy eve?
im selling her
and no one wants to so far
I wonder why
I HATE YOU
no
Aw
umamusume!
What
horse gals
see david had a bad reaction!
he hates horse girls obviously smh
someone gets it
what horse girls 😭
david the horse hater
Im not that hungry
Horse nonsense
"Quit horsing around"
anyone have a plugin thats Ball Gun
@icy knoll BONK
What would that even entail
How do you rework any of those primitives
Wha did I do :c
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.
It would be relatively simple to implement that
maybe in 18.0 this bug will be fixed
i saw an update to one that addressed it
where?
schrodinger's connnection
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
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)
uh
did you use the sr command? (softrestart)
umm
crashing is different 

if you hit the ratelimit, your ratelimit is set too high
so you should lower the reset time
i'm also getting ratelimited on my local server after restarting
😭
reconnecting earlier than allowed, and then getting bonked
i set it to like 100 it didn't work so i disabled it and nothing
after the server's requested connection delay

wait i just sr and it ratelimited me 😭
ye
does turning up the ratelimit work for sr?
turning it up means youll hit it more
try increasing the full_restart_duration or whatever
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
so if the sr takes 50 seconds, a value of 5 is fine?
-# why does softrestart take 50 seconds 
no because the server delays client connections with 5 seconds if the server is not ready
so you should have 4 or less
default was 3 iirc
or atleast that is what the official servers is set to
i never got rate limited
i always wondered why my server had 50% chance it started loading over again on startup, now i know 
ummmmmmmmmmmmmmmmmmmm
ax ate the server
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.
Ive always had issues with Triggers on primitives
I usually create a new gameobject then parent that to the primitive and added the trigger
||
||oh my pccccccc
who can make something for me dm me
ok... I tried a very peculiar method
if you need a solid-color skybox, try using Text Toy
looks good
Correct
@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?
What
github
I don't really understand the question
If you're asking about overwatch persisting across rounds, that's been removed (well, not implemented)
Enshittifaction smh
Where is the paid lootbox for commands
Are the gambling servers still alive?
No idea, I only play MemeSCP
What did I expect
Crazy
we should be able to bake banana bread
Are you unable to do so?
ingame no
Alliteráció
Then implementáld 😌
Sleep emoji
is there any way to disable achievements for tutorials?
achievements are client sided
ah i thought i had seen some code for it on the server
afaik some achievements require the server to say it, but not all
a lot of code also isnt stripped from server builds even if its client side
Most achievments are called server side so you can path the methods they are called in to check if not tutorial
you can patch AcheivementHandlerBase.ServerAchieve
oh, ok!
There is a syncvar that lets you disable client-side achievements
Not sure where it is
Maybe in MainBoolsSync
Good old Harmony patching
I havent experimented with Transpiler patching, yet
Prefix would be enough
There is one but i dont think cancellable
Ye there isn't
And there was a long talk about it
Use the syncvar thing it fixes like 90% of the stuff
Is there a syncvar thing
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
i think for his case patching it would be easier
since he would have to fake sync it every time the role is changed
the sync var is the better one but harder
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
Server.Broadcast with the AdminChat broadcast flag iirc
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
use a different player ig
it's kinda a plugin issue ?
if you don't want it to be show there modify the plugin ?
probably just make a dummy invisible to the player list with no name and use that. You will still get the colon but yeah. I don't think even sending the standard message itself could solve this
it could
but yeah
yikes
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);
}
}
}
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
is the Player in the EnemyKillingObjectiveEventArgs the killer or "victim"? I guess killer. But yeah. Too lazy to test rn xd
read the xml docs

"this object does not exist, therefore i must call OnValidate on it"
-# -unity
oh nvm
i called it
xd
xd
Done. Enough chaos.
thamk
dam, you're a discord mod now?
crazy
yes
Yeah he replaced me :)
He's a little boring tho sadly
tahiti
Is this the faith Dutch talked about?
winning mr beast money?
No... emi
Bruh
Is it intentional that SSS Settings only work for 079 when the map is open?
prob not
How to change particle disruptor's damage?
onhurting delete system32
real
Remember, windows doesn't feel pain
Did you see that chrome extension that changes word microsoft with microslop
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
@subtle ravine ermmmm #1507772697764036688
use the -ed event instead of -ing
tried that and same results 🙁
uh
meh no biggie lol
I'll just have it as part of its quirk that it only works for consecutive blinking
feature
frfr
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 😭😭
np
it's joever
or is it.
Memory leaks incoming
hope you atleast move to urp..
I hate URP
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.
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
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
i meant you pushed to master, and honestly would test with some people if the engine update is successful otherwise be hard to do other stuff
engine updates were never a problem for me
im talking as someone who updated from 2018 -> 2021 -> 6 -> 6.3 -> 6.4.3
Does he know

slime boy
evilgirl
He doesn't know

I ported legacy to urp recently
cool
Progress is so so slow i barley work on it
hi taj
Do you use post processing effects, by any chance?
You mean like custom ones?
Or just what HDRP offers you
The ones available in Unity through the post processing volume, believe you need the Unity package installed
I do use them
Yeah camera layers is a huge issue in hdrp
Have you noticed them being broken on 4.8?
Well, not updating specifically
I haven't, but let me double check
Steps to reproduce:1. Create a new HDRP project2. Select the “Sky and Fog Volume” GameObject in the Hierarchy3. In the Inspector add...
Yep they dont update at all
You have to toggle the post processing on and off to see changes
Yeah
I do remember having issues with Tonemapping but I didn't use that, only for testing
This also happens for select few of effects
works for me
They do work, they just require a refresh I believe, but it's annoying af
Yeah i was recently working on a post processing heavy project it was so painful doing changes
I think I only have like a small amount of post processing
fog and some other things and that's all
I think you have only 3 of them
yeah something like that
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
I was planning on using more post processing effects for SCP-079 so probably this is when I'll notice
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
I hope unity added cloud layers for volumetric clouds one layer seems a bit off imo
Alright, thanks
🫡
the post processing?
hdrp is cool until you need a second camera

good DI
DI?
dependency injection
right
I dont like DI
did you use the official DI package? (why is this a question)
it's better than what unity does 😭
I still dont like DI whoever made it
do you call it doodoo injection or something?
can't believe i've typed that
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
yeah, Microsoft.Extensions.DenpendencyInjection and Logging
maybe cuz you didn't have different types of services for one purpose
i used DI in avalonia which made my life a lot easier
(impl for diff platforms)
Bro half of the things I see used DI because just the purpose of using it
their skill issue
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
Kinda true
you should see what people try to get DI for in the .NET runtime lol
especially for mocking lol
DI is only useful when you have a clear separation of layer, like in MVC
I dont like asp net either
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
MVVM 


-# wrong emoji 😭
model view view model?
oh
extra space 
TRAITOR
viewmodel is often reactive, model just exists (e.g. DTO)
yeah just making fun of ppl who usually have those as the same
for context:
literal meaning - don't repeat yourself
proper meaning - don't have multiple versions of the same logic, since they can have different bugs and inconsistent behaviour
and not "dont have identical pieces of text" in your code
what's wrong with drying your text
i'm not really a fan of writing the same method twice
third time is a nuclear explosion
I said million times, I rather write how I control everything for http request and response than do any asp.net stuff
I dont like aspnet and has trillion dependency
In C#
crazy
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
Ye I said that thing too
Since I never a Client
And mostly the server
Custom stuff top on it
I use it for some of the stuff I have
why in 😭
Abstraction, if you decide to migrate / integrate another backend
I can see the reason
Sent by value idk
you can't send interfaces and classes by value though...
pls dont NIH
nih?
Not In House (syndrome)
no
wait till you make the
AngularJS ASP.Net template
300 JS dependencies 
i have one repo with it
well thats js
You meant Angular, surerly. right?
And not actually AngularJS
It's both 
Also any NPM based repo is like 300 deps lule
despair emoji
300 RCEs
I mostly needed something that i can work and iterate fast, and doesnt require to learn to build abisimmal shit
RCE? With the amount of build highjacking, its just "WHH" hacks
we use Playnite and that has like more dependency than i can remember
What the Heck Hacks?
Sounds something like eveil would say
Wlecome home, honez
Nite?
Fort
Idk why but sounds appropriate what the npm users would do
Welcomeing malware with open hands with a single npm i
Right
Anything is possible with yavaschript
jabba script
Vaxry is so based for that
What's that guy's name from Rachet & Clank
What
George
idk
Zsoli
I don't
living in the dark
day2 of github action and unity
souinds like a horrible idea lol
make sure to cache a lot of stuff
annoyingly enough
ye i did that
i dont know if youi can cache library
caching Library and editor
since i think the working dir changes on github actions
Puding
Are you using game-ci?
Dokkoló
dokkoljon oda
are you making an open source game?
yes
but the project currently closed source
since i wanna do stuff with it before opening up
cuz private repo acyions limits are too low for any unity builds
you probably cant keep the 15gb cache on gh anyway
better to make a selfhosted runner on some pc, or server
or just build yourself

well for a smaller project you might fit in the 10GB
btw did you notice how much faster reimports became on refs on the CI now?
havent looked at it
but cache server + funny disk things have probably increased speed
reimports run explicitly with cache disabled
yeah it's weird it improved this much since builds didn't, event after cache
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)
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
get the room its inside of
There is sth in LabAPI for that, but it doesnt work if a player throws an item at the window
there is Scp079Reconatiner::_activatorGlass
you can use event ondamagingwindow
and compare the glass
The window probably has a room property in there
Yeah true
you need to directly compare it with this
Make sure to compare the base of the window and not the wrapper lol
(I forget if there is a wrapper)
Thanks for the help, guys ❤️
I upgraded to hdrp 
It is decompiled
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 🤔
btw please dont do Object.FindObjectOfType
I have no clue how I can get this window
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
that might be why you have the performance issue but i dunno
also why != false? huh
cant you juts patch it here?
because you are iteracting through every player every object
the main issue isnt even that
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
must have edited this out since i though that i wrote it
why can
why can a CanDamage return null 😭
ok then why not == true
instead of != false
Null = basegame behavior
True = force damage
False = block damage
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
Cuz I want to prevent a player from damaging SCP079 button only when he cant attack all instances of SCP-079
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
wdym enum?
Again, Im Shitcode PhD, licensed
enum is cleaner than a nullable bool
Thanks, that worked)
Finally done with this freaking button xD
Object.FindAnyObjectByType
@eveil stop recommending obsolete stuff!!1!1!
idk i just copy pasted the code they gave
Its fine, I changed that alr 😅
Society if unity removed obsolete APIs
is there a way to mute/disable chase themes for players yet?
nope
can i know why you need this patch ?
have a nice stay in the mirror limbo dimension
also #makeCameraParentingGreatAgain
although it was never great
this would fix your issue
so you can correctly use event as normal
or make than the Pickup destroying glass have an damagehandler instead of null
(i kinda hope it's fixed like that on Master)
it will be different
NineTailedFoxAnnouncer was changed recently, right? what's the new thing again
the change was like 6 months ago lmao, im so behind 😭
i think it was cassie yes
that's the "new" code
CassieAnnouncementDispatcher is the new base-game class
You can use the Announcer wrapper, too, though it doesn't cover all use cases
Np
is there a way to skip certain announcements (particularly scp terminations)? or do i still have to use harmony for that
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.
seems like it's still not possible to skip, so i'll continue using harmony
ye there is no event for it yet for that
Patch for now, as Cassie events haven't been implemented yet
thank you folks!
I send you the fix for that
You can use that
dear nw
please give us triangles
@sweet flax
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?
psure the force role command supports it
it still does? weird, in the description, it doesnt say that
oh! you are right, it does, thank you
dear users,
triangles are psyops made only by a group of people,
slejm
dear slime
can we crush you into a liquid
i need it for my industrial foregoing adventures
nuh uh
dear nw
i am so desperate i even gave you a prototype https://github.com/northwood-studios/LabAPI/issues/314#issuecomment-4529563843
also is the zero post chatgpt
?
probably
99.999% sure that it is
kinda same prototype i sent to taj
mf's at nw be sending to other people instead of implementing it into the game
tbf keyword was prototype
i mean its working it only needs to be tested
This doesn't change a lot
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
but like why not support it 😭
i thought it was prototype not for private use but like for nw mb
right nw the community is using cubes and planes to simulate the triangles
ye people assume this which idk why, but i want it to be aware that I prototype many stuff on SL to learn
You're using air for personal growth
:(
Air + evilness
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
why?
This feature is one of the most if not the most asked feature by the modding community yet there still is no plans
that was a rejection of custom textures (likely to prevent it being a hog to download 5 million assets to join an SL server, its not gmod)
and ig meshes
i assume for some reason but no clue

No fun allowed
Well it could be limited
Why limit it
The textures?
I think it would collide with the game vision and make it more gmodlike
But without the fucking lua
Lua is great
I dont personally like the syntax and the fact that it isnt static typed
It's great for modding
although I personally use Luau since it does add a bit of type checking
Fivem i think has one of the best modding solutions since it supports lua csharp and js
And can be downloaded to the client
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.
The luau os is the roblox one?
What kind of info
Yeah they have a subset of Luau
more performant, safer with sandboxing
And to add to it arrays start at 1 and oop has to be worked around which is a pain in the ass since all the games are oop (evens dots to some extend)
OOP isn't hard
Mostly cookies, i seen from Roblox and or gmod
With metatables and userdata
You can still prevent that
Kind of
Havent heard of that in gmod tho
How would it work?
Mihht be only roblox but I heard it had from gmod too tho
I remember but I cant find it
gmod is overly cautious so I feel like that'd be solved very early on if it happened
how many bullets does a Revolver with the 7-Shot Buckshot Cylinder fire?
was there a update that made it so you'd see the last remaining target...? like the goggles
yes
and how do you disable it?
idk
you mean everyone just has this setting enabled by default? 😭
by default since its a basegame mechanic, yes
last target tracker or smth like that
i wonder when this mechanic was added
fortunately the server decides on that
You can patch this so the last target is never set
[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;
}
}
It's powerful and easy
yeah because you can edit the game code directly from there, i just find it funny how its rlly common
You realize this is used not only for orbs but also for other logic, right? And now you're messing it up.
My intention for this patch was to disable all last target related features
This might break SCP-106's pocket insta kill and the soundtrack
Yeah
If you only want to turn off the red glowing orb, use a fake last target position
https://github.com/MS-crew/LastPlayerOrbRemover/blob/master/LastPlayerOrbRemover%2FLastTargetOrbPatch.cs
if only there was a way to give a player an orb while the person seeing it is human... (not 096 with fake sync)
orb toy when
Toy toys when
Can we change it so that the game is built around toys
every player is a toy
every room is a toy
everything is a toy
Am I a toy
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.

Long scary text
That is a giant wall of text. got the broad understanding of it tho, and i can kinda understand it
can I somehow read all payloads sent to client?
Yes, hook into sending the bytes
Just make sure to keep whatever processing you do as optimized as possible
Hot paths and all
What
Toyota toy
maybe he means like pellets
8 pellets per shot
that's for the revolver? 
Yea
what the
8 bullets but only 5 can hit?
yes because yes
math

you should like totally push each element randomly by -0.1 to 0.1 each update to remove consistency 
Inpossible
<center/>
😂
"hey jimmy my tokens ran out what do i do?"
(gets executed immediately)
particle toy would be good
was already suggested i think but not accepted
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
network the whole game and let the server handle it
Yeah just give us RCE 
nuh uh
damn
"a rák egye ki a szívedet"
-# have the crab eat out your heart
crab/cancer
could mean either
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 

Don't think so cuz it's how in the client
I guess
It needs to connect+load in to the server and that is the loading screen
just hack the client and remove the code that loads that scene 
pretty much figured it out
just fixing a few things
Does it really regenerate the whole map?
?
What’s the point of whatever it is you’re making?
I’m just asking because I thought you were working on a seamless server hopping thing ig
i cannot imagine the amount of tiny issues you'll encounter
Any ideas why neither Raycast nor RaycastAll will hit a player?
Are you doing this in the hurting event?
Pinging
Raycast hits "Outside" and RaycastAll hits everything behind the player I'm aiming at
Maybe move the origin forward by a bit
Doesn't change the fact that RaycastAll doesn't hit, either, unless you are saying to hit it with the Player layer





