#Dungeon Generation Plus

1 messages · Page 3 of 1

final shale
#

this is what our original multiplier and lengths look like when landing

wide mantle
#

1.5 wait

lone plover
#

this red area is the Entrance

#

for context pogsire

#

These are the different paths

wide mantle
#

I use this formula for LevelMultiplier since it's what LC uses

    private float GetLevelMultiplier(ExtendedLevel level){
      var roundManager = RoundManager.Instance;
      if (roundManager == null) {
        Plugin.logger.LogError("RoundManager somehow null. Can't set level length multiplier");
        return 1f;
      }

      return roundManager.mapSizeMultiplier * level.SelectableLevel.factorySizeMultiplier; 
    }
#

you said that your Unity Editor sizes are diff or just regular landing sizes are diff?

final shale
#

should it have some division by tile size in there?

wide mantle
#

uhh

final shale
#

our MapTileSize is 2.5, so if that's not accounted for in the length then that would explain why Black Mesa is yoog

wide mantle
#

question before you yell at me

#

when did MapTileSize get added

final shale
#

uh

#

I forget exactly but it was a while ago

#

but also perhaps after you made the mod

wide mantle
#

ya lets say after ya

final shale
#

I mean I'm not mad lol but ti would explain a lot and I am glad if that's the reason we've been having issues

#

since we have an easy solution then to make the dev tools more useful

#

it also affects mansion size

#

in case you want an easy test case

#

it also rounds the length multiplier to the nearest 100th nerdge

wide mantle
#

ohhhh

#

i think i remember seeing this long ago

#

but i didnt use maptilsesize or whatever nerd shit so i just ignored it

#

why so many variables zeeks

#

wait

final shale
#

tbf it is kinda handy for us

#

we are big boy tiles

wide mantle
#

that could explain why my length is 3-4 then huh

final shale
#

in which? sdm?

wide mantle
#

yuh, i dont think i ever set a maptilesize

#

or even that it existed

final shale
#

I see I see

wide mantle
#

well

#

@lavish citrus was right. my dev tools did cause issues

lavish citrus
#

Glad we found it 😄

lone plover
#

Am I free from the dungeon now?

lavish citrus
wide mantle
#

Honestly

#

You are free yuh

final shale
wide mantle
#

Not free from Zaggy

#

but free from me

final shale
#

yeah never

final shale
#

oh yea Lady just wanted to make sure you're aware, but it is literally just the MapTileSize that's the issue

wide mantle
#

yuh it was just that

#

sads for me, my L for the day

final shale
#

RoundManager.mapSizeMultiplier initialized to 1, but the assets from the game set it to 1.5 so that explains the 150%

#

all goog no worries

#

glad we figured it out

#

btw pls ping whenever I can try out a version that includes MapTileSize, I'd like to get some stats on how many retries we're getting after changing Resonance to nodes

#

no rush as always though, it seems to be working well

wide mantle
#

wait does the base game use map tile size?

final shale
#

yeah

#

mansion

#

it's set to 1.5 iirc

wide mantle
#

is map tile size based on the level, not on the dungeon flow instead?

final shale
#

no it's on the dungeon flow

wide mantle
#

well this is a LLL thing but, the haunted mansion returns 1 for MapTileSize

final shale
#

stored on IndoorMapType

#

RoundManager.dungeonFlowTypes

final shale
#

I'm in-game lemme check

wide mantle
#

well IndoorMapType is

[Serializable]
public class IndoorMapType
{
    // Token: 0x04000B4E RID: 2894
    public DungeonFlow dungeonFlow;

    // Token: 0x04000B4F RID: 2895
    public float MapTileSize;

    // Token: 0x04000B50 RID: 2896
    public AudioClip firstTimeAudio;
}
#

so maptilesize can be different depending on the moon

final shale
#

LLL might be trolling you

final shale
#

this array used to be DungeonFlow[] but became IndoorMapType[] and is used to list all the available flows

wide mantle
#

oh you right my bad

#

i read code wrong

#

which means

#

@wanton bear !

wanton bear
#

why fuck me

wide mantle
#

you don't copy the MapTileSize correctly from vanilla dungeons

#

at least when I do
selectedExtendedDungeonFlow.MapTileSize
on vanilla dungeon flows

wanton bear
#

very possible that your right but that example might be flawed

#

since dungeonflow maptilesize isn't the same field as indoormaptype field. when does vanilla sync that

final shale
#

wait sync it? it's a fixed value

wanton bear
#

naur i mean like

#

when does dungen get told about that indoormaptype value

wanton bear
wide mantle
#

isn't there multiple instances of the same dungeonflow used in dungeonFlowTypes but with different map tile sizes?

#

is that me issue?

final shale
wide mantle
#

just when I thought I was cooking

#

all dungeon flows is different in the dungeonFlowTypes field

wanton bear
#

i trust you two to accurately blame me

is this an asap type thing or can i check it out tonight/tomorrow?

wide mantle
#

there's just an extra MapTileSize field attached

#

not an asap thing you good

#

I did think you were in the right, IF zeekers used dungeonFlowTypes like I thought he would

#

but it's just another container for dungeonFlow,

wanton bear
#

yeah it's really weird half measure shit

#

i really wish he did it proper like selectablelevel for a couple reasons

final shale
#

well what I wonder is, is the field in LLL meant to be accurate or is it meant to be a dial for devs to set the value used by vanilla in the RoundManager array?

wanton bear
#

probably both

#

like routeprice

final shale
#

seems like the final source of truth would be the RoundManager field but idk what your preference is Batby

#

hmm gotcha

wide mantle
#

now i can't be held accountable

#

@final shale pushed btw, the map tile size will be bugged for vanilla dungeons until Batby fixes it

#

but that latter part doesn't matter to ya

final shale
#

nice nice I like

#

🫡

half timber
wide mantle
#

its not that it doesnt work, its probably that Batby didn't notice/realize that someone would actually use extendedDungeon.MapTileSize for vanilla dungeons

half timber
#

I know that's been an issue that has bugged PureFpsZac for quite a long time

#

Ahhh that makes sense

final shale
#

