#plugins-dev-chat
1 messages · Page 143 of 1
it would lag behind for sure
and new sync stuff
every day
instead of using stuff like normal mirror user
instead No RPCs, Packets
and only those
I would steal the way how minecraft does it tbh, have the decompiled code, push it into branch see changes and then move from there
Interest manager could really benefit the ga,e
oh my god
please no
you mean Ab?

who complains about SL has never seen minecraft
i would send them to work on minecraft 1.8
and then they would realize SL isn't that bad
I'M coming from Minecraft modding
kill >>>> prefix
creating an inventory was an ADVENTURE figuring out
im coming from minecraft modding & plugins
AHHAHAHAHHAHAHA
if you don't handle gui correctly
Duping
memory leak
me when
straight up crash
you can use bukkit
or you wonder why the fuck does the player inventory gets cleared 
Bukkit DOESN'T have a wrapper
for that
Normal uis
have it
imagine running bukkit in SP 
but custom ones are chest
brh
for what
Custom Guis
as much as everyone wants to glaze mc
mc sucks
its just old code running on top of new one
with hopes and dreams
like
what
what is this if bukkit doesn't have a wrapper for them
Yes but you need to handle them
you can cause dupes
did you find anything about 939 visibility controller?
duh
i'm 99% sure it's possible to remove the blurring effect
nope
david has said it, it's client side
i love client side
go check nw source code now that you have it
bruh
939's vision is all clientsided? everything about it?
someone removed the blur before
like a few days ago but i can't find it 💔
impossible
oh he pinged me
i did not get the ping for some reason
so that person went to game settings and removed the blur
umm
does this prevent quick stacking
ye
it should because the item you click is what type gets transferred
you cancel it
the server handles the bulk move not the client
does it check for mods like gui utils for meteor
or prevent commands in the UI


there are so many hidden inventory exploits
yea
on 1.8? 
I watch duping on P2W videos and the exploits are insane
right
ME too :3
sucks to be you if you mod newer minecraft i guess
i just don't wanna tell you but this
for duping its op
i think it's just developer skill issues
no some of them are just minecraft fault
or how flawed it is
example sending commands on guis, you think its impossible
instead it isn't
didn't say which developer 
For example most of the bugs work with Desync
because
it closes for the server but not for the client
and the server just
lets you transfer items in an inventory that isn't even open
?
that's diabolical
There is some interest manager but it doesn't work like that, tbh I looking how it works and I was also looking to be efficient
nothing
because for the server the client doesn't have nothing
but then the server just... wouldn't transfer the items
cuz there's nothing to transfer
at least that's what i imagine, i don't actually know how mc handles inventory internally
Tbh if interest manager is actually be made would be goated
But I think interest thing is client sided (no?)
I mean the problem with that is that you can pair it with "Disconnect and send packets" and create race conditions
and stuff
Desync is useful for that
huh 😭
It sends the packet while you disconnect
guys
all at once
is there a team that has no "faction"
or something like that
so the round doesnt just end when i like
Others
set a specific scp's team to "chaos" for the global target counter but the round still en
Oh
is that what its called
just
Others
check the enum members lol
Im so
decompile GetFaction
Thank You Axwabo
np
that's crazy now it still handles stuff
let's rewrite minecraft with mirror 
that one does not count towards the target counter
i thought you meant "Others" literally but i assume youre referring to OtherAlive?
that one probably
that one does not count towards the target counter sadly
wait what are we doing
Trying to make a custom scp count towards the scp target counter
i think i could just make OtherAlive count towards the target counter itself
oh okay then what should i be doing
with a patch
But the part i dont understand is "adding one" to the scp target counter
thats the part im stuck on
the custom scp is still on the scp side
so im trying to make it a target with no faction
Lone scp basically
how do you even find these? somehow i always manage to skip stuff like that
even if i triple chjecked
checked
check the IL viewer in your IDE or other program
this is a nested class in roundsumamry
Why?
it doesn't work too well
since you have to fake sync the pitch
of the primitive parent
wdym?
you wanna put the primitive in front of the player
but you can't parent it to the camera, only the player's game object
so either fake sync or normally set the pitch
you can't... stop the camera from moving
you sure?
or can you
Or treat the GUIs as ingame objects and allow user to move freely
i can
do you use 3114
I was actually thinking about the same, making a GUI with primitives
or override rotation every frame

