#DawnLib [V80]

1 messages Β· Page 17 of 1

oak linden
#

I'll need to do some wiki work once uni stuff is done this weekend

fallow remnant
#

naming convention of wiki, prepending random numbers, is kinda ehhh

oak linden
#

Thunderstores wiki is alphabetical

#

I can't order it how I want to

#

I was trying a new format with the moons if you see that one

fallow remnant
#

we can have GitHub pages instead. I believe it has been suggested before

#

only 42 git commit --amend "CI: AAAAaaaaaa!!11" later we can have a working deploy

oak linden
#

Yeah I'm just not familiar with it + don't have the time to figure that stuff out

fallow remnant
#

(GitHub already has a wiki built-in, but it kinda sucks in the same way Thunderstore does)

#

unfortunately, that error does not give us much to work with. It blew up white serializing a Dictionary<NamespacedKey, V> into JSON, where V is unknown:

    public override bool CanConvert(Type objectType)
    {
        return objectType.IsGenericType &&
            objectType.GetGenericTypeDefinition() == typeof(Dictionary<,>) && // is dictonary
            objectType.GetGenericArguments()[0] == typeof(NamespacedKey); // dictonary key is namespacedkey
    }

    public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer)
    {
        writer.WriteStartObject();

        // Note: should just cast to Dictionary class
        var dict = (System.Collections.IDictionary)value!;
        // Note: should be List<NamespacedKey?>
        var keys = new List<object>();
        foreach (var key in dict.Keys)
        {
            keys.Add(key);
        }

it broke at var key in dict.Keys line, and idk how could it modify the dict while adding its keys elsewhere?

#

unless there is a multithreaded access, in which case it all would be screwed anyway?

#

it is invoked from an async function, but the iteration itself is an "atomic" synchronous operation

oak linden
#

Bleh yeah that goes beyond me

#

Especially since it isn't reproducible I think

midnight schooner
charred field
#

Hey i started using this recently for updating an old pack since lunarconfig requires it

#

how can I get back the old terminal moon order?

#

and I'd also like to turn off the hotloading screen if possible

oak linden
#

DawnLib's moon screen should be basically identical to the vanilla one though

#

hotloading screen is not toggleable

charred field
#

is that in the dawnlib config?

white finch
#

Option to hide profile pictures could be neat though, for immersionβ„’ plink

oak linden
#

maybe, it be there to help debug incase someone fails though

charred field
calm maple
#

hi, can you add the option for more options please

oak linden
#

lol

charred field
#

can't say i'm a fan but y'know, there are uses for it

sacred tulip
#

PLEASE

#

ADD ALL THE OPTIONS EVER

charred field
calm maple
#

Add stock options to dawn lib RiskiHehe

sacred tulip
#

add tax to dawnlib!!

white finch
charred field
#

or does it just not lol

white finch
#

LLL do also keep a count for players that have loaded, to lock lever being pulled

charred field
oak linden
charred field
#

not saying you need to add an option but ik people have requested this before

oak linden
#

there actually had only been one person who requested this before, lunxara

#

maybe another person, dont remember entirely

white finch
#

I've heard a few mention it iirc

charred field
#

yah

#

i've heard it a bunch lol

#

but recently yeah I saw that lunx was the one to suggest it

#

to uuuh hat i think

oak linden
#

well, whoever you're hearing it from hasnt mentioned it here so i cant guage interest ig

#

if it was as simple as a toggle, i would've done it like the achievements

#

but it is valuable being there for me and the other users unlike the achievements button (also again havent heard maybe more than a few requests about disabling it)

white finch
#

But what if I PR it beevil

oak linden
#

you can if you want

charred field
#

ye but hat's tweaks has a thing for disabling the button I think

oak linden
#

i would say finish your other PR's

charred field
#

i thiink

white finch
#

(Ye I know πŸ₯€)

charred field
#

i skimmed the readme and saw smth abt it

oak linden
#

iirc they removed it

charred field
#

oh ok lol makes sense

sacred tulip
#

hat the goat

charred field
#

i can like ask around w the peeps i talked abt it to if you want but I get the feeling their opinions won't matter to you (no shade im being realistic)

#

regarding the UI thang

white finch
midnight schooner
#

(paco can correct me if im wrong here) but dawnlib's moon hotloading and lll's is different, in that lll loads all the bundles on startup, checks them, then unloads them. dawnlib doesn't do that

charred field
midnight schooner
#

so its much more plausible for a broken bundle to be used in game

white finch
#

It ain't too neat of a solution but I just keep a list of scene bundles whenever one gets loaded, and those get skipped when launching the game again

oak linden
charred field
#

knew it lol

oak linden
#

its not specifically to dismiss what they think, but that i feel like you'd just ask them to say it and they'd do it because you're friends rather than what they actually think lol

charred field
#

i mean they ain't bias we actually just talked about all APIs that add extra stuff that we thought was "alright but unnecessary to throw in there"

charred field
#

since now ik it's not entirely unnecessary since it serves a purpose I don't think I can really say it's unnecessary (because it's not) but I would still prefer a more "immersive" alternative?

midnight schooner
#

i am biased because i made the original ui, but i like having a display of where the ship is routing to rather then keeping the old moon on screen

charred field
white finch
# charred field knew it lol

Valid criticisms or feedback can still be offered and are likely to be considered though, if done in good faith plink

white finch
#

Mainly terminal stuff

charred field
#

yerr

oak linden
#

yeah i just dont want a "I agree with monty, get rid of it"

#

only reason dawnlib has a simulate and filter command is because the way it's done in LLL isn't good and me doing my thing in DawnLib causes it to break

#

so it's sort of a compatibility thing

charred field
#

It wouldn't be "get rid of it" it'd just be like. "a compromise would be good" or "a toggle would be preferable"

#

or whatever you want in this case, whatever it is you want

midnight schooner
#

there isn't really a comprise that gives the same information, while not completly fucking maintainbility

charred field
charred field
#

no?

midnight schooner
#

well there needs to be some sort of ui, most people dont read logs

charred field
#

So in this case the information it's supposed to give is which player is unable to load a bundle, right?

meager inlet
charred field
oak linden
charred field
#

and nobody would use it unless they alr knew about it, aka it's not in ya face or anything

midnight schooner
#

the spectate screen has steam profiles, i don't think its that immersion breaking?

charred field
sacred tulip
#

change it for the face cam added in v73 hehe

charred field
#

same reason I take out stuff like name plates in some packs

meager inlet
oak linden
#

definitely, and with how bad the terminal is to understand, im not super surprised you didnt go for a whole terminal api just for it

meager inlet
#

I didn't want the responsibility πŸ˜›

#

LLL took control of just the moons part of the terminal because i needed to touch it hard so it felt justified

midnight schooner
meager inlet
#

use the player name tag as a horizontal progress bar πŸ˜›

white finch
#

The mischievous blank Steam name beevil

meager inlet
icy tulip
meager inlet
#

not colour blind friendly though

icy tulip
#

oh tru

midnight schooner
#

nor is the current design

#

lol

sacred tulip
#

so the face cam is a no go? :c

icy tulip
#

i will say i think i was in the conversation w monty about this and i brought up the whole pfp thing

sacred tulip
#

might be too hard to implement tbh

midnight schooner
#

performance πŸ˜…

white finch
#

Loading bar would also be kinda made up, there ain't really a % value to get during a bundle being loaded greed

sacred tulip
#

ye ahaha

white finch
#

Or I could be wrong actually

icy tulip
#

i thinks its very intentional zeekers only puts pfps when you are dead, but in the end its not terrible if you see them outside of it

midnight schooner
#

surely there would be, theres a progress percent for loading a scene async

icy tulip
#

its just extra odd because you see it every time you route i think

icy tulip
sacred tulip
#

what about like 0 fps cam from when they hit the lever? like a screenshot of their face cam

meager inlet
icy tulip
#

yeh

#

like if dawn keeps using pfps for it, the world wont end

#

its just off to me

midnight schooner
#

well if zeekers ever adds an "in-world" meta equivalent, i'll update it :p

icy tulip
#

zeekers keeps the ui of most things in universe, we know our huds are fully canon

#

Same with all the terminal stuff

sacred tulip
#

the face cam!!!