still having issues with local global props :(

#

on 1.3.0 and on the latest from your git

wide mantle
#

oh my git

#

is that trusted

#

well it should be

final shale
#

same thing as before, failing generation or getting stuck on seed with no network spawns

#

I sent a DM

#

I also just tested with 1.3.1 fresh to be sure

wide mantle
#

i try again

#

i wish i remember how I "solved" it last time

final shale
#

sorry for the cryptic message lol I was trying to package it up and upload it

#

oh did you have to change something?

wide mantle
#

I don't remember if I even changed anything

final shale
#

also if you are free to vc we could maybe look together there

wide mantle
#

pull up

final shale
#

sheesh

wide mantle
wide mantle
#

@pine jay We have experienced a fun interaction with our mod and HarmonyXTranspilerFix. We have a transpiler patch for Dungeon.FromProxy. Without your mod, no issues. With your mod, while the function seems to be patched it doesn't seem to call any of the new code instructions provided. As far as I can tell, that transpiler function is the only one not behaving.

#

I have no clue on what is happening. I beg your insight.

pine jay
#

try inserting instructions after finally, where the leave label is pointing to

#

because you're calling the function after endfinally was called, so it jumps out of try/catch block

#

if i understand your wrapper of codematcher

half timber
#

@wide mantle hopefully DiFFoZ's response helps you :3

wide mantle
#

As I test, I tried to insert my instructions right right before the ret instruction, but HarmonyXTranspilerFix still doing something weird and blocking the instructions from being called or something

#

Oh wait did you mean to say to insert the instruction before Endfinally? Cause that seemed to fix it

#

Huh weird

wide mantle
#

@final shale @lone plover btw can you provide some pictures of the generation so I can use them for the mod page

lone plover
#

Zaggy probably can since he is at his PC unlike me haha

lavish citrus
final shale
#

did discord convert those to jpeg or were they already jpeg? the compression kinda did a number on them

lone plover
#

So you can go higher

final shale
#

not in editor eww

lone plover
#

You can get a sick top down that way

#

Fiiiine

lavish citrus
#

I'll do that then

lone plover
#

Lol

#

I think it looks nice

#

At the very least for the sick top down

final shale
#

can just disable the moon and hide the layer that trigger collider under the map is on

lavish citrus
#

I can try that

lone plover
#

Or you can have a massive throbbing brain like zaggy

#

Very wrinkly

lone plover
# lavish citrus

Thing to note @wide mantle the vertical gap you see on some of these is because we separated the office Path with the elevator that sends the generation upwards to continue so it has more room for generation up there

#

Some think it's a glitch when they see the generation pics, but it's just that elevators cross that distance

lavish citrus
lone plover
lavish citrus
#

Bruh

#

You can get the next one 😛

lone plover
#

There

#

Tweaked it from my phone a bit

#

Cool to see the different themed paths

wanton bear
#

Soul (2020)

lone plover
glad widget
plucky wolf
lone plover
# glad widget i feel like you don't need an interior this big

We balance the scrap for each path and the global props each path so every path is worth exploring so it becomes a choose your adventure kind of choice if you are going solo or if you are with a ton of people then you all can split up and explore the entire facility fully

wide mantle
oblique obsidian
#

I'm getting some errors from DunGenPlus on Sanguine after switching from LoadstoneNightly to LoadstoneUnstableBeta. Should I switch back to Nightly?

wide mantle
oblique obsidian
#

There are definitely some other issues, because the skybox is also fucked—so I'm going to try removing ShipWindows to fix a netcode bug and seeing if we still get the other ones. If that doesn't pan out I'll post logs and the modlist.

graceful fiber
half timber
wide mantle
#

The differences between Loadstone normal and beta, in terms of what I touch, should be nearly the same now

#

And I didn't have issues with normal loadstone yet so I don't think it's my mod's fault yet (I did have issues with loadstone in general last week but that was all my bad)

final shale
#

did the mod ID perhaps change again?

wide mantle
#

I would scream if so

oblique obsidian
#

Nightly and unstable beta are separate uploads, so if that'd cause it...

#

That said, I tried switching to nightly and then to stable and still had issues, so it probably isn't DGP at its core. It's either Sanguine or something breaking prior.

half timber
#

Tolian's moons causing problems from time to time are something you have to expect when using his moons, they focus on visuals more then gameplay and stability and always kind of have focused more on it

#

and I'm not saying this in a negative way

#

It's just always been how his moons have been

oblique obsidian
#

It was Shrimp

#

The error was caused by Shrimp :')

wide mantle
final shale
#

getting this on Hadal, wondering if maybe your hook is running before LLL has selected the dungeon flow and the moon doesn't have one assigned by default?

wide mantle
#

Let me stare at this a bit

final shale
#

wait a minute

#

am I trolling hold on

wide mantle
#

i lost

#

FUCIK

wide mantle
#

uhh the dungeon should be selected by then no?

final shale
#

yeah I think maybe my configuration is screwed up? I didn't even know I could get it to break like this lmao

#

idk why LLL isn't erroring before your patch though if that's the case

#

lemme check

wide mantle
#

dungeonFlow is null, strange

final shale
#

yeah okay I had it configured to where there was no dungeon that could be selected

#

what's odd is the LLL logs showed viable ones still

#

I think anyway lol

wide mantle
#

Never assumed that dungeonFlow could be null lol

final shale
#

yeah you shouldn't have to really, LLL gets an error if DunGenPlus doesn't

#

what confused me is that before I was getting an error in LLL related to reverb presets instead so I had no idea this was the issue

#

oopsie

#

oh wait I still get it after making HadalLab spawn on the moon

#

wat

#

huh okay so it appears to be succeeding generation despite that error, and the one in LLL that happens without DunGenPlus

#

very weird

#

anywho

#

not your issue anymore lol

wide mantle
#

:)

wide mantle
#

If I want minimum distance between global props

#

Should it be a globally enforced or locally enforced inside it's main path

#

My gut says globally, much easier, but I'm not sure
@final shale your thoughts

final shale
#

I think globally makes sense

#

I'm not thinking of any reason we would want to limit it per path, and if that makes it easier for you I fully support that

wanton bear
#

It's a different solution to the problem but would some sort of round robin esque system work where instead of requiring a minimum distance you just try and divy them out between areas until its fufilled?

wide mantle
#

Unless I'm dumb, that sounds like a clumping problem

#

Which sounds harder

final shale
#

like enforcing some minimum distribution?

#

yeah sounds very tricky

wide mantle
#

It's not too bad to check the list and remove elements that don't pass the distance vibe check

wanton bear
#

This is in the context of the fire escape stuff right

wide mantle
#

Well that's the main draw, but it can extend to anything global prop related

wanton bear
#

forsure forsure

#

I guess my take is that while minimum distance can totally solve that, the issue of them "being to close together" is kind of identifying the wrong problem in regards to the intent of the fire escapes.

I don't think it's a problem because they are necessarily too close together but more because their thematic and gameplay intent would ideally have them dispersed across the different """parts""" of the map

final shale
#

I'm not sure what the solution to that would be necessarily

#

it still needs some randomness to it I think, otherwise the locations become completely predictable

wanton bear
#

It could totally still be distance checking, But I just wanted to point out that distance checking is a potential solution to solve the problem, and not like the actual problem if that makes any sense

wide mantle
#

I can understand that settlement since I solved my fire exit issue by forcing one fire exit per main path on my interior. But not every dungeon wants multiple main paths and they want the fire exits to be at least someway far away ish.

#

Vanilla dungeons would love to have this

#

Min distance is totally a fine bandage solution without messing with the vanilla dungeons

final shale
#

only other solution I can think of to make distribution more consistent while maintaining randomness would be to

  1. Select a random global prop location for the first global prop
  2. Select a random tile at the farthest location from all previously selected global prop spawn locations
  3. Choose a random location in a certain range of that random tile
  4. Select the closest random global prop location to that random location for another global prop
  5. Go back to step 2 if there are more global props to spawn
    but that probably doesn't really fit into the per-path limits very well, and also has a fairly arbitrary radius value involved
#

and it may not even result in a very good distribution tbh

#

probably is way more complicated to do properly, especially with only a fixed number of positions to work with

#

I would imagine it might need an iterative approach

wide mantle
#

And imo, all that can just solved with min distance checking.

#

The elements grabbed from the global prop table is random, with weight scaling decided by the user, but still random. All we doing is removing items that are just too close.

final shale
wide mantle
wide mantle
#

I can't completely prove that it works, but it seems to work

final shale
#

I hate to say this but I went through trying to implement the Hadal end caps using branch caps and then realized that they won't quite achieve their vision

#

basically, the showstopper issue (from my perspective) is that the connector spawns in the connection to the end cap, which isn't intended

#

I should've grabbed a screenshot as an example while Tolian had the generation up and running here, but basically there is an "end cap" that is a tunnel with a fan in it that then curves to go straight upward, and it has its own "frame" (though the fan is quite exposed), and the doorway connector (which is quite a small doorframe) blocks that almost completely

wide mantle
#

Hate to ask you to run it back but could you get a screenshot so I can visualize

#

Oh wait you in the dev chat

wide mantle
#

My next goal is to add multiple entrances/exits to the Tiles

#

Instead of the single one we are allowed

#

Cause I want it, and I know yall want it too

final shale
#

sheesh

#

das right

wanton bear
#

Yes waiter more backported dungen features please

#

@wide mantle I get that it would already be implied to be included by nature of having it not be in either list but may I suggest also having a list of doorway’s that is exclusively for receiving looped back connections?

#

So those doorways aren’t allowed to be used for the main path they just exist incase they can be connected by nature or the generation

#

I have a tile that has an optional upper balcony area and I don’t want the path to ever involve the balcony because it means without a jetpack/ladder it’s unviable

wanton bear
#

