#The Locker

1 messages · Page 2 of 1

marsh tartan
#

I disabled insanity rapid fire for the future

spare citrus
#

Oh hmm that's a good point.

#

I wonder though, in general I just check if the player has an item they are holding and if it has a light source. So it really shouldn't be that since it's a very generic and flexible implementation.

marsh tartan
#

Even though my light was forced on by ghost codes it's possible The Locker's ai detected it as being turned off

spare citrus
#

Doesn't make much sense though because the way it works is when it activates it has to have a position to target. So it can't activate without moving really.

marsh tartan
#

Fair, it could have been the newer version of reserved causing issues too, flip is currently working on reverting the code due to all the bugs with reservedslots v2

#

I'm not really sure

spare citrus
#

Reserved works too though. I target base game flashlights and I have tested with the reserved light slot too.

marsh tartan
#

But it was just there idle and the eyeball and stuff wasn't active

spare citrus
#

Same as walkies since they emit a faint light as well

#

Huh. That's weird.

marsh tartan
#

and I couldn't get an error

#

Yeah

#

This was on Titan btw

spare citrus
#

Because I did see a bug someone had where it activates and then instantly stops its lunge when the navigation wasn't using the ingame system yet but I haven't had any issue with that since I updated that.

#

Outside of it being messy on some stairs and not finding the navmesh off-nodes

#

Which I still don't know why it doesn't but meh it works mostly

#

Anyway let me know if it happens again and maybe have something to record it ready?

#

Appreciate the feedback and troubleshooting though!

marsh tartan
spare citrus
#

Huuuuuuuuuuuuuuuuuuuuuh.

marsh tartan
#

Yeah it was just sitting there lol

spare citrus
#

That should have killed you. I literally had a moment like that yesterday when I was playing where I turned a corner with a flashlight and because of the new reactivation mechanic it murdered the hell out of me 😅💢😠

#

So yea this is weird. Never seen it do that before.

#

Would have been such a good content moment 🥲

marsh tartan
#

Ikr when I saw it I was scared but then it didn't come for me

#

XD

marsh tartan
#

Well they seem to be working now lol, I had 2 spawn on Offense

#

Fucking Offense XD

#

I also set custom weights for Rend, Dine, and Titan since those planets were excluded in the config, I set Titan to be 100 like Offense

spare citrus
#

Yeah Offense has the highest spawn weight at the moment 🙂

marsh tartan
#

Titan is already deadly

#

LOL

#

may as well add more to it

spare citrus
#

Cool! I wanted to make sure that I wasn't encroaching on the normal spawns people expect when they go to those moons. So they're still as deadly as usual.

marsh tartan
#

I did 75 for Rend

#

Rend honestly has the least enemies spawn by default, so I don't mind having a higher chance of the Locker spawning in

#

Cus it lacks Thumpers and hoarding bugs

#

I will say they always manage to jumpscare you when they work properly cus they're always in a rude corner and I appreciate that aspect

#

😂

neat vigil
#

though which moon would Locker just thematically fit the most

#

or dungeon*

marsh tartan
#

I mean it fits all of them imo

#

It's more of a trap type of enemy like mines, turrets, and boombas

#

It fits everywhere

#

honestly I'd also say you could look at it like a Reverse Coil Head too, you wanna avoid looking at it or using your light near it

rough kelp
#

can someone explain this config to me? as it's set up currently, does it mean that it will spawn on all moons with LockerSpawnLevels as moon-specific overrides, or does it mean that it will only spawn on the moons in LockerSpawnLevels?

spare citrus
#

Yes it will spawn on all moons with a weight of 25 but for the specific moons listed below such as offense it will have a weight of 100

rough kelp
#

that's what i thought but wasn't sure

spare citrus
#

No worries! If you have an idea how to make it more descriptive let me know. I wanted to give people the most control so there's the global option of enabling/disabling it etc and then fine tuning

rough kelp
#

probably change it to something like "(These will override the level set config option on moons you list"

#

also, just as a frame of reference, how likely to spawn is the default value of 50?

spare citrus
#

Good point. That's easy enough.

#

I've encountered it like once every 4-8 moons. But this enemy is a bit different in that it could be spawning more often but because it doesn't move on its own you'll never know if you don't explore near it.

rough kelp
#

alright, i had it set to 25 for our session last night but we didn't encounter it at all, so i'll bump it back up and see how it goes

spare citrus
#

Set it to 100 globally and you should have a mostly fun time every now and then.

#

But keep in mind it's best when it's sparse I think. As when you encounter it you don't plan for it and it's a real threat.

rough kelp
#

yeah, i think having enemies appear too often ruins the shock value. brackens and coilheads sneaking up on me still makes me jump every time because they're pretty rare

#

that's why i wanna find a good balance for this

marsh tartan
half goblet
#

I think I have it set to 80 on my list

marsh tartan
#

the planets it currently has set as 0 I may up to be 25

#

There we go

#

I thought I set Dine to 75 but I think I made it 100 cus Dine is just evil Rend

#

Lol

#

I'll set it to 75 just cus

sour crest
#

It probably seems rare because I don't think it moves after it spawn right? only charges forward during attacks and dungeon sizes do get big

heady heart
#

Maybe it should slowly roll around the interior?

unreal wedge
#

that's what originally thought it did tbh, but only if the players aren't too close to catch it moving

heady heart
#

Yeah.

crystal quiver
#

I could see it rushing down a hall randomly if it's been inactive for too long, just to change areas

verbal current
#

if i want the locker to spawn on any moon with the default chance do i need to blank out the LockerSpawnLevels?

heady heart
#

Yes.

#

It will spawn on all with default too. Just those moons on the list will have unique chances.

forest bolt
#

this mod is really great, scared tf out of me, 10/10

eager cedar
#

I've been having issues with the Locker never spawning on any modded moons I've added except Infernis (value of 70). Do I need to manually add it to the LLL config for it to appear? If not, any ideas why it's not spawning?

rough kelp
#

i assume setting it to all adds it to every moon. i still have yet to see it in our sessions but i have no idea if that's because it's rare or if it's because it's broken

eager cedar
#

Yeah, I have my SpawnLevelSet to all and I've only been able to see it on Infernis thus far. I ask about the LLL thing because I only see the locker having a spawnchance set on that moon specifically.

#

70 is the highest value I've used thus far and it's weird that I never see it.

woven delta
#

would it be possible to add a reactivate limit config? like, making it so it can only reactivate three times at max?

#

maybe also a setting to make them not fully follow lights, but instead always reactivate atleast once if they were triggered by a light instead of a scan

marsh tartan
spare citrus
#

We're talking pure probabilities here though. Obviously can can in a freak chain of chance have it activate like 10 times in a row at 50% reactivation rate. It's just very unlikely.

woven delta
#

reason i was asking is because i want the chance to be high, like 75%

theoretically, with bad enough luck, it can reactivate infinitely at a chance of 1%

spare citrus
#

Sure. But I think that makes out the scare of it now. The fact that it can always reactivate and keep you on your toes. At least now I find it engaging even after having made it myself and played around it for countless hours.

woven delta
#

this is a good point

#

i suppose i will keep it at the base 50% 👍

spare citrus
#

I don't think that should get limited personally.

I also think flashlights and lights in general should be dangerous. The play there being turning them off, finding an alternate route cutting off line of sight quickly etc

#

Walkies now being a liability is also nice. It means that there are legit downsides to running certain things vs feeling safer.

#

Thought I'd share these in here by the way. Some concepts of the Locker while I was making it.

woven delta
#

woahhhh

#

first one seems to resemble the final version the most

#

second one is silly

spare citrus
#

At that point I had it modelled mostly so I was working with generating some different variations of the possible textures. If anyone wants to reproduce the workflow it's embedded in the images and can be imported into InvokeAI

marsh tartan
spare citrus
#

The 4th one was where I really wanted to play around with the more angelic/confessional concept a bit 🙂

#

I'd have to apply those designs though and obviously create them for it though. I'm curious still; I saw a lot of comments under a video about the mod saying it doesn't fit the art style but I don't quite understand how it could be made to fit more without diminishing some of it's main concepts and style 🤔

marsh tartan
#

I hope you enjoyed the clip I sent btw, I was on Vow there I came across SCP999 and was like "Yay friend" then proceeded to get quite literally jumpscared by The Locker 😂