#

hfdgsfhjdbkjvdf

#

im sorry

#

im guessing the screenshot stuff i mentioned is not possible

#

ok ive been told it wouldnt work and the reasoning is so obvious i wanna cry

oak linden
#

v0.9.10

  • Fixed fire exits desync with only DawnLib installed.
  • Added new ChangeWeatherTo that uses DawnWeatherEffectInfo.
  • Fixed RoutePrice configs not generating.
  • Added public interface to the saving of items' locations so that they're not loaded back into the centre of the ship if need be.
quick anvil
#

Wow
Not 0.9.9 > 1.0.0 πŸ₯€

white finch
oak linden
#

it'll drag out for a while :p

#

next version is surely 0.10.0

white finch
oak linden
#

well if you insist...

calm maple
vernal umbra
#

I saw the thing abt the hotloading screen earlier

#

If you're still looking for opinions on it I can share mine

white finch
#

No beevil

#

-# /j

vernal umbra
#

Aw ok back to my hole

white finch
vernal umbra
#

But anyway

#

I think its a nice feature and I also like that it gets the old moon off the screen

#

But I cant tell if its actually working or not

#

Cus every time I route somewhere the ship immediately goes to the destination point

#

Even when the hotloading takes a while cus someone's pc is slow

#

I dont know if its supposed to go in increments per person or like remove people's pfps when theyre done loading

#

Thats all I think it just needs a little more clarity

sacred tulip
#

that i can agree too :3

#

i mean i guess the fact we casual players didnt even know that was the use for it kinda tells you everything ehehhe

#

yes WE

vernal umbra
#

I dont think anyone who isn't in this server and didnt see this thread would understand what its doing right away

oak linden
sacred tulip
#

i just thought it was a cool loading screen that was purely visual because it always goes to the end instead of like looking like smth is loading

vernal umbra
oak linden
#

yeah, there's no way for me to read the status of an LLL moon

#

and vanilla obv doesnt need hotloading

vernal umbra
#

i c

sacred tulip
#

makessss seeeeeeeenseeeeeeeeeeee

#

lol

#

so it IS purely visual rn

vernal umbra
#

cheese bro its ur time to shine

sacred tulip
#

besides like the few moons that do use dawnlib

#

i always shine!!

#

:3

vernal umbra
#

make a LLL plugin for dawn hotloading screen compat

sacred tulip
#

too many words

vernal umbra
#

make LLL moon worky with dawn screen

sacred tulip
#

oooohh

#

paco time

vernal umbra
vernal umbra
#

im assuming you didnt do anything with that cus mods cant read logs or something

oak linden
#

hmm i said no way but there is probably a way to read it

vernal umbra
#

but if they can u could at leats get number of completed players

#

it wouldnt know what players are finished but yknow

fallow remnant
#

GitHub adding one unnecessary merge commit per actual content commit on an otherwise perfectly flat branch kills something within me πŸ˜ͺ

calm maple
#

[ ] - Allow Merge Commits

#

you learn how to rebase/squash or u don't pr my projects hehe

fallow remnant
#

isn't that a responsibility/settings of maintainers?

calm maple
#

Yea its a repo level setting for admins. Write/Maintainers can only select a merge type that the admin allows

fallow remnant
#

last time i tried setting it up couple of years ago, it would still either add a merge commit, or needlessly cherry-pick a single commit which was already at the tip of the target branch, and would squash & rewrite commit message anyway ughh

calm maple
#

stinky

charred field
#

sorry I had a busy day today so I went to sleep last night lol

midnight schooner
#

yeah it got mentioned that it only works for dawnlib moons atm, which could probably be improved

charred field
# meager inlet eg

yeah that or replace the steam picture with the picture the players sees of themselves when looking at the radar

charred field
midnight schooner
charred field
midnight schooner
#

i dont think the selfie cam really works :p

charred field
#

Why don't you think it would?

#

If me and all my friends set our pfps to the selfie cam it would give you the exact same info

charred field
#

so it wouldn't be a performance concern at all

midnight schooner
# charred field Why don't you think it would?

without more company everyone would look the same, and it's much easier for me to tell apart pfps.
in general, i think everything that could have been said about this issue has been, and i will update it if the game has a better design for it

charred field
midnight schooner
#

yeah and i can barely read half the time :p

#

if you really really want the selfie cam, hat tweaks could probably add it

charred field
#

alright, i'll ask him then

midnight schooner
#

i don't intend to have to maintain a config toggle for a ui element

charred field
#

It not keeping track of progress on LLL and Vanilla moons kinda sucks even more too cuz in most use cases it's quite literally useless UI (no offense)

#

I ain't gonna keep the convo going any longer cuz it's clear that even if I gather up opinions and it's in my favor y'all won't budge (which is understandable)

oak linden
#

that is true, something should be done for LLL moons, thank you for the feedback

charred field
#

but thanks for explaining

static iron
#

I mean it being disabled could be fine but im not a maintainer so idc, moreso of what defines vanilla

charred field
#

you're dead and so you've already been pulled from the game world, so it only makes sense to see stuff like that

#

as for the loading I never really gave it any thought, but since the screen darkens I can argue the same for that

charred field
#

you can reread stuff from yesterday if you want

static iron
#

I was more interested in what is more vanilla esque

#

Dont really care about the rest

charred field
#

I mentioned stuff like LLL simulate, LE wateridge, some lethalhud stuff, and I don't think I brought this up but WR out of the box weather multipliers for vanilla weathers would also fall in this

charred field
normal ridge
#

i mean

charred field
#

it's more of an immersion thing

#

atleast if I can't get the UI off the screen entirely

static iron
#

Yeah immersion, i could discuss about that more but i gotta sleep. Immersion is such a big topic and complicated

charred field
#

if I could then I would be arguing against "extra stuff like that which (in my case) have no use to be unnecessary in unavoidable libs and apis like this one"

charred field
#

i don't intend to bug y'all further cuz I won't get anywhere really

#

no offense I just have stuff to do lol

normal ridge
#

...yeah fair enough

#

immersion is a key factor to most people

static iron
#

I mean its interested me since i made surfaced since that was a huge topic for it

#

And like theres alot of good world building and then stuff which seems nonsensical in lethal

#

Ok not starting need eep

normal ridge
#

don't forget to mention fartworld..

#

good night godnigthe

charred field
#

but I understand that's not an option

normal ridge
#

its cool to see but......

#

eh just add a config and call it a day

charred field
#

that's the thing, they can't

normal ridge
#

ah

charred field
#

Like ofc im not asking for it to be permanently removed lol

#

I'm just asking for a toggle, but it's apparently too important for diagnosing issues

#

...atleast for dawnlib moons

#

for now, anyway

charred field
vernal umbra
#

I fucking did it again

normal ridge
#

i guess it could only have the names?

#

if the pfps are the problem

vernal umbra
#

Accidental double tap

#

Whys that a thing

charred field
normal ridge
charred field
#

no probably because the text is tiny

midnight schooner
#

that was more of a joke 😭

charred field
#

which if that's the case that seems more like a problem w the UI than the idea itself

vernal umbra
#

But actually

charred field
vernal umbra
#

The text is really small

#

Combined with it only being there for like 1.5 sec on average

charred field
#

if the toggle removed the PFPs it could prolly be bigger

normal ridge
#

🧠

charred field
normal ridge
#

but jokes aside

#

if thats really the only problem, a text size increase wouldn't hurt lol

#

but then theres the fact that 4+ lobbies exist

midnight schooner
#

the ui has always handled that

normal ridge
#

and the texts could get off the screen

normal ridge
midnight schooner
#

yes it auto scrolls

#

if there are any other features people want, or other issues for a 1.0 release, make a github issue

static iron
#

Giant deathball

#

Xu said yes

oak linden
midnight schooner
oak linden
#

silly

#

i should've

carmine elk
#

It’s not too late

charred field
static iron
#

Xu said i can have a pony

midnight schooner
#

an issue to have lll moons show their state is fine

charred field
#

that fixes none of my issues! so I will not make one for that but it would be cool if that was added!

charred field
#

olivelib

fallow remnant
alpine mica
#

I hate setting configs in the editor buh

#