so you don't actually prevent the camera from moving
i honestly don't need it
but its funny
I want it cause it would be dope
i don't but thats the best way to prevent it
i have honestly 0 use
even tho with meow combined i could do some cool stuff
yeah but you don't prevent it, you just force the rotation to be x thing, still flickers
Like in Minecraft if you do cutscene
thats the only thing you can do
Or just don't do ui
smarty farty
what the helly
I remember
Does anyone know where StaticUnityMethods is actually created and attached to a gameobject?
in editor 

Me when
This is so much more ominous and spectacular than current SL imo
Thanks its not finished tho so it will look much more better
You might notice that door panels make lights as well seeing by the hands reflecting the lighting
oml i was so braindead
Weren't we all
it's in the root of the scene
why do you need that though
Because I'm trying to make changes to how it calls its delegates
To deal with issues that occasionally occur with null refs not being handled
you can't guarantee event invocation order
best you can do is put a gameobject in the scene with your own component and call transform.SetAsFirstSibling() but that might not work still
Rare mitzey appearance
I found a solution so no matter.
I do have a question can you make a ragdoll sling shot with explosion effect?
The one NullRef issue, that murders the server? If so, Im interested if you have figured out the root cause
Yes
hi guys!

I made mine before waypoints ¯_(ツ)_/¯
skill issue
Im just looking up, dont mind me
Still have yet to use waypoints at all
STOP TYPING UR HIGH AND DRUNK
1v1 on fortnite
Only if implemented building in SL
New idea
Crazy
i could do
but idk how tf you would divide everything in a grid
You see 49 and you just start building 
Me when damage handler velocity
wtf are you on?
fortinayt la babacii
fardnit in scp:sl??? 😳😳🥵😱
Didn't you want to swing a ragdoll?
Like
Make it go far
Yeah
which handler is this?
I mean, if it's the one where player movement breaks yea
It's caused by one of the delegates in the First person movement modules active updates action
Just one null ref in this chain of methods can stop the whole chain