spare citrus
#

Oh I missed it let me go check really quick!!

marsh tartan
#

Yeah it was right after I had experienced SCP999

#

LOL

spare citrus
#

Hahaha

marsh tartan
#

So btw I didn't know they could hear walkies

spare citrus
#

Yea I didn't think of that at first either. But the walkies emit just a little light for it to consider them a light item.

marsh tartan
#

Ahhh lol

spare citrus
#

I kinda like that though? Plays nicely into the concept of it responding to signals or stimulus 😎

marsh tartan
#

I've not had a single issue with their ai breaking ever since disabling ghost codes insanity rapid fire mode btw, Idk why ghost codes made their ai not detect shit when it went nuts

woven delta
spare citrus
#

Sure I can still do that. Not a high priority right now though 🙂

woven delta
#

👍

past sand
spare citrus
#
<img src="https://img.shields.io/badge/version-1.1.0-0AF" /></a>
<img src="https://img.shields.io/badge/lc--version-v49-000" /></a>

![banner](https://github.com/zealsprince/lc-locker/assets/1859270/120046ff-144a-4e17-b5fb-f973d5fc3a0f)

# The Locker #

*In darkness it lurks, seeks light and sense and only responds with hunger.*

[...]
past sand
#

thaaanks

spare citrus
#

Create an issue on GitHub, paste the image in there then grab it stored from GitHub static. Close issue.

past sand
#

oooh

#

thats smart 😂

spare citrus
#

I normally do that on my repositories to not have to check in images into version control since that's bloat

#

I rather then check in the source file for that image since that makes more sense!

#

No problem glad to help!

drowsy rapids
#

Click 2 buttons and I have a perm link

spare citrus
#

True, old habit to use issues still 😉

marsh tartan
#

Lmao I learned not to taunt a Locker

#

I said "I'm not afraid" then it proceeded to charge at me 3 times and murder me

#

😂

drowsy rapids
#

I once said "im gonna edge it" and then it proceeded to kill everybody but 1 person

woven delta
#

the locker doesn't seem to try and chase if you get around a corner

solid yacht
#

not sure if this is a glitch but most of the time when I use the locker he doesn’t move very far, stopping like right in front of where he last was. he doesn’t go far at all

#

like just stops so quickly

#

kinda sucks because I wanted him to be more of a threat in our plays, charging at us

woven delta
radiant nimbus
#

Same here

#

It moves like a meter and then stops lol

mint pulsar
#

same happened to me today

spare citrus
#

Huh, I mean it should overshoot your position but it should stop around where you saw it. If you move backwards it can’t get you unless you’re getting chased with a flashlight or when it reactivates

#

And it won’t chase you around corners

marsh tartan
fluid leaf
#

for some reason i dont see any locker spawning, here's my config

#

and also, they dont appear in LLL config as well, not sure if it's a bug or not :P

eager cedar
#

example:

#

Most modded moons that use LLL for some reason don't have it as a default in the enemy spawn list, so you'll have to add it manually.

fluid leaf
eager cedar
eager cedar
# fluid leaf oki, ill try it out!

Alright! If you ever need assistance with anything, dont be afraid to ask the people in #1213985212686532638 ! They're super responsive!

solid yacht
#

locker seems to not do very well with doorframes

gritty kite
#

Locker is my favorite custom monster

spare citrus
#

or example 🙂

past sand
#

Weirdly enough I think it was struggling with office

#

It might just be the way you're changing animations

#

Are you using a trigger or float? Float would definitely work much better here

marsh tartan
#

I also had issues with it in SDM going through a doorway recently

#

It would lower how far it could charge

solid yacht
#

it did that one glitch where it went forward a bit but then moved back a bit

spare citrus
past sand
#

I'm assuming you're using an animator controller

spare citrus
#

It’s based on the distance to its destination

#

Or if it hasn’t moved in X amount of time

past sand
#

Well something is either making it pick the wrong destination sometimes (could easily test this with checking the line agent) or its false detecting that its stopping

spare citrus
#

I think that’s it really.

past sand
#

The way I'd have done it is using an animator controller where the trigger for changing animations into opening up etc is when the agent speed falls off a specific number after it starts a chase state

spare citrus
#

At least what I have been suspecting but in my one day of specifically testing that I wasn’t really able to figure out which part of the navmesh agent was screwing up. I think whatever this issue is would also fix the stair traversal

spare citrus
#

I’m fairly certain I’m using an animation controller but like I said I don’t think that’s the issue here. More something with the navmesh agent then

past sand
#

Hmm something must be going wrong with the navmesh then ye

spare citrus
#

(Haven’t worked on it for like a week or two and my brain is full of other things so I’m not sure unless I check if I’m using the animation controller or another component 😉)

past sand
#

Lol

#

The easy way to check is adding the purple line to the agents destination from your enemy so you can see where it thinks the destination is

spare citrus
#

Thanks for bringing it up though. Just need to go back to testing the navmesh things.

Speaking of which; do you have some snippets to easily visualize agents and the mesh while in game? I saw there are debug methods but in my brief testing I didn’t try to use them.

past sand
#

It could be that it's trying to set another destination whilst moving to the first destination, which cancels both destinations

spare citrus
#

Awesome thanks!

past sand
#

Code isn't originally mine, I got it from @real pewter :3

#

But this should help visualise the agents pathing

spare citrus
#

Bookmarking this! Thanks for the help!

mint pulsar
#

I've been able to scan the Locker on multiple occasions without it detecting me. Is this normal?

past sand
#

I dont think so? Scan range might be higher than detection range if you're far away maybe lol

copper herald
#

Detection range is busted tho, iit should be like 90m

mint pulsar
#

I think it there was a pipe in the way but still

rough kelp
#

this mod currently conflicts with LCVR, the locker reacts to dead VR players

solid yacht
#

does the locker naturally spawn on the tier 3 moons

#

because our crew usually goes there

woven delta
copper herald
spare citrus
spare citrus
mint pulsar
#

noice

#

ty

strong sonnet
#

i cant seem to get the locker to spawn, even when setting it to it's default settings, or cranking it to maximum on experimentation

#

(not a joke i am being fr)

#

i have it in a rather large list of mods, but nothing in it should be messing with it, as it messes with no other modded enemies.. is there any mods that are known to cause spawning issues?

burnt moat
#

I also seem to have an issue getting it to spawn

wet nacelle
#

this has to be one of the best mods ive seen this games entire lifetime have the blessing to have. amazing work dude, absolutely amazing

strong sonnet
#

i got it to spawn. no clue why it took so much to do lol

burnt moat
burnt moat
#

I finally also got one to spawn by going to an eclipsed experimentation with Experimentation:99999 in the LockerSpawnLevels section of the config. Any chance the weights are being applied incorrectly? I feel like with 50 weight I should have seen one in one session the last couple of days

#

I had my LockerSpawnLevels blank, gonna try it with that config section filled with every moon set at 50 weight and see if that fixes my issue

strong sonnet
burnt moat
spare citrus
#

Yeah that'll be it 🙂

burnt moat
spare citrus
#

I can check if the value is empty and default it to something then.

burnt moat
spare citrus
#

That makes sense!

burnt moat
#

Having to list every moon with a weight is slightly annoying😅 and I only have 24 modded moons

#

Once Wesley's gets ported to LLL😭😂

spare citrus
#

Actually now that you mention it it should work if it's empty so that's definitely a bug. Thanks for reporting it!

burnt moat
#

I used the LockerSpawnLevels to do a better job of testing. But with 50 weight I still feel like I should have seen one

spare citrus
#

Keep in mind too that it's a bit of a different enemy that doesn't roam on its own. I've pointed that out to other people too that there's no indicator whether it is in a level or not and it can also be in some dark corner somewhere 😉

burnt moat
strong sonnet
#

Its good now, still really unsure why it was weird like that

#

I love it alot tho, works as a pseudo "jester" type enemy where its a big scary thing only on certain moon types, but i use it specifically for the realitively "easy" moons to give players an advantage/disadvantage to playing it safe when filling low/mid quotas

#

(Not that it is the same enemy by any means, moreso that i put it on every moon the jester isnt)

marsh tartan
#

@spare citrus Can you update The Locker for V50 support? The power level setting needs to be changed from int to float

spare citrus
#

I intend to! Though im waiting for dependencies to update as well.

#

I see LethalLib patch finally got released in some way. I’ll have it out before Monday.

#

But im in no rush because v50 isn’t officially out yet

marsh tartan
#

That way it's a quick patch that makes it compatible with both V50 and V49

copper herald
#

Sector-0

#

from rosie's moon

wheat stone
#

considering thats a bug to get it to spawn i was gonna fill it in as i also had it blank

#

but dunno if i need to fill all the spawn rates for all the maps individually or just put something like "all:50"

marsh tartan
#

@spare citrus Is that update for V50 compat still coming out? ;o

spare citrus
#

Sure, but I have a busy life at the moment so it's not my number 1 priority.

marsh tartan
spare citrus
#

I see some compatability patches have been released for dependencies. I'll check later.

marsh tartan
#

💜

spare citrus
#

Yup, fair!

marsh tartan
#

From what I can understand you just need to add the check for the power level to be int for V49 and float for V50, or you might be able to remove the locker using a power level tbf if you feel it's not necessary for you to use it

#

Since you already allow adjusting the weights and how many can spawn at max

spare citrus
#

It's not as simple as that I need to rebuild asset bundles and my dependencies in Unity are completely broken at the moment and I don't know why.

#

Otherwise I would have had it already out.

marsh tartan
#

Ahhhhh

#

I feel that I feel that

#

Unity being Unity

#

Poor Xu had their scripts for their GiantSpecimens mod corrupt yesterday cus of Unity and they had to fix it

spare citrus
#

That's exactly my issue too.

#

And it's not regenerating them.

marsh tartan
#

Yeah idk why Unity is breaking stuff rn for everyone, I'm guessing it was updated recently and it's being a pain?

marsh tartan
#

x.x

#

@past sand What did you do to fix Unity being a butt with your scripts?

spare citrus
#

Did the engine version get bumped by the way? That might be the issue.

#

That Zeekers builds to.

marsh tartan
#

Idk it may have

#

There an easy way to check?

past sand
# spare citrus That Zeekers builds to.

Nothing changed with the Unity engine or stuff like that, I had couple hiccups on my side because I changed the name of my dll once, then I added lobby compatibility as a dependency and that reset the scripts too

spare citrus
#

Give me 5 minutes to boot Unity and I'll see if we have the same error and link it here. Thanks for your time!

past sand
#

Bet

spare citrus
#
Unloading broken assembly Library/ScriptAssemblies/Assembly-CSharp.dll, this assembly can cause crashes in the runtime
#

This instantly killed my motivation the other day because man do I not want to step through the reconfiguration of the project setup to change a config variable midweek haha

past sand
#

Hmm

spare citrus
#

Am I missing something when it comes to updating to the latest version. I hadn't done much but I copied over the newest version's assemblies and gave it a whirl but now things don't work and it's not even rebuilding them.

past sand
#

That's odd, just try deleting that one, verifying ingame files, and copying over the new assembly csharp

#

It should work

marsh tartan
#

@spare citrus 🤞 Xu's suggestion works for you ^^

spare citrus
#

?

spare citrus
#

Need more than a minute to test lol

past sand
#

Dunno why you have that error though

marsh tartan
#

Yeah I'm just crossing my fingers that doing that works

#

c;

marsh tartan
spare citrus
#

Doesn't make sense though.

marsh tartan
#

Who knows

spare citrus
#

Unity isn't touching that assembly but we'll see.

marsh tartan
#

Could be the game borked it too, it has had 2 updates since so maybe verifying files and getting the new one will fix the issue

spare citrus
#
Unable to update following assemblies:Assets/Plugins/Assembly-CSharp.dll (Name = Assembly-CSharp, Error = 131)

[AssemblyUpdater] Failed to resolve assembly Unity.Netcode.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null. SearchPaths: Assets\Plugins, M:\[path]\Unity Editors\2022.3.17f1\Editor\Data\NetStandard\ref\2.1.0
#

For some reason it's requesting an invalid version of the Netcode module?

spare citrus
#

They'll see it when they have time 🙂

#

Looks like something is linked wrong in my project. I'm going to investigate further.

marsh tartan
#

You got this c;

past sand
#

Are you referencing unity netcode runtime

spare citrus
#

Probs

#

Yup, referenced. Build shouldn't be going through without it.

#

I'll rebuilt again. See if that helps.

past sand
#

In your csproj you have this:
<Reference Include="Unity.Netcode.Runtime"><HintPath>../dlls/Unity.Netcode.Runtime.dll</HintPath></Reference>?

#

Oh Jesus what is that csproj

#

How did you manage to get this far

spare citrus
past sand
#

Yeah I just gave it a look

spare citrus
#

Just dump every assembly in there surely we'll have everything.

past sand
#

😂

#

You wanna see mine for reference?

spare citrus
#

I got annoyed at some point constantly relinking references so one day I'll remove the ones I don't need.

#

But for now, that shouldn't be a problem.

#

Sure. Can't help hurt to look!

past sand
#

I have a dll folder with like 5 dlls including assembly csharp, lethal lib, and a couple other unity rigging etc

#

That's it

#

<PackageReference Include="LethalCompany.GameLibs.Steam" Version="*-*" PrivateAssets="all" /> this line should give you access to everything by itself but it wouldn't let you see the actual code

#

You'd need like dnspy or smthn

spare citrus
#

Yea it's why I have them all linked. I can see them inline in Visual Studio then.

#

huh wait

#

nevermind

past sand
#

And you're sure the filepath is correct and if u follow the filepath you'll find the dll you're referencing?

#

It might be easier to copy the dlls you need onto a dll folder that you gitignore and just keep updating that folder whenever you need something new

#

Like a dependency

spare citrus
#

I originally stood mine up from another project somewhere @past sand. Deleting this caused a lot of issues so maybe bringing it back or updating will fix things to a degree.

past sand
#

I'll need to fix that, but it's from the wonderful hamunii's example-enemy template

#

I use it for everything lol

spare citrus
#

Yea I did that too I think

#

Pretty sure that's my issue here. I've messaged Hamunii to see how the stubs were generated so I can update them to v50, built the bundle and get this shipped out.

past sand
#

She'll probably get back to you in like 10 houes

#

Hours*

#

Maybe more

#

She just went to sleep

spare citrus
#

Thanks for the heads up! Give me some time to do my real job/s 😉

spare citrus
# marsh tartan Yeah I'm just crossing my fingers that doing that works

Thanks for being so excited about getting the mod working with v50. Once I hear back from @real pewter I'll see what the next steps are. And once this is figured out once - and documented - it should be far easier for me to do this in upcoming versions.

Timing with other work right now is just sorta bad because I have a super booked month having started in a new full-time position and also taking another project to completion part-time so it's just really busy rn.

spare citrus
#

Just wanted to clarify. My responses were a bit short and I was juggling another timed task on the side 🙂

#

Appreciate it! 🙏

marsh tartan
#

💜

dense bough
#

does this work in v50?

marsh tartan
#

Lol

spare citrus
#

Looks like the project builds again. It's super late right now to continue working on this - but I'll see that I keep progress going tomorrow between work hours.

#

Seems like I can build again. However I lost a bunch of metadata during the conversion process I'll have to re-do and piece together such as the monster entry etc. I'll try to capture this from the previous version as closely as possible but it's a bit of a pain.

marsh tartan
#

😄

#

It does suck you lost some stuff though

spare citrus
#

The Locker (v49/v50)

#

@marsh tartan 🙂

#

Thanks for the quick help @past sand the other day. I cleaned up my .csproj as a housekeeping due to you calling them out haha.

Also thanks @real pewter for pointing me to the asset ripper. Did that last night. Now for whatever next update I have my dev environment fully ready to get patches done quickly!

past sand
#

dont let me look at how you do configs as well, ill prolly hate it

spare citrus
#

There are worse things to get upset over haha :^)

