#Dungeon Generation Plus

1 messages · Page 2 of 1

final shale
#

gotcha, so the copy nodes thing copies from the first main path extender to the others, rather than the dungeon flow?

wide mantle
#

If no, then I left a big fuckup

final shale
#

sorry, what override do you mean?

wide mantle
#

This one

final shale
#

ohh

#

hum I see

#

yeah I guess that name should've been a tip-off but it didn't occur to me that it would affect the whole main main path lol

#

the first path was indeed an override since I wanted to add the resonance chamber onto it

#

so if I leave everything in main path 0 as non-overridden then it will just use the DungeonFlow? perhaps I should just override everything and leave DungeonFlow empty for clarity though

wide mantle
#

Up to you, whichever work flow works best for you

#

Keep in mind that if for some reason, you wanted to add a config to let the gamer choose vanilla dungeon generation, then you would want dungeonflow setup properly

#

But other than that, do what works best

final shale
#

right right

#

then having it be no override is probably best

#

also, random question, I noticed that the GenerateMainPath() function looks like it's designed to stop assigning tile sets, archetypes, nodes and lines for each tile along the length when it reaches the node with the highest position... does that mean that if I have a Goal tile with position 0.7, it will cut the dungeon's size by 30%?

#

(speaking about the vanilla one, but I'm guessing your code also does something similar)

wide mantle
#

I have never ever thought about setting goal to anything less than 1

#

My alternative main paths don't consider that. So it will probably be undefined behavior for that scenario

final shale
#

huh

#

I've never really realized if the vanilla interiors have goal tiles, except maybe the backrooms in Factory

wide mantle
#

Vanilla interior have goal tiles set to 1 im sure, they just are normal generic tile

final shale
#

what's curious to me is that it sometimes seems like the resonance chamber generates and then the main path continues, but I guess I don't know for sure that's the case

#

huh, I see

#

I guess I'll add some then

#

do additional main paths also require start nodes that can be placed after the main tile prefab?

wide mantle
#

They shouldn't, just the first main path

final shale
#

nice, okay

#

ty for the info! I'll try things out and see if this works properly

wide mantle
#

Please work properly

final shale
final shale
#

it does work, but not properly 😅

wide mantle
final shale
#

it generates one main path with two paths set up in the extender currently

wide mantle
#

So it fails the second path?

final shale
#

oh, no, it actually completes with only one path (that I can make out)

wide mantle
#

Is the main path count 2 just to be sure?

final shale
#

yep

wide mantle
final shale
#

the main tile is the one directly center frame and extends to the left a little, that brown tile upper right of it is the main path and the lighter brown bottom right is a branch

#

I tried a few attempts in your dev menu and out of it and none of them seemed to do a second path

wide mantle
#

If you can somehow send me the current asset bundle, I can try and make sense out of it when I wake up

final shale
#

I'm also getting a weird lag where the delta time seems to be slow but jumps forward abruptly every second or so

#

unsure if that's anything to do with DunGenPlus though

wide mantle
#

My stuff shouldn't be doing anything like that, but what do I know at this point

final shale
#

I remember someone reporting a similar issue in the OpenBodyCams thread a long while back but it was some other mod doing it, maybe HDLethalCompany

#

it didn't make a whole lot of sense to me so I don't remember why it happened, I'll have to go see if I can find those messages at some point if I don't happen across a fix

#

and I'll see if I can get this stuff committed so Crab can send you the files

#

it's an improvement at least so shrug

wide mantle
#

Progress is indeed being made

final shale
#

the build shall be DMed to you later (hopefully sooner than)

wide mantle
lone plover
#

Yeee

#

Discord filters out DMs from people you don't know now tho

#

so you probably didn't see it haha

wide mantle
#

I hate that discord mobile hides them

lone plover
#

same lol

final shale
#

huh, I think I've seen message requests on my phone, that's weird

final shale
#

finally got around to looking at this again, I think the issue was that I had CopyFromNodeList without putting the main tile prefab in my secondary path

#

yep! adding the entrance to the secondary path fixed it HYPERS

#

now for the fun part, trying to see about this new feature

#

(bit of a dumb mistake on my part, I totally misunderstood the purpose of that option lol)

#

ayy, it even works in editor now!

final shale
#

your system for limiting which doorways the paths attach to appears to be working on my first attempt 👀

#

lab to the left, office straight forward FineWoo

wide mantle
#

Ty for beta testing my guide

final shale
#

np! hopefully that's all that needs a look because I have a tendency to look at documentation for the absolute minimum time I think I can get away with lol

#

maybe if I end up fiddling with more I'll have to consult it again

#

for now this is plenty of toys

wide mantle
#

Slightly rewrote the wiki for the things Zaggy got pranked by

#

Once I get the all clear that the beta version is good for what yall doing with Half Life, then I'll publish it

#

And update the wiki some more

final shale
#

yee sorry I haven't been able to fully greenlight it yet, I'm kinda distracted by other things and also managed to break some things when I was trying to log debug it

wide mantle
#

More bugs

final shale
#

well it was apparently the changes I made while adding debug logs that caused it to stop working entirely .... somehow ...

#

I was having an issue with getting a third path to spawn but I haven't figured out the cause yet because of that breakage lol

#

I'm currently distracted by the fact that apparently the HDRP culls the cameras in one loop and renders them in another, so light parameters set for one camera during beginCameraRendering don't take effect if I reset them upon the next call to that event

#

I have to transpile the HDRP code to give myself the event I need to change a light's brightness

wide mantle
#

lol

#

we all transpiling deep stuff for cool stuff

final shale
#

yeeee

wide mantle
#

we ball, ill push the update publicly tomorrow since I'm updating my dungeon mod

final shale
#

fair, it at least is working for two paths

#

I've been fiddling with other stuff still, but I'll let you know if I figure out why the third one wouldn't work whenever I get to it

final shale
#

Finally back to messing with DunGenPlus, looks like it was failing to generate the quarantine path because I forgot to change the end node from position 0 lol

#

but also, I'm wondering, do I need to have an end node? it's a bit annoying to put all the tilesets from the line into the endpoint to make sure it doesn't fail to generate because of no matching doorways

wide mantle
#

i honestly do not know/remember if an end node is neccessary

final shale
#

hmmm okay

#

I think I saw somewhere that DunGen sets the last node to the goal node, but I may be wrong

wide mantle
#

who knows, something you have to test

final shale
#

yee

wide mantle
#

ill try and see the update out today, i wanted to release it last week but i got cucked by my dungeon's new tiles not being setup correctly

#

my fault

final shale
#

all good no worries

#

I can finally tell you whether it's working properly (it appears to be so far)

#

I had to add some debug logging into our copy of DunGen and in DunGenPlus to figure out all these failures though

#

but it's been coming in handy

#

just printing what each failure is and the unused doorways it was trying to match to, as well as the last list of tilesets, gives me a good idea of where to look

#

example:

AddTile onto Office Small 5 failed with last result NoValidTile, available doorways: 
Doorway (1)
[Debug  :dev.ladyalice.dungenplus] Alt. main branch at 0 failed to attach a tile to Office Small 5 at 0:1, using tilesets: Office Main
wide mantle
#

ahh I see I see

final shale
#

NoValidTile likes to happen a lot with our doorway restrictions

#

(I blame Plastered)

#

(I gave him the power though)

wide mantle
#

Ahh, okay. I can add a few more debug logs. They are debug level anyway now so I can add as much text I as want.

#

Ya I blame Plastered too

final shale
#

I have this silly little thingamabob

#

he added way too many restrictions in because he had all the tilesets in one archetype instead of making multiple archetypes

#

so now I have to make him delete a bunch probably

wide mantle
#

I can now understand your struggles

final shale
#

actually it's not that out of hand, I'll just delete it

#

the point of this was literally just to make it so we don't have rooms connected directly by vents

#

instead of having vent tiles connecting them

#

p sure this is the only restriction we need

wide mantle
#

I tried to stay away from connection rules as best I can. Since I know how chaotic it eventually gets

#

I think currently, I have 11. And like 7 of those are just, no library rooms next to other library rooms

final shale
#

yeah I didn't want it to turn into this

#

I added it in and Plastered was like wow this solves all my problems! time to put tags on every doorway and use it to make the elevator spawn immediately off entrance

#

like nodes don't exist

#

🤪

#

oh well

#

I should've screen peeked more

wide mantle
#

what I'm hearing is that it's your fault then

#

Blame Zaggsters instead

final shale
#

my fault for not listening to my worst fears yeah lol

wide mantle
#

truly understandable

final shale
#

I kinda saw it coming but I was distracted

#

damn this place is huge

#

I wish the terrain didn't get in the way so I could look down on it properly

wide mantle
#

i think sdm's dungeon length is like 4-5 now or something

#

cause it gets so big so quick

final shale
#

yeah we have ours at 25 with maptilesize 3

#

it's pretty chonky

#

although I think maybe I tried to scale it back when I added the two paths and it didn't save

wide mantle
#

sorry it's actually 3-4 length

final shale
#

it was supposed to be like 14-16 or something

#

oh wow

#

maybe you should use MapTileSize too

wide mantle
#

and my dungeon still feels big

final shale
#

then you can have the range be more granular

wide mantle
#

ill think about it. does sound nice

final shale
#

multiple paths definitely makes it tougher to scale right because each path has to be a smaller number

#

but I think it's okay

#

I gotta say though, despite my roasting earlier, @lone plover did have a good idea with this elevator on one path

#

they can generate on top of each other even if they go the same direction

#

oh also another thing I did was add this into DungeonProxy:

#

and in Tile:

#

DunGen royally screwed up the tile bounds visualization, so this allows it to actually show it for the async generation tiles and also show the exact bounds it uses to check for collisions

lone plover
final shale
#

not sure if the override bounds are correct but we don't have any of those so shrug

#

it's ok I am fixing everything

#

generation no longer fails ridiculously often afaict

#

no more NoValidTiles errors

#

hopefully

final shale
#

@wide mantle seems like maybe alternate paths don't stop at the goal node like I think the vanilla main path does? I was hoping to use a position 0 goal node to stop a stub path after spawning just one tile (for a teaser for a path we will add later)

#

would I at least be able to work around this by putting that path first so it is considered the actual main path and use the vanilla main path code?

wide mantle
#

if that's desired, i can add that in

final shale
#

would be nice to match vanilla, yeah

#

if it's not a problem for somethin else

wide mantle
#

dont see why it would

final shale
wide mantle
#

let me see what DunGen is doing

final shale
#

this whole chunk

#

I think this logic is missing in your impl?

#

mayhaps I'm wrong

#

or maybe it's hiding this loop, lemme reread this

wide mantle
#

where is that code located

final shale
#

top of GenerateMainPath

wide mantle
#

cause im looking at the OG GeneratedMainPath, and I don't see anything about ordered nodes

final shale
#

here's the decomp

#

the first screenshot is from a diff version so it may not totally match

wide mantle
#

okay i see it

#

it's not goal node, just the last node

final shale
#

right yea

#

they just assume that's the goal node since they set that in the path builder

#

but checking for the last one is probably best

wide mantle
#

ill just copy what DunGen does

final shale
#

okey

wide mantle
#

shouldnt break much

final shale
#

if you think that's for the best I trust your judgement 🫡

#

it does seem a little convoluted to me though

#

maybe I'm missing some purpose in that htough

wide mantle
#

ill test with my dungeon, if it works, then nothing bad happens

#

what's convoluted?

final shale
#

running through the target length once and tossing everything in a list

#

instead of just doing it in one loop

wide mantle
#

ya i dont understand either

#

its why i didnt copy it like that

final shale
#

yeah

#

I would just say add the exit condition to your loop

#

it looks nicer that way lol

lone plover
#

Idk if it's possible due to how DunGen actually works but it is super annoying when you get bad rng and it chooses a tile poorly however many times and deems the whole generation as a failure and completely resets. Instead of backing up a single tile and re-rolling that too see if it has a better chance

#

Who knows if that's even possible to fix but Lord it was always annoying to see when watching it generate asynchronously

final shale
#

I think it does roll back a little, but it's tricky bidness

lone plover
#

Not surprised lol

#

Isn't too much of a big deal now though since you overhauled the tile bounds and connection rules

final shale
#

like here

wide mantle
#

I remember when I had that rollback code affect my alternate main paths

#

And I got a lot of errors

final shale
#

huh

lone plover
#

😅

wide mantle
#

Which is my best guess to why DunGen doesn't do rollback stuff much

lone plover
#

Fair enough lmao

final shale
#

time to rewrite the whole thing from scratch

wide mantle
#

Plus, resetting the generation is good enough

lone plover
#

Not a huge deal lol

final shale
#

yeah it's not a huge problem

#

although I would guess that even just going back one tile can help a lot

lone plover
#

Not so much now though

final shale
#

I haven't fixed it yet lol

lone plover
#

Oh well.... Soon TM

wide mantle
#

@final shale besides adding more info to how DunGenPlus failed generation like this
Alt. main branch gen failed at Branch {b}: (Length: {t}, Ratio: {lineDepthRatio}).\nPrev tile: {prevName}\nArchetype: {archetypeName}\nTilesets: {tileSetNames}
Anything else you want

final shale
#

the failure reason

#

that's pretty important to let me know if I need to look at our rules or the tile bounds

#

(I know it puts the failures into buckets, but I don't find that it works very well for some reason, so I just like to see the last one)

#

I guess you can't really get that too easily though, I think you'd have to inject into AddTile

#

this was what I did, it would probably require a transpiler unfortunately

#

it's fine if you can't fit that in, though, I can just rely on this change in editor for debugging

wide mantle
#

ya looking at it means I gotta inject

#

isn't there a postfix inject that lets you look at local variables?

final shale
#

hum, not sure, I've never used one if there is

#

I'm not sure how you would tell it which local to look at

wide mantle
#

must have confused it with something else

#

rip

final shale
#

unless MonoMod has another way

wide mantle
#

no wait i can just inject into AddTilePlacementResult

#

easily get the last result stored

final shale
#

ooh true

#

perfecto

wide mantle
#
Plugin.logger.LogDebug($"Alt. main branch gen failed at Branch {b}: (Length: {t}, Ratio: {lineDepthRatio})");
Plugin.logger.LogDebug($"Prev tile: {prevName}\nArchetype: {archetypeName}\nTilesets: {tileSetNames}");
Plugin.logger.LogDebug($"Reason: {DungeonGeneratorPatch.lastTilePlacementResult}");
#

Anything else you think?

#

Oh and the doorways

final shale
#

very nice

#

oh yeah doorways is important

final shale
#

moo

wide mantle
#

Now just need a debug panel for editing some values of the tiles, tilesets, archetypes etc. in game

final shale
#

oh man

#

you're getting crazy wid it

wide mantle
#

It's ez now since the code is already setup

final shale
#

that would be pretty cool

#

I do like using the editor but that could allow some fast iteration because it's not nearly as slow in the player

wide mantle
#

to edit some of the asset values

final shale
#

ooo that's very cool

#

you work fast

#

(there's a typo in straighten though)

wide mantle
#

looks right to me

final shale
#

it's missing the h

wide mantle
final shale
#

nitpick mode activated sorry

#

but that'll be pretty handy if I ever need to fiddle with stuff quicker than the editor lets me for sure

#

hopefully my DunGen misadventures are over for now at least

wide mantle
#

shit well i need another day

#

added zoom in/out

#

had to add a wiki page for the dev debug window

#

still have to edit the wiki for the main path extenders stuff

#

still havent fixed my own dungeon

#

the woes

final shale
#

oh boy

#

if you made a commit for the goal node thing, though, I can build that over here and try it out at least

#

if not no worries though

#

gives me more time to work on barnacle >:)

wide mantle
#

thats it

#

im pushing the commit at least

final shale
#

you're too fast

wide mantle
#

oh

#

i mean im pushing the commit, not the update

#

thats still tomorrow maybe lol

final shale
#

oh yeah that's fine with me

#

that's what I thought you meant

#

I'm spamming fetch PauseFish

wide mantle
#

you can fetch now

#

my panel stuff could use a UI cleanup

#

but that's a later problem

final shale
#

yippee

final shale
#

I believe in you though

wide mantle
#

I think just a button to expand the UI would work enough

#

wait

#

let me cook one sec

final shale
#

kek I wasn't expecting that one

wide mantle
#

Is what that's just some left over text from my phone

wide mantle
#

ya that was only 30 mins

#

don't know why the generation stats page dont move, oh well

final shale
#

oh is it resizeable horizontally you mean?

#

statsnot moving isn't a horrible price to pay for that for now

wide mantle
#

its just a button that forces it into this extended size

#

and back to compressed

#

does lag for the assets page during the extension animation but thats to be fair, that's probably a lot of text mesh rebuilding

#

well, how hard would a resize drag button be

#

thats tomorrow problem

final shale
wide mantle
#

oh i imagine it's like resizing the width of the text GUI forces it to rebuild the mesh and stuff

#

could maybe be fixed by preventing auto text rebuild until the animation finishes

#

maybe though, not a priority

final shale
#

right, but if only the visible text gets rebuilt then it should be a lot faster, right?

#

or did you mean freeze the ones that aren't visible?

wide mantle
#

should yuh

#

it's only lagging for the Assets panel since it's a lot of text

final shale
#

yeah

wide mantle
#

okay wiki up to date

#

should be ready for launch when I update my dungeon tomorrow

#

you better not find any bugs with the stuff I committed

#

wait @stuck elm you using my mod now?

#

my first customer

stuck elm
#

It's basically just being used as a dependency for increasing the max shadow limit hehe

#

I'm technically not hooking into it or anything

#

But yeah, I'm "using" it

wide mantle
#

that's still one happy customer

#

ez

stuck elm
#

That said I do have some interior ideas that multiple main paths might work well in

wide mantle
#

🫡

stuck elm
#

Not sure if I'll ever get to them, but we'll see

lone plover
#

Mesa will push this thing to it's limits probably 😛

#

I am sure we will cry home to you if we find anything silly >:)

#

Also thank you again Raph, none of the plans we have for Black Mesa would be possible without this awesome tool 😄

wide mantle
#

alright update pushed

#

if something breaks yell at me

final shale
#

ooh okay

#

I'll test it out in a bit, hopefully

#

I wanna try and push out OpenBodyCams in a bit here since I'll be up for a while

final shale
#

big success

#

(I was gonna try and clean up OpenBodyCams but I found a couple more complicated bugs to solve than I expected so here we are)

wide mantle
#

All working ? :o

final shale
#

yeee

#

don't question the fact that that new tile closest the camera appears to be off the start tile

#

we did some dastardly deeds

#

namely this deed

wide mantle
#

As long as you don't question some of my recent dastardly code

final shale
#

for the UI? I'm too afraid to look, immediate mode GUI is cursed

#

cool but cursed

lavish citrus
#

Now that we (Zaggy) got the archetypes per main path working, any chance you could add global props per main path?🥺

wide mantle
#

Not at this current time, remind me again in a few weeks

lavish citrus
#

Okay 🙂

lone plover
#

@wide mantle once again we politely inquire about possible additions of ensuring a certain number of global props per main path :3

#

I tried to wait a few weeks so hopefully it was enough time 😛

#

Also we are excited for you to see how rad Mesa is looking with DunegonPlus so far!

wide mantle
#

More like 9 days

#

I can do a quick lookup on how easy it may be to add. If it's too complicated I can't this weekend

lone plover
wide mantle
#

Looking at the ProcessGlobalProps function

#

Doesn't look bad, I should be able to overwrite that

#

I also already have code that translates a Tile into whichever main path it's connected to, so I basically have everything to set it up

#

I could also do a dirty dirty trick, may be illegal. Actually nah too illegal

wide mantle
#

@lone plover I am waiting for a Loadstone update since my nodes/lines manipulation nonsense is pranking them hard. I will push the GlobalTilesPerMainTile thingy along with that too. Sorry for the wait

lone plover
#

We appreciate you working on it 😄

final shale
#

oh I didn't realize that wasn't shipped yet, good thing we didn't get to the point of releasing an update lol

final shale
#

stinky

wide mantle
#

The local GlobalProp code works, but it's actually the first time I collided with Loadstone

#

So I need some more time

wide mantle
#

Lol nm everything is broken

#

Actually we are so back

wide mantle
#

It's working but we have a new issue. If a moon cannot have 3 fire exits, then I can't just let the fire exit GlobalProp counter exceed 3. This means, for example, I can't just lazily let the fire exit counter for each main path be 1 and be done with it. I need more logic

#

And LLL directly manipulates the fire exit GlobalProp counter based on the moon

#

I think instead of a generic boolean to enable local global props per main path, I should add a list of GlobalProps ids that the interior dev must specify. That list will contain ids and their local min/max spawn limit per main path. The GlobalProp can only spawn if they are below the local limit (if specified) and the global limit (from DungeonFlow)

lone plover
#

I trust you'll get it sorted out Pepe_Shy

wide mantle
#

It's sorted out

#

Also lucky that I tested vanilla generation for my dungeon, that shit broke instantly.

lone plover
wide mantle
#

I'm afraid of pushing this to main since I just broke it

lone plover
#

Excited to try it out with our new generation

#

If you toss it to Zaggy we can stress test it lol

wide mantle
lone plover
#

We do a lot of wacky stuff so it'll likely find anything wrong lol

wide mantle
#

See if it works for yall. The local global props as well

lone plover
#

🫡

final shale
final shale
final shale
#

oh I'm surprised the global props per main path stuff isn't in the main path extender, why is that?

#

is it possible to override it for a specific path?

#

I guess the global props are a post processing step, so this seems like it might be trickier than I initally thought, I hope I'm wrong

wide mantle
#

But I can't override global prop values within the main path extender. The global prop has to be a hard limit. I can only enforce a local limit within a main path

final shale
#

I'm also wondering, what would happen with LLL's fire exit global prop count if I were to make it so that we have a minimum of 1 fire exit per path? would it cause any conflict if we have 4 paths with min 1 fire exit each and then LLL wants 3 or less exits?

final shale
wide mantle
#

What you said is why Global Prop has to a hard limit that I can't touch. Creating a local limit per main path would satisfy what you want and not break the fire exit stuff

final shale
#

yee

#

but having it have a minimum of 1 per path with 4 paths wouldn't cause generation to get confused when it can only actually place 3?

#

it would just stop if it hits the global limit before satisfying the local limit?

wide mantle
#

Ahh that is true hmm

#

If it hits the global limit before the local limit, tough luck make better dungeon

#

But it can't reach the global limit due to the local limit, I can maybe add an extra toggle where it forces the global limit to be reached for the remaining props

final shale
#

yeah, I think global should always take priority

#

if global says 4 max and local says 5 min, it spawns 4

#

if global says 3 min and local says 2 max, it spawns 3

#

third one in a random location

wide mantle
#

that's probably feasible without too much extra hassle

final shale
#

for custom global props we can just set the global to 0-1000 and then use locals to do things

#

and for fire exits it should just work ™️ I think

wide mantle
#

Would you rather I tie the local global prop stuff to the Main Path Extender?

final shale
#

I'd like to have the option there at the very least yeah

#

since we want to for example spawn more military style hazards in the military line

wide mantle
#

Understandable

#

Should be feasible, but next week I need

#

What I gave you should be fine for now?? At the least tell me if it ever breaks

final shale
#

would it also be possible to do a local curve? that seems like it could be pretty tricky but handy

#

also no rush DORIME

wide mantle
#

Local curve?

final shale
#

we can release as-is, our generation is already pretty sweet

#

wait hold up

wide mantle
final shale
#

ahhh wait the curve is in the global prop in the prefab

#

I'm not as knowledgeable about how these work tbh

wide mantle
#

Fair

final shale
#

the depth weight scale is what I was thinking of, but I'm imagining the fact that it's in the GlobalProp behaviour itself makes it very tricky to make it use a different one per path

#

I guess we can just put an override of the curve depending on what tileset a tile belongs to??

#

not sure how it weights these tbh

#

I guess it samples that weight curve based on the depth of each global prop and adds them to a GameObjectWeight?

wide mantle
#

Yuh

final shale
#

ahh I see

#

yeah then we can kinda hack it probably

wide mantle
#

I don't have an easy way to modify the curve based on main path stuff

final shale
#

yee that's all good honestly

wide mantle
#

But you can change the curve on a tile-to-tile basis

final shale
#

I was thinking about it wrong

wide mantle
#

WELL

#

Since I already placing local global ids inside the main path extender

#

And as such that id has data linked to it

#

It's not I can't add an addition animationcurve to further modify the weight

final shale
#

humm

#

I wouldn't necessarily say that it's important though, I hadn't thought this through to the point of figuring out that custom curves per tileset would work

#

mostly because it was Crab's idea lol

#

I've been too busy with other stuff stitchDeadTired

wide mantle
#

Fair

final shale
#

this will be useful for the fire exits though, we did want to have those spawn one per path on the black mesa moon

#

I can definitely see per-main-path settings being useful in the future but I do feel bad for asking for that if you're busy

#

this is more than enough for now, and I'll let you know if I see any issues with it in our testing

#

thus far nothing has seemed broken

wide mantle
#

Also I know that interiors take forever to work on so I know I have time

final shale
#

wuh oh

#

working on a game or somethin?

wide mantle
#

Can't be doing stuff with Unity for free forever

final shale
#

with our endless list of things to fix and new ideas to distract us it sure does

final shale
#

unity is too painful to do it for free

wide mantle
#

Nah Unity is fun™ ngl

#

But fun don't pay future bills

final shale
#

some stuff is really painful tho lol

#

I think if I had to use Unity without being able to patch the HDRP I would lose it

#

the camera callbacks are terrible

wide mantle
#

lol it's why I just added ™ to my fun. I just spent my Sunday thinking it was so over as I swapping .fbx models, and all the IK stuff that worked previously did not

#

Turned out to be a stupid scale issue

final shale
#

I see I see

#

yeah that sounds like a fun issue to track down

#

it's a lot harder to have granular commits in Unity although I do my best so we haven't had anything really get us stuck for too long

#

but when that happens it feels like poopoo

wanton bear
#

frlll tho

#

Why can't we be one of those cool modding communities with a cash flow 😭

wide mantle
#

Like porn mods I can understand (Skyrim lmao) but I know I have heard of paid mods for other stuff too

wanton bear
#

The first step would be having content hosted on a platform that actually offers anything at all

Second step I suppose would probably be some sort of better push or commisions and or patreon type stuff

#

last time I was looking at it if the community was on curseforge from the jump i would have made a couple K in usd off LLL

#

which would have been life changing

#

TModLoader only really exists because of it's patreon as another example

wide mantle
#

What it sounds like to me is that a mod has to be so useful and integral to a game (and not easy to replicate) for it to exist as a paid mod

#

My personal opinion, if LC was still mega popular, custom interiors were easy to create, good high quality custom interiors are plentiful, AND something like LLL wasn't easy to replicate, I could see it becoming a paid mod no sweat

wanton bear
#

I mean at the end of the day paid stuff would def be a popularity contest just due there never being enough money to go around

#

which means either essential stuff like api's or hyper popular stuff like content expansions

wide mantle
#

Ya content expansion was something else I was thinking

wanton bear
#

LLL and Wesley's are probably the two biggest sides of the coin in that regard

wide mantle
#

Wesley's I'm not too sure on what's happening over there. I know my interior has a lot going for it. I think both of us could do a content expansion type stuff if a patreon existed or something

#

But for me personally, I do this modding stuff for fun so I feel bad doing a patreon for it.

#

Well actually truth be told, I don't think there's a market for a patreon for LLL mods

wanton bear
#

Wesley has like 13 moons and 2 interiors. Lot of cool stuff

IMO you might struggle abit in regards to how heavy your mod relies on the crossover aspect of the theming.

Shouldn't feel bad about it, It would be very much optional. At least for me I would be more than happy working on LC stuff fulltime if that was a viable option for me, Currently it's very much not so I don't, Not too much deeper than that

wanton bear
wide mantle
#

If it was updated lmao

#

Respectfully zeekers

wide mantle
#

I assume what you mean by themeing is that my market would be theoretically limited to people who don't hate the Touhou theme?

wanton bear
#

Yeee, which isn't a diss in anyway just less of an audience by nature

wide mantle
#

Nah I don't see it as a diss. I see it as a challenge

#

To use my themeing in a way that can reach a larger audience and not just my niche Touhou audience

#

Seems to have worked, 3rd most popular interior, but I did get it in the interior business early and spammed updates a lot back then

#

And also, I only had the patience to make funny touhou mod since it's touhou. Would never do this shit again if it wasn't for that

lone plover
#

I have a kofi and made only about $10 from Mesa with it

#

But gave Zac and Zaggy $4.5 of that haha

#

I got a good take home of less than $0.5 due to fees lol

#

I get more joy from seeing people have fun on something we made than I do from monetary gain though so that in itself is very rewarding 😛

elder maple
#

You forget, the audience for this game is literally children, and children don't have money.

#

Other moddding communities have a 40 year old audience, thus have more opportunity in general.

#

Hell, we have the commission policy the way it is specifically because of the child-average audience.

elder maple
elder maple
elder maple
elder maple
# wide mantle But fun don't pay future bills

shrugging It does if you do things properly, professinally, and build a resume out of your GitHub.
The things I was screaming at Batby to do "properly" etc so it helped in the future.

For anyone following along, if you want a job in tech in the future, it's a tight-knit community.
There are loads of things you can do to show that you are "grown up and ready to play the game"
Following GitHub's Open Source Guidelines are pretty much the 101 for "where do I start?"

#

Open Source 101

wanton bear
elder maple
#

Yeah, you'd be most likely to get a stipend from the moon creators who themselves were making more, downstream flow.

#

This why LethalModding wanted to do the forced split on installed mods, to ensure libraries got something versus nothing.

wanton bear
elder maple
#

That and the huge enemy mod, forgot the name. + SCP Project too. Thematic things fund better.

wide mantle
#

But it's all good. What's life without some mishaps along the way.

elder maple
#

Right? People only realize "oh shit, I should have done that" in retrospect. Hindsight is 20/20 etc.

wide mantle
#

@final shale done

#

Basically what I said earlier, the Local Global Ids are tied to the main paths now. And there's an extra toggle to let a main path finish reaching the Global Prop max limit

final shale
#

ooh okay

#

that sounds handy, thanks!

wide mantle
#

I thought the code was broken when I found a disparity

#

It turns out that my test was broken

#

Code all good

wide mantle
#

I tested the code I bit, I trust to test it live

lone plover
final shale
#

oo cool

#

we've still got some stuff on high heat in the oven so it'll be a bit before we put them through the proper test, but I haven't had any issues with the previous one you sent in editor or in player so I think you did well NODDERS

lavish citrus
#

@wide mantle I know SDM adds more scrap whenever it spawns on smaller moons, is that something built into DunGenPlus? I'm thinking we'll probably want to do the same thing with our new generation

#

If not it's no big deal, I'm just asking before I do the work to write a little script

wide mantle
#

That feature is in SDM, but im planning to move that feature to DunGen+

lavish citrus
#

Nice good to know 🙂

wide mantle
#

With better functionaility

lavish citrus
#

I like the sound of that

#

btw any tips for the global props per path? I was having a ton of issues with it

wide mantle
#

I haven't released the update yet for that feature. I believe it's all ready but I got stuck with updating SDM so I haven't released that DunGen+ update

lavish citrus
wide mantle
#

It may be the latest build in the github, but not in thunderstore

#

Oh ya

lavish citrus
#

Yeah I didn't think it was on the TS

wide mantle
#

it's latest build

#

You said you were having trouble using it?

lavish citrus
#

Do you recommend keeping the global props in the original dungenflow along with the rules for each path?

wide mantle
#

Ahh let me explain what that feature actually does

lavish citrus
#

Yeah, all I was getting was failures no matter what I tried with adding them per path

wide mantle
#

The global prop id/count must STILL exist in the dungeon flow, that number is the global hard limit. The number in the main path details is the local limit for that specific main path.

lavish citrus
#

Hmm that's how I assumed it worked

wide mantle
#

You saying that it still not working nicely?

lavish citrus
#

Give me a moment. I'll set it up again

wide mantle
#

If you enable debug logging, then some of my testing debug messages may still be there

lavish citrus
wide mantle
#

oh no just regular bepinex config

lavish citrus
#

I'll try that in a moment, I hit play in the editor to get an initial test

wide mantle
#

and the framework that I'm testing for adding items/enemies to a dungeon

#

oh are you testing this in unity editor and not in game?

lavish citrus
wide mantle
#

that's probably why, my code probably doesn't work in the editor, only in LC

lavish citrus
#

I'll try it ingame but I don't think it made a difference before

#

everything else with dungenplus works in editor for us

#

Yeah it failed in editor

#

I'll try a build

wide mantle
#

If so then baller, but I never tested my stuff in editor so I wouldn't know

#

I always tested my shit in game

lavish citrus
#

It takes awhile for the project to build so testing in editor tends to be faster for us 😅

wide mantle
#

It's why I added the dev generation tools so it's a little faster

lavish citrus
#

This is the props btw, I have this on the dungenflow and the same but 1-1 on the three paths we want them on

wide mantle
#

Should be fine then

lavish citrus
wide mantle
#

your mod is cursed what can I say

lavish citrus
#

It really is

#

I blame @lone plover

#

it's all his fault

wide mantle
#

But if you continue to have issues I can look at it later

#

Send me your lethal bundle and whatnot, I'll take a deep look

lavish citrus
wide mantle
#

real

lavish citrus
#

it'll be a hot minute😂

wide mantle
#

log wise, it seems to work

wide mantle
#

i did some visual debugging, it all seems to work. each path has only one red/blue cube (which represents your only local global prop)

#

@lavish citrus if you can show me later what those global props mean, then I check in the dungeon, but debug and code wise, everything appears to work

lavish citrus
#

They are the Healing and HEV Charging Stations

#

Did you change anything? When I was testing in the dev mode I had no luck

wide mantle
#

Changed nothing

lavish citrus
#

What the heck😂

#

Were you able to land?

wide mantle
#

I can check actually in game inside the dungeon in a fat minute, I'm currently setting up the update for my interior

lavish citrus
#

Cool, just let me know 😁

wide mantle
#

I pushed all the changes that I have made so far live

#

As I'm testing it live

#

Ill check your stuff @lavish citrus in game in a fat minute

lone plover
wide mantle
#

I check in game, I have both of them spawn exactly where my logs tell me

graceful fiber
#

Thread sent me two months up in messages, thought I missed like 20 messages and then I found myself reading a good few hundred messages in an hour

wide mantle
#

enjoy the hours of content

graceful fiber
#

Just seemed to be a lot of zaggy yappin

wide mantle
#

And me

final shale
#

I never yap

wide mantle
#

don't forget me

graceful fiber
#

Could never forget you 😔

wide mantle
graceful fiber
final shale
#

uh

#

okay you got me, I yap

graceful fiber
#

knew it

lavish citrus
#

@wide mantle Testing that build I sent you with the live version indeed works, awesome 😄 All the versions I downloaded from the discord didn't before

lavish citrus
#

Also did you leave that visual debugging in here somewhere?

wide mantle
wide mantle
lavish citrus
#

Just odd that it works fine outside of the dev tool but not in the tool

lavish citrus
wide mantle
#

Those boxes was me writing my own hacky debug code. It's not public

lavish citrus
#

Thanks so much for the help tho! Glad we'll be able to have it all working in the next update 🙂

lavish citrus
#

lmk what you find, I'm just curious. It's not a huge deal

final shale
#

psst @wide mantle thoughts on patching LLL to be aware of lines/archetypes that are in the multi main paths?

#

it looks like we're having issues with our SpawnSyncedObjects not being registered, and my theory is that it's caused by us not listing all our archetypes in the normal DungeonFlow

#

for now since we don't really have an intention of allowing vanilla generation, we can just work around it by tossing everything in there, but it might be nice to make it work out of the box

wide mantle
#

And if it's not easy then I can bug Batby and I can get an easy start in fixing it

#

It also explains why I haven't noticed this bug yet. I register all my net objects personally

final shale
#

yeah we register some, but we have a lot of freakin doors lmao

#

also just an update on the "theory" part, it is confirmed

#

doors started appearing after I added the archs to the DungeonFlow

wide mantle
#

Gots it

#

I'm on it chief

wide mantle
#

its true

#

i dont think its a black mesa thing, i think its a scale issue. Titan also fails

final shale
#

do you mean with the per-path global props? because I believe @lavish citrus tried with a new build with those set up and had issues again loading into black mesa moon, then again with the old build he sent you too I think

he would have to confirm what all he tried and the results, but I think he won't be up for a good bit

wide mantle
#

nah global props works

#

LC fails to load black mesa on a big moon, with my dev tools. I don't know if it works regularly

#

My current guess is Black Mesa's high retry count

final shale
#

hmm

wide mantle
#

I was getting 31 retries on just experimentation

final shale
#

oh my

#

I haven't had a look at that stuff in a while but they did make some changes that would potentially make things worse

#

idk if it's in the build you have but I think it is

there's a line at the end of the quarantine path (leftmost one off main) that is tricky to spawn so that would be my first thought

#

it might be calling before or at the resonance chamber on that line

#

at seems more likely

wide mantle
#

testing my dungeon, i get 0-5 retries for all moon sizes

final shale
#

*failing at

wide mantle
#

black mesa, i got 2, 51, 29, 55, 8, 0, 33 on just experimentation

final shale
#

weird thing is that the dll has a patch (which I was hoping to remove) which multiplies the retry count for black mesa interior

#

so I would have expected it to be enough but maybe it's actually just that bad

wide mantle
#

rend is hardcore failing right now

final shale
#

sorry fingers having a stroke

wide mantle
#

by chance, is the retry multiplier x5 ?

final shale
#

I believe so yeah

wide mantle
#

cause rend fails at 250 attempts

final shale
#

I might have to have a look at the failure logs to figure out what's causing this

#

unfortunate to have issues with this again, it always takes a while to solve

wide mantle
#

x12 TileIsColliding is what it tells me

#

Probably the main path corning itself

final shale
#

is it saying the tiles is failing to attach to?

#

my guess would be a lot of resonance

wide mantle
#

It seems to failing at just first main path, which my code don't really touch or record data

#

So Lab Path is all problems

final shale
#

oh Lab is first?

#

damn that's annoying

#

any chance of patching some logs in? I have some in editor but the fact that it's seemed to be inconsistent between editor and in game for Zac (supposedly) makes me want to do it in player

wide mantle
#

Btw Embrion took 193 retries but it did generate

final shale
#

oh god

#

how big is that in length multiplier?

wide mantle
#

Exp is 1.5, Embrion is only 1.65

#

That extra 0.15 seems inconsequential but I suppose that's how it be

final shale
#

iceface I see

wide mantle
#

Okay that was just a bad seed, I got some <50 retry seeds

#

But oof 193

final shale
#

yeah that do be kinda rough

final shale
#

I'm at PC now so lemme see what I can glean from async

wide mantle
#

I don't know your dungeon enough but it does fail a lot towards the end on just the first main path

#

From what I seen on async

final shale
#

oh yeah that's resonance

#

the orangey area

wide mantle
#

So what I'm hearing that it's ultimately not my problem

#

hell ya

final shale
#

also, i wonder how hard it would be to hide the moon prefab and allow zooming in and out on the dev menu? 🎣

#

also yeah I kinda figured it might not be lmao

wide mantle
#

I added zooming, but I'm still annoyed at the thought of disabling the ship's renders

final shale
#

Zac seemed to think it might be the props causing issues but then it was more consistent across different run environments than we thought initially

#

oh?

wide mantle
#

So you can't zoom that much out yet. The ship blocks the view

final shale
#

ah I see

#

I suppose deactivating the whole ship might be scary

#

zeekers code asplode

wide mantle
#

I didn't even think of zeekers moment

final shale
#

cache all renderers and disable those?

wide mantle
#

But ya

#

Like that's probably fine, but it's annoying which means not on the top of my list

final shale
#

fair lol

#

it's more useful for overly large interiors like ours

#

iirc SDM generates in a pretty small cluster so I imagine you don't need to zoom very far?

final shale
#

oh wait have you thought about instead screwing around with the near clip plane distance to make the ship not show up?

#

I guess the planet is still a problem but that's much easier to hide

wide mantle
#

but it still means I have to get the ship transform, do some math, which still annoys me

#

But not bad idea

final shale
#

could probably just be at a fixed distance really

wide mantle
#

Well if you start zooming, then I gotta update the clip plane distance

final shale
#

or a fixed y posiiton relative to the camera I should say

#

yeah

wide mantle
#

I'm being inconvenienced, so it stays on my todo list

final shale
#

lmao

#

yeah zeekers shouldn't have put that ship there

wide mantle
#

zeekers shouldn't have even made this game

#

would be a lot less stressed out rn

#

lmao

final shale
#

buh

#

same

#

I do enjoy modding it tho tbh

wide mantle
#

trues

graceful fiber
#

i've been enjoying lockdown protocol recently

wide mantle
#

googling tells me that it's just among us but first person

graceful fiber
#

kind of yeah, it's a deduction style game but people actually do tasks cuz they're fun and dont just afk

graceful fiber
# graceful fiber

plus in the game theres a task that requires fishes, but u can grab fishes, hit a player with them, the fish despawn but do most of a player's health, its amazing

wide mantle
#

the fish despawn but do most of the player's health

#

beautiful sentence

#

im in

final shale
#

lmao I just went looking for the main path extender settings in the dev tools and the amount we have to scroll down in there to get to them with Black Mesa's interior is hilarious

wide mantle
#

i can make that nicer

#

cause holy shit yall have tiles

final shale
#

yeahhh

#

blame @lone plover once again

#

but we don't have enough tiles in Resonance apparently

#

or at least that is my theory

final shale
#

it does seem odd though, when I had async enabled and tried to watch where generation was failing (kinda tricky tbh, smooth auto targeting the camera to the current tile might be epic mode), it looked like it was failing where it perhaps shouldn't have been

#

not sure why

#

it did mostly happen at the end of lab like you mentioned though

#

and I also wasn't able to reproduce the problem in editor for whatever reason (but that is using hte same generation including DunGenPlus I believe, I will have to confirm)

wide mantle
#

can i color the bepinex logs to red even with log debug

#

I can log the first main path failing now

#

But it's a see of gray text with nothing to guide your eyes

final shale
#

I think so, bepinex itself uses color codes for its logs

#

at least from what I've heard

#

I wouldn't know what they are unfortunately

#

BepInEx logs look normal in editor so it doesn't rely on whatever Unity itself does for errors

wide mantle
#

kinda orderly

graceful fiber
#

i've seen its better orders personally

wide mantle
#

tru

#

im during a titan run

final shale
#

that do look very clean though

wide mantle
#

the valid next itles is TileSets

final shale
#

right, but some can't connect due to sockets/rules

#

but I guess you would have to collect from all doorways and that would be a bit annoying

wide mantle
#

True, but I'm just recording on what I send to AddTile

final shale
#

it's fine

wide mantle
#

Let me see

wide mantle
#

he mad

lone plover
#

All I hear is more tiles plz

final shale
#

erm

lone plover
#

I promised to be a good boi and wait for a bit tho

final shale
#

if you're gonna make more tiles, make more resonance tiles so we can stop having generation issues on that line

#

it will be delete

#

say goodbye to your resonance tiles

lone plover
final shale
#

yeah you better put on your artist socks or else we have to make some nodes

wide mantle
#

OR

lone plover
#

My artist socks are not washed in a while

wide mantle
#

1/4 your length guys

final shale
wide mantle
#

The main path on Titan is 40 tiles long

#

For one path

lone plover
#

I told them to behave and not have a archetype for resonance

wide mantle
#

No one is crossing that entire 40 tile'd path, when there's 3 more paths like that

lone plover
#

but they wanted it to look nice smh

#

it is only 14 tiles 😛

final shale
#

yeah I am also skeptical about our size Lady

#

I tried to dial it back and then this GUY here made quarantine longer when we don't even have that many tiles in it

final shale
#

but yeah I think the interior size is a little big @lone plover

#

we quadrupled the size and I only scaled it down by like a factor of 2 maybe iirc

#

and then you made it even bigger

wide mantle
#

my dungeon is only 3-4 tiles long for the main paths

final shale
#

quarantine looks as big as lab rn

wide mantle
#

and it's still big

#

yall like at 15

final shale
#

yeah

#

I forget what changes we've made to the length, lemme check our git history

wide mantle
#

its not always true, bigger isn't always better

final shale
#

yeah I am cutting our path lengths by 2

#

say goodbye @lone plover

lone plover
#

I genuinely never expected 1 player to be able to fully explore the whole dungeon

#

Orginally wanted each path to each be worth it to explore

final shale
#

you should see my screen right now

#

4 players aren't gonna explore all this

lone plover
#

I trust the zaggy

#

do what must be done

wide mantle
#

🫡

final shale
#

also quarantine will be fine stop trying to fit all 200 tiles into one generation

lone plover
#

I will never not think that only 3 tent rooms looks boring 😠

final shale
#

I see 3 of one big quarantine tile in this generation

#

3 more of another

#

3 more of another

#

we will not be short on tents

lone plover
#

we will see how it goes

#

we got more to do for that path later anyways which might help

final shale
#

think about it this way

#

the less of each tile you get in a generation, the more experiences players can have with different seeds

lone plover
#

Plus at this point it is yours and Zac's project too anyways too lol

#

I trust your judgment

final shale
#

also weren't you looking at experimentation still?? lmao

#

I distinctly remember you saying you weren't seeing quarantine and then we looked at it and you were generating experimentation, where the path length got cut off due to the two starting tiles

graceful fiber
graceful fiber
#

oki

final shale
#

that's something Crab has been wanting to do but I am still unsure about my thoughts on it

#

retries after halving the lengths are much better

#

under 50 so far

#

even with the problematic line

wide mantle
#

ya im getting the data now

#

it is a lack of tiles

#

one sec

final shale
#

in the resonance line I assume you mean

wide mantle
#

yuh

final shale
#

that would definitely track

#

maybe we can add some lab tiles into that line to improve things or something

#

I will consult with Zac when he's up

#

I might bring the length up a little if we can make that work

wide mantle
#

[Debug :dev.ladyalice.dungenplus] Main branch gen failed at Branch 1 (Length: 5, Ratio: 1)
Prev tile: SM_Kitchen_V2_FINAL_24x16 Tile
Archetype: NULL
Tilesets: SM_Bedroom_WeightAdjusted_Tileset (DunGen.TileSet), SM_Servants_WeightAdjusted_Tileset (DunGen.TileSet), SM_Kitchen_WeightAdjusted_Tileset (DunGen.TileSet), SM_Library_WeightAdjusted_Tileset (DunGen.TileSet)
Reason: OutOfBounds
Available Doorways: Doorway,Doorway,Doorway,Doorway
Used Doorways: Doorway
Next Possible Tiles: SM_Library_V3_FINAL_16x24 Tile,SM_Library_V1_FINAL_24x16 Tile,SM_ServQuarters_V5_FINAL_16x16 Tile,SM_Library_V5_FINAL_16x16 Tile,SM_ServQuarters_V4_FINAL_24x16 Tile,SM_MasterBedroom_V5_FINAL_8x16 Tile,SM_ServQuarters_V1_FINAL_24x16 Tile,SM_MasterBedroom_V3_FINAL_16x24 Tile,SM_MasterBedroom_V1_FINAL_16x16 Tile,SM_Library_V2_FINAL_24x16 Tile,SM_MasterBedroom_V2_FINAL_24x16 Tile,SM_MasterBedroom_V4_FINAL_16x24 Tile,SM_ServQuarters_V2_FINAL_24x16 Tile,SM_ServQuarters_V3_FINAL_24x16 Tile,SM_Library_V4_FINAL_24x16 Tile

final shale
#

generation times still vary quite drastically with the shorter lengths

wide mantle
#

what mine looks like

#

i crashed lc by accident one sec

final shale
#

oh my

#

infinite loop or somethin?

wide mantle
#

nah me spamming ctrl c on the window console for some reas

final shale
#

also that looks bery nice I like it

final shale
wide mantle
#

yours

#

when resonance main fails, there are no valid tiles (usually)

#

ill push this debugging stuff live

#

For now that's my contribution to your pain

#

Unless there was something else you kinda needed

final shale
#

thank you for your work 🫡

#

wait in this part

[Debug  :dev.ladyalice.dungenplus] Main Room Length Index: 2
[Debug  :dev.ladyalice.dungenplus] Alt. main branch at 0 ended with Military Storage Room 2
[Debug  :dev.ladyalice.dungenplus] Main branch gen failed at Branch 2 (Length: 6, Ratio: 0.4285714)
Prev tile: Lab Alien Autopsy Small
Archetype: Lambda
Tilesets: Lambda Lab (DunGen.TileSet)
Reason: TileIsColliding
Available Doorways: Doorway (1)
Used Doorways: Doorway
Next Possible Tiles:

shouldn't the reason be that there are no valid tiles? why does it think a tile is colliding still?

#

is that the reason including previous AddTile attempts that it doesn't include next possible tiles from?

lavish citrus
#

Whenever I watched it generate asynchronously it would seem to fail in Resonance even though the tile it was trying to place looked fine. I think there's something off with the tile bounds for some of the Resonance tiles

final shale
#

it would make more sense for it to be the fact that it can't connect any tiles

#

the tiles that it's visibly trying to place are the precursors to the ones that are either colliding or can't find any valid tiles

lavish citrus
#

What does it look like when it can't find any tiles?

final shale
#

same thing unfortunately, that's why we have those logs above to differentiate and narrow the issue

lavish citrus
#

Hmmm I'll be on in a little bit, keep me updated if you figure something out. You're fine to make the paths smaller btw 😛

final shale
#

already done

lavish citrus
#

You try out the global props at all?

final shale
#

not yet

#

we shall check it together

graceful fiber
#

what about me

final shale
#

if you really want to...

lone plover
graceful fiber
#

are u bald

graceful fiber
#

😔

#

i gotta stay on the bald team for balancing

lone plover
#

nooooo

final shale
#

we can shave him

wide mantle
#

But if the next possible tiles debug string is empty, then the error is actually noValidTiles

#

no know what

#

this version of DunGen makes no attempt to record noValidTiles

final shale
#

oh wait how do you mean?

wide mantle
#
TilePlacementResult tilePlacementResult = TilePlacementResult.NoValidTile;
TileProxy tileProxy = null;
while (doorwayPairs.Count > 0)
{
    DoorwayPair pair = doorwayPairs.Dequeue();
    tilePlacementResult = this.TryPlaceTile(pair, archetype, out tileProxy);
    if (tilePlacementResult == TilePlacementResult.None)
    {
        break;
    }
    this.AddTilePlacementResult(tilePlacementResult);
}
final shale
#

ohh huh I see

wide mantle
#

if doorwaypairs is empty, it will never call AddTilePlacementResult() for a noValidTile

final shale
#

ohh you were hooking that? gotcha

wide mantle
#

ya behold my hack

#
    public static TilePlacementResult lastTilePlacementResult;
    [HarmonyPrefix]
    [HarmonyPatch(typeof(DungeonGenerator), "AddTilePlacementResult")]
    public static void AddTilePlacementResultPatch(TilePlacementResult result){
      lastTilePlacementResult = result;
    }
final shale
#

that also explains why the DunGen logs only say TileIsColliding x21 and nothing else for 250 attempts

#

makes a lot of sense

#

so we really are just killing our generation with limited connections or something

wide mantle
#

limited something yuh

final shale
#

could patch start of AddTile to set last result to NoValidTile right? just to make your printouts clearer

lavish citrus
#

My poor Resonance archetype 😔

wide mantle
#

transpilier annoying

#

i patch it real quick though, maybe even in the DunGen fix too

final shale
#

oh wait but also why not save the last result from TryPlaceTile postfix?

#

wait

#

that doesn't solve iteither nvm

wide mantle
#

the saddest thing

#

the result paramater isn't even used

final shale
#

wait in what?

#

it's used by AddTilePlacementResult in my decomp

wide mantle
#

no I mean

#

AddTile(..., ..., ..., TilePlacementResult result)

#

that result isn't used anywhere

final shale
#

oh right I was wondering what that was for lmao

#

silly dungen

final shale
#

and then set it again to the actual last result in AddTilePlacementResult

#

sorry for asking again but I may be dum

wide mantle
#

I think you saying to result my lastResult field to NoValidTile with an AddTile prefix patch, then record the real result with AddTilePlacementResult?

#

Well AddTilePlacementResult isn't even called if the validTiles list is 0/empy

final shale
#

right exactly, so if AddTilePlacementResult isn't called you get NoValidTile out of your static field

#

which should match what the variable is I think?

wide mantle
#

I suppose I can setup a PostPatch to do that to catch the function not being called

#

Well I'm already 50% in setting up the transpilier so time to finish it lol

final shale
#

lmao fair enough

lone plover
final shale
#

what....

lone plover
#

the tile rules for those are set to never be allowed to repeat

final shale
wide mantle
#

Plastered

lone plover
#

cause that would be dumb looking if you see the same resonance room

wide mantle
#

Prepare for death

lone plover
#

some tiles that are more generic looking are okay

final shale
#

lady can we go to his house for a nice chat

lone plover
#

but for like the iconic rooms they are set to not repeat

lone plover
#

I swore we went over this before Zaggy lmao

wide mantle
#

3 weeks of debugging due to this

lone plover
#

but to be fair

final shale
#

I don't think you ever mentioned to me that they were set to not repeat

lone plover
#

I cause you hell all the time

#

I did!

graceful fiber
#

you have 4 tiles

#

set to not repeating

#

and expected no issues?

#

🤣

lone plover
#

they are the ones who wanted that archetype to be that theme

#

I brought this up to zac!

#

lmao

graceful fiber
#

pointing fingers

final shale
#

I remember talking about how there were not that many tiles in that archetype but I don't remember you ever mentioning that they were set not to repeat

lone plover
#

I told him I was worried about DunGen being mad about only having so many to choose from since they are not allowed to repeat

final shale
#

whatever you say pal

wide mantle
#

you aren't escaping this one

lone plover
#

They just don't listen to me due to my past shenanigans

wide mantle
#

Respecfully, I think you just gave a decent reason to why

#

Anyway, Ill push this better logging in a bit

final shale
#

DORIME thank you

lone plover
#

I will see you in 100 years when Zaggy releases me from his dungeon

wide mantle
#

he thinks he's getting off easy

lavish citrus
lavish citrus
final shale
#

surely you explained it clearly and concisely

lone plover
#

Always

#

Was a rare instance of me being actually serious for once

#

I explained that DunGen will fail more due to it having fewer tiles to use because they cannot repeat T.T

final shale
#

I remember the fewer tiles part

lone plover
#

I am treated as the old man yelling at clouds

#

don't you finger point_up_2 zachary lmao

final shale
#

actually I'll have to confirm, but maybe the DunGenPlus dev tools are making Black Mesa bigger somehow

#

it looks experimentation-sized to me in Unity Editor, so I'll revert my resize and check how it compares in player between dev tools and normal landing

#

also, the entirety of the Resonance archetype was set not to repeat, so instead I'm trying making 7 nodes to generate each non-repeating tile and then switch back to Lab after, that should work pretty well

wide mantle
#

plz no

final shale
#

it seems like the length it's listing in the dev tool is 150% of the length set in the level from what we can tell

lone plover
final shale
#

but it also seems even bigger than that when we generate maybe?

#

hard to say, I don't have a good reference point for how the sizes may change with nodes involved