Made a typo in one of the name spaces and the only option Unity gives to remove an entry is remove all unused. So I pressed that and Unity deleted all my namespaces plink

oak linden
#

rip

#

it shouldnt have removed them all if you were using em

#

that's weird

oak linden
urban plaza
oak linden
#

😭, ill look at that code again soon
weird, it doesnt do it for me

urban plaza
#

specifically it was for LLL and weather registry namespaces i added to use for weights on items

oak linden
#

clearly i sabotaged

#

but yeah ill give it a check this weekend when im done with exams

urban plaza
#

noo worries, best of luck with the rest of themm

alpine mica
#

Awaiting the day interiors get tagging so that I don't need 10 config entries with the same value when I want to make something interior themed greed

oak linden
#

wdym? interiors do get taggedf

alpine mica
#

Oh they do? I know vanilla interiors have tags like lavish and cavern with dawnlib, but I haven't seen any custom interiors with that

drowsy pendant
#

I think that unlike vanilla moons there's no real precedent for interiors, but for example in LLL Slaughterhouse has the "Bloody" tag to trigger certain things, mainly on Wesley's moons

oak linden
#

yeah basically what nikki said

#

people never really did it that much for interiors

drowsy pendant
#

mhm

#

LLL had the "Vanilla Moon Tags" doc but there wasn't really a widely adopted Vanilla Interior Tags

oak linden
#

DawnLib does add these automatically to the vanilla interiors

alpine mica
drowsy pendant
#

No I mean, that makes sense, just unfortunately doesn't change the statement, eheh

frozen widget
#

mr/mrs dawnlib

#

how do i know how exactly something is getting registered twice here

#