#

It's still fairly the same. I'm not a huge fan of how you did yours in some parts but as long as it works and is readable all is good! Personal preference!

past sand
#

okay the config isnt actually done badly, its fairly close to mine

spare citrus
#

Also I think the config is fairly nice. It's a rather standard format after all.

#

Off topic general discussion: Also I was able to reproduce the rubber banding Locker issue. Looks like for some reason some times it doesn't get placed on a navmesh for an entire moon? No idea.

past sand
spare citrus
#

Lunch. Brb

past sand
#

have fun

muted vale
spare citrus
#

When v50 officially releases. I don't intend to automatically automagically brick people's existing installations.

dapper basin
#

I love the locker

marsh tartan
#

the power level needs to register as int if it recognizes v49, and float if it recognizes v50

spare citrus
#

Doesn't work like that sadly. The new version of the game has changes to other things too such as the EnemyAI. I can't just make it accept arbitrary types from both versions when compiling.

past sand
marsh tartan
past sand
#

Yeah but I already told you it's nonsense :p

#

The setting of power level is done in Unity, stuff like that isn't handled by the mod dev

#

Unless they do some shenanigans, but all int values would be accepted as float values because while 1.5 can't be considered an int, 1.0 can

marsh tartan
#

Well I mean a couple mods managed to make their mods work with both V49 and V50 so I didn't know what all it needed