will be curious how you end up doing it

#

i kinda want to inherit from tile and doorway in my thing which might be tricky to combine

#

dunno tho

wide mantle
#

either i inherit from tile/doorway

#

or i add a separate component that gives more information

#

The first option is better but it forces people to use my components forever

#

the second option is still fine and lets itself get removed if needed

wanton bear
#

separate components is probably the best way, little gross to juggle in inspector but

final shale
wanton bear
#

right now that's done as a post-processing step and is not involved in the generation process so no but if i wanted to do that ye

final shale
#

yeah

#

definitely seems easier as post processing, that's for sure

#

should I assume that it'll initially need to be blacklisted for CullFactory or are you gonna fix up the door connections for first release?

wanton bear
#

There's a lot of design benefits to it aswell tbh, But just depends on how you wanna use them

final shale
#

yee I bet

wanton bear
#

eg. it's nice knowing pits will always lead into a tile that can path back to where you fell from by nature of the generation

final shale
#

right yeah, that's definitely important for those

#

hadn't even considered doing things like that as a post processing step

#

gives me ideas...

wanton bear
#

right 😄

#

but also keep in mind all my tiles have proper consistent thickness and allignment

#

so i can have behaviours on them and do stuff like overlap boxcasting and other fun stuff

#

the consistency gives me a tonnn of power that most interiors dont have

final shale
#

oh yea for sure

#

definitely can think of something involving post processing for Black Mesa though

#

there are a few things I would like to do with the Resonance Chamber, although I may try to make that work with DunGenPlus before I try post processing for it

lone plover
wide mantle
#

Forget to say but the new feature to force GlobalProp spawns to be a certain distance from each other has been added.

wide mantle
#

yall think its pyscho energy to add a small bit of scripting into DunGenPlus

half timber
final shale
#

what dat mean

half timber
# final shale what dat mean

Meaning scripting that allows some cool unique features that weren't possible before, which I imagine is the case since it's to expand Dungen related stuff

wide mantle
#

nah i mean scripting as a simple expression evaluation leading to list of pre-defined function calls

final shale
#

I meant what Raphtalia meant

wide mantle
#

convience more than anything, I can't be bothered to write scripts for every small interaction

final shale
#

huh I'm a bit confused what I'm lookin at there

wide mantle
#

i'm still in the debug stage in getting this to work (so it's ugly and unclear as hell)

final shale
#

is it supposed to set something on the Doorway instance via reflection or somethign?

#

(hopefully the reflected fields can be cached if so)

wide mantle
#

let me setup a proper script so it's purpose makes sense

#

lmao in the purpose of redoing my script I realized that I over-engineered this a bit

#

well it's still useful to me, one sec

graceful fiber
#

How many sec's can we give before we've given you our lifetimes 😔

simple sluice
#

A couple.

graceful fiber
#

Damn I got a short life

simple sluice
#

Indeed.

wide mantle
#

This is an extreme example only cause of how detailed I wanted my doorways to look.
The top Doorway script stores some references and values to be used by the scripts below. The scripts are called on onMainEntranceTeleportSpawned so I can modify my doorways after many mods mess with the dungeon (like Mimics wink wink).

How DunGen handles Connectors and Blockers is completely disabled by the Doorway script. The script will still handle the gameobjects like DunGen but with extra scripts called after.

The first script checks to see if the connecting doorway has a priority of 11+. This is my dungeon's way of knowing that the connecting doorway has a shaped 口 hole instead of a 凹 shaped doorway. As such, I disable the "doorway" gameobjects which is colored red here. Now both doorways have shaped 口 holes.

The next script checks to see if the the current doorway spawned any active connector or blocker with "FireExit" in it's name. If so, I forcefully set the connector prefab to be on (since fire exits spawn on blocked doorways) and disable the "doorway" gameobjects since the FireExit has it's own custom model doorway. Now the fire exits look integrated into the wall geometry.

But ALSO that last script works in conjuction with Mimics. The mod selects inactive fire exits to spawn its little dudes, specifically before onMainEntranceTeleportSpawned. I've set it so the mimic will re-activate the fire exit gameobject that it spawned on top of. So if we return back to the previous script, it will detect that the current doorway spawned the re-activated blocker with "FireExit" in it's name. And as such, the correct renders are setup and Mimics look legit.

#

One small issue. All this worked before no issue it's just that the scripts were schizo as hell. I re-did the scripts to be more proper since I thought I was gonna need it. It turns that there was a simplier solution so really all I did was re-factor to something more generic.

final shale
#

ohh ok, that's interesting

#

definitely sounds like something we could potentially find useful in Black Mesa

wide mantle
#

if you actually do find it useful please tell me so I feel like my time wasn't gone to waste with this nonsense. I had to pull someone's expression solver on the internet and fix it

final shale
#

we have some issues with out door connectors as well

#

basically, we have some red doorways that have glass around the outside, and some that have solid walls

#

if we could select connectors based on some priority between the two with this system, that might be nice

#

although ideally we could also encode the differing socket size, that's definitely out of scope for your stuff

wide mantle
#

How would it be out of scope?

final shale
#

well, idk, is it reasonable to change the socket after generation?

#

if so, that would be cool too :^)

#

as long as this runs before CullFactory bakes everything, anyway

wide mantle
#

well it's called on onMainEntranceTeleportSpawned. Don't know if that's before CullFactory

#

I could 100% change socketsize, I don't see why not

final shale
#

well, not socket size, since sockets are reference types and that would affect all spawned doors with the same socket

#

we would have to swap out the socket itself

final shale
wide mantle
#

No that's what I meant, I could change the reference

final shale
#

ah yea

wide mantle
final shale
#

oh so it's the wait enumerator?

#

I had trouble with that one previously, might want to use SetLevelObjectVariables instead

#

that's what CullFactory uses since a long while ago

#

I could probably give that hook the lowest priority so if you use Harmony I end up running after you

wide mantle
#

Never had an issue personally. I'll have to see when SetLevel is called

final shale
#

or do you need the main entrance to be spawned?

#

SetLevelObjectVariables calls the enumerator

wide mantle
#

Ahh makes sense. I'll have to see why i picked MainEntrance but I honestly just picked it due to its good vibes

#

And maybe because I needed to be after Mimics

final shale
#

uh oh, I see

#

maybe I'll have to move my hook too then lol

#

lemme know what you find

wide mantle
#

Well it's not like I can't add different callback times

#

The scripts can be called whenever. Is no issue

final shale
#

oh you mean you have control over the mimic hook as well?

#

I thought that was managed by their api

wide mantle
#

no i mean, when i call these dungen scripts

#

its literally just an Awake() that adds the script to a list. i can add more lists for different hooks

final shale
#

hmm, I see, but then if you use a hook after CullFactory has baked the culling data to make changes to the dungeon, it kinda invalidates that

wide mantle
final shale
#

until it becomes my problem when they don't 😅

wide mantle
#

its my code so they can yell at me

final shale
#

hmm not sure how it would be your fault if they misuse API

#

not sure if it would cause visual issues though in practice, hard to say

#

other than a log saying that someone destroyed something if they do something dumb

wide mantle
#

I'll be stating anyway which hooks to use when anyhow

final shale
#

yeahh

#

I guess we'll see how it goes

#

but it kinda concerns me that things could slip through the cracks and result in worse performance with no good reason

#

generally it would probably be about the same impact as we already have with SpawnSyncedObject being ignored but I really would like to cull those as well

wide mantle
#

I don't think we have to worry

#

Just like right now I finally transferred my dungeon to this new scripting system

#

A couple of tiny dumb bugs that made it hard to solve

#

but finally, it's all good

#

closing all these windows never gets old

wide mantle
#

still testing but

#

extended features seem to be working

#

shit i can't spell

#

i have a doorway here that only appear if an overlapping doorway is next to it. it will never act as an entrance/exit

wide mantle
#

it wasnt working but now it does

wide mantle
#

aka entrances/exits are lists now

stuck elm
pearl leaf
#