[Error : Unity Log] ArgumentException: 'graveling:corpse_growth' has already been added to this registry.
Stack trace:
Dawn.Registry1[T].Register (T value) (at ./src/API/Registry.cs:84) Dawn.DawnLib.DefineEnemy (Dawn.NamespacedKey1[T] key, EnemyType enemy, System.Action`1[T] callback) (at ./src/API/DawnLib.cs:189)
Dusk.DuskEnemyDefinition.Register (Dusk.DuskMod mod) (at ./src/API/Definitions/Enemies/DuskEnemyDefinition.cs:140)
Dusk.ContentHandler.LoadAllContent (Dusk.IAssetBundleLoader bundle) (at ./src/API/ContentHandler.cs:68)
Dusk.DefaultContentHandler..ctor (Dusk.DuskMod mod) (at ./src/API/Auto/DefaultContentHandler.cs:33)
Dusk.DuskMod.RegisterNoCodeMod (Dusk.DuskModInformation modInfo, UnityEngine.AssetBundle mainBundle, System.String basePath) (at ./src/API/DuskMod.cs:49)
Dusk.AutoDuskModHandler.AutoRegisterMods () (at ./src/API/Auto/AutoDuskModHandler.cs:31)
Dusk.DuskPlugin.Awake () (at ./src/DuskPlugin.cs:57)
UnityEngine.GameObject:AddComponent(Type)
BepInEx.Bootstrap.Chainloader:Start()
UnityEngine.XR.Management.XRGeneralSettings:Awake()

fallow remnant
#

gotta add a check with better diagnostics, I guess.

and please, wrap the logs and code inside triple backticks ``

sacred tulip
#

dawnlib!

oak linden
frozen widget
#

hmmmm

fallow remnant
fallow remnant
dark parcel
#

I just look and I see this and I am so confused

dark parcel
#

I see the link you posted as the first thing I see

fallow remnant
#

so?

dark parcel
#

Oh how did, out of all people BepInEx mess something up?

fallow remnant
#

read the commit, follow the links (:

fallow remnant
#

"this is deprecated, use that"
"but that is still 0.x experimental"
"we said, use that! we already removed this btw"

oak linden
#

Yeah that was really bothering me

fallow remnant
#

if you don't like the verbosity, alternatively we could add an ignore rule for this specific method

steel ocean
#

Is this bad?

#

Seeing red in modpack makes brain go bbbrbrhrhrhrgr

oak linden
mint rain
#

does dawnlib work "ok" if you use LC_FastStartup to skip the Online/LAN screen πŸ™‚

#

i recall this was an issue with LLL but if possible i would still appreciate the convenience

fallow remnant
#

idk, worked fine with Imperium skip

fallow remnant
oak linden
#

it's possibly the stupidest thing i've ever seen

fallow remnant
#

i'm glad to hold the crown

oak linden
#

im sorry you had to be the one to write that in there, gotta love bepinex

fallow remnant
#

huh?

[22:56:57.1522676] [Info   :Muzika Gromche] Patched JesterEnemy
[22:56:57.1603828] [Info   :LethalLevelLoader] Registering Bundle Content!
[22:56:57.1613822] [Info   :LethalLevelLoader] Skipped Registering 0 NetworkObjects As They Were Already Registered.
[22:56:57.1638986] [Info   :MaxWasUnavailable.LethalModDataLib] Registering ModDataAttribute fields...
[22:56:57.1704005] [Error  :MaxWasUnavailable.LethalModDataLib] Failed to register ModData attributes in Dawn.Compatibility.SoundAPICompat+<>c from com.github.teamxiaolan.dawnlib.compatibility plugin: Could not load type of field 'Dawn.Compatibility.SoundAPICompat+<>c:<>9__2_0' (2) due to: Could not load file or assembly 'me.loaforc.soundapi, Version=2.0.8.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
[22:56:57.1769203] [Info   :MaxWasUnavailable.LethalModDataLib] Hooking up save, load and delete events...
[22:56:57.1769203] [Info   :MaxWasUnavailable.LethalModDataLib] ModDataHandler initialised!

who's fault could this be?

oak linden
#

People ask this almost everyday, I hate hate hate how that Mod prints this error out

fallow remnant
#

Last updated 2 years ago
Max was Unavailable

understandable

oak linden
#

Lol

agile sky
#

could probably PR a fix and maybe it'd be updated

#

the issues and PRs are all closed so it seems like max has at least cared about looking at them

fallow remnant
#

holy crap the Scanvan is amazing

#

wrong thread tho

oak linden
#

bro why they pushing this shit down my throat it doesnt take copilot to write an if statement why is it saying its co-authoring my commits now 😭

#

shit aint even enabled

carmine elk
#

Xu, you are becoming Copilot

carmine elk
fallow remnant
#

time to force-push, i guess \s

fallow remnant
#

alr im out

oak linden
#

i meant copilot 😭

fallow remnant
#

i forgot the \s

oak linden
#

smh

calm maple
#

I can't believe you guys are using Xopilot for your commits now

drowsy pendant
#

Xupilot

icy tulip
alpine mica
#

Xupilot how many Object.FindObjectsOfTypes should I put in my update loop

carmine elk
#

As many as you can

static iron
#

Cheddar

obsidian marsh
white finch
loud mortar
#

How does DawnLib determine whether an item's DawnItemInfo should have ScrapInfo?

#

I'm looking through LethalContent.Items.Values and it seems like Dawn doesn't set the ScrapInfo for LethalLevelLoader items if the item in question only spawns in certain interiors (tested with Melanie's Interiors and PlayZone). However, it does assign one if the item's spawn condition is based on moons instead.

#

Is that intended?

fallow remnant
#

a player disconnected mid-round; at the end of round got an error:

[23:56:28.4287594] [Error  : Unity Log] NullReferenceException
Stack trace:
GameNetcodeStuff.PlayerControllerB.ResetPlayerBloodObjects (System.Boolean resetBodyBlood) (at <aca1e98d6f844d3f85cd22b6f7be2f9b>:IL_0054)
StartOfRound.ReviveDeadPlayers () (at <aca1e98d6f844d3f85cd22b6f7be2f9b>:IL_0018)
StartOfRound+<EndOfGame>d__322.MoveNext () (at <aca1e98d6f844d3f85cd22b6f7be2f9b>:IL_03A9)
Dawn.DungeonRegistrationHandler+<UnloadDungeonBundleForAllPlayers>d__12.MoveNext () (at ./src/API/Dungeons/.DungeonRegistrationHandler.cs:291)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <c39a522eee05469b8171a6cfeb646c59>:IL_0026)

possible to fix on Dawn side, it seems? or MoreCompany's fault

fallow remnant
#

might be

open wigeon
#
[Info   : Unity Log] saved vehicle: -1
[Info   : Unity Log] SAVE ITEMS IN SHIP CALLED! inShipPhase: True
[Error  :   DawnLib] Item: LungApparatus(Clone) doesn't have a DawnItemInfo; cannot save. Contact the developer of this item.
[Warning:ReservedItemSlotCore-2.0.55] Saving 2 unlocked reserved item slots.
[Info   :Buttery Fixes] Dropship inventory saved (0 items)
[Debug  :MaxWasUnavailable.LethalModDataLib] Saving data to file LCSaveFile1.moddata with key TestAccount666.ShipWindows.ShipWindows.WindowUnlockData.UnlockedWindows...
[Error  :   DawnLib] Item: LungApparatus(Clone) doesn't have a DawnItemInfo; cannot save. Contact the developer of this item.
[Debug  :LobbyControl] Lobby can be re-opened
[Debug  :ShipWindows] Network manager already exists! Destroying...
[Info   :LethalPerformance] Saved 3 save(s)
[Info   : Unity Log] Update used by player client rpc has been called for interact trigger: TerminalScript
[Info   : Unity Log] Set interminalmenu to true: True
#

It's been a while since I've seen anything trigger the DawnItemInfo thing lol

fallow remnant
# oak linden this is so funny to me

by the way, it's not the first time C# is being weird with me. In my mod I found this cast to interface, because otherwise member can't be resolved, even though it is public

oak linden
open wigeon
#

@oak linden 019dca01-3f29-d7b5-61c7-25dc8d7b1d2b

#

I'd assume the only thing that modifies the apparatus is Meltdown?

fallow remnant
# oak linden so weird

luckily, i'm dropping support for anything other than ogg, so this won't be an issue anymore

oak linden
open wigeon
#

Yeah I don't think it does.

#

I got that error after updating BCMER so perhaps I had some event that changed apparatus somehow?

#

The only thing I did that "day" was run in, grab apparatus, wait for the explosion.

oak linden
#

ill land on exp, grab appy, and try

open wigeon
#

Just tried this again. Experimentation, went in, grabbed apparatus, waited for meltdown explosion, saved and quit to menu, no error.

#

Weird...

agile sky
#

Considering that HasDawnInfo exists, which implies that the return value of DawnEnemyInfo GetDawnInfo(this EnemyType enemyType) is nullable, is there a mistake in its nullability annotations?

public static DawnEnemyInfo GetDawnInfo(this EnemyType enemyType)
{
    DawnEnemyInfo enemyInfo = (DawnEnemyInfo)((IDawnObject)enemyType).DawnInfo;
    return enemyInfo;
}

internal static bool HasDawnInfo(this EnemyType enemyType)
{
    return enemyType.GetDawnInfo() != null;
}

https://github.com/TeamXiaolan/DawnLib/blob/5d1820ae/DawnLib/src/API/Enemies/EnemyTypeExtensions.cs

#

because I'm wondering if this could be the cause of why the existence of SCP-682 can break Facility Meltdown #1191847266777042985 message

oak linden
#

Wrong

#

Like registering super late

agile sky
#

mm, and that's not something that should be happening most likely

oak linden
#

Yeah, the APIs like LL and LLL handle it fine

loud mortar
oak linden
#

It's not intended no, afaik when the code was written, dungeon weights didn't work or smthn similar

#

In LLL

loud mortar
#

Do you mean the LLL issue where scrap with 0 weight could show up on single-scrap days?

white finch
#

Funnily enough she's referring to the other change in that update

slender violet
#

I removed my Dawnlib save in slot one with the vanilla game, and then after a while I opened the game with mods, and when I chose slot one, my Dawnlib save was still there. (Scraps, tools, etc.)

oak linden
#

Also need to know whether you were still in game when you removed the slot and rejoined it

#

And also how you removed it ig

slender violet
#

I was playing Dine when I removed it but after reopened was experimentation only scrap and tools saved

#

I played with dawnlib, I removed the save when I was playing vanilla game, I played again with dawnlib: the save looks empty but when I enter the lobby the scraps and tools were there.

oak linden
#

ohh you removed the save file whilst dawnlib wasnt enabled?

slender violet
#

yes

oak linden
#

i see, that's the issue yeah
ill try to think of how i should tackle this

#

this is probably the same issue that i see whenever someone comes in once a month about the save system causing this exact bug

#

atleast i get it now

drowsy pendant
#

Ran into an issue with my pack where restarting the lobby after an Alt-F4 threw a DawnLib error and none of the suits from MoreSuits would load. Only way to fix it was to remove DawnLib entirely. Will get logs and such later if I can recreate it but wanted to drop the report now since I won't be done playing for a while.

oak linden
drowsy pendant
glossy nebula
#

#help-and-troubleshooting message any idea what this is?

#

dawnlib picked up on something

#

seems to be map related

#

no clue how to fix it?

oak linden
#

DawnLib currently breaks with kenjid moons and otherworldly moons, can't fix it rn since my pc is broken

glossy nebula
oak linden
#

Like the game won't work properly

quiet comet
#

Anything I could do on my end πŸ€”

oak linden
#

Dunno how much you care about what might be there but temporarily limiting it to 1 moon would fix it until I can do something about it

#

Paco sent me logs of it being fixed but probably still needs some work before he can PR mayne

vernal umbra
rare canyon
#
[Warning:   DawnLib] Duplicate item found in level 56 Vow with name BottleBin, adding weight to previous entry to avoid issues.
[Warning:   DawnLib] Duplicate item found in level 20 Adamance with name BottleBin, adding weight to previous entry to avoid issues.
[Warning:   DawnLib] Duplicate item found in level 556 Flicker with name TragedyMask, adding weight to previous entry to avoid issues.
[Warning:   DawnLib] Duplicate item found in level 556 Flicker with name TragedyMask, adding weight to previous entry to avoid issues.
[Warning:   DawnLib] Duplicate item found in level 556 Flicker with name ComedyMask, adding weight to previous entry to avoid issues.
[Warning:   DawnLib] Duplicate item found in level 556 Flicker with name ComedyMask, adding weight to previous entry to avoid issues.
[Warning:   DawnLib] Item Airhorn is already registered by the same creator to LethalContent. This is likely to cause issues.
[Error  :   DawnLib] (OnFreeze) An exception occured in firing an event for a registry:
System.ArgumentException: 'unknown_lib:smallgrass' has already been added to this registry.
  at Dawn.Registry`1[T].Register (T value) [0x00043] in ./src/API/Registry.cs:84
  at Dawn.MapObjectRegistrationHandler.FreezeMapObjectContents () [0x00364] in ./src/API/MapObjects/.MapObjectRegistrationHandler.cs:238
  at Dawn.MapObjectRegistrationHandler.RegisterMapObjects () [0x000d0] in ./src/API/MapObjects/.MapObjectRegistrationHandler.cs:588
  at Dawn.Registry`1+<>c__DisplayClass9_0[T].<add_OnFreeze>b__0 () [0x00000] in ./src/API/Registry.cs:42
[Info   :LethalLevelLoader] Refeshing Loaded Bundles Status!```
anyone know the reason od this error?
oak linden
#

do NOT update your mods, mods like DawnLib and therefore coderebirth etc and a huge amount of others will likely no longer work as well until further notice

rare canyon
#

ah shiet

shell kayak
#

assuming the newest dawnlib 2 hrs ago is fine?

sacred tulip
#

Ye

shell kayak
#

nice nice

quick anvil
dense iron
#

jw, do moons using dawnlib all have to have their own seperate config? is there no centralised dawnlib moon/interiors config?, I havent been updating my configs for a while, but suddenly noticing some moons not in the LLL config... makes life a whole lot harder (for me at least).. went to look for a dawnlib config, found there wasnt one... or at least i couldent find one, makes me just want to not install moons that are registered via dawnlib, so hopefully im missing something? lol

oak linden
dense iron
# oak linden yeah moons registered with dawnlib get their own config so as to not bloat dawnl...

thats fair, but looking in 20 different files for all the settings, especially when you dont always know the name of the file, was more of a pain in the ass for the user, than it all being in one format, in one place, so hopefully all these config files are in the same controlled format at the least, as having to work out if a : is required, or a -, or some other symbol, etc.. was a pain for LLL moons before it was standardised.

Anyway, if they really must be seperate configs, perhaps either a list of the moon names, or the config names, could be in dawnlibs config, for lookup purposes? (in my case programatically, but in others cases, maybe they just need it to find the file, i d k) , or if you have control over the naming of those configs, maybe they could get a "DL-" prefix.. so we can find all those config files that relate to moons registered in dawnlib or something.

oak linden
#

i really am not inclined to mess with people's configs, like i said before, what if someone has a config for item related things they're doing, and then for whatever reason the rest of their mod's config was in their library they're using? what if they're using multiple libraries? i feel like this complicates it for the user even if its not one standardised place

dense iron
#

i mean.. many moons/interiors in LLLs vast catalog have their own settings file.. for settings related to their content that is not related to dawnlib/LLL stuff, but i think i can count the amount of moons/interiors with "extra settings" on 1 hand.. and ive pretty much left 99% of them on default settings personally.

either way, you do your stuff your way.. i was just inquiring because i felt like i missed something, but i guess i didnt. thank you for clarifying the situation.

blazing nacelle
oak linden
#

yeah im confused what the goal was

frozen widget
#

getting this error with good item scan

#

[Error : Unity Log] MissingFieldException: Field not found: UnityEngine.RectTransform GoodItemScan.ScannedNode.rectTransform Due to: Could not find field in class
Stack trace:
Dawn.Utils.ForceScanColorOnItem.LateUpdate () (at ./src/Utils/MiscScripts/ForceScanColorOnItem.cs:36)

oak linden
#

@pine dirge

#

hey testy

#

i didnt hear about this update

#

:p

frozen widget
#

(btw is spams this error when the scan color is active)

oak linden
#

im already working on the next dawnlib update so ill get this working too

#

yeah i thought so...

oak linden
#

test must've changed it without letting me know lol, usually he does

#

uhh quite a few things actually

#

zaggy asked me to go through DunGen stuff and just do more editor tooling and visualisers

#

a bunch of stuff tehre should just look nice

pine dirge
#

Bruh πŸ’€

#

I renamed rectTransform to RectTransform and forgot you used that πŸ˜…

oak linden
#

lol

#

fair enough

#

when'd you upload that update?

pine dirge
#

Today

oak linden
#

and what version, too lazy to openthunderstore

pine dirge
#

2.1.0

oak linden
#

okie

#

ill add it as a thing for next update

#

calm it down on the breaking changes though :3

pine dirge
#

Jokes aside, this should probably be the last breaking change for now SCaraara

oak linden
#

okie

glossy nebula
oak linden
oak linden
#

Let's not

urban plaza
#

ah i forgot, sorry

oak linden
#

It's alright

jolly quail
#

Thank you so much πŸ™ πŸ™

#

I see the one bug was fixed.

sly marsh
#

These look like fairly normal log messages so I assume they are not supposed to be Fatal logs and it's an oopsie

#

lol

loud mortar
#

Hi. APLC guy again. Is it a bad idea to replace a scrap item's weight table while players are in the ship?

sly marsh
#

I get lag from the Fatal logs as well yippee

zenith remnant
#

@oak linden

midnight schooner
robust zodiac
#

Dawnlib is reordering Offense to be after March and Adamance for some reason

charred field
#

this bothers me a lot yeah lol

#

mine was worse but I was told you can turn off DawnLib messing with the LLL config or something? and that fixesi t

oak linden
#

It's not that prevalent so ill get rid of it next update, probably with some dungen stuff

zenith remnant
#

ok

jolly quail
#

The double enemy count bug happened again.

#

Our group just got 2 brackens in one day.

oak linden
#

uhh send logs

#

logs would actually be perfect since i accidently left in the logging related to that bug last update

jolly quail
#

Just scroll to the latest day

#

wait hold up

#

There we go that's the proper log

oak linden
#

okie

jolly quail
#

It's a couple quotas in so just scroll to the latest day

oak linden
#

whats the moon you were on?

jolly quail
#

Rend

#

normal Rend

oak linden
#

ic
yeah i do see it happening, huh

#

this happened so late in the day as well, weird

jolly quail
#

I had killed the first Bracken.

oak linden
#

send modpack code, im thinking a mod is editing numberSpawned when you kill an enemy

jolly quail
#

019df063-3fe6-618a-c60f-5c047dc1a922 here

oak linden
#

i did land on an eclipsed titan which basically started with spawning 3 dogs which didnt increment the numberSpawned and they also didnt even have a probability to spawn, which was really confusing?

jolly quail
#

Hm?

#

Dogs didn't have a chance to spawn?

oak linden
#

on titan it said they had a probability of 0, im not sure if theres like only a max allowed 3 dogs which made it reset to 0 or if thats what you set them to for titan, dunno

jolly quail
#

Titan's settings were changed but not drasitcally

#

In Lunar, the outside enemy spawnlist is MouthDog:80, ForestGiant:16, Earth Leviathan:4, RadMech:7

#

and the outdoor power is set to 6

oak linden
#

do dogs take 2 power each?

jolly quail
#

Yes.

#

Ahh I see what you're saying now.

oak linden
#

maybe they took up all the spawns and the game interprets them after that as 0 weight then

#

it still didnt increment their numberSpawned though, might've been cuz they were the first eclipsed wave spawns, and i couldnt get an enemy's numberSpawned to decrease by killing em or despawning em

jolly quail
#

Are first wave spawns supposed to be counted?

oak linden
#

are they not?

jolly quail
#

I assume they would contribute to numberSpawned.

oak linden
#

i would've assumed so too, might be a base game bug or something else

jolly quail
#

Atleast with the bugged enemies, they do still respect the max power count for the level.

oak linden
#

v0.9.15

  • Removed some unneeded logging.
  • Improved DunGenPlus compat.
  • Added the ability to set whether an earth leviathan can rise on custom footstep surface (not set-able on the component).
  • Added the ability to set whether quicksand works on custom footstep surfaces.

v0.9.14

  • Refined DunGenPlus compat.
  • Fixed issues with DawnLib and LunarConfig'd enemies that caused them to be able to spawn more than they should especially on eclipsed moons.
  • Thanks to paco for last version's help with the outside and inside map objects.
  • Updated GoodItemScanCompat.
  • Added visualisers for the following in the editor:
    • Tile size visualiser.
    • GlobalPropSettings Drawer.
    • Tag Drawer.
    • TagPair Drawer.
    • TileInjectionRule Drawer.
    • Refined Doorway visualisers.
    • Added a menu when right-clicking tiles to copy from the automatic tile bounds to the manual one.
    • GameObjectChance Drawer.
    • GraphNode Drawer.
    • GraphLine Drawer.

v0.9.13

  • Restored DunGenPlus compat.
  • Fixed errors with outside map objects and inside map objects.
  • Fixed my pc, so i'm back.

changelogs for the last few versions

jolly quail
oak linden
jolly quail
#

Oh, hmm

#

Alright when I get home later on tonight I will try seeing if I can reproduce it.

frozen widget
#

2 dungen compat improvement

oak linden
#

You should be able to use the dev mode with dawn interiors now, couldn't before since they're hotloaded

frozen widget
#

oh

#

ok ig

oak linden
#

Can't test it personally though

frozen widget
#

can i ask a favor from you btw

oak linden
#

Uhh ask and I'll consider

frozen widget
#

barber normal fix

#

into dawnlib

oak linden
#

What is barber normal fix lol

frozen widget
#

:>

#

well the Barber's material is not rendering correctly ingame, there's even a mod for it, but when the mod is used with the Barber variant i made well it doesn't work

#

and the normal map isn't used

#

so uhh weird

oak linden
#

Uhh if the base game barbers normal materials don't work I can't do much about that in DawnLib itself

frozen widget
#

by default in lethal it doesn't work yeah

oak linden
#

Then yeah you'd probably need to rely on he material fix mod

frozen widget
#

aight imma ask

#

thanks for your time though

jolly quail
#

I was wondering, does DawnLib support loading scene bundles without an associated level properties?

balmy belfry
#

[I posted in the wrong channels first, oops]

Hello everyone, im trying to setup the unity dawnlib things, after the step "Start Patching" is eventually fails at the AssetRipper steps, im using Gentoo Linux

Do I need the AssetRipper to start creating stuff with dawnlib or can I do without?
I would really like to avoid havign to use windowsbaked

oak linden
jolly quail
oak linden
#

Oh, uh you'd still kinda need code for that but I think it's fairly possible

#

I guess u wouldn't need a selectable level

jolly quail
#

I have plans on possibly restoring v49 Dine in the future.

#

I just know adding scenes into Lethal is really difficult.

#

Like on a code basis.

balmy belfry
#

Is support for a linux unity environment planned in the future?

hollow viper
balmy belfry
#

Ah I was referencing the dawnlib unity environment, with the patched Game assets and stuff

hollow viper
#

i mean how would you get game assets if patching is failing for you

#

and patching is not related to dawnlib

balmy belfry
#

Im sorry, I thought the game patch steps where all related to dawnlib, since it is one of the necessary steps to setup the dawnlib unity project
Im not really sure where the correct place to ask about the linux support things is then tho, but I guess I can use windows for now, so I dont send more unrelated messages here

hollow viper
mint rain
#

(sorry im just seeing this now and i wanted to weigh in since i've looked at spawn cycle stuff)

#

i did double check some of my mod code, because i do mess with number spawned in a few places

#

i dont think spawn cycle fixes or buttery fixes should be causing issues with numberSpawned being counted? i do reset it to 0 in a couple places, but all of those places should be occurring before spawns start incrementing it again, unless there is some strange conflict

mint rain
balmy belfry
#

Quick questionπŸ˜…
Is this still the case that the template isnt up to date for V81?

oak linden
#

it is, the template was updated for v81, it is still a little outdated though from the very latest version of DawnLib

balmy belfry
#

Ah okay, im asking because Im encountering a lot of fallwithcurve errors in my unity log when trying to run the game with my custom scrap and I thought maybe I used a template that wasnt up-to-date, im still new to modding and all so it may be user error on my part
Tomorrow I have time to experiment and all

oak linden
#

uh, i dont run the game in the editor personally but u probably just have the item setup incorrectly

#

something like maybe you forgot to include an audiosource onto the prefab

balmy belfry
#

I have to test around some more after work, I havent tried to run it with the actual game instead of through the editor, I do have a prefap from my experiment with lethallib that wotked ingame just fine, but even that one didnt work with the game inside unity editor.

Im gonna try with threactual game tomorrow and report my findingsπŸ‘

alpine mica
#

What's the correct way to utilise these config fields again? I have forgob

oak linden
#

like get the value in code?

alpine mica
#

Yeah

oak linden
#

if you're using the contenthandlers you can get it from each assetbundleloader
but there's also the editor components you can use, ConfigReader iirc its called

#

bool isGlobalAudio = EnemyHandler.Instance.DuckSong!.GetConfig<bool>("Duck | Global Spawn Audio").Value; example of how i have it setup in code

calm maple
#

Hm, when I see a null forgiving operator there I gotta wonder why

jolly quail
#

It happened pretty late in the day too

oak linden
jolly quail
#

Oh yeah ok so killing them has nothing to do with it, I'm getting the bug still.

alpine mica
jolly quail
#

I think it's something with firstTimeSpawningEnemies?

#

@oak linden Heya, so I found out something strange.

#

When the extra set of enemies that aren't supposed to appear spawn, firstTimeSpawningDaytimeEnemies goes to false.

#

Implying that the extra spawned enemies exceeding the max count are being considered as "daytime" enemies for some reason?

oak linden
#

hmm

jolly quail
#

This was with coils, I'm gonna try again using Bracken and see if it happens.

oak linden
#

bruh i see it

#

why does zeekerss do this

#

every spawn pool loops through its own enemies, resetting them at the very beginning of the day

#

and every spawn pool should only need to reset it once

#

so why does daytime do it twice

jolly quail
#

Oh I think it might be for daytime enemies that despawn

oak linden
#

well, technically he never needs to do any of this since he resets every spawn pool's numberSpawned etc before trying to spawn anything (or atleast attempts to and should be doing it like this)
ill do something for it next update

#

afaik rn i cant update since im waiting on something to get fixed for me to even mod rn lol

jolly quail
#

Somehow 3 spawned

oak linden
#

3...

#

huh

#

alright i probably see that too

#

thank you for the testing, it helped me pinpoint the issue a lot faster than if i were to do it (dont got much time personally)

jolly quail
#

You're welcome πŸ™

#

Ah, I noticed something.

#

When Lunar edits level lists, it adds every entity to each list and just assigns them with a rarity of 0 if they're not in that level.

#

So every daytime, outdoor, and indoor enemy gets added to each of the enemy spawn lists.

oak linden
#

they're added everywhere as 0 incase their weights need to be edited in that pool

jolly quail
#

I'm gonna see if the bug occurs if I add Bracken to the daytime list via LLL instead of Lunar.

oak linden
#

keep in mind the bracken needs to spawn inside first before it tries to spawn anything for daytime

jolly quail
#

Yup, got the bug on LLL

#

Alright so daytime enemies apparently have a weird thing where they can still spawn even with 0 rarity.

#

But I guess technically they do have rarity because of the ones defined inside.

#

And I guess because daytime enemies max power count works in a strange way, they effectively have no limit other than the daytime power limit.

#

Which is 20 on Rend despite having no daytime enemies lmao.

#

So it's technically not even a DawnLib or LunarConfig thing, this is just Zeekerss jank interfering with how things are supposed to work me thinks.

mint rain
#

that's incredible actually

jolly quail
#

This does leave me wondering, does this still occur on levels with daytime enemies proper.

mint rain
#

oh wait nvm

#

does it matter

#

because no enemies spawn in between both of these calls

oak linden
#

but like, zeekerss clearly anticipated this being a problem at one point in development

#

i cant find the code rn but there's a function where he resets SOME enemies

mint rain
#

well the reason it happens twice is because the first loop is supposed to select what power level gets used

#

normal power level or "power level no deaths"

#

and then below that is the actual enemy spawner

#

but it only gets reset before any enemies are spawned

#

yes?

oak linden
#

found it

mint rain
#

after all enemies reset

this.firstTimeSpawningDaytimeEnemies = false;
oak linden
#

yeah, but it depends when it tries to spawn daytime enemies

#

now i dont know much about spawn waves and the like

#

but for terra it ran that function at like hour 660

#

talking about SpawnDaytimeEnemy^

mint rain
#

firstTimeSpawningEnemies, firstTimeSpawningOutsideEnemies, and firstTimeSpawningDaytimeEnemies only get set to true when the day first begins

#

before any spawning logic occurs

oak linden
#

yes, and they only get set to false when they run their respective functions for the first time

mint rain
#

yeah but im confused on what the problem is

oak linden
#

in vanilla? none

mint rain
#

how else are daytime enemies being spawned?

oak linden
#

the issue comes from trying to mix enemies into multiple spawn pools

#

i.e. putting a bracken in inside and daytime
it'll spawn one from the inside pool first, numberSpawned = 1

#

then it'll run the first ever daytime spawning

mint rain
#

ahh i see now

#

i understand

oak linden
#

yep

mint rain
#

well

oak linden
#

i tried to transpile that logic a bit, i just didnt see that he did the for loops twice

mint rain
#

i think it'd be an easy fix, anyway

oak linden
#

i coulda gone the wrote of manually just setting the field tbh

mint rain
#

for dawnlib or starlancer ai fix

mint rain
#

and then set all the flags to true and then reset all the enemy types in one go

#

in like a postfix

oak linden
#

there's an actually better place to reset enemies

#

runs basically same time/place

#

but it's actually meant for this

#

it just doesnt include daytime or weed enemies

#

and it also just isn't fully correct either

mint rain
#

well the problem is that PredictAllOutsideEnemies() still dirties numberSpawned

#

because it tracks how many baboons spawn for generating baboon nests

#

it needs to be cleaned afterwards

#

which is why zeekerss did the whole "on first spawn wave, reset all enemy variables" thing

oak linden
#

ah

#

never realised it didnt clear it afterwards

#

god this is ugly

mint rain
#

because PredictAllOutsideEnemies is from v50 and all this logic is from launch

#

but like

#

that's why his approach works

oak linden
#

yea

mint rain
#

and why PredictAllOutsideEnemies doesn't have to clean up

jolly quail
#

Ah, this is bad.

#

So I tried to see what would happen on moons that do have a daytime list.

#

I wasn't able to get the bug to occur on Assurance, even with upping the daytime power count to 60.

#

However, I had it occur on Offense.

oak linden
#

it's a race condition between if the enemy spawns before the very first daytime wave

jolly quail
#

Despite having Manticoils at 100, a 2nd bracken still spawned.

oak linden
mint rain
#

offense has an extremely low daytime spawn curve

#

daytime enemies can't spawn until like 12 pm or something

#

and until the first ever daytime enemy spawns, it wouldn't unset the flag that resets the weight of daytime monsters

oak linden
#

it's crazy that daytime arent the very first enemies that spawn on a moon

#

thats what i always assumed they were until i had to look into this

mint rain
#

well

#

inside/outside/daytime/weed enemies all spawn together at the exact same time

#

and that's the order at which those spawn lists were implemented

#

it's just that the curve controls how much of each enemy spawns

oak linden
#

there are no early returns though
how come the SpawnRandomDaytimeEnemy could set firstTimeSpawningDaytimeEnemies to true at like 12pm

#

or well, not true, false

mint rain
#

because SpawnRandomDaytimeEnemy doesn't run if the wave doesn't spawn any enemies

#

SpawnDaytimeEnemiesOutside() runs all the calculations to determine how many daytime enemies should spawn

#

and after getting a spawn count

#

SpawnRandomDaytimeEnemy() runs once for each enemy in the count

oak linden
#

ah, that logic isnt included in the SpawnEtc() functions themselves?

mint rain
#

if the wave doesn't spawn enemies (0 or negative) it never gets called

#

offense doesn't spawn enemies at 7:39 AM

#

(another reason why circuit bees or giant sapsucker dont work if you just put them on the spawn list)

oak linden
#

makes sense

jolly quail
#

Lunar should probably not add an enemy to any list if it's rarity is <= 0.

#

or only add it if it's rarity is > 0 rather.

oak linden
jolly quail
#

Yeah, I was looking and I noticed the function being used to add the weights is of DawnLib.

oak linden
#

the solution might be to continuously remove and re-add enemy weights whenever necessary, but the conditions would not really be possible to determine ahead of time since someone could implement their own thing if that makes sense

#

dunno though, the current issue is almost fixed, most of the hard code was written for the first time it happened
ill definitely consider it if another issue arises from having enemies in multiple spawn pools like this

#

though ig if you have an enemy on both inside and daytime, with both having weights, issue would still exist
which is a use-case i know some modded enemies have

#

so who knows

jolly quail
#

Hmm, so it'd be better to transpile Zeekerss's code instead?

mint rain
#

i think this is really easily fixed without even using a transpiler

#

there are multiple postfix injection points that make sense for working around this issue

#

imo

#

either the ResetEnemyTypesSpawnedCounts() function he added in v80 could be postfixed, and then PredictAllOutsideEnemies() postfixed to reset the enemies it alters

#

or everything can just be handled all at once by PredictAllOutsideEnemies() since that's the last time vanilla cares about the values being used

#

before actual spawning begins

jolly quail
#

Oh yeah, as a quick side note to all of this.

#

This bug has been experienced on outdoor enemies too.

mint rain
#

yeah it would affect all enemy classes

jolly quail
#

Our group had encountered two foxes before.

mint rain
#

what causes the problem is specifically:

  1. when at least 1 enemy spawns for the first time in any class of spawn wave (inside/outside/daytime/weed)
  2. when a single species exists in multiple "spawn classes" at once
#

the first time any daytime spawn happens, all enemies in the daytime spawn list get reset to numspawned = 0

#

if one of those enemies has already spawned from a different list (inside/outside/weed)

#

the enemy that's already on the map stops being counted because numspawned resets to 0

#

dawnlib/lunarconfig is making this issue more noticeable because (as i understand it?) all enemies get put into every spawn list at 0 weight

#

but it would happen if a moon wanted to have i.e. masked spawn inside and outside

#

if masked spawn outside before any inside enemies spawn, as soon as the first inside enemy spawns, all masked that currently exist on the map are "forgotten"

jolly quail
#

Ahh, so that's why the numberSpawned was off, it was counting those that were spawned in the wrong list.

oak linden
mint rain
#

lol

#

it is kind of cool

#

i suppose

#

but i only turn to transpilers when i literally can not do any other approach

#

because im really bad at writing transpilers

oak linden
#

I've gotten really good so I like writing them now

#

I don't do harmony transpilers though, codematcher looks weird to me

jolly quail
#

Ah, I remember when I tried making a Enumerator transpile, that was a nightmare.

oak linden
#

Lol, those are tricky

#

The transpilers for them are weird to make

jolly quail
#

Actually I was wondering, do daytime enemies not respect enemy type max counts?

#

Because I'd assume with Bracken, a max of one could only spawn as part of the daytime list.

mint rain
#

yes they are respected

#

but if the bracken spawns on multiple lists

mint rain
#

then the bracken that already spawned can be forgotten

#

which frees up another bracken to spwan

white finch
jolly quail
#

Or by outdoors I mean the daytime list.

mint rain
#

number spawned is tracked per species and not per zone

#

a bracken can spawn on any of the lists

#

then one of the other lists needs to spawn any non-bracken monster, with a bracken also on that spawn list

#

then the bracken is allowed to spawn in any one area

jolly quail
#

I think I understand now.

vale ocean
#

i keep getting this error when i load in with my mod
[Error : Unity Log] ArgumentException: '<none>:iris_os' has already been added to this registry.
Stack trace:
Dawn.Registry1[T].Register (T value) (at ./src/API/Registry.cs:84) Dawn.DawnLib.DefineItem (Dawn.NamespacedKey1[T] key, Item item, System.Action`1[T] callback) (at ./src/API/DawnLib.cs:179)
Dusk.DuskItemDefinition.Register (Dusk.DuskMod mod) (at ./src/API/Definitions/Items/DuskItemDefinition.cs:156)
Dusk.ContentHandler.LoadAllContent (Dusk.IAssetBundleLoader bundle) (at ./src/API/ContentHandler.cs:68)
Dusk.DefaultContentHandler..ctor (Dusk.DuskMod mod) (at ./src/API/Auto/DefaultContentHandler.cs:33)
Dusk.DuskMod.RegisterNoCodeMod (Dusk.DuskModInformation modInfo, UnityEngine.AssetBundle mainBundle, System.String basePath) (at ./src/API/DuskMod.cs:49)
Dusk.AutoDuskModHandler.AutoRegisterMods () (at ./src/API/Auto/AutoDuskModHandler.cs:31)
Dusk.DuskPlugin.Awake () (at ./src/DuskPlugin.cs:57)
UnityEngine.GameObject:AddComponent(Type)
BepInEx.Bootstrap.Chainloader:Start()
UnityEngine.XR.Management.XRGeneralSettings:Awake()

#

nvm figured it out

#

kinda odd because my mods worked without a namespace in the past

oak linden
#

please always include a namespace, lol

static iron
#

Is that why theres a space in Xu xiaolan

#

Do i need to be QWERTY rodrigo

vale ocean
oak linden
#

oh okay lol

#

your actual issue is that you have two iris_os that you're registering btw

#

dunno what that means, probably two items of the same name

sacred tulip
#

Opposum

vale ocean
#

well as long as it works i guess

fallow remnant
static iron
#

OpposumLib

#

RaccoonLib

#

Normalize wildlife names for libs

alpine mica
#

One day I will make BirdLib (it wont do anything)

mint rain
#

forgive me for my lack of knowledge but i am curious

#
On.DunGen.RuntimeDungeon.Generate += (orig, self) =>
{
    AdjustFireExits(self.Generator.DungeonFlow);
    TryInjectTileSets(self.Generator.DungeonFlow);
    orig(self);
};

this is a monomod detour? and does everything before orig(self) run before harmony prefixes?

mint rain
#

ive had to look at the dawnlib repository for a couple of compatibility things (like the revisitstingers incompatibility) and i think it's the first time i've been designing around something that doesnt use harmony patches

oak linden
#

Monomod prefix
Harmony prefix
Function
Harmony postfix
Monomod postfix

#

Lemme know if there's anything you want me to do

mint rain
#

should be fine

mint rain
#

which is why im probing about it rn

oak linden
#

I do be curious what it is

mint rain
#

the revisit stingers thing was this

#

i avoid playing the stinger when checkedForFirstTime is true, because only vanilla code sets that normally (and my code ran in a prefix before the vanilla code)

#

but dawnlib was applying a monomod prefix and had custom code that also controlled that variable

#

so my code was running between dawnlib and vanilla and couldn't ever execute before that variable was set to true

oak linden
#

Ahh fair

mint rain
#

i bandaid patched it (for now) by just ignoring checkedForFirstTime when dawnlib is installed

#

but in the future i'll probably need to do a more elegant solution because im worried this might cause two stingers to play if a user discovers a new vanilla interior with dawnlib installed πŸ˜…

#

not a huge worry of mine but i don't like sitting around with that sort of uncertainty in mind

oak linden
#

Lol

#

That's fair, I forget what options I even allow with my stinger stuff

#

I think I wanted to update it to allow people to set it to be per save file or whatever if it isn't already

mint rain
#

that'd be cool

#

i was gonna do it with revisit stingers

#

but once i started implementing it i totally forgot only the host has access to the save file

#

and it became way more annoying to implement into a purely clientside mod

#

lol

#

i imagine if you go that route my bandaid fix is going to cause even more issues so i'll have to get off the couch and fix it

jolly quail
#

Is there any tell on when the enemy reset bug is gonna be fixed?

oak linden
#

Today, I couldn't fix it before due to technical issues that got fixed this morning

jolly quail
#

Thunderstore NuGet?

oak linden
#

Yeah

#

I could've just replaced stuff with dll references but that would've been annoying

oak linden
quick anvil
#

First, proof you're the real xu xiaolan

oak linden
#

nuhuh

#

did my name change or am i tripping

oak linden
quick anvil
oak linden
#

yes

#

answer is yes

quick anvil
#

Meh
Nothing new
-# fuck fuck fuck fuck fuck fuck fuck fuck fu-

jolly quail
oak linden
#

that's okie

urban plaza
#

would there ever be interest in adding weather spawn weights to map objects/hazard definitions and configs?

oak linden
urban plaza
#

mmm BURY well

static iron
#

Is dawn lib?

urban plaza
#

unless that is... actually specific to actual terrain...

#

durrr v80 buzzword v80 buzzzword

oak linden
#

That bool should work

#

I use it for the coderebirth flora

#

And beartraps

urban plaza
#

those... are accurate... then why are mine not... hmmm...

#

I investigate more tomorrow. I just got over how headachey animation curves in unity are to set for the first time

oak linden
#

Lemme know more whenever :3

jolly quail
#

@oak linden Heyo, so I tried running DawnLib v0.9.16 but it's throwing up some errors.

#

It does this with both the zip you had sent earlier and the uploaded version.

jolly quail
#

wait nvm I wasn't logged into Steam

#

Still got the bug

jolly quail
#

It'd probably be better to have a function that cleans the lists of any entity who's weight is 0, after processing them.

oak linden
#

That is really weird

#

Ig send me a seed where you reproduce with a modpack code

jolly quail
#

Alrighty, lemme get it set up first.

#

Modpack code: 019e0018-1d92-511d-d858-e7f7be239322
Seed: 8211464 on Rend Normal

#

Same debugging modpack

#

It's definitely occurring less, it took me a couple of tries to get it to work.

urban plaza
oak linden
urban plaza
#

this is AWESOme

jolly quail
jolly quail
#

For the time being, I found a workaround. I'm using LLL to set enemy weights.

jolly quail
#

This isn't as major and I've only encountered it once personally, but there seems to be a rare bug with end of level values where the total scrap value is much higher than what it actually is.

#

My friend reported that he even once saw a 2000+ day on Assurance when it was definitely not that much.

#

I don't know if this is a DawnLib related bug or what, and it's rare so I don't know how to replicate it.

oak linden
jolly quail
#

I don't have CR so idk

oak linden
#

I thought so, other than that I have no ides

#

Is the 2000+ on the scan command btw do you know?

jolly quail
#

Ahh, I'm not sure.

#

We only saw it on the results.

#

I've seen some pretty absurd values on Assurance myself, like around the 1100 range.

#

Like maybe it can be possible but 1100 seems very unlikely on Assurance, especially 2000+.

#

It's only on Assurance too which is even stranger.

oak linden
#

does that sound right to you?

#

i went to rend, with that seed and turned it to eclipsed and just moved time with imperium seeing if anything else would spawn

jolly quail
#

As long as they don't exceed their max count.

oak linden
#

I'll upload that when I get the chance then

#

If its still not fixed, I'll try other methods

#

I think I see what the issues were from my other tries though

#

Transpiler was just going back and forth to wrong places

sacred gull
#

i have a strange problem

#

After installing some mods, I created a session and invited a friend to join, and everything was fine. Then I exited and rejoined the same session and invited my friend back into the world, but from there, whether I'm hosting or he's hosting, as soon as either of us tries to join, it gets a black screen and immediately disconnects. Does anyone have any idea what mod for v81 might be causing this problem, or are there any known mods that do this?

#

if u need the modpack code here it is 019e08ea-9d23-0f3e-f7fc-969937576119
i start working on a fix by 12 hours O. but i don't understand what mod did this

jolly quail
oak linden
#

i couldnt with the code and seed you sent 😭

jolly quail
#

On Rend Eclipsed

oak linden
#

ill try

#

when did the second bracken spawn?

#

or second of a specific enemy

jolly quail
#

Early on in the day, first one spawned as part of Eclipsed and then the 2nd one spawned around the afternoon.

#

At hour 240, the 2nd one spawned.

#

I tested the seed I had sent yesterday too and still got a 2nd Bracken.

#

I think having enemies in multiple lists is just gonna cause this bug to keep occurring.

oak linden
#

well, something is causing it, and i thought i got everything covered, i even printed the IL just to be sure, but ill check the seed

jolly quail
#

The same enemy type is in multiple lists. Since the lists refresh. If it refreshes and has a Bracken in them, regardless of if it has a rarity of 0 or not, it's gonna say it's not spawned yet because it hasn't spawned from those lists.

oak linden
#

yeah i know whats happening lol

jolly quail
#

Ah sorry.

oak linden
#

its alright, its just transpilers are a pain to get working properly ig

#

ill try one last thing, if not, ill change how i handle putting enemies in multiple lists

oak linden
#

honestly im confused lol

#

im reproducing the issue, but i cant figure out why im reproducing the issue this time, ill have to do a bunch of logging ig

#

discord is also dying rn, so thats fun

oak linden
#

sigh

#

i got it

jolly quail
#

Alright, I will test it.

oak linden
#

i will be very unhappy with myself if this doesnt work 😭

jolly quail
#

Well, I tried 3 Rend Eclipsed in a row and didn't get more than one bracken so that's good.

#

I'm gonna try coils now just to be sure.

white finch
jolly quail
#

Cool, 3 Rend Eclipsed and not one of them went above 5 Coils.

#

@oak linden as far as I can tell, it's fixed!

oak linden
#

very happy with that

#

now i can hopefully not touch dawnlib until 1.0

mint rain
oak linden
#

😭 if only

white finch
#

DawnLib 1.0.1 changelog: "Fixed enemy transpilers"

glossy fjord
#

Are these warnings ignorable?

oak linden
#

lol turning off all other logging is bold
but yeah i think those logs are fine?

#

assuming the cause was a lobby reload

oak linden
#

like, info and debug logs

#

lol

white finch
glossy fjord
#

I think I deactivated it by mistake perceive

oak linden
#

oh true, weird

urban plaza
#

Dungeon tile injection. what are the limitations? am i able to do it to all interiors globally or does it have to be tailored to each one?

quaint sigil
#

I love the environmental story telling in these patch notes lmao

oak linden
#

never considered a global thing lol

urban plaza
#

The world craves a different apparatus-like mechanic on steroids...

oak linden
#

its okay 😭