#

v.v

#

But @uncut ocean and @raw kernel did it lol

marsh tartan
#

@spare citrus sooo the v49 build has a bug atm, capping it so only 1 can spawn doesn't work I had 2 spawn lol

spare citrus
#

Huh weird. Maybe I don’t set the value right but I believe I do. I’ll double check later!

past sand
#

forgive her, reading isnt her forte

marsh tartan
past sand
#

its also 5am

marsh tartan
#

But that was the power level

past sand
#

or close to

marsh tartan
#

Lol

marsh tartan
#

@spare citrus The Locker is probably gonna need another update for V50, cus Zeekerss did a QOL change to enemy ai that breaks enemy mods

spare citrus
#

Sure makes sense I can do that later but not this weekend. Probably start of next week.

#

We'll see. If the update drops I obviously get on it ASAP though.

marsh tartan
#

Yeah the current beta feels like it's the last stretch before full release with that changelog Zeekerss put

spare citrus
#

Just tested, still works on the latest version with no changes.

#

@marsh tartan

past sand
#

im not updating my enemy to be v50 until full release

spare citrus
#

Got hit and schmoilered. The death animation is still as brutal as usual 😄

#

Thanks for the suggestion though. I also ran around and checked spawns and it looks good to me?

past sand
#

oh you probably dont use the HitEnemy function

#

you only deal with player damage and your enemy is immortal

#

so that makes sense

spare citrus
#

Ah nope, I have custom logic. I was wondering about that. Either way, I'd have received build errors because of method and type mismatches but didn't so looks like we good here!

#

Curious though, what was changed about the hit states?

past sand
past sand
#

makes things so much better

spare citrus
#

Ah that's nice. No more having to get components etc then?

past sand
#

that wouldnt even work, i tried

#

i had to base it off of the force of the enemy's damage

#

VERY finnicky

spare citrus
#

That sounds annoying

past sand
#

yep

#

this was my logic for

#

"if hit by force of 6, which is a missile from old bird, run"

spare citrus
#

Oh I see. I wasn't even aware it was being handled like that. Kinda dumb honestly to not have a caller reference.

#

For enemies I mean

#

Because it exists for the player.

past sand
#

yep, it looks like now that he's added the old bird he remembered he needed an enemies one

spare citrus
#

😄

#

Hey makes our lives easier in a way too. I think it's a good addition.

past sand
#

same

spare citrus
#

The next enemy I am planning to work on will be able to exist outside too so I'd definitely have to work with that method eventually anyway. Nice to see that's easier.

spare citrus
#

oh dang

#

well, i'll push the packages then

#

Live on Thunderstore! 🙂

#

Thanks for the ping @marsh tartan !

marsh tartan
spare citrus
#

I'm aware of an issue right now that it doesn't move when another player or more are connected. For some reason on the client it will think the Locker isn't on the navmesh. Not sure why.

past sand
spare citrus
#

I think it would have something to do with the SetDestinationToPosition calls.

#

[Error : Unity Log] "CalculatePolygonPath" can only be called on an active agent that has been placed on a NavMesh.

#

Seeing this on clients. I feel like it has to be the culprit since if the client disconnects it works again.

past sand
#

Wait you use ClientRpc there?

#

Are you sure you need to Rpc this stuff?

#

If you look at my code I don't Rpc anything

#

Except animations

#

And I do use SwitchBehaviourToClientRpc to switch between states but that's just an EnemyAI function

spare citrus
#

Yea I'm not using the enemy as state because I realized that existed after I had implemented my own state machine.

#

So I'm doing the RPCs mainly for the Locker state

past sand
#

Gotcha

spare citrus
#

It's noted in a possible rewrite but it's not the end of the world

past sand
#

What is IsOwner

#

Seen that a few times

spare citrus
#

Should be IsServer. Already swapped out but essentially in Unity Netcode for GameObjects, non server clients can still be owners of gameobjects

#

In LC, generally only the server is the Owner

#

I'll debug this tomorrow

spare citrus
#
## 1.1.2 ##

- Add reaction to hit events
- Fix Locker pathfinding getting stuck
- Fix path calculation if off navmesh
#

@past sand The issue stemmed from the fact that I was now using AI Intervals. Someone pointed out that at 0 it technically infinitely intervals vs the expected outcome of not updating through the intervals. This meant that touching doors could crash on custom moons through a stackoverflow.

I fixed this but it also introduced the problem that now it technically had the game take control of it and use its update functions causing it to rubber band from my code updating the position and the base game enemy AI updating it too, and having to play nice with the properties there.

So not really a code issue but rather having to adapt to using the built-in system on an enemy that really doesn't fit that system.

#

It was kind of funny, when I first moved it over to having the default interval of 1, all the Lockers started moving around on their own which was a bit uncanny lol 😄

past sand
#

thats interesting lol

spare citrus
#

I don't think other modders will encounter the same issue because probably in 99% of cases enemies will use the built in behaviors that Zeekers has.

marsh tartan
past sand
#

thats not the problem

past sand
marsh tartan
#

I was just stating I was already used to them moving on their own

spare citrus
past sand
#

lmao

#

well if you dont do base.AIInterval() does it still use the ingame's AI Interval?

spare citrus
#

Good question. I could just not do that.

past sand
#

im not too sure about the complete problem nor how i'd solve it since i just use the ingame system lol

spare citrus
#

I mean, it works for now

past sand
#

fair

dense bough
#

So v50 yes or no in to lazy to read the full conversation

winged matrix
#

too lazy to read the name of the thread too apparently lol

winged matrix
#

Anyone have a sweet spot for the spawn weight? Feel like 50 (default) is way too infrequent

wheat stone
#

i have it at around 25

#

usually spawns somewhat often

oblique cape
#

byeah

winged matrix
#

I had to bump it to 10000 just to have it spawn on Artifice, only time my group ever saw it 😦

nocturne tangle
#

Ayyy I finally decided to use this mod earlier and one of my friends had it ram him and clip him through the wall, out of bounds, which killed him. Is this scuff normal or he just get really unlucky? Lol

past sand
nocturne tangle
#

WELLLL it didn't XD It was quite hilarious admittingly but I have no idea why it happened. I didn't even touch its configs cuz I don't mess with configs of mods I never played before.

past sand
#

It might unironically be funnier

#

But ywah it's based off of the iron maiden

spare citrus
#

I had that happen once but I'd say that's super unlucky.

#

And by once I mean it happened in a really specific test setup with me being invincible. The hitbox around it while it moves is rather unforgiving so it should kill every time

#

The Locker

weary kernel
#

Hi! Is this mod v50 compatible? 😦

muted vale
#

yes

oblique cape
#

It doesn't seem to be v49 compat anymore, needs to be on the older version
The latest gives an error on 49

muted vale
#

I remember reading something about zeekeers changing enemy code so it can't be backwards compatible anymore

For v49 you'd have to use the 1.1.0 version of locker

little pine
#

u know what i just realized

#

this mod is like

#

the mimic mod if it wasnt questionable game design

#

actually intuitive and fun addition

winged matrix
#

huh? lol

little pine
#

they're both inanimate objects that attack the player by opening the door and "eating" them

#

the locker is really mechanically interesting and can even be useful for breaking locked doors down