And that throws an exception up the chain to static unity methods, which kills anything that comes after FPMM
I patched and replaced these pieces of the game to use a more graceful solution that will ignore delegates that cause exceptions and allow the rest of the chain to continue
Cause otherwise player movement as well as many other things seise to work
Yup, where the server get stuck essentially. No movement updates or world updates, only voicechat what works and LocalAdmin keeps getting spammed
How can i parent a schematic (from mer) to a Player?
schematicObject.gameObject.transform.SetParent(player.GameObject!.transform);
this doesn't work at all but for no reason
time to recreate
yo saskyc you know how to parent a schematic to a player?
yes
how?
.
describe how is it not working
because this doesn't
idk how
lol
like no schematic
is visible
is it just not moving?
ooooh
localPosition = 0
Vector3 behindPlayer = player.Position - (player.Camera.forward * -2.0f);
SchematicObject schematicObject = ObjectSpawner.SpawnSchematic("Hotdog", behindPlayer);
schematicObject.gameObject.transform.SetParent(player.GameObject!.transform);
after you set parent set the local position of schematic to 0
bruh
then set it behind
with localposition
hmm
and make sure when you built the schematic in unity that it's in middle of the scene
I think it should be
set the local position to behind position var after you set parent
i know that
i mean world stay
should make it work
lol
idk i do this stuff automatic on meow
so its not really a problem for me on meow
but mer is totally different
so learned my lesson NEVER make your own stuff else you forget everyone else
do you set the local position of the schematic?
no?
world stay should set it for me
WHY??
if world stay exist
bruh
schematicObject.gameObject.transform.SetParent(player.GameObject!.transform, true);
this true exist for a reason lol
Cause parenting makes world origin to the parent
Im sorry but World stay position should do that???
Isnt it so the Parent is always the origin?
¢=%}©{¢=¥×|∆£¥}?";#-#(_($
Just add a try-catch to your code 
bro im geniunly 100% sure unity is not that stupid
When you have parents they are your world
what...
The object you're parenting has to be an admintoy
Idk, it is still morning
Vector3 behindPlayer = player.Position - (player.Camera.forward * -2.0f);
SchematicObject schematicObject = ObjectSpawner.SpawnSchematic("Hotdog", behindPlayer);
schematicObject.gameObject.transform.SetParent(player.GameObject!.transform, true);
honestly idk how mer works
im geniunly trying my best lol
it doesn't 
this shit seems to be so stupid
bruh
nw code doesn't have this
try { Timing.RunCoroutine(...) } 
so how tf you parent this shitty ass fucking schematic
geniunly i now remember why i made everything myself
You don't need to do that if you place it in world-space and then parent it
But the transform props have to be synced (not static will solve it)
just set the local position
So i parent it to the player
and then set local position?
Don't use mer
Problem solved
Can't you just specify the parent in which to spawn the schematic in?
no.
Right
yes
XDDDD
SchematicObject schematicObject = ObjectSpawner.SpawnSchematic("Hotdog", new Vector3(0, 0, 0));
schematicObject.gameObject.transform.SetParent(player.GameObject!.transform, false);
schematicObject.gameObject.transform.localPosition = new Vector3(0, 0, 2f);
Vector3 behindPlayer = player.Position - (player.Camera.forward * -2.0f);
SchematicObject schematicObject = ObjectSpawner.SpawnSchematic("Hotdog", behindPlayer);
schematicObject.gameObject.transform.SetParent(player.GameObject!.transform, true);
//FUCKING LOCAL POSITION HERE ZERO
now if i use this it should work?
try it and see
Shameless sloc plug
I will have my pain in some time with sloc
(It lets you specify the parent when spawning)
never used it only MER
What
I'm not englishing rn
Are you locked into mer because you're developing a public plugin?
Then
;(
mer api is not good
No
Use another loader kek
Thats so true
Create ome 
btw what the fuck is the permission of mer?
I already have my own loader and works 10x times better
and easier lol
creating pull request has no reason, because it won't get accepted...
I would never
I'm not very proud of the sloc API because i started it years ago but it's still pretty simple to load an object
MER is very unreasonably hard to work with
Yet it's the most used...
yet its the one that sucks on customizability
Why don't I have an ome emoji

I can't really give an opinion on that since I don't use it 
I swear im gonna break something
It doesn't work
and I CANNOT EVEN CHECK THE SCHEMATIC
go to unity and check if it's in the middle of the scene
I guess that was the most popularized loader?
BECAUSE FUCKING DAMMIT I DON'T HAVE THE PERMISSION EVEN THO IM FUCKING OWNER
Check MER github for perms lol
I swear
I wish perms were accepting ** for all
patch the command to not require permission 
of course
???
bro
Why
most common issue
im gonna break
a keyboard
why tf mer is so hard
how do you fucking deal with this everyday
because it was made by NW person 
Did you find the perms lol
no.
mpr.create
doesn't work
i swear
you know what
who tf cares
it works now
Okay
That’s better
ew
Private
bro trust me
i swear
adding a shit to this
is easier than anything i've ever done in my life
I'm not downplaying it's capabilities but nobody else can use it
at the start it was gonna be public
than maro saw it
and said nuh uh
Show your permissions.yml
but now i kinda agree
Time to use this loader 
default:
inherited_groups: []
permissions:
- mpr.*
owner:
inherited_groups: []
permissions:
- mpr.*
- mpr.create
now its time to use your api
No Copilot agent mode?
GL
Primitives at least are compatible for conversion MER -> sloc
why ping me zero
They should just work
because i now love you
i was sleeping
That's diabolical
oh sorry lol
huh.
Have you heard of
Platonic love
i swear if we never went away from mer at this point idk if i have a keyboard
What a sad life
btw you just understand it better only if you read platos
i am so.happy
i swear
because of alcohol
lovely
so it is not sad life
Platos?
yes?
Never heard of it
No!!!!
zero u look like plato
ME?
bro i don't look like plato
trust me
that guy was beautiful bro
potato
aristotle
Plútó
i love aristotle
This is a plató
pythagoras
bruh
Oh the ancient Greek guy Platón?
i brought rocks at school to explain him
Xddd
its complicated to explain but simply enough, we are so stupid and this guy made a theorem with just the use of rocks
i explained the entire logic of pythagoras math using rocks
like he did
Rock and stone
btw funny enough
0 doesn't exist
because if you think hard enough
0 rocks means nothing
so 0 therefore cannot exist
there was a philosopher who said that
i forgot who it was
it was one of the recent one

i swear i forgot about him because it was schizo
everything was one
and we just see because we are one
or something like that
idk

fun fact some of the programming is based on philosophers like Aristotle
wtf
what the fuck 😭
Hii
heyo
Yep exactly this reaction I was getting too
how you doing?
im okie, in a meeting rn that im like bleghhhhh
Same
I watch the prof from my bed
Name your variables after Harry Potter characters
yo axwabo
fast question
Fast question
did you see that tiktok/yt short too 😭
WaveStream.TotalTime
What
Yeah

AlbertaTech
what
Check naudio lol
WaveStream has TotalTime (TimeSpan)
Nice
Keep in mind that for compressed files it can be slightly inaccurate
E.g. 2:48 mp3 file might show as 2:51

What
wtf you cannot change death messages?
only on that ig
you have to use that
ok
Yeah
there is also CustomFirearmReasonDamageHandler
or it may be CustomReasonFirearmDamageHandler
idk which
im testing with one
wtf its not working
i try to die from a dummy
ev.DamageHandler = new CustomReasonDamageHandler("Death");
and nope
yeah that doesnt work
why?
you need to deny the event and then spawn a new dummy
well, it doesnt work like that for some weird reason
lol
even on the dummy spawning event
bruh
ragdoll*
WHY DO I KEEP ON REFERRING TO RAGDOLLS AS DUMMIES 😭
Silly
ev.DamageHandler = new CrashServerDamageHandler()
Yeah cancel the event and call KillPlayer with your own dh
I dunno
G
What is happening
there wasn't an event to check for SSSS updates or am i going crazy?
They aren’t included on labapi
I remember they did
Shocking discovery
I don't think that was a thing
I don't think anything from SSS is in LabAPI (or ever has been), which is kind of a shame...
Now there are like 5 different libraries for it
And all are incompatible with eachother
There was an experimental wrapper system implemented by Riptide, but it would be ideal to rewrite the base-game system
Let's make an SSCompatibilitator
Heck, even SSSS IS incompatible with itself
XDDD
Ngl, having an Nth plugin that patches all SSSS plugins is bigbrain
Well I'm part of the problem as I made my own, but kinda wanted to make bridges or something to make it compatible with other libraries but haven't gotten around to it
Wiill it have a self destruct button?
Yes
Perfrct
Tbh at this point who uses complex ServSide crated their own
Even I have my own basic one
ASS is kinda ass ngl
it's not really a wrapper, it's just a clone
Idk why, it just was not made with multiple plugins in mind is what I feel
Yeah, I tried making one which gives me full control, I even have collapsable submenus and the possibility of having "tabs" because I needed them for a plugin
patch the method to capture sending Ssss stuff
prompt GPT with the call stack and their IL codes
transpile
And then you install a plugin that does DefinedSettings = [] and now the whole system is broken
💀
All plugins will be compatible
Xddd
can we normalise ??= usage
does anyone know if theres a easy method to create escape zones
MER or other libs have those no?
If you dont use any of those, I think you need to create a trigger primitive with a custom behaviour
so heres the funny thing im already looking at ur code
get the position you want it at
and spawn it the primitive there
has to be GameObject.CreatePrimitive (since it should be server side only)
using plugins for everything
thank you! thats the only code i'd need to create a escape zone, and it would trigger events like OnPlayerEscaping right?
how else would you do it?
you will need to handle that yourself
wait so
Manually in my own plugin
(I meant installing new plugins to do it)
You cant create a escape zone that can still be subscribed to labapi events?
I never said to install it
i gave how to do it with code example :)
You just manually create the event and invoke the event
is thie the case or
oh
PlayerEscapingEventArgs ev = new(// params)
PlayerEvents.OnPlayerEscaping(ev);
if (!ev.IsAllowed)
return;
yk?
you need to handle the event processing urself, but calling the event is just creating the args and calling the OnPlayerEscaping method with it
You can
If you create an escape zone that uses the base-game handling (specifically Escape::ServerHandlePlayer) then it'll call the LabAPI events
Unless you do the aforementioned
^
Idk I use a publicized assembly
but for a newbie
Half the shit in this game is private
They're asking how to create an entirely new escape zone
It's easier to get a publicized assembly than it is to manually invoke LabAPI events and other shit
Especially because that would also entail handling the entire escape from scratch
yes.
Just do reflection 
This also works but it's lame
i did not know creating an escape zone was a bit this complicated 😭
i will do my best
And unnecessary
It's not really that complicated, you just need a publicized assembly
Assembly-CSharp.dll
yeah i have that
also
You publicize the assembly
@slate flume that doesnt work
Says you
Lot of things are complicated sadly cause game modding is a blood sacrifice filled witch magic
what does that have to do with it???
Does the base-game automatically check all escape zones in the list
yes
So it's just
No not for that
@bright vine
I mean
create one and Escape.EscapeZones.Add it
You misinterpretted my question
Which list
Still not the question lmao
"Does the base-game automatically check all escape zones in the list"
what list
what escape zone list
EscapeZones ?
the answer is yes there
and it passes if the said bound has a position
LISTENNN
just say it
okayy ty
I'm trying but people keep interjecting
But thats the thing u keep saying "listen litsennn listennn i keep trying to say it but ppl interrupting"
if u had that much energy u could have said it 😭
In order to check bounds the game has to run Escape::ServerHandlePlayer
When adding bounds to the Escape.EscapeZones does the server automatically recognize the new escape zone and run ServerHandlePlayer on the bounds or do you need to handle it yourself
ServerHandlePlayer calls CanEscape which checks all bounds
Yes
You misread my question
i mean the answer was yes
No
The question is what the fuck calls ServerHandlePlayer
And does it handle the new bounds
^
Then that's answered
Yes but it was answering a different question
Same answer =/= same question
And the other question was important to ask
it was same question until you changed your question to where it is called tbh
It was not, I just phrased it poorly the first time given the context
yes
hence rephrase specifiying what you gave me and not your intent
I'm not used to having to elaborate so much on the questions I have
It's only in this channel that people don't get my reasoning
surely
Which is fine it's just new
To me these questions are logical follow-ups to make sure things actually work
thank you so much for letting me know about the Add option @hearty shard
So was "does it automatically handle all the things in the list" yes it does
this makes it so much more easier

This was a crazy first recommendation though why not just take a glance at the escape code 😭
I mean it takes no time to recognize this
This is a weird hill I know I'm gonna die on so I'm just gonna leave it at that and go back to finishing my NPCs
I wrote it off of memory
i didnt even have my rider open
and i havent checked escape code since i think i updated custom escapes
i do not remember ins and outs
yk?
like i barely could do good code back then
and i haven't really tried to keep it perfect
because i dont care enough to and thus i gave the answer i remembered, which i then corrected when i saw the better solution?
I only mentioned it because I hate that people overcomplicate shit all the time for newer devs, and even just for themselves
There are much cleaner implementations if you just scratch beneath the surface level
I don't mean it as a diss just when giving advice to people on implementations it's good to make sure you're not guiding them down a false path like you initially were until I threw in that comment
What is the rest here
um
i closed so no screenshots for you
but it handles the events and stuff
and setting role
aha, so you cannot define a custom escape, just an additional escape bound
that could be added to LabAPI functions
Tbh I just did a patch to servergetscenario and called it a day for my purposes
Though
You can change the newRole in the Escaping event
why not just escaping event
ya
I added it a while back before escaping event iirc
Well before newrole in escaping event at least
Oh the event even gives you the zone so you can specify if it is your zone or not
cool
Yeah then the custom primitive with collider is a gross overcomplication 
Reflecting on this remark, on my side this was a plain "I did not know you can do this"
Yeah I got probably a bit more heated about it than I should have but seeing this kind of thing happen is kind of frustrating for me
It's part of why I try to stay active in these channels cause a lot of people don't double check the stuff they're saying
I mean it is valid, as complicated solutions never helpful
it was made for exiled 
Yeah but it's not the end of the world or anything
I just try to do my best to help out new devs
Everyone is there at some point and there aren't really any good resources for people to learn the skills they need to figure these things out
I mean it would be helpful for having these in a community made faq
It just happens that I have to come in here sometimes to spit facts 🗣️
Like different levels of complexity
Kill
I would love to contribute to that
Though the questions people have tend to get quite specific so it might be hard to get everything in one forum
You can give generic enough solutions, like in this case, that you can point to the thread and give adjustments
I think there's something to be said about letting people know that tools exist to explore the assembly themselves
Need to learn about escape zones? Check Escape
Oh defo, reading sourcecode and exploring is a must have and not a lot of people want to dvelve into that sadly
100%
developing the instinct of "where should this be if I were to do it" is a very precious skill
I used to have to come in here to ask questions all the time but now I only come in here when I ask questions that stump other devs too lmao
I finally got my Dummy NPCs working
I had a working iteration before but I handled everything in one coroutine
It was a mess
I come here when I have a situation where I'M very stupid and I do not realise 
AI detected: delve
Cyn helped me realize that
Components exist
Now I use them
Big up
Components as in the Behaviours?
Yep
Yes
Yeeeah
But me when awaitables exist
I came into SL with 0 Unity knowledge
(I broke them)
Learning about components was like unlocking a forbidden technique
I still reimplement the old nwpluginapi approach of iterating through a list of class 
Huh
ArrayList<Class<?>>?
{
StaticUnityMethods.OnUpdate += OnUpdate;
}
private void OnUpdate() {
for (var obj in objs) {
...
}
}
This skips all the Unity component attach stuff
and just relies on the Player class
so I can do post disconnect /deletion and no need to worry my component getting YEETed
Dummy.ReferenceHub.authManager.InstanceMode = ClientInstanceMode.DedicatedServer;
Should this remove it from the Player List (the menu you press with N), because now it doesn't do it anymore?
Uh prob
Though you might have to change the dummynetworkconnection instance used
Because I think the network connection it uses currently forces it to be a dummy and that can't change post-auth
So you'll have to instantiate the dummy with your own dummynetworkconnection
Would it be possible to hide it with the new Spec hidden command?
Hmm interesting
How does that even work then?
spec only remove from spec
Wait that does not hide from the playerlist?
no?
Sometimes I hate not being a server owner for the server I dev on because I have to keep removing features
You know whats funny then they ask you to add them back
I added a plugin that allowed cuffed militants to escape and they tried to make KOS rules more strict because of it

bruh im stupid. I removed my vanish command cause I thought this completly removes you
So I had to just fucking remove it so we wouldn't drive away new players
Like are we serious right now
why nw makes it soooo hard to hide players from the list
we have strict rules and it is already ass
Strict rules get you nowhere as a server
No offense
Not if you are Official
Oh yeah true
Official servers have a higher standard
But for community servers strict rules are a death sentence to growing your community
yeah, especially KOS
If people are leaving your server because your rules are too strict then you've done something wrong
And in this case that is exactly what was happening
I don't have the power to change the rules but I can just
You know
Remove the feature
Then there won't be any more rules about it
Just sucks that I have to do shit like this
I get so frustrated sometimes because with these things I feel like I'm shouting into the void
The only voice of reason in a crowd of dissent
The feature was cool when people weren't arguing about it all the time
It created some nice community building moments
WH
yea
you make it null and it just disappears?!
yes...
Dummy.ReferenceHub.authManager.SyncedUserId = null;
Dummy.ReferenceHub.authManager.InstanceMode = ClientInstanceMode.DedicatedServer;
Can you spectate them in the list?
damn
That is a good to learn thing
cause I'll need it
Actually another important thing, I assume it does not count towards the player limit, right
You need to set the synced user id
To null iirc
Hey axwabo
i'm gonna kill this stupid piwece of shit app

hello
what i did is deny the event and handle custom role escaping myself
What
Why
Huh
because custom roles supposed to either not escape or retain some stuff
like effects, item
and other roles to escape
Ah I meant as in you cannot define internally, so you would not need a separate event handling for it
even set new position
I think thats server side , hmm maybe can be made into a dict or whatever
You cannot, it is handled as enum sadly
like you cannot create a new EscapeScenario enum and have your logic just applied on the update function is what I meant (related to the escape zone Bound creation)
You can just use the OnPlayerEscaping event to handle this, what I meant is you cannot just define a scenario class and register it like with the Escape zone bounds
just a small observation
ah ye
The zones are dynamic but the escpae scenarios are baked in
we using kinda the same thing as you wish i think
you can still define it by using the Escaped event and changing the roles there no?
i feel like thats very simple to do
Escaping
It is not changing twice
you said Escaped
Look at the code, you can see the event args overriding the role you are giving the player
Escaping*
but I'm not saying you cannot do with the event, all I'M saying is, you cannot do the same as in with Bounds, where you can just do a new EscapeScenario(sourceClass, targetClass) and then add that to a list
seems reasonable and easy to impl i guess
the annoying part is, to check which zone it is, you have to check by center or size
i mean
but at least its not complicated
the basegame zone is stored
so im not complaining
you could just
zone == Escape.EscapeZone
no ?
for custom do the same but check your own
Zone is sent by here
how does the keybind system work