Hello I encountered an issue twice while using Solarius but i'm not sure from which mod it's really coming from
We could not enter the interior cause it said the doors were block by something, all doors said that, but one friend could enter without problems
The scan command on terminal noted that there were 0 scrap 0 credit inside, and the performance report also displayed 0/0
The interior was StarlancerWarehouse, the log had a lot of debug messages from DunGenPlus which mostly said:

[Debug  :dev.ladyalice.dungenplus] Main branch gen failed at Branch 0 (Length: 3, Ratio: 0,6)
Prev tile: Maze4WayStandardConnector
Archetype: SciFiArchetypeMain
Tilesets: SciFiTileSetMain (DunGen.TileSet), SciFiTileSetHallways (DunGen.TileSet)
Reason: NoValidTile
Available Doorways: DoorwayNorth, DoorwayEast, DoorwayWest
Used Doorways: DoorwaySouth

With variating tiles (all said ScifiTile... etc) and all saying Reason: NoValidTile
Next in the logs, there's two error messages coming from LLL one saying:

[Error  :LethalLevelLoader] Removed: 38 SpawnableItemWithRarities From CurrentLevel: Solarius Due To Invalid Properties To Prevent Errors.

And just further down another saying

[Error  :LethalLevelLoader] ExtendedDungeonFlow: Warehouse Spawned 0 RandomMapObjects. 
Preventing Spawning Of Interior RandomMapObjects To Prevent Gamebreaking Error!

This error does not happen all the time on Solarius, but it when it happened it was both on Solarius and I only use StarlancerWarehouse interior on Solarius
I'm really not sure where I should report that problem so I reported it both on Solarius thread and in here

wanton bear
#

your using older LLL?

pearl leaf
#

Yes, I believe it is 1.4.5 ? or 1.4.6 one of the two, updating to the latest version broke like 3 mods

#

Is that the reason?

#

Wait my LLL might be way more older than that actually I feel so dumb

#

Omg i'm so dumb, when I rolled back version when it was breaking I got back to 1.3.12.0 💀 i swore it was one version back i'm sorry

pearl leaf
# wanton bear your using older LLL?

I updated to LLL 1.4.8 and the issue is still happening, instad of saying removed 38 SpawnableItemWithRarities the Error, it's saying
[Info :LethalLevelLoader] Removed: 38 SpawnableItemWithRarities From CurrentLevel: Solarius Due To Having 0 Rarity.
But it also still says after that