#

the mimics are just kind of
artificial difficulty?

#

theres absolutely no skill involved, its just, either notice the difference or die

#

or bring a shovel

#

or enter from exit

winged matrix
#

isn't really a mimic honestly

little pine
#

no not by design or concept but mechanically it essentially just functions as a properly designed version of that enemy imo

royal viper
#

😭?

little pine
#

the way the mimic works just
kinda Doesn't
and our entire group wanted it removed and we agreed the locker was a really cool replacement for it

#

i just really like this enemy

drowsy rapids
#

mimic and locker are like 2 diff things whar

little pine
#

i mean yeah my entire point is that the locker works better because its different i think it just approaches the idea of a player eating box better lol

#

i think the mimic mod is really well made its just that conceptually theres not a ton you can do with the idea to make it be a fun addition to the game

#

unless its like your thing then that's cool too, just imo

royal viper
#

I ain't gonna lie

#

That sounds kinda stupid

little pine
#

ok?

#

thank u for the input

dense bough
#

I mean you can have both...

#

there not even remolety simaler

royal viper
#

They don't even have the same goal or even function the same lol

#

the resemblance hard stops at "box-like that consumes"

little pine
#

they're both objects that are usually inanimate that were changed to be entities that kill the player

#

i feel like that's pretty broad

#

when the fuck have u seen a locker with wheels

#

like when u first see it u dont expect it to start moving at first unless you've already seen it beforehand

#

because the thing just looks like a locker

dense bough
#

buddy nobody thinks the locker is imitating something. No one goes like "Oh look a locker, let me pick up some loot from it", unlike a fire exit which is "Oh look a fire exit, im lost perfect way to get out, oh noo its a mimic!

little pine
#

idk i got some pretty cool first reactions from it, i recorded my friend walking up to it and for some reason it didnt move at first but then it turned around and ate her lol

#

never said it was imitating anything

little pine
#

lockers are usually inanimate idk if u knew that

#

anyways

dense bough
#

go sigma alpha skibidi your self

little pine
#

it just uses the same factor of unexpectancy like u wouldnt expect a huge box to turn around and crush you the same way you dont expect a fire exit to eat you

dense bough
#

different counters

little pine
#

thats why i like it better

dense bough
#

different visually

#

but i mean you can have both, its kind of weird to compare them

little pine
#

i just feel like the locker accomplished the surprise element that mimics were widely praised for initially a bit nicer without being nothing more than a mild annoyance after playing against it for a few runs

oblique cape
spare citrus
#

Just to chime in and give a take for both sides: The Locker is definitely different from the mimic as a mimic doesn't synergize with other enemies for instance. I tend to think of it more as a hazard that can turn into an enemy.

Just like mines and turrets aren't too bad with, neither is the Locker. Until it is due to other circumstances 😉

spare citrus
dense bough
#

I’m skibidi mewing

marsh tartan
dense bough
marsh tartan
viral pilot
marsh tartan
royal viper
#

are spawns weights funky, it seems like the Locker is spawning at various values of like ~35-45 on every moon(?)

past sand
#

Wdym?

#

35 to 45 is higher than most enemies afaik

royal viper
#

yeah well, as an example, when the configs are 0 for vow and march and it's still spawning... 😔

past sand
#

Do you have an All or Vanilla?

#

In the list

royal viper
#

I have everything default (minus max amount of spawns and volume)

#

Which would include an all

spare citrus
#

What's your global spawn weight at. Because when you set LockerSpawnLevelsSet to all it will apply the LockerSpawnWeight to all moons which by default is 50. If you set LockerSpawnLevelsSet to none, only your overrides are enabled.

#

For clarity (and I should make this clearer in the LockerSpawnLevelsSet description) these two values are linked technically.

spare citrus
#

I think renaming it to LockerDefaultSpawnWeight and LockerDefaultSpawnLevelSet would make that clearer.

#

And then LockerSpawnLevelOverrides for LockerSpawnLevels

#

I think I was basing these off of other mods that had similar nomenclature but I should definitely have improved on that 👍

#

I'll see that I release a patch with that in it later. It's a low lift and I have gotten questions around that before here.

#

If anyone wants to sign-off on this being the right/better description let me know 🙂

royal viper
#

I'm either missing something or it's a no because it doesn't spawn at all with it set like that

spare citrus
#

It already uses it. It acts as an override of the previous "default" values

#

So with the default config, the Locker never spawns on vow or march for instance, even if all is set and spawn weight is 50.

royal viper
#

I think i'm still missing something because it was still able to spawn on vow and march like that

copper herald
#

When can I [[romance]] the Locker

muted vale
#

they took away our loving company

copper herald
spare citrus
#

||😰😨

How would that even work. Nevermind don't answer that.||

drowsy rapids
#

It would be really funny if there was a locker variant (visually different) that responded to sound instead of light

past sand
#

HAA

drowsy rapids
#

I just meant like an interior dog

#

But an interior dog would be really unfair

#

With the Insta kill on hit

#

The lockers attack design is more fitting

royal viper
dense bough
#

can I let the locker spawn on modded moons

dense bough
#

oh wait nvm I saw it

copper herald
#

Locker

#

cant detect boomboxes?

past sand
#

well yeah... it doesnt do sound?

#

what locker have you been playing?

copper herald
#

No

#

but it does do electronics

#

Boombox is a powered device is it not

modest fox
#

it gets set off by lights and the scanner

past sand
#

you said, and i quote "Locker aint hearing shit?"

copper herald
past sand
#

i must be losing my sight

copper herald
#

must be

#

take a rest Xu, too much hatin is bad for the soul

past sand
#

cant, im adding the sickest feature to the redwood right now

muted vale
#

the redwood shaker

spare citrus
copper herald
#

Hense why Scanning, flashlights, and walkies, all set off the locker

urban rock
#

on what maps does the locker spawn? does it also spawn on Wesley's Moons ?

spare citrus
#

The way I "interpreted" it was that it responds to touch. Think of it more as awareness to a degree. A flashlight shining at it makes you aware of it so light kind of falls in that category. The scanner is also a sort of touch on it. Though I extended that to be more around objects with light so walkies fell into that category too. So it's a bit of a grey area.

I don't think generic electronics fall into that though such as the boombox.

#

The boombox could be a goofy gameplay implication that I can see fitting into that, but then you'd have players in general thinking it responds to sound which I don't want to happen.

#

It ain't an indoor eyeless dog after all and I want it to remain in its niche since that's kind of what you all seem to enjoy 🙂

copper herald
#

wait a second

#

I must be tripping then

spare citrus
#

It should spawn on them if the spawn level set is all

spare citrus
#

Yes.

#

Especially since it's kind of a wave that's visible to the player.

#

Think of it more like a sonar.

#

Which is also indicated by the fact that it takes a second to hit the locker

copper herald
#

No

#

I mean the

#

Enemies Scanner

#

the tool

spare citrus
#

Tool?

copper herald
spare citrus
#

Well, that ain't base game now is it lol

#

It has a light on it so walkie rules apply I suppose 🤷‍♂️🤷🤷‍♀️

copper herald
#

And the jetpack as well

#

And all of LethalThings + other mod's electronic devices

#

I'm just saying from a gameplay perspective

#

You activate something near a locker

#

locker activates

#

You shut off that thing Locker stops chasing

#

Gamer brain says = Electronic devices is how this entity detects you

#

So Im kinda surprised the only powered piece of equipment that does not trigger the Locker is the boombox

#

Not because it can hear the boombox

#

But because I thought it could detect active electronics

#

In that case, maybe allow Lockers to be distracted / activated with flashbangs, according to it detecting "light" @spare citrus

spare citrus
#

I agree. I think electronic devices mostly fit into the lore of it.

#

Since a lot of the other ones technically already do it

#

I think the flashbang fits as well

oblique cape
#

I would LOVE if flashbangs sent it into a random frenzy
Funny and scary as hell

#

there is so many times i would flashbang it near one of my friend just to cause chaos

marsh tartan
#

@spare citrus can you look into the LockerSpawnLevels not working in the config? @royal viper has experienced an issue where regardless of what it's set to it sets the weight to around 30-40

royal viper
#

It goes down after the first spawn wave or w/e it's called too which is funny but that's probably not abnormal(??)

