#DawnLib [V80]
1 messages Β· Page 17 of 1
naming convention of wiki, prepending random numbers, is kinda ehhh
Yeah it fucking sucks
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
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
Yeah I'm just not familiar with it + don't have the time to figure that stuff out
(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
i could probably set it up at some point as i already went through the trouble for https://soundapi.loaforc.me lol
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
like the vanilla one? you can just turn off me messing with LLL config and i dont touch the terminal moons if LLL is there, but you do lose out on features depending on what you're using lunarconfig for
DawnLib's moon screen should be basically identical to the vanilla one though
hotloading screen is not toggleable
sounds good
is that in the dawnlib config?
Option to hide profile pictures could be neat though, for immersionβ’ 
maybe, it be there to help debug incase someone fails though
sucks a ton tbh
hi, can you add the option for more options please
lol
can't say i'm a fan but y'know, there are uses for it
booo let me have fun
Add stock options to dawn lib 
add tax to dawnlib!!
It do show players that have yet to load the current moon's bundle, laugh at them for slow computer 
don't logs work for that tho? like how does LLL keep track of that
or does it just not lol
LLL do also keep a count for players that have loaded, to lock lever being pulled
highkey I appreciate the attempt to make it pretty and nice for users but I'd like it to not be there for aesthetic purposes
LLL also had issues with it for like a total length of a year or smthn iirc lol
not saying you need to add an option but ik people have requested this before
easier for it to fail and tell people to send logs than assume they have all this knowledge
there actually had only been one person who requested this before, lunxara
maybe another person, dont remember entirely
I've heard a few mention it iirc
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
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)
But what if I PR it 
you can if you want
ye but hat's tweaks has a thing for disabling the button I think
i would say finish your other PR's
i thiink
(Ye I know π₯)
i skimmed the readme and saw smth abt it
yeah they added it around the time i added it
iirc they removed it
oh ok lol makes sense
hat the goat
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
Knowing opinions do matter π₯
(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
like it's people that won't use DL in their packs unless it's someone else's
so its much more plausible for a broken bundle to be used in game
I made it kinda do that, but conditionally
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
that makes sense
you'd need to get people who's opinions i know are unbiased and actually feel that way, similarly im being realistic that i can't trust your friend group in terms of bias here, i hope that makes sense
knew it lol
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
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"
nah we had a big convo a month or so ago about APIs adding features outside their scope or smth of that sort and that was thrown in there, not because it's out of scope but because we thought it was unnecessary
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?
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
we talked abt stuff like LLL simulate command, LE wateridge, some stuff about lethalhud so we def weren't just discussing it because we HAAAATE the hotloading UI lol
Valid criticisms or feedback can still be offered and are likely to be considered though, if done in good faith 
I was gonna say some of LLL's features kinda fall under that category yeah
Mainly terminal stuff
yerr
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
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
there isn't really a comprise that gives the same information, while not completly fucking maintainbility
I mean what I'm saying do be in good faith, and I'm both speaking my own opinion and echoing their own thoughts as well
I mean I still think it could be done through logs, but if not at the very least the steam profiles could be taken out
no?
well there needs to be some sort of ui, most people dont read logs
So in this case the information it's supposed to give is which player is unable to load a bundle, right?
the reason i went for simulate is because it was super helpful, fairly tucked away for people who don't know/need it and pretty seamlessly fit in. A lot of people were gaslit into thinking it was a basegame feature lol
Yeah i vouched for simulate cuz it's a good dev feature
i just wish you didnt implement it the way you did which is by reusing the moons terminal node
and nobody would use it unless they alr knew about it, aka it's not in ya face or anything
the spectate screen has steam profiles, i don't think its that immersion breaking?
ye but when spectating you're "out of the game world" per se
change it for the face cam added in v73 hehe
same reason I take out stuff like name plates in some packs
i mean thats fair but it's also a problem years out from when it was implemented. different state of modding
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
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
again, the screen is meant to show individual people's loading progress. there isn't really a comparable ui design for a list of players other than the spectator list.
use the player name tag as a horizontal progress bar π
The mischievous blank Steam name 
eg
thats very smart
not colour blind friendly though
oh tru
so the face cam is a no go? :c
i will say i think i was in the conversation w monty about this and i brought up the whole pfp thing
might be too hard to implement tbh
performance π
Loading bar would also be kinda made up, there ain't really a % value to get during a bundle being loaded 
ye ahaha
not even when async?
Or I could be wrong actually
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
surely there would be, theres a progress percent for loading a scene async
its just extra odd because you see it every time you route i think
could just have a list of names and they turn green when finally loaded
what about like 0 fps cam from when they hit the lever? like a screenshot of their face cam
i agree that the meta-ness of spectator icons in screen based ui is very different than spectator icons in intentionally themed in world ui
well if zeekers ever adds an "in-world" meta equivalent, i'll update it :p
zeekers keeps the ui of most things in universe, we know our huds are fully canon
Same with all the terminal stuff
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
v0.9.10
- Fixed fire exits desync with only DawnLib installed.
- Added new
ChangeWeatherTothat usesDawnWeatherEffectInfo. - 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.
Wow
Not 0.9.9 > 1.0.0 π₯

OK but look at the next version number if you increase minor version
well if you insist...
I saw the thing abt the hotloading screen earlier
If you're still looking for opinions on it I can share mine
Aw ok back to my hole

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
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
I dont think anyone who isn't in this server and didnt see this thread would understand what its doing right away
a lot of this issue stems from the fact that you're routing to either a vanilla moon or LLL moons
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
oooohh
:o
ah does it only work for dawn moons
yeah, there's no way for me to read the status of an LLL moon
and vanilla obv doesnt need hotloading
i c
cheese bro its ur time to shine
make a LLL plugin for dawn hotloading screen compat
too many words
make LLL moon worky with dawn screen

actually LLL outputs its hotloading progress in the logs doesnt it
im assuming you didnt do anything with that cus mods cant read logs or something
hmm i said no way but there is probably a way to read it
but if they can u could at leats get number of completed players
it wouldnt know what players are finished but yknow
GitHub adding one unnecessary merge commit per actual content commit on an otherwise perfectly flat branch kills something within me πͺ
[ ] - Allow Merge Commits
you learn how to rebase/squash or u don't pr my projects hehe
isn't that a responsibility/settings of maintainers?
Yea its a repo level setting for admins. Write/Maintainers can only select a merge type that the admin allows
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
stinky
does it really? I never noticed it kept track of player's progress, just the big bar in the middle
sorry I had a busy day today so I went to sleep last night lol
yeah it got mentioned that it only works for dawnlib moons atm, which could probably be improved
yeah that or replace the steam picture with the picture the players sees of themselves when looking at the radar
golly
I think this could provide the same info while also keeping it vanilla
talking about this one btw
this is the current stance i have
Yeah, the entire point of the radar and terminal is to have a diagetic, in-universe way to view important UIs and choose levels so having steam pfps kinda breaks that for me a ton
i dont think the selfie cam really works :p
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
the picture here doesn't actually move, it's not dynamic or anything, it's a still imagine that's used in-game for when you see yourself on the ship screen
so it wouldn't be a performance concern at all
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
everyone will look the same with and without more company, and you have names in the hotloading UI, don't you?
yeah and i can barely read half the time :p
if you really really want the selfie cam, hat tweaks could probably add it
alright, i'll ask him then
i don't intend to have to maintain a config toggle for a ui element
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)
that is true, something should be done for LLL moons, thank you for the feedback
but thanks for explaining
np :P
What do you think of the pfps when youre dead and the big bar saying loading moon with the seed when landing? Personally the terminal loading seems in line with that not too far from vanilla
I mean it being disabled could be fine but im not a maintainer so idc, moreso of what defines vanilla
I already mentioned that in the case of stuff like the spectate PFPs you are outside of the "game world"
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
Not really arguing for or against vanilla here either, I just think of extra stuff like that which (in my case) have no use to be unnecessary in unavoidable libs and apis like this one
you can reread stuff from yesterday if you want
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
I'm not talking about vanilla here at all tho
i mean
it's more of an immersion thing
atleast if I can't get the UI off the screen entirely
Yeah immersion, i could discuss about that more but i gotta sleep. Immersion is such a big topic and complicated
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"
thats ok
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
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
wdym rod peter's house is extremely immersive to lethal company
don't forget to mention fartworld..
good night godnigthe
I mean I would totally rather take it off the screen completely and just have it black it out or smth
but I understand that's not an option
i wouldn't mind that ngl
its cool to see but......
eh just add a config and call it a day
that's the thing, they can't
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
then I settled for an immersion change but they didn't want that either so I'm just poking hat with a stick rn
I fucking did it again
bongo said they can barely read them most of the time
because of how fast it loads?
no probably because the text is tiny
that was more of a joke π
which if that's the case that seems more like a problem w the UI than the idea itself
But actually
but that's an actual solution tho π
The text is really small
Combined with it only being there for like 1.5 sec on average
if the toggle removed the PFPs it could prolly be bigger
ok but if it goes by fast there is no issue to diagnose then
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
the ui has always handled that
and the texts could get off the screen
oh it does?
yes it auto scrolls
if you have used dawnlib/duskmod before, please comment on this issue with any grievances:
https://github.com/TeamXiaolan/DawnLib/issues/99
if there are any other features people want, or other issues for a 1.0 release, make a github issue
i thought you pinned this message
Itβs not too late
putting an issue for the UI even tho I know it won't be adressed
Xu said i can have a pony
an issue to have lll moons show their state is fine
that fixes none of my issues! so I will not make one for that but it would be cool if that was added!
xu can I have a large olive pretty please
olivelib
honestly breaking changes this late into the game's lifetime don't sound all that exciting, even if it would allow you to clean up some internal technical debt
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 
while i dont disagree, there arent many who use the content handler excluding coderebirth, the editor experience should stay the same (also dawnlib did emerge super late into the game's lifetime anyway), there probably are ways to keep stuff there but obsolete but any talk about this should be in the github issue please :3
This has hapoened to me before as well, ive learnt my lesson
π, ill look at that code again soon
weird, it doesnt do it for me
specifically it was for LLL and weather registry namespaces i added to use for weights on items
clearly i sabotaged
but yeah ill give it a check this weekend when im done with exams
noo worries, best of luck with the rest of themm
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 
wdym? interiors do get taggedf
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
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
mhm
LLL had the "Vanilla Moon Tags" doc but there wasn't really a widely adopted Vanilla Interior Tags
DawnLib does add these automatically to the vanilla interiors
Personally I like to theme things off of interiors, so if I have an item, or enemy or skin that's mine themed, it'd be useful to just have the one quarry tag instead of a list of 10 mineshaft interiors. Guess I'm an outlier for this, sadge
No I mean, that makes sense, just unfortunately doesn't change the statement, eheh
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()
gotta add a check with better diagnostics, I guess.
and please, wrap the logs and code inside triple backticks ``
dawnlib!
same way it's always been getting registered twice, you either have the same mod in your profile twice (i.e. duplicate bundles) or you have the same namespace and key being registered as an enemy twice
hmmmm
can we perhaps keep track of source bundle paths, and print them alongside the error?
BepInEx messed up API visibility modifiers in a funny way, which I didn't know is possible
I just look and I see this and I am so confused
?
I see the link you posted as the first thing I see
so?
Oh how did, out of all people BepInEx mess something up?
read the commit, follow the links (:
https://github.com/BepInEx/BepInEx/pull/1306
Android API ahh vibes
"this is deprecated, use that"
"but that is still 0.x experimental"
"we said, use that! we already removed this btw"
Yeah that was really bothering me
if you don't like the verbosity, alternatively we could add an ignore rule for this specific method
It's fine, I forget where this error comes from, maybe CR, but it should mean nothing
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
idk, worked fine with Imperium skip
yee
this is so funny to me
it stinks
it's possibly the stupidest thing i've ever seen
i'm glad to hold the crown
im sorry you had to be the one to write that in there, gotta love bepinex
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?
Lethalmoddatalib
People ask this almost everyday, I hate hate hate how that Mod prints this error out
Last updated 2 years ago
Max was Unavailable
understandable
Lol
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
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
Xu, you are becoming Copilot
Could it have been the tab autocomplete suggestions thing? Idk if you have that on or if itβs included in that.
and i though it was weird when I noticed the Co-Authored-By line in the last commit
time to force-push, i guess \s
alr im out
i meant copilot π
i forgot the \s
smh
I can't believe you guys are using Xopilot for your commits now
Xupilot
βand copilotβ
WHO IS HE? WHAT DOES HE EVEN DO?
HELP
Xupilot how many Object.FindObjectsOfTypes should I put in my update loop
As many as you can
Cheddar
you need to do it up to 6 times per frame, also do it in fixedupdate and lateupdate for maximum performance loss, and if it does find what its looking for you need to do the search 4 more times to confirm the object is actually valid
Also run Harmony.UnpatchSelf() in your plugin's OnDestroy() 
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?
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
this seems like a vanilla error
might be
[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
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
send modpack code, makes me wonder who's apparatus this is
so weird
@oak linden 019dca01-3f29-d7b5-61c7-25dc8d7b1d2b
I'd assume the only thing that modifies the apparatus is Meltdown?
luckily, i'm dropping support for anything other than ogg, so this won't be an issue anymore
yeah but i dont think it creates a new apparatus
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.
ig maybe if you have the log send that
ill land on exp, grab appy, and try
Just tried this again. Experimentation, went in, grabbed apparatus, waited for meltdown explosion, saved and quit to menu, no error.
Weird...
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
Every enemy should have a DawnInfo
If they don't it's pretty safe to say the creator did something weong
Wrong
Like registering super late
mm, and that's not something that should be happening most likely
Yeah, the APIs like LL and LLL handle it fine
I got around this by using LLL's GetDynamicRarity when a DawnItemInfo doesn't have ScrapInfo or ShopInfo, but I'd still like to know if this behavior is expected.
It's not intended no, afaik when the code was written, dungeon weights didn't work or smthn similar
In LLL
Do you mean the LLL issue where scrap with 0 weight could show up on single-scrap days?

Funnily enough she's referring to the other change in that update
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.)
Logs and modpack code
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
019dd5af-09fa-ca4b-85b2-97a47baed2f6 and I don't have logs anymore
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.
ohh you removed the save file whilst dawnlib wasnt enabled?
yes
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
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.
I wonder if it was a save file issue, let me know when you get the logs
I got eepy but will try to reproduce today
#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?
DawnLib currently breaks with kenjid moons and otherworldly moons, can't fix it rn since my pc is broken
how bad does it get or is it relatively fine?
I think it just doesn't work with them
Like the game won't work properly
Anything I could do on my end π€
Rn it breaks because multiple bundles have the same custom outside map object
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
is this just the bundles or are the individual ones affected too
[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?
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
ah shiet
assuming the newest dawnlib 2 hrs ago is fine?
Ye
nice nice
That's odd, because when I ran those two compromised versions, all the mods dependent on them were working just fine
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
yeah moons registered with dawnlib get their own config so as to not bloat dawnlib's config (and it also just makes sense incase the user is also making other configs it puts them in their config file not dawnlib's)
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.
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
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.
i'm going to send this your way Xu just in case i mis-read it but someone reported a bug with DawnLib and MonkeyInjectionLibrary https://github.com/mattymatty97/LTC_MonkeyInjectionLibrary/issues/2
yeah im confused what the goal was
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)
(btw is spams this error when the scan color is active)
im already working on the next dawnlib update so ill get this working too
yeah i thought so...
what's up doc?
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
Today
and what version, too lazy to openthunderstore
2.1.0
okie
ill add it as a thing for next update
calm it down on the breaking changes though :3
dont speak to me or my family ever again
okie
example
more stuff
When were the malicious updates introduced?
like an hour before the message i forward
Let's not
ah i forgot, sorry
It's alright
@oak linden Got some Fatal logs that were throwing
These look like fairly normal log messages so I assume they are not supposed to be Fatal logs and it's an oopsie
lol
Likely that ye 
Hi. APLC guy again. Is it a bad idea to replace a scrap item's weight table while players are in the ship?
I get lag from the Fatal logs as well yippee
uhh that should be fine? although you should replace it when the item registry is frozen
EVEN WORSE THAN THAT βΌοΈ βΌοΈ
Dawnlib is reordering Offense to be after March and Adamance for some reason
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
Yeah seems like I left the logging everytime an enemy tries to spawn lol
It's not that prevalent so ill get rid of it next update, probably with some dungen stuff
@zenith remnant
ok
The double enemy count bug happened again.
Our group just got 2 brackens in one day.
uhh send logs
logs would actually be perfect since i accidently left in the logging related to that bug last update
okie
It's a couple quotas in so just scroll to the latest day
whats the moon you were on?
I had killed the first Bracken.
send modpack code, im thinking a mod is editing numberSpawned when you kill an enemy
019df063-3fe6-618a-c60f-5c047dc1a922 here
for now im unsure, couldnt reproduce
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?
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
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
do dogs take 2 power each?
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
Are first wave spawns supposed to be counted?
are they not?
I assume they would contribute to numberSpawned.
i would've assumed so too, might be a base game bug or something else
Atleast with the bugged enemies, they do still respect the max power count for the level.
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
I just had a thought, I don't have the time to test this myself right this moment but I wonder if it accounts for any enemies that were killed?
Wdym? I tried killing enemies and numberSpawned didn't change
Oh, hmm
Alright when I get home later on tonight I will try seeing if I can reproduce it.
bro what the hell did you improve yet again with dungenplus
2 dungen compat improvement
You should be able to use the dev mode with dawn interiors now, couldn't before since they're hotloaded
Can't test it personally though
can i ask a favor from you btw
Uhh ask and I'll consider
What is barber normal fix lol
:>
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
Uhh if the base game barbers normal materials don't work I can't do much about that in DawnLib itself
by default in lethal it doesn't work yeah
Then yeah you'd probably need to rely on he material fix mod
I was wondering, does DawnLib support loading scene bundles without an associated level properties?
No, why?
[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 windows
You kinda need a patched project
You can do code-only but it's a lot more limited
Replacing scenes of already existing moons.
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
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.
So realistically its not really usable on linux currently?
Is support for a linux unity environment planned in the future?
not dawnlib question atp
doesnt mean that you wont get an answer there tho
Ah I was referencing the dawnlib unity environment, with the patched Game assets and stuff
i mean how would you get game assets if patching is failing for you
and patching is not related to dawnlib
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
#1199473521265475745
if you really want to use linux for modding then you can just rip your project on windows vm/windows and then transfer your project to linux (some modders did that, not sure if there is another option)
this isn't a basegame bug
(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
(also this is unrelated but i saw this too - the barber's normal map is totally broken in vanilla, dopadream had to make a brand new one which is packaged in barber material tweaks itself)
Quick questionπ
Is this still the case that the template isnt up to date for V81?
it is, the template was updated for v81, it is still a little outdated though from the very latest version of DawnLib
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
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
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π
What's the correct way to utilise these config fields again? I have forgob
wdym by utilise
like get the value in code?
Yeah
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
Hm, when I see a null forgiving operator there I gotta wonder why
I was able to replicate it
It happened pretty late in the day too
It's within the Duck's own code, wouldn't be possible for it's instance to be null if its loaded
It can't be Spawn Cycle Fixes, I don't have it installed in the mod pack I'm using to diagnose this.
Oh yeah ok so killing them has nothing to do with it, I'm getting the bug still.
Annoyingly I keep getting a KeyNotFound exception
I'll take another shot at it tomorrow
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?
hmm
This was with coils, I'm gonna try again using Bracken and see if it happens.
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

Oh I think it might be for daytime enemies that despawn
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
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)
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.
yeah that's sort of a dawnlib thing more than lunar, but that is technically the root cause of the issue in a way
they're added everywhere as 0 incase their weights need to be edited in that pool
I'm gonna see if the bug occurs if I add Bracken to the daytime list via LLL instead of Lunar.
keep in mind the bracken needs to spawn inside first before it tries to spawn anything for daytime
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.
wait is this vanilla code
that's incredible actually
This does leave me wondering, does this still occur on levels with daytime enemies proper.
bleh, it technically does it twice because it can break early in the first foreach loop
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
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?
found it
after all enemies reset
this.firstTimeSpawningDaytimeEnemies = false;
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^
firstTimeSpawningEnemies, firstTimeSpawningOutsideEnemies, and firstTimeSpawningDaytimeEnemies only get set to true when the day first begins
before any spawning logic occurs
yes, and they only get set to false when they run their respective functions for the first time
yeah but im confused on what the problem is
in vanilla? none
how else are daytime enemies being spawned?
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
yep
well
i tried to transpile that logic a bit, i just didnt see that he did the for loops twice
i think it'd be an easy fix, anyway
i coulda gone the wrote of manually just setting the field tbh
for dawnlib or starlancer ai fix
lol yeah i would've just waited until PredictAllOutsideEnemies() ran
and then set all the flags to true and then reset all the enemy types in one go
in like a postfix
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
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
well, actually not really
because PredictAllOutsideEnemies is from v50 and all this logic is from launch
but like
that's why his approach works
yea
and why PredictAllOutsideEnemies doesn't have to clean up
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.
it's a race condition between if the enemy spawns before the very first daytime wave
Despite having Manticoils at 100, a 2nd bracken still spawned.
it doesnt matter what the weight is on the bracken in the daytime list
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
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
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
there are no early returns though
how come the SpawnRandomDaytimeEnemy could set firstTimeSpawningDaytimeEnemies to true at like 12pm
or well, not true, false
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
ah, that logic isnt included in the SpawnEtc() functions themselves?
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)
makes sense
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.
enemy weights are highly dynamic due to depending on conditions such as current moon, current interior, current weather, route price, etc and really whatever someone would want.
so its not lunar adding it, its DawnLib because, i guess the easiest way of explaining it is that lunar tag'd enemies or dawnlib enemies qualify for dynamic rarity
Yeah, I was looking and I noticed the function being used to add the weights is of DawnLib.
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
Hmm, so it'd be better to transpile Zeekerss's code instead?
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
Oh yeah, as a quick side note to all of this.
This bug has been experienced on outdoor enemies too.
yeah it would affect all enemy classes
Our group had encountered two foxes before.
what causes the problem is specifically:
- when at least 1 enemy spawns for the first time in any class of spawn wave (inside/outside/daytime/weed)
- 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"
Ahh, so that's why the numberSpawned was off, it was counting those that were spawned in the wrong list.
You're forgetting the swag factor of transpiling 3 to 4 functions with the same transpiler method
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
I've gotten really good so I like writing them now
I don't do harmony transpilers though, codematcher looks weird to me
Ah, I remember when I tried making a Enumerator transpile, that was a nightmare.
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.
They ain't too bad but yeah 
then the bracken that already spawned can be forgotten
which frees up another bracken to spwan
The main thing with transpiling Enumerators is that you're transpiling the MoveNext method 
Ah so I'm guessing one can spawn indoors, then (technically) outdoors, then indoors again?
Or by outdoors I mean the daytime list.
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
I think I understand now.
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
please always include a namespace, lol
i usually make a namespace but for mods i made for inside jokes i didnt really care about namespaces
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
Opposum
thats what i thought but putting a namespace somehow fixed it
well as long as it works i guess
potassium
One day I will make BirdLib (it wont do anything)
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?
Yes
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
Monomod prefix
Harmony prefix
Function
Harmony postfix
Monomod postfix
Lemme know if there's anything you want me to do
should be fine
this was just an order-of-execution thing causing issues
which is why im probing about it rn
I do be curious what it is
Lethal Company plugin. Allow an interior's unique stinger music track to replay under certain circumstances. - ButteryStancakes/RevisitStingers
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
Ahh fair
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
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
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
Is there any tell on when the enemy reset bug is gonna be fixed?
Today, I couldn't fix it before due to technical issues that got fixed this morning
Thunderstore NuGet?
Yeah
I could've just replaced stuff with dll references but that would've been annoying
i have a build if you'd like to test
First, proof you're the real xu xiaolan
also i tested this a bit, seemed to work so ill push it, but lmk if it doesnt
The question is am I tripping?
Meh
Nothing new
-# fuck fuck fuck fuck fuck fuck fuck fuck fu-
I am at work and I won't be able to test for another 11 or so hours
that's okie
would there ever be interest in adding weather spawn weights to map objects/hazard definitions and configs?
i'd want to rework the spawn weight system first, which is planned, since it's pretty ugly
mmm BURY well
Is dawn lib?
I guess the bool to align outside objects to terrain needs some work too lolb
unless that is... actually specific to actual terrain...
durrr v80 buzzword v80 buzzzword
Wut
That bool should work
I use it for the coderebirth flora
And beartraps
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
Lemme know more whenever :3
@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.
It'd probably be better to have a function that cleans the lists of any entity who's weight is 0, after processing them.
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.
would adding a collider have helped? it looks like it did, a lot. unelss the only run i did with the option on just happened to be unlucky lol
You were probably unlucky the first time then lol
this is AWESOme
Alternatively, couldn't it just empty all spawnlists and add stuff that has weight?
For the time being, I found a workaround. I'm using LLL to set enemy weights.
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.
Probably not DawnLib I don't imagine I touch this
Maybe it's the coins from CR influencing that value weirdly but other than that no idea
I don't have CR so idk
I thought so, other than that I have no ides
Is the 2000+ on the scan command btw do you know?
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.
2 forest giants a bracken from this seed after my final (hopefully) fix
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
Sounds fairly normal for Rend with only Bracken.
As long as they don't exceed their max count.
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
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
Tested 0.9.17, I'm still getting the bug.
wha
i couldnt with the code and seed you sent π
I got it with this seed. 19798987
On Rend Eclipsed
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.
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
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.
yeah i know whats happening lol
Ah sorry.
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
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
Alright, I will test it.
i will be very unhappy with myself if this doesnt work π
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.

Cool, 3 Rend Eclipsed and not one of them went above 5 Coils.
@oak linden as far as I can tell, it's fixed!
π if only
Are these warnings ignorable?
lol turning off all other logging is bold
but yeah i think those logs are fine?
assuming the cause was a lobby reload
Are there other logs? 
I think I deactivated it by mistake 
oh true, weird
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?
I love the environmental story telling in these patch notes lmao
uhh i think you'd need to do it per interior
never considered a global thing lol
The world craves a different apparatus-like mechanic on steroids...
I'm sorry Xu
its okay π