Preventing Spawning Of Interior RandomMapObjects To Prevent Gamebreaking Error!```
#

I can replicate it rather quickly, it seems to happen like 4 times out of 5, I'll try to set StarlancerWarehouse on another moon to see if it's related to Solarius or not
Yeah I can confirm this only happens on Solarius

wide mantle
pearl leaf
final shale
#

I don't think that warehouse uses DunGenPlus, you should be able to just disable it and see if the problem goes away

#

the messages about generation are purely for debugging and the situation in which they print can occur without DunGenPlus

#

NoValidTile is a very suspicious thing for it to print though, you probably should report that to Starlancer

#

it may indicate that some tileset/archetype is set up in a way that means it has nothing to generate

#

if Solarus is really big, that could explain why it seems to happen only there, make sure whatever other moon you are testing on is similarly big

pearl leaf
#

StarlancerWarehouse isn't using DunGenPlus but I got some other interiors that do use it though

final shale
#

disabling the mod

#

and any that depend on it

#

reason I suggest this is that if you suspect it is the issue, that's the way to confirm it so that you don't report the issue to a mod author that has nothing to do with the bug

pearl leaf
#

Sure, I will do, thank you

final shale
#

also not sure it was clear, but the size I'm referring to is the interior size multiplier

pearl leaf
#

Oh right

pearl leaf
#

Well, removing DunGenPlus is making the game close itself on landing when StarlancerWarehouse is the selected interior on Solarius.. it's actually making it worse without DunGenPlus lol. Anyway it's deffo coming from somewhere else in my pack, sorry for the reports here and thanks again for the help

wide mantle
#

spooky error. just my thought but maybe the game crashed because the dungeon generation entered an infinite cycle of failure, eventually causing a crash due to memory overflow

wide mantle
final shale
#

oh yeah, it could be that it triggered a stack overflow, I think that DunGen increases the stack for each retry instead of using a loop

#

I've seen stack overflows crash the runtime instead of throwing exceptions before

pearl leaf
wide mantle
#

DunGen so funny, literally crashing the game cause you setup the DungeonFlow wrong

#

Brillant design

pearl leaf
#

how I see DunGenPlus now that I encountered this issue with dungeon generation

#

lol

#

thanks a lot for the help and the directives very appreciated, and sorry to have cluttered this thread 🙏 thanks for your work on DunGenPlus

wide mantle
graceful fiber
#

Too lazy to read convo, from what I can see raph did bad, expected

wide mantle
#

I'll forgive your needless aggression and not feed you to the dogs if you listen to this
https://www.youtube.com/watch?v=BbJMRhDJ0x4

○o。..:・───────────
 理解は要らぬ 幸せな悲劇の中
────────────・
:..。o○

2022年12月31日(土曜日)コミックマーケット101
東方永夜抄より、
「竹取飛翔 ~ Lunatic Princess / ヴォヤージュ1969」の東方アレンジ
『#永遠の都で』を頒布します!
Iceon×Marciaでお届けする、輝夜と永琳の切ない二人の物語。
この冬は幽閉サテライトが送る「えーてる」をお楽しみください🎋🌙

もし楽曲を気に入っていただけたら評価ボタン、チャンネル登録していただけると励みになります!

◎12月31日「コミックマーケット101」に参加します!
配置:土曜日「西“あ”63ab 」

:;;;;;::;;;;;:☆*:;;;...

▶ Play video
graceful fiber
#

Better not be as bad as the last one

wide mantle
#

that's it

#

mailing a missile your way

graceful fiber
#

You probably don't even know how to get my vector3 coordinates

wide mantle
#

(52.84494 -0.53301)

#

you done kid

#

i only needed vector2

graceful fiber
#

Why am I near the origin

wide mantle
#

better question why is the UK near the origin

graceful fiber
graceful fiber
wide mantle
#

i don't watch anime so i wouldn't understand

#

but ty for listening to good music

graceful fiber
#

Shoulda known you don't watch anything good

#

It was definitely better than the first video

#

Didn't even finish the first video u sent

wide mantle
#

ima pretend i didn't hear that

graceful fiber
#

📣 the first song you sent was ass

limber delta
#

would interior devs have to make their interior with the mod for it to work or can i just install the mod and get better interiors?

plucky wolf
#

I think the interior devs need to do stuff on their side.

limber delta
#

damn

limber delta
#

not even vanilla ones?

plucky wolf
#

I don’t believe but I could be wrong

wide mantle
#

it's possible to create a mod that messes with vanilla dungeons

#

I did it for the preview pictures, I can do it in game live with the dev tools

#

But I haven't created the actual mod since I don't want to be responsible for such a mod

#

But yes, it's the interior devs' job to implement

limber delta
#

what's wrong with making it compatible with the vanilla interiors?

wide mantle
#

Not something I want to do or be responsible about. Someone else can do it

weak steeple
#

https://github.com/JacobG55/JLL/issues/3

I’ve been experiencing an issue when using Wesley’s Interiors mod, and it looks like it’s caused by the mod running both DungeonGenerationPlus (1.4.1) and LethalLevelLoader (1.4.11 + JLL 1.9.2) at the same time.

The game console repeatedly throws this warning:

[Warning: dev.ladyalice.dungenplus] Already contains DunGenExtender asset for AquaticDungeonFlow

This happens multiple times per second and seems to indicate that both dungeon generation systems are trying to modify the same dungeon flow, leading to duplicate DunGenExtender assets.

Possible Cause
Wesley’s Interiors mod is using both DungeonGenerationPlus and LethalLevelLoader/JLL at the same time, leading to conflicts in dungeon generation.
Both mods try to extend AquaticDungeonFlow, which results in duplicate assets and potential instability.
This may be causing performance issues when launching the game

GitHub

I’ve been experiencing an issue when using Wesley’s Interiors mod, and it looks like it’s caused by the mod running both DungeonGenerationPlus (1.4.1) and LethalLevelLoader (1.4.11 + JLL 1.9.2) at ...

wide mantle
#

I have to fix it but I haven't gotten around it tbh.

weak steeple
#

it sometimes causes my pc to slow down and prompts me to close program or wait for program. Just a quality of life issue really.

half timber
#

@wide mantle any eta on the fix? 🥺

wide mantle
half timber
#

Pacoito has been working on a pr that will fix it with Batby

wide mantle
#

Pog I don't have to fix shit

#

lets GO

#

if not keep bugging me until my ass moves

half timber
#

Lmao just glad to see you active again, I know you've been quite busy

wide mantle
#

active enough to just fix my mod cause zeekers forced my hand

half timber
#

Fair lol

graceful fiber
#

@wide mantle bug

wide mantle
#

no

graceful fiber
#

"day 1 of saying bug"

mossy frost
graceful fiber
#

paco fix CodeRebirth for me

#

and the new unreleased pathfindinglib

#

its crashing

mossy frost
#

I do be dealing with stuff to fix myself greed

true forge
#

This mod seems to struggle when generating large (multiplier 3.0+) dungeons with Castellum Carnis (aka Flesh Dungeon). It does not error, but has so many failed attempts at generating a dungeon that the game might crash before it is successful. This does not happen with the vanilla interiors, a 6.0 size Factory takes maybe a few seconds longer than a 1.0 size, meanwhile Castellum Carnis is effectively a softlock

#

The logs indicate the mod repeatedly runs into colliding tiles and no valid tile issues

#

With sizes smaller than 3.0 it does fine

plucky wolf
#

It might be an issue with the tiles tbh.

true forge
#

Ye, I’ll post this over there too

wide mantle
true forge
#

Bummer, I had some ideas for it

wide mantle
#

Though my response is about the same. Making the dungeon bigger is asking for a higher chance for failure. This is an unavoidable part of DunGen.

#

I assume you are using additional/alternate main paths and making it generate at 3.0 size multiplier?

true forge
#

My modpack has Carnis and LC Office as its two modded interiors, and the latter has DunGen as a dependency

#

This mod does not have many configs so I can only assume it is trying to work its magic with the Carnis dungeon too

true forge
#

The dungeon has trouble generating even when DunGen is turned off, so this mod is likely not at fault

wide mantle
#

I think LCOffice uses my mod for other features, not for dungeon generation

#

@true forge so my mod shouldn't be at fault in particular

true forge
#

Ye

#

LC Office has no problem generating insanely huge btw, it is just Carnis

wide mantle
#

Oh you saying the LCOffice asks for DunGenPlus, so you think my mod affects Carnis

#

My mod only touches dungeons if it has a dungeon extender loaded (modder's side only)

#

Carnis certainly doesn't have one, so my mod shouldn't be doing anything

true forge
#

I see

#

Your mod was the one throwing a ton of messages so that was initially finding

#

Thanks for the clarification

final shale
#

that's probably the debug messages to make it clearer why generation is failing, since DunGen is pretty terrible about that

hard finch
#

hello hello! TS_taishinWave im unsure if this error is directly related but whne trying to update my project for the new lethal version i cant seem to use plugins to recover the scripts and receive this error

snow rune
hard finch
#

yeye i just figured sharing since i havent seen anything on it in the thread yet

stuck elm
#

@wide mantle do you plan to update to v81? nyctodFluster It likely just needs to be rebuilt and its references changed from DunGen in Assembly-CSharp to the separate dll Zeekerss now has

wide mantle
#

That's my goal tonight, and to see if I need to update anything else

#

Cause like, I heard that Zeekers upgraded to a new version of DunGen

#

which terrifies my code

stuck elm
#

Awesome <3 just working on updating Slaughterhouse and ik I was using DunGenPlus

#

hopefully it is just that simple, I wish you luck

wide mantle
#

I think you used it for some lights stuff, which isn't that big of deal for the time being

stuck elm
#

Mhm, and I do plan to do some custom code to optimize my lights myself at this point

wide mantle
#

Ya it is exactly what I expected

half timber
#

Welcome back Raph, I look forward to seeing SDM updated as well ^^

wide mantle
#

If I can even fix dun gen plus

half timber
#

I think paco said a few methods got made obsolete but it will still be needed

#

Hopefully it can be fixed

wanton bear
#

I suggested it cuz it had some nice built in culling he could enable + like almost 4 years of additions and performance improvements

#

I don’t think he’ll have reason to update again for the foreseeable future

wide mantle
#

transpilers gonna kick my ass

#

it's been a whole year since I touched them, my Gods

#

On bright side, not the worst code to fix

chrome mural
#

🫡

stuck elm
#

I feel ya

#

even if it's on a much less extreme level I can no longer get Slaughterhouse's DunGen tag script to work at all

wide mantle
#

This should be good news. At the very least, I restored the main paths code

wide mantle
#

The rest, who knows

#

That's gotta take some take

wanton bear
#

i think for example list based entrance and exit doorways are built in now?

wide mantle
#

I've seen the recent dungeon features. What's slowing me down is all the small refactorings

#

And remembering what I was smoking 2 years ago when I created this

#

I'm happy that my main path trickery still works

wide mantle
#

Step one is complete. Get main path count working again

#

Actual cb toture, but it's doable

#

I give it a week until I finish

stuck elm
#

@wide mantle Question, DunGenPlus had a thing that overrode the max number of attempts, right?

#

iirc

wide mantle
#

It has max attempts in the debug window above, but it doesn't matter in normal gameplay

#

In game, it keeps doing it forever

stuck elm
#

gotcha

wide mantle
#

More progress done. Only thing left I believe is the branch path simulation and additional tiles

#

And it'll be good for testing

#

By chance, does anyone have a simple interior to test with? I didn't change any properties, just fixed the references

half timber
hard finch
hard finch
#

messing around rn

hard finch
#

so far so good! im seeing the assets in the editor

#

although as for testing the interior with it ingame uh... well i might need a minute lol

#

with my 140 missing scripts and all

graceful fiber
#

well, DunGenPlus doesn't work with DawnLib since i haven't done the soft compat stuff :3 (it's written, it's just not pushed since there was no version of DunGenPlus out that worked with it)

#

if you want, send me DunGenGenerationPlus dll if you have one that's working and i'll send you a dawnlib zip of the soft compat code workin

hard finch
#

o

graceful fiber
#

i totally thought this was your thread not dungengenerationplus btw

hard finch
hard finch
graceful fiber
wide mantle
#

@graceful fiber remind me the shit I needed to add. Was it just removing stuff from the dictionary?

#

@hard finch additional tile sets may or may not work. Haven't tested yet

graceful fiber
#

it was a function remove the stuff yeah

hard finch
#

im ngl currently im just trying to get the project to even work at all

#

it seems alot of the scriptableobjects under game are just dead and ng script recovery has no idea what to do

graceful fiber
#

check your console for errors

wide mantle
wide mantle
#

Until Zeekers forced my hand

hard finch
graceful fiber
#

i was gonna force your hand eventually

graceful fiber
hard finch
#

o

wide mantle
#

Ngl, I'm surprised you forced my hand. I nagged Batby for months about similar code that he never did

#

Had to prefix his own code

stuck elm
#

but if you want me to

hard finch
#

OKAY big news

#

i managed to get far enough in my v81 project that i have begun testing

#

however i seem to be getting stuck at the startroomteleporter rn

#

aka this

wide mantle
#

Be sure to disable AdditionalTiles and Branch Tile Simulation

hard finch
#

oh kk

wide mantle
#

Those are not fixed yet

hard finch
#

its also very possible this is still my end, as im still basically a toddler bumbling around with this new project + also trying dawnlib

#

had both of those enabled, trying disabled

wide mantle
#

I'll return to my nap and respond in a in hour

hard finch
#

have a nice nap!

#

i should do the same but im stubborn

#

hmm okay still seems to be a no

#

im gonna try disabling dungenplus to see if my interior itself is messed up

#

okay interesting it still doesnt generate

hard finch
#

LOL WAIT A MINUTE

#

HMMMMMMM

#

okay surprisingly fixing that didnt change anything

#

idk how it even was able to attempt generating without those scripts at first

#

lol

hard finch
#

hm okay yeah still no idea so gonna take a break for now

hard finch
#

So I gotta uh... Well honestly I'm not sure how that's possible but I'll needa mess around

#

I could be wrong but I think for now my issue lies with my interior itself rather than this mod

hard finch
#

my bad yall i was supposed to make progress but kamiina botan ep 2 aired and i got distracted by making a cocktail and gushing about the episode for like 2 hours

#

wait why am i apologizing in this thread that doesnt really make sense

wide mantle
cerulean cove
#

Sylv_Happy Me, the humble outsider viewing into this explosion of red errors

boreal current
#

@wide mantle is there a ETA for v81 support?

wide mantle
#

I'm waiting on someone to confirm that it's good

#

And only then, will I attempt my own dungeon

boreal current
wide mantle
#

He probably didn't see the message, dont blame him

#

@quaint cave i know he was testing it, but he ran into issues and I don't know if it was dungen or dungenplus related

quaint cave
#

i'm gonna try to give as much insight to it as i can

#

but i basically think i just couldn't solve anything because dungenplus was telling me
reason :

#

like straight up no idea

#

changing any sort of dungeon generation related stuff changed nothing so it's probably tile related

wide mantle
#

I have some work to do, but I'll update the code to fix that issue

radiant canyon
wide mantle
#

Otherwise, everything else should work

quaint cave
#

but i have what's called : procrastinus maximus and can't focus on work more than 25 seconds without it doing anything, so i generally end up checking 2 rooms and moving on to youtube watching whatever, so i have to rely on dungenplus to tell me what exactly is wrong

#

otherwise my stuff is never coming out lmao

wide mantle
#

Sounds like something my mod can't solve, good luck to you

#

Eitherway, you pointed out a missing feature. That's good for me

quaint cave
quaint cave
#

i found out why it wasn't working, missing reference on a doorway

#

i swear this is the most frustrating thing to happen

quaint cave
#

that wasn't all actually

wide mantle
#

Let me see if I can fix the missing text that describes the failure

wide mantle
#

@quaint cave A missing reason means "NoMatchingDoorwayPlacementResult"

#

Fixed it, but that's the reason

quaint cave
#

what does that mean?

wide mantle
#

It means that when trying to find a valid doorway pair with each available doorway from the previous tile, and every doorway from every tile, it couldn't find any valid pairs

#

You said that your dungeon didn't work with dungenplus yes?

#

But it worked by itself?

wide mantle
#

Typical Rend (126 tiles)

#

Rend with two main paths (200 tiles)

#

Rend with two main paths and branch path muli simulation (246 tiles)

#

It looks to be be working completely now?

#

Should be the latest and greatest for testing purposes @stuck elm @hard finch @radiant canyon @final shale

#

Testing on factory seemed to work, but I can't test on y'alls dungeons since I assume they need fixing too

#

Well it looks like you removed my dependency Nikki, so you safe

final shale
#

yeah I have been distracted this weekend so I didn't get to Black Mesa yet sad

#

hopefully soon

radiant canyon
#

I've yet to port the interior which uses it but I'll let you know if anything implodes

final shale
#

I should take a day off lol

wide mantle
#

What it sounds like is importing our interior is going to be c&b torture

#

So I'll also see if my dungeon implodes too

hard finch
#

Though I think my problems still lie with my interior itself for why it isn't working

#

Haven't figured it out quite yet

wide mantle
#

I fixed the logging so it should better tell you what's wrong

#

Before there was an empty reason, which was code for no valid doorway pairs

stuck elm
#

I uh

#

no longer need it for Slaughterhouse cryingcowboy

#

but I am glad to see progress happening <3 cuz I may want it for future interiors

wide mantle
#

Ya I saw

quaint cave
quaint cave
#

i made sure every single doorways make sense, can be connected

#

and i added 1 tile connection rule

#

so that certain tiles wouldn't connect a certain way

quaint cave
#

then again, it was working at some point, i just don't know what went wrong

hard finch
#

hmm my doors seem to be fine but i noticed my spawn synced objects are totally fucked

#

this might be whats breaking it

#

i was confused about it saying bepinex so i tried readding the project patcher thing and disabling then readding bepinex but didnt seem to do anything

#

oh wtf

#

okay so out of curiosity to see if i was missing a dependency i enabled validate references on the mentioned dll (dusk) and suddenly its working

#

i didnt add a dll it said was missing, just enable that setting

#

will build and test rn

plucky wolf
hard finch
#

hmm still same issue

#

quadruple checked all the doors on the start teleporter and the entrance tile and they all look perfect

hard finch
#

idk if itll help but this is what my StartRoomTeleporter looks like

#

oh wait now that i look at it

#

i dont recognize these lists for entrances and exits

#

omfg that was the problem

#

i moved the doors from the lists to the direct assign at the top

#

and it fixed it

#

though it seems i have atleast 20 other issues with my mod still

#

💀

wide mantle
#

@hard finch are you saying that dungen by itself recognizes the entrance/exit lists, and my dungenplus mod doesnt?

#

Cause that may be the issue

hard finch
#

I can mess around sometime tomorrow

wide mantle
#

Sure

final shale
#

does that also fix DunGen's buckets for that? I think it doesn't print a counter for that most of the time from what I could tell

cobalt hamlet
wide mantle
#

I wouldn't know. Maybe, maybe not

#

Most likely not though

#

The fix is for interior devs to use my mod again, but they still need to fix their interior mods in general

cobalt hamlet
#

I will try to repace this dll and UAT in-game. Thanks for replying me

hard finch
#

this will be what im testing with for reference

#

i confirmed it works with dungenplus if the doorway is set at entrance at the top rather than list

#

wait wtf it also works if i do that..?

wide mantle
#

And with dungenplus, only single works?

hard finch
#

maybe it was because i had it set in both? ill try that

hard finch
#

so im confused

wanton bear
#

(the new dungen added the lists for context)

wide mantle
#

I'm aware of that

#

I'm just confused to what Teasint is getting ganked by

hard finch
#

maybe i changed something somewhere that was breaking everything without even realizing i did it

wide mantle
#

My code adds both the single and list to the possible options to pick from

#

That may be wrong. It's possible dungen filters both values so any possible overlapping doesn't break shit

hard finch
#

yup just tested with the door set in both and it worked fine

#

so most likely something else in that tile was broken and i fixed it unconsciously

wide mantle
#

Also, a null entrance may be adding null to the options to pick from

#

Which is equally bad

#

I'm sure future testing will reveal the bug again if it happens

#

So let me know. It does seem to be working now

hard finch
#

TS_taishinApproved will do

#

also quick question, i assume this is something new in vanilla v81? built in culling or smth?

wide mantle
#

Idk maybe

plucky wolf
#

It is

#

I think Paco found you can tag a tile with 9 and it won’t cull

hard finch
#

gotcha okay cool

plucky wolf
#

Also I want to say Imperium lets you toggle the culling

hard finch
#

oh yeah youre right just found it

#

thanks!

quaint cave
#

@wide mantle i forgor what dat mean
DunGen.NoMatchingDoorwayPlacementResult
what exactly could cause this if there aren't too many ways this could be triggered

wide mantle
#

It means exactly what it means

#

When trying to find any possible doorway pairs, any possible doorway links from every possible tile, it found none

#

If this happens, you have major dungeon issues. Either my mod or your dungeon is the cause

wanton bear
#

i wonder if their issue is related to the doorway references mentioned abit above?

wide mantle
#

It may be, but I can only go off by what they tell me

hard finch
#

as far as i could tell in my case the doors themselves were fine but likely a separate problem with the tile was causing it to mess up, leading no possible tiles to match

quaint cave
#

but there's a lot of doorways

#

like the fact i use tags on doorways

wide mantle
#

you just have to tell me if your dungeon works without dungenplus

#

cause that heavily clues into the underlying issue

wide mantle
#

your dungeon generation not working

quaint cave
#

but i doubt it's working without lol

wide mantle
#

then it's most likely your doorways not being setup correctly

quaint cave
#

well lets be sure

wide mantle
#

which sadly can mean a lot of different things

quaint cave
#

trying rn for the whole "without dungenplus"

#

doesn't work still

#

well

#

no luck, gotta show you some doorways setup ig

#

but just because, i think you could also tell me more about if dungeonflow could act in it since i'm using the tag system

#

like this

#

here's a doorway from a dead end room

#

@wide mantle (pingingincaseyadidn'tsee)

wide mantle
#

It sounds like you rejecting any 1-1 and 2-2 connections

#

Also, doorways may be unaffected by the tag system but someone is allowed to correct me if I'm wrong

#

I only ever used tags for tiles

#

But in that case, it's most likely not a dungenplus issue

#

Which means the folks at #dev-interiors can help ya out too

#

Did your dungeon work without tags?

quaint cave
#

i'm genuinely removing the whole fucking interior at this point man 🥀

#

it's been like 4 times i've been remaking it entirely i'm not doing this shit no more bruh

wide mantle
#

Then it's probably the tags ruining the generation

quaint cave
#

If it is, then how am i gonna make my doorway system work

#

Like, tags genuinely sure would be great if it it's not the thing that breaks the interior

quaint cave
#

i have no missing references

#

only 1 "No doorway pair"

#

instead of the usual large number though, so something has changed, but no idea what

wide mantle
quaint cave
#

removed it and it changed nothing

#

still didn't generate

wide mantle
#

Yes but you said it's a smaller number

#

Which means it's getting better

#

Why is the main path length 57?

#

That's incredibly big, way too big

quaint cave
#

because i want the interior to generate like a bunch of stretched spaghettis with meatballs on the side

#

(meatballs being the loot rooms)

wide mantle
#

If you going to do that, then you need much looser tiles

#

Cause the longer the path, the much likely it will fail

quaint cave
wide mantle
#

It's very vague cause there's many ways to make "loose" tiles

quaint cave
#

well the thing is, i wanted to have a lot of branches, but not much length on them, like just one room connecting to each possible doorway for the thing

wide mantle
#

Essentially, the main path tiles must have doorways on all sides

#

This is non negotiable, you cannot have random tiles ruin your main path generation

#

If one tile fails during generation, the entire path is regenerated from scratch

quaint cave
#

this kind of gen

wide mantle
#

Debug :dev.ladyalice.dungenplus] Main branch gen failed at Branch 0 (Length: 55, Ratio: 1)
Prev tile: NewSaunaRoom
Archetype: NULL
Tilesets: GHNewSet (DunGen.TileSet)
Reason: DunGen.NoMatchingDoorwayPlacementResult
Available Doorways:
Used Doorways: North
Next Possible Tiles:

#

It's also always failing at the final tile

#

This is your main reason why it's not working

quaint cave
#

genuinely i have not ever heard that happen

wide mantle
#

I don't make the rules here, that's what it says

#

Making my mod is causing issues

#

But you also say it fails without my mod

quaint cave
#

yuh

#

oh also sidenote on dungenplus

wide mantle
quaint cave
#

whenever using the visualizer in ship, it can fuck up your control scheme

wide mantle
#

Which will fail the main path generation

#

I noticed that yes

quaint cave
#

and make players' movement direction shift

#

yeah

wide mantle
#

Not fixing for now, but I'm aware

quaint cave
wide mantle
#

Make the path length count shorter

quaint cave
#

icy

wide mantle
#

Or make every main path stole have doorways on all sides

#

Maybe add some verticality too

quaint cave
#

for branch count, should i have a lot of em?

wide mantle
#

It's up to what you want

quaint cave
#

well idk, branches are so weird, i don't even know what modifying certain values actually do

wide mantle
#

You just need to make sure the main path can be completed. After that, the branch paths can help add some extra rooms if they can fit

#

You just gotta learn and figure it out

quaint cave
#

@wide mantle it's not fixed without tags

#

how evil

#

also you should fix the room's generation speed/the async gen

#

cuz it goes too fast for me to even see whether a single room is spawned or not

wide mantle
#

Pushed the update live along with my dungeon

wide mantle
#

There's a weird GUI bug when using the DunGenPlusEditor.dll. Please don't use it. It'll be ugly, but at least you can interact with it.

wild mural
wide mantle
#

They need to update the mod to work in general with the new lethal company update

wild mural
#

tnx so much

final shale
#

@wide mantle where may I find the DunGenPlusEditor.dll to replace my old ass copy from the Black Mesa project?

didn't even notice you mentioned it was borked oh my

#

nvm found it since it's the last commit on your git lol

final shale
#

uh oh

#

DunGenPlus requires LLL? thonk

#

I never ran into this before because I was actually using LLL, but I'm trying to port over to DawnLib now 😅

wide mantle
#

DawnLib replacing LLL 🤔 ? @final shale

final shale
#

yuh

#

so we can hotload interior

wide mantle
#

I'm currently in Japan so I can't fix it for a solid 2 weeks

#

Actually I just landed

#

Just right now

final shale
#

no worries, I was just surprised by it, I didn't realize you were touchin LLL

#

holy moly

#

enjoy japan

wide mantle
#

I touch LLL due to how LLL works, but I can fix it to be a soft dependency

final shale
#

ahh I see

#

hopefully dawnlib doesn't require the same thing?

#

although I'm sure Xu would be happy to add some hook if needed

wide mantle
#

I can yell at Xu if needed

final shale
#

yee

wide mantle
#

I have them on speed dial, watch

#

@graceful fiber

#

Give them a few hours

final shale
#

they eepin lmao

#

i also yelled at em

#

nyeheheh

wanton bear
#

@wide mantle @final shale iirc it was because of how LLL needs to network the rarities/results of the dungeon right?

wide mantle
#

For my mod?

wanton bear
#

cuz in base game rarities are static so the game just pops dungen.generate right off the bat

#

i think so?

wide mantle
#

I don't mess with rarities. If I remember correctly, I require your mod due to most people creating extended dungeon assets for your mod to handle

mossy frost
#

It was commented out before

wide mantle
#

And I didn't want to complicate that workflow for those people

final shale
#

@wide mantle sorry to disturb again but is there an editor dll that isn't borked for this version?

graceful fiber
wide mantle
#

I'm told it's because, what I'm doing doesn't actually work

#

But that's weird cause I knew it worked before

final shale
#

damn what the hell

#

unity hates fun

hard finch
#

Teleporting bread? TS_phoenixThink

final shale
#

@wide mantle wondering if you would have any idea about this:

[Debug  :dev.ladyalice.dungenplus] Main branch gen failed at Branch 1 (Length: 2, Ratio: 0.1538462)
Prev tile: Entrance1
Archetype: Office
Tilesets: Office Entrance (DunGen.TileSet)
Reason: DunGen.NoMatchingDoorwayPlacementResult
Available Doorways:
Used Doorways: Lab Doorway, Office Doorway, Quarantine Doorway, Start Doorway, Security Doorway, Sewer Dummy Doorway

Looks like it's trying to start the second main path off of our Entrance1, but all the doorways are already used? theinking Is it generating branches before completing all main paths or something?

#

.. I should probably check our DunGenExtender to make sure the main paths count didn't exceed the number of doorways though maybe

#

hm still 4

wide mantle
#

Yes check that one

#

Hmmst

#

Length 2 is weird, is it not?

#

No wait I'm dumb sorrry

#

That just means how far it is

final shale
#

is that length value the length only including tiles already placed? that would track

#

it places the Start tile and then Entrance1 before starting any main paths

wide mantle
#

Yes, that one. My brain fried and thought its how tiles for that path

#

It shouldn't be attempting to do branching. Have you tried using the dev window and asynchronous generating?

#

To see what step it's failing

final shale
#

unfortunately that's broken with the interior hotloading

#

I'm gonna see if I can patch your report function to dump the connected tiles on the used doorways

#

..if I can find it

graceful fiber
#

I'll try to have the interior bundles load when the dev menu gets opened but it might be a while to rewrite that code for this use case :p

final shale
#

might be best to only load the one selected in the menu if you're willing to get a little more granular with your patches

#

but I get if you don't want to depend on internals like that

#

loading might just take a while on some profiles lmao

#

I guess you might have to refresh the UI anyway though thonk

graceful fiber
mossy frost
#

Disable hotreloading altogether if the debug menu setting is enabled beevil

final shale
#

wait

#

thats smart

#

might as well, that's the easiest solution

mossy frost
#

Though do log it should be disabled when actually playing lol

graceful fiber
#

I probably could yeah

final shale
#
[Info   : Unity Log] Used doorways' tiles:
 - Lab Doorway -> Entrance1
 - Office Doorway -> Lab Hallway Double
 - Quarantine Doorway -> Entrance1
 - Start Doorway -> Start
 - Security Doorway -> Entrance1
 - Sewer Dummy Doorway -> Entrance1
#

erm...

#

did the semantics of the MainPathExtender's nodes change?

#

this is what I have set up for the lab path, which seems to be incorrectly attaching Entrance1 to Entrance1 instead of placing a Resonance tile there:

#

iirc it was set up this way because this Lab path was the first one that generated, so it would place the initial Start tile and the Entrance1 tile, not sure why it would be placing another Entrance1 though

#

the other paths start with an Entrance1 node, I think you had mentioned that was how to set it up when I was initially doing the multiple main paths Hmm

#

yeah removing those nodes just made it generate with no Start tile lmao

#

not sure what's going on here sad

wide mantle
#

Damn I wish I could access my computer to fully see the issue

#

Your nodes look correct

#

The semantics shouldn't have changed

#

However, I remember changing a line of code after realizing it was a bit wrong

#

It may be possible that you setup the nodes wrong, but because of the bug, it came out right

#

But that's my only current theory

#

When you can @final shale send me pictures of your setup which may clue me in

final shale
#

hm, I don't suppose that change is on a commit I can revert locally to test without

wide mantle
#

No the changes was all in one go

#

It had to due to the nature of the update

#

Had to recode a lot from scratch

final shale
#

for the screenshots, you mean the flow, the extender, and all of its paths?

wide mantle
#

Yes

final shale
#

but not the archetypes/tilesets?

#

or you want thos etoo?

wide mantle
#

Ya, archetypes and tiles should be fine

final shale
wide mantle
#

You dont need to send those

final shale
#

okok

#

lemme try and see if I can fit everything into screenshots without a whole bunch of scrolling lol

wide mantle
#

🫡

final shale
#

extender

#

office path

graceful fiber
#

is it normal for your dungeonflow to not include all labels you have in the extender?

final shale
#

quarantine path

#

and finally sewer path

wide mantle
#

Try adding a normal normal archetype with an empty string and a generic archetype

#

That may be the cause?

final shale
#

wait where dat?

wide mantle
#

Also, give me the debug log. There should be a warning that says something like reverting to main generation

#

Your setup should have outputed that

final shale
#

hmm okay gimme a lil bit

wide mantle
#

🫡

final shale
#

gotta rebuild with the removal of the nodes reverted

#

you suspect that your suggestion of making sure that the node types have corresponding node archetypes assigned will remove that warning?

#

if so I'll try without that fix first

wide mantle
#

Ya it may remove the warning, but regardless the warning isn't that important

final shale
#

oh hmm, okay

wide mantle
#

It was just extra info that can help me find a beginning issue

final shale
#

@wide mantle I'm wondering, you mean a normal node archetype with label "normal"? is there something particular in my setup that makes that necessary or do you just require a fallback in general? all my nodes should have a valid label for an archetype but I may have goofed that

#

here da log (I copied only the part after dungeon generation started so you don't have to scroll a ton, lemme know if I may have missed something)

final shale
#

Tried adding node archetypes for every node label I have defined, then tried adding a blank one with the office archetype, neither seems to have changed anything it prints to the logs and behavior is the same

#

not that I was expecting it to fix it since you mentioned it was just one issue

#

if there's anything you think would be worth trying in the DunGenPlus code, I have it cloned so I can just fiddle with it

#

I shall be gaming in the meantime

graceful fiber
#

top 1 lazy modder

final shale
#

truth nuke

wide mantle
#

And just log variables inside the function. That can help tell me what it's thinking

final shale
#

ah I guess it's after the first path has been placed it looks like

wide mantle
#

Yes, I don't remember why I did it like that, but it's always after the first main path is created

final shale
#

I was thinking it was because DunGen takes care of one path but I guess that doesn't quite make sense since you still need to override the generation parameters from the first main path

wide mantle
#

I think it was a left over of my original approach years ago

#

And I'm sticking with it out of laziness

#

Eitherway, I should be changing generation parameters for all main paths regardless

final shale
#

ah, this should've occurred to me before

#

it looks like the first path may be generating on the wrong doorway?

#

this is what I'm seeing

[Debug  :dev.ladyalice.dungenplus] Main Room Length Index: 2
[Debug  :dev.ladyalice.dungenplus] Initial, used doorways' tiles:
 - Office Doorway -> Lab Medical Research Room
 - Start Doorway -> Start

[Debug  :dev.ladyalice.dungenplus] After randomize line archetypes for path 1, used doorways' tiles:
 - Office Doorway -> Lab Medical Research Room
 - Start Doorway -> Start

[Debug  :dev.ladyalice.dungenplus] After modify group, used doorways' tiles:
 - Lab Doorway -> Entrance1
 - Office Doorway -> Lab Medical Research Room
 - Quarantine Doorway -> Entrance1
 - Start Doorway -> Start
 - Security Doorway -> Entrance1
 - Sewer Dummy Doorway -> Entrance1
#

placing a Lab tile on Office Doorway ain't right, currently trying to figure out why that's happening

wide mantle
#

I think I said earlier that I thought I found a bug in how it selected the main tile to branch from

final shale
#

yeah

#

the main tile seems correct though

#

those are all doorways on the main tile

#

unless you mean elsewhere other than the alt paths code?

#

ah, it looks like the TileProxy passed to ModifyGroupBasedOnBehaviourSimple is wrong

#

(it only gets null, I'm checking the transpiler now)

#

huh, fixing that certainly changed things but now it's failing on the lab doorway a whole bunch, weird

#

the fix was

-       attachToSequence.AddBasicLocal(OpCodes.Stloc_S, 13);
+       attachToSequence.AddBasicLocal(OpCodes.Stloc_S, 14);
wide mantle
#

Oh, was that the issue? Is it working correctly now?

final shale
#

it's placing Lab on the right doorway at least

#

still seems to like failing to generate though

wide mantle
#

It's a start at least

final shale
#

what I'm seeing may be our issue though

#

yeah

#

gotta fire up our unity project to check now 🐌

wide mantle
#

🫡 God speed

final shale
#

looks like it can succeed actually, but we definitely have something weird going on with these failures, it's failing on length 2 on the first path a lot

wide mantle
#

Hmmst

#

Well at least it works for now. And I can use your dungeon as a baseline to test my codr

final shale
#

I'm wondering, does PrintAddTileError always get called at the head of the path? Or can it be called after a backtrack to where NoMatchingDoorwayPlacementResult can show up on Entrance1 after it successfully placed a Lab tile onto the doorway?

#

dunno if you would know off the top of your head 😅