spare citrus
#

Is there an easy way to show the spawn weights for a level?

#

I think there’s a tool or mod right?

past sand
#
SpawnableEnemyWithRarity RedWoodGiant = RoundManager.Instance.currentLevel.OutsideEnemies.Find(x => x.enemyType.enemyName.Equals("RedWoodGiant"));
        if (RedWoodGiant != null) {
        LogIfDebugBuild(RedWoodGiant.rarity.ToString());
        }
#

You can probably run this at start of round and instead of just specifically redwood giant you just go through all the enemynames.rarity.tostring

spare citrus
#

Thanks! 🙏

timid gust
#

why is the locker in my game always stuck or can't attack. please fix this bug

winged matrix
#

Works fine for my group, sounds like a you problem

spare citrus
harsh drift
timid gust
dense bough
spare citrus
timid gust
#

ok

woven delta
#

a big issue i've noticed with the locker, it gets stuck on things way too often. it seems to get stuck on webs, corpses, random decoration objects like pipes, etc. alot of this causes it to not really be too impactful alot of the time

viral pilot
#

Do cosmetics and suits with emissive textures attract the Locker?

neat vigil
spring sleet
#

I'm not the first to report this but the locker keeps getting stuck most of the time. It slingshots. It would attempt going to me but then moves back into place. I have the latest version but even then it went on for a while. Is there a mod incompatibility?

spare citrus
#

Which version of the game is this? Latest version with latest version of the mod?

marsh tartan
#

I have a cosmetic that adds glowing goggles I wear, from NikkisCosmeticKingdown

#

They don't count as a light source

spare citrus
#

Are you playing with a mod that modifies enemy speeds or anything else around them?

spring sleet
#

In terms of modifying their speed, I don't believe so, no. There shouldn't be anything I have that affects enemies that way.

spring sleet
#

It's definitely a mod conflict issue since I tried it by itself. I'm trying to figure out which one.

spare citrus
#

Okay whew that’s a relief at least

spring sleet
#

Okay I can't figure this out. Even if it's by itself, it does behave strangely at times like it wouldn't lock onto the player correctly (pun not intended). Like if you scanned across the hall and then move around the corner, it would stay in place; move in its line of sight, and it zooms toward you. And idk if it's a mod conflict or not, but it tends to rubberband a lot even if it should have been able to go toward the player. Someone skilled in coding would have to look into that; I tried process of elimination but I can't pinpoint.

spare citrus
#

Were you trying this solo or in a lobby with other people?

spring sleet
#

Solo

fast wedge
#

@spring sleet if you have lethalconfig try seeing if the rate to attack again is changed from a high % to a low %

spring sleet
#

I haven't been using LethalConfig. I had it set it to 99%. It can attack almost all the time if it has a clear path but it gives up when it has no pathing or it no longer sees the player. I'm expecting that part's fine, but not pursuing to begin with is another.

cedar bobcat
copper herald
#

test it

#

i wouldnt imagine so

spare citrus
#

I don't think so if it's not an item

#

Nor the default flashlight type

dense bough
#

i tested it like a few days ago

cedar bobcat
#

good to know

drowsy rapids
#

Config works on modded moons right

#

For setting the spawns to specific levels or nah

#

Not at home so can’t test

#

Just curious

spare citrus
#

It should I believe? It's down to LethalLib's implementation. I'd have to double check that some time.

past sand
#

it does ye

crystal nimbus
#

hey guys. i got a question:
is it possible to let lethalquantities manage the lockers spawn weight? i couldnt find an option in the config to use vanilla spawns (let another mod manage it). i dont want those mods to argue about the weight changes.

neat vigil
#

is setting Locker's spawn power to 0 gonna break anything?

dapper basin
past sand
#

I cant understand the issue well enough, what's happening?

spare citrus
#

I think it's the one where it's not placed on the navmesh for whatever reason

#

I don't know why this happens, but it can.

dapper basin
#

The locker seems to get stuck at spawn. It's Ai will detect the player and activate its animations, however the animations are very wierd. It seems it is unable to path to the player. It turns to face the player and is unable to procede.

When it tries to charge the player can visually see it move towards them in a very janky teleporting way. Then it Snaps back at the end of its charge to its initial position

spare citrus
#

When it happens, the Locker will instantly close when starting a chase because it can't navigate to the next node on the mesh as it's not on it.

past sand
spare citrus
#

It does, I'm catching them though because otherwise it floods the logs so that's why you don't see them.

past sand
#

Ah ic

#

I'll try and get a build going tonight and look through the code

#

It might be a good start porting to LLL

dapper basin
#

For me in SC this navmesh bug happens 100% of the time

spare citrus
#

SC?

past sand
#

For the locker or for all enemies?

past sand
spare citrus
#

Gotcha!

dapper basin
#

Specifically the locker

spare citrus
#

@past sand if you need any help getting it set up let me know!

#

I'd take a look at this but I'm still busy for a while with other things. And debugging navmesh things has been a pain so far with the customer behavior of this enemy.

past sand
#

Yee, will do, I just hope everything isn't pointing to random files I dont have haha

#

I've never had to debug navmesh weirdly

spare citrus
#

You should be able to do a search and replace on the csproj I believe for the paths.

past sand
#

Despite having... a larger than normal enemy

#

Great

#

Even the driftwood moving as the current fastest enemy and potentially fastest custom enemy, no problems

spare citrus
#

I zipped up my Lethal Company setup/game as well as the Unity project for another person already. So if you want to use that as your starting point which includes the Locker scenes in case you need to rebuild asset bundles let me know

past sand
#

Ah if the Unity project isn't on github do send that to me

dapper basin
# past sand Great

Unrelated question. In immersive scraps did you remove the weapon function from all included scrap items like the plunger and axes? I can not seem to get them to swing in SC anymore.

past sand
#

I'd like to look at the navmesh settings

past sand
spare citrus
#

Driftwood enemy looks cool! And yea speed is not really an issue here. I think it's the fact that it doesn't play into the normal behavior states the game expects.

#

So some logic might not get triggered in the same way the game would like it to

#

Which makes sense though for this enemy imo.

dapper basin
#

Let me know if/when you guys figure this out. 🙂

past sand
#

If I have to I'll try to rewrite it to use ingame logic, it shouldn't cause any issues and should've used ingame logic to begin with lol

spare citrus
#

I wonder if most of this is solved by porting it to the game's behavior states. I just kind of glanced over that and disabled it when it actually started moving around on its own lol

dapper basin
past sand
#

Plus it's the first LLL enemy 🥴

dapper basin
#

Oh it works... we were screaming while testing.

past sand
#

Lovely

dapper basin
#

Darn monkey tree

spare citrus
# past sand If I have to I'll try to rewrite it to use ingame logic, it shouldn't cause any ...

Alright. Well you can already enable that mostly via the following.

  • Set AI Interval to something that's not 0.1 (It'll move around on its own by doing this)
  • Set speed to 0 in dormant, reset and consuming state calls
  • Set speed to X when chasing where X is whatever speed makes sense
  • Set the built-in AI behavior target player on chasing state call
  • Unset the built-in AI behavior target player on dormant, reset and consuming state calls
past sand
#

It doesn't look like it at first, but it does have the fastest enemy speed ever

past sand
spare citrus
#

Gotcha didn't know that 🙂

past sand
#

That's how the enemy which point on the navmesh to go to

#

I'm sorry I should've said it before 😭

#

StartSearch(transform.posigion) to let it randomly pick surrounding points on navmesh to travel to

spare citrus
# past sand Could it be desyncing lol

It was for a while but that got fixed. I specifically asked about single player though because of this as in that mode it shouldn't be happening if it was a desync

past sand
#

And StopSearch(currentSearch) to end that

past sand
#

Also just a good rule of thumb to turn agent.speed to 0 when it's not supposed to be moving

spare citrus
#

If you don't get around to it, I'll see that I have time next week to do a build and mess around with it.

past sand
#

That's what I do atleast

#

Yee should be pretty fast

spare citrus
#

@past sand +1 on the agent.speed thing

past sand
#

It's the weekend so I got a bunch of time

spare citrus
#

Keep in mind when I made this enemy I didn't know about the AI type to be fair. It's only once I made it compatible to be placed in game via LL that I extended that type and noticed all the things I could have used.

past sand
#

I think the part about states that isn't explored well enough in the guides

spare citrus
#

So that's why it has its own state machine for instance

past sand
#

Is that you need to put the state names in the same order you have in code when making them in the Unity project for the enemy

#

So if u have the following states defined in the following order:
Chase
Wander
Die

#

You absolutely need to make sure the Unity project enemy has those states

#

Otherwise it fucks with desyncs majorly

spare citrus
#

Well, lucky for you... I don't use states

#

lol

past sand
#

I had that problem for a while lol

#

You should :3

spare citrus
#

I know I know

#

You could probably port it over to the states fairly easily. Still a few hours of work though.

#

Since it's just refactoring left and right

past sand
#

Shouldn't take too long, I've made like 4 or 5 enemies by now with the similar/Same format lol

spare citrus
#

Yup. Once you're locked in you're good hehe

past sand
#

Yeee

#

I need to finish this then get back to working on my big project hehe

spare citrus
#

I'm going to send you the Unity Project still. Contains the nodes and other things you'll need since you'll want to export the asset bundle I believe if you are using states

past sand
#

I'd ask if you're interested to help work on it but you might be too busy with irl stuff kek

past sand
neat vigil
spare citrus
#

I don't think so

#

Only thing I can see is eventually you'll have a map full of them

#

Because the ticket system is just going to keep spawning them as they don't take away from the level's power

neat vigil
#

spawn limit will still work

#

yea?

spare citrus
#

Oh right

#

Yea I think so

cedar bobcat
#

Having a weird issue

#

havent seen a locker spawn in forever

#

nevermind lol

#

found one

wanton crescent
#

Having this error, as I understand it's related to The Locker mod?

[12:49:29.8080434] [Info   :   BepInEx] Loading [Locker 1.1.1]
[12:49:29.8390215] [Info   :    Locker] Loaded asset bundle from path: C:\Users\Administrator\AppData\Roaming\r2modmanPlus-local\LethalCompany\profiles\2.2.3\BepInEx\plugins\zealsprince-Locker\Locker
[12:49:29.8566282] [Error  : Unity Log] ArgumentException: An item with the same key has already been added. Key: secretlabs
Stack trace:
System.Collections.Generic.Dictionary`2[TKey,TValue].TryInsert (TKey key, TValue value, System.Collections.Generic.InsertionBehavior behavior) (at <787acc3c9a4c471ba7d971300105af24>:IL_015A)
System.Collections.Generic.Dictionary`2[TKey,TValue].Add (TKey key, TValue value) (at <787acc3c9a4c471ba7d971300105af24>:IL_0000)
Locker.Plugin.Awake () (at M:/Dropbox/_Development/Personal/lc-locker/Locker/Plugin.cs:129)
UnityEngine.GameObject:AddComponent(Type)
BepInEx.Bootstrap.Chainloader:Start()
UnityEngine.Rendering.HighDefinition.HDRenderPipelineAsset:OnEnable()

[12:49:29.8566282] [Error  : Unity Log] ArgumentException: An item with the same key has already been added. Key: secretlabs
Stack trace:
System.Collections.Generic.Dictionary`2[TKey,TValue].TryInsert (TKey key, TValue value, System.Collections.Generic.InsertionBehavior behavior) (at <787acc3c9a4c471ba7d971300105af24>:IL_015A)
System.Collections.Generic.Dictionary`2[TKey,TValue].Add (TKey key, TValue value) (at <787acc3c9a4c471ba7d971300105af24>:IL_0000)
Locker.Plugin.Awake () (at M:/Dropbox/_Development/Personal/lc-locker/Locker/Plugin.cs:129)
UnityEngine.GameObject:AddComponent(Type)
BepInEx.Bootstrap.Chainloader:Start()
UnityEngine.Rendering.HighDefinition.HDRenderPipelineAsset:OnEnable()```
winged matrix
woven delta
#

lag yeah

harsh pendant
#

I had it kill me similar to that as well

#

Felt like I was far enough to the side but got absolutely shredded

spare citrus
muted vale
#

secretlabs is a moon yeah

dapper basin
#

@spare citrus @past sand

How goes the locker fix?

past sand
#

Whenever zeals gets a breather and decides to go through it, I didn't do much personally

wanton crescent
spare citrus
#

I’d have to test this specifically with secret labs. I can do that this weekend maybe.

#

I just launched a new startup product so I’m super busy with that alongside my day job

#

I’ll see that I make some time tomorrow night to get it fixed before the weekend

spare citrus
#

I started messing with the changes @past sand and there's a few new things that are buggy now so I'm going to need more time for this.

Nothing against the changes, it's just it's not a drop in replacement 🙂

past sand
#

and EVERYTHING against your code, the amount of switch states for states makes me sick 😭

spare citrus
#

It's not bad. It's just the game gets to do its things now 😄

past sand
#

yeah fair

spare citrus
#

You'll come around to switches one day

past sand
#

i have ONE switch statement for all my states

#

that's all you need 😭

#

two things, A. i have no clue how you managed to make the locker work to begin with.
B. same thing actually, i dont know how you made it work

spare citrus
#

I have two switch cases by the way lol

past sand
#

you have like 6

#

just counted, 5 lol

spare citrus
#

It's whenever I work with an enum it's like normal to do that though and good practice 🙂

past sand
#

nooo its nooooot

#

i just dont understand how such a simple enemy takes sooo much code

spare citrus
#

You're free to answer that question by making it from scratch yourself 😄

past sand
#

the redwood and driftwood code combined are smaller than the locker 😭

past sand
#

that was the original plan tbh lol, but still it would've taken a bit of a while lol

#

but yeah i hope you can actually figure out how to make it work

spare citrus
#

I agree it's unexpected that there's so much code but it also has completely different behavior

#

I know you're just goofin tho. Unless 🤔

#

🤔🤔🤔

past sand
spare citrus
#

Knowing what I do now about the things I would make it do and effects it would have, I would add more functional decomposition and probably work more with Coroutines since that's fairly standard for Unity scripts but outside of that I'm fairly happy with it

past sand
#

yeah its mostly about coroutines and stuff like that

#

this is just how i do things lol

spare citrus
#

It's a Unity convention though and I hadn't done anything with Unity in years so I kind of ignored them.

#

Yea great decomposition there!

#

Exactly what I am talking about. So it's in smaller chunks and not nestled in the main reactive functions like Update etc

#

Absolutely agree with that point! 💪

#

These are the main pain points

#

Update, FixedUpdate and SwitchState

past sand
#

plus i do a lot of things through animation events rather than calling it in code, problematic in some sense if the animations go wrong but could be okay if the code is foolproof Kek

spare citrus
#

Yea!

#

Another thing I wasn't really working with or aware of when I started. Good point.

#

Are you studying CS by the way?

past sand
#

i will if i get into the uni im trying to, but im relatively new to coding though

#

so might not get in

spare citrus
#

Well fingers crossed for you. You seem to have enough experience to beat the other candidates for the first few semesters!

past sand
#

it's probably just me getting used to copy pasting stuff than actually figuring things out xd

spare citrus
#

Honestly, back when I was in university most people didn't know how to code at all. Was a big reason I dropped out because the people I was studying with were morons.

past sand
spare citrus
#

GPT is your friend, as long as you understand what it's doing.

#

:)))

past sand
#

ah geez lol, i use that maybe like once a couple weeks if theres something i have no idea of implementing lol

#

though i've been trying to get these particles to work for hte last hour so i might just ask gpt later what im doing wrong lol

spare citrus
#

Yea I don't really use it for coding but beginners I have worked with find it really useful. And sometimes it's good at explaining a random issue.

past sand
#

hmm true

spare citrus
#

What are you trying to do with the materials?

#

Or rather what's the issue

past sand
#

i got em from an asset thing in the unity store, supposedly im supposed to just change the shader into one they give and it'll fix the particles for HDRP, which is what LC uses

#

but it just doesn't match what they show in the pictures

#

this being the image

spare citrus
#

yea that don't look right

#

And you set the shader in the top right?

past sand
#

yep

spare citrus
#

😵

past sand
#

maybe i need to change the texture type or smthn? no clue tbh

spare citrus
#

Actually looks fine there though doesn't it? Outside of the preview having a different background.

past sand
#

well this is what the particle system is giving off rn lmao

spare citrus
#

Ah... yes

#

I mean it looks mostly fine

past sand
#

yeah amazing loooking explosions Kek

spare citrus
#

Well whatever conversion it's doing it's messing up the alpha channel is my guess but I feel like there's a few other things going wrong here.

#

Time to make your own shader let's go

past sand
#

one day ill bother learning that

spare citrus
#

ShaderGraph and VFXGraph are fairly fun tbh

past sand
#

im sure it is, i just have a lot of stuff i wanna add before i mess with misc stuff like that

#

not sure if u could tell on the background of the screenshot

#

but im almost done with my new weather type lol

spare citrus
#

Aha, a meteor shower huh?

past sand
#

yep

spare citrus
#

(Great idea)

past sand
#

it works pretty well in game so far

spare citrus
#

That's awesome. More content like that please!

past sand
#

yeah i love sticking to content only mods lol

spare citrus
#

It's in the same vein as Locker and Malfunctions; things that could already be in the game. And weather is definitely something that modding has overlooked so far (Outside @jagged field doing things) 😄

#

How easy is it to create a new weather type?

past sand
#

pretty easy, the only problems with weather is the api side of things

spare citrus
#

I can imagine

past sand
#

lethallib does to some extent, enough so that i can make a weather

#

but not enough where a moon creator can apply the weather into their moon

jagged field
#

i literally have no time to do the stuff I want to, sadly

#

but my (planned) system would enable doing that very easily

sweet python
#

anyone else having a problem with the locker making 90 degree turns and homing in from far distances around corners

#

from what i have seen it seems like its supposed to be a straight line charge, but it turns to follow the player when it charges, and has been nearly impossible to dodge and avoid

muted vale
#

a skill checknormalcat

#

I thought it was supposed to try to chase you for a while though?

winged matrix
sweet python
#

even around corners

winged matrix
#

havent had that no. maybe a mod conflict?

sweet python
#

not sure what mod would do that

winged matrix
#

time to enable/disable till you find it then lol

#

could also check the logs and see if you have anything red errors

muted vale
#

do you by any chance provoke it

royal viper
#

late but the issue brought up is probably in reference to it doing this

muted vale
#

holy shit

spare citrus
#

Though it should be facing the angle of velocity which is a little weird

#

I can look into this when I take a swipe at updating it again

spare citrus
#
# 1.2.0 #

- Rewrote state management to be mounted on the game's EnemyAI system to improve stability and mod compatibility
#

Thanks @past sand for the initial rewrite and motivation as well as good feedback!

#

This should hopefully fix any issues anyone is experiencing with the Locker stopping instantly.

I've also played with the mod over the last two weeks online with friends and offline as well and never been able to reproduce it doing this behavior anymore so I'm about 99% sure if it does happen it has to do with another mod.

modest fox
#

is the locker being able to kill old birds intended?

winged matrix
#

uh

#

I dont think they're balanced around being outside the facility so lol

modest fox
#

ik lol

#

i was mostly asking cuz its unkillabe

royal viper
#

Old Birds have the tag that makes it killable iirc lol

#

It just can’t be hit

modest fox
#

oh lol

spare citrus
#

Umm… why the Locker roaming outside

#

Goofiest ass enemy ever then. You guys know there’s a reason I don’t spawn it there hah

#

But umm… does it kill the Old Bird? Just asking. For science or something.

#

(Just so we’re all on the same page: I’m not patching any issues with it being outside unless there’s a really good reason for that)

past sand
fair hinge
#

Does it home in on Old Birds because of the light source on face?

modest fox
#

from what i tested the locker does not hunt the old bird but if it hits one it will kill it

woven delta
dense bough
#

lockers outside

harsh drift
blissful parrot
#

Honestly would be funny seeing an old birds light active a locker just for it to slam into it, explode, and do absolutely nothing to it

ionic yew
#

Hey, so I have a small issue with the Locker dude

#

The Locker enemy spawns, but then is stuck in some place

#

If I scam or use a flashlight on him, he does the animation that he's supposed to but doesn't move

#

Everything works correctly, he just doesn't move at all

#

Any insight into this would be appreciated

slow sinew
#

small suggestion, but i'd love a slight silver lining to encountering lockers, i adore its gameplay design but i've noticed alot of people who i get to play modded with me sorta dread encountering it since it's real aggressive compared to alot of other monsters

#

something small like a cheap piece of scrap you could get through interacting with it somehow would help w/ perception of it alot imo

#

or if you wanted something slightly more nuanced, this was an idea i had

#

would create a bit of risk/reward to baiting them out (the trail would stay behind and could potentially assist with travel throughout the day), and make times when they charge several times in a row a bit more engaging to deaL w/ imo

drowsy rapids
#

I mean its not really aggressive if you dont scan / flashlight

slow sinew
#

'aggressive' in the sense that not being able to scan is fairly oppressive compared to many other monsters

slow sinew
#

i mean yeah i don't think adding a silver lining really like

#

detracts from that

#

but it's comparable to how butlers and nutcrackers have upsides to them

#

or hoarding bugs

drowsy rapids
#

scanning really isnt that crazy im ngl

cedar bobcat
fair hinge
#

I always play in darkness

#

The moment I hear the start up of the Locker, I'm already running to avoid

spare citrus
spare citrus
ionic yew
#

All I know is that it's an enemy mod that's causing it

#

Or an enemy fix mod

#

I have I think 5 enemy mods and more or less 6 enemy fix mods

spare citrus
#

What are these enemy fix mods?

ionic yew
#

I don't remember them nor can I access them rn
But I know most or all of the enemy mods I har

slow sinew
#

which can lead to emergent gameplay where you take advantage of that by having them lead you to their nest, killing them, and getting a free pile of scrap

muted vale
#

thank god locker cant break doors

past sand
#

Uhhh

#

it can?

muted vale
#

cant break the school ones apparently

#

is this something the dungeon author should do compatibility with?

winged matrix
spare citrus
#

Yea this is not something I'm going to add support for. It boils down to this: Right now there's no generic door component in the game. What this means is I can't really check for objects that are doors. Instead I have to check for objects that have triggers and are called doors.

Additionally, I have to then do a hacky way of destroying them by going up the found object's parents and deleting those. If a custom mod does this incorrectly, it can mean that I delete like a whole room for instance which can happen.

Until Zeekers makes doors generic, this is going to be an issue going forward that interior mods will have to work on making compatible. I think the best approach is to take the existing interior doors and swapping out their models, keeping the name intact.

#
// Get all doors in the level and check their distance to the locker while chasing.
DoorLock[] doors = Object.FindObjectsOfType(typeof(DoorLock)) as DoorLock[];

foreach (DoorLock door in doors)
{
    if (!door.isDoorOpened) // Ignore open doors.
    {
        if ( // Check that we're in range of a door.
            !door.GetComponent<Rigidbody>()
            && Vector3.Distance(door.transform.position, transform.position) < 3f
        )
        {
            Utilities.Explode(door.transform.position, 2, 4, 100, 0);

            Destroy(door.transform.parent.gameObject);
        }
    }
}
#

This is how I check it right now. Essentially I have to look for "Door locks" and then get the door lock's parent. I think this works mostly, as long as modded doors have a door lock component on them.

raw kernel
harsh drift
#

Tokyo Drift

marsh tartan
#

It picks up the scanner lmfao

raw kernel
#

Yeah but I only scanned twice max

#

Also that drift lmao

marsh tartan
#

Yeah but it can also double charge

#

So it did a double charge after the second scan

#

and yeah

#

XD

raw kernel
#

TIL

spare citrus
#

By default it has a 50% chance to "reactivate" after a charge. Was too easy to bait otherwise. This is definitely my favorite change I made that seems to have had the most impact.

#

That drift though 😂😂😂

harsh pendant
#

That explains everything…

#

I always thought I had somehow re-activated it instantly lol

slim quarry
#

Would it be possible to add the option, to configure the Locker turn speed/rate or something? It drifting so hard, kinda funny, but not fair sometimes

raw kernel
#

Fair

marsh tartan
woven delta
#

this is what happens when you hold the apparatus

fair hinge
harsh drift
gray coral
#

bro 😭

#

the locker almost gave me a heart attack