#DawnLib [V80]
1 messages · Page 5 of 1
Tbf it's just grabbableobject with two virtual methods
Like inheriting it won't do anything lol
yeah i guessed but some items of mines inherits from walkie, soccer ball blabla
Oh fair enough
I need to make it an interface anyway
I forget why I didn't at the time
that will be cleaner yep
But I need to make it an interface and inject it into every grabbableobject
That was the initial implementation and I guess I forgot and redid it as just a class lol
One value but you could probably spin it to be multiple using JToken
JToken is like a newtonsoft thing, I've never used it before but it's similar to object
ooo
It's something I'd have to look into to explain or just ask matty probably
interesting, if this really works then you gave me one more reason to use DawnLib lol
I think the coderebirth halloween update will give some people another reason as well
It'll be an update entirely using dawnlib and not touching coderebirth at all
Just to show how far things can be taken
(Item replacements, enemy replacements and unlockable replacements but there's just a lot of control on what you can change, add or modify)
Finally a replacement for SmartItemSaving?
Should be ye
That'd be cool to see. I think this project will really change a lot for the better and the way it goes currently is frankly incredible. Keep up that good work ^-^
Oh I thought the names on the radar were an easter egg til Bongo showed the reference in how it works. Mostly cus of the Mel pfp and the name being Yeeeeeeeeeeeeehaw lmfao
lol
anyway there is an incompat with AutoScroll rn, i told mrov about it he'll probably update his stuff to run like half a second later than it does, that's about it
I'll try doing that tomorrow and send you the fixes to test 😅
hey, 2 questions.
should SUITS be throwing this error? I get that suits can be unlockables, but, a lot of suit mods will likely be never updating... xD
also i think for the first one it is a body of a dead thumper, so ill check that out, but unsure why thats erroring when the other bodies dont (its from SellBodiesFixed), ill check them all out later thought, just figured id write because i was surprised the suits popped up, especially as some people have hundreds of suits, luckily i only have like 15)
[22:21:59.9807612] [Error : DawnLib] Item: CrawlerBody(Clone) doesn't have a DawnItemInfo, this means this item cannot be committed to the savefile, contact the developer of this item to fix this ASAP!
[22:21:59.9807612] [Error : DawnLib] Unlockable: GlowSkelActi doesn't have a DawnUnlockableInfo, this means this unlockable cannot be committed to the savefile, contact the developer of this unlockable to fix this ASAP!
LL items not have a DawnInfo is a me issue thats fixed in a version i just did, i can give you a new build if you'd like to try
but the current version out on thunderstore should be saving LL unlockables just fine
oh right suits arent LL
ugh ill take a look at when moresuits adds suits 😔
ok, well, mid session, just thought id share while my friend takes 5 mins to reload the game xD thanks
oh thats fine then, as long as the item gets added by LL it'll be okay
please tell me you're not adding it like midgame
no no, i meant in the middle of playing, just waiting for my friend to restart his game as something broke his game. so was reporting an error while i wait.
yeah that's fine, by adding midgame i did mean the CrawlerBody(Clone) item, idr if you ever worked on SellBodiesFixed or if that was someone else
im hoping that mod isnt adding their Item's midrun
oh right, i d k. but it adds a lot of items as bodies, and is supposedly working on v73, ill report it to them later once ive checked it properly, but i assume if one is broken, all should be broken.
yeah rn its probably a me issue
to be fair, would that error only appear if an item was spawned in a round?
we only killed a thumper that day.
nah there's 2 reasons that error would appear, the first is that the item wasnt registered on like, startofround.awake or whatever
just actually checked, the thumper body vanished, so i guess the error was correct for that one.
and the second is that i was checking for items before LL saved em (in the current version of dawnlib), so this is kind of an everyone LL item issue
yeah the thumper body would vanish, that is completely my bad (Assuming they registered it correctly in sellbodies)
are the suits gone btw?
ok, so potentially thats still a you issue?
yeah the item disappearing is potentially a me issue
we have suits terminal, and they are always unlocked.
okay nice, since they're always unlocked its not something i gotta fix immediately
the problem is the moresuits dev patches prefix of start, so i need to collect the suits AFTER they patch, but i cant since i use monomod
as long as the suits from that mod are always unlocked though im fine with letting it be like this for a while until i force myself to do a harmony patch
or ask em to patch earlier
yeah thats fine, i got that would personally have no issue for me (because i unlock them all the time), but yeah, i can see that being a problem for others if they dont.
v0.3.6
- Got rid of DawnGrabbableObject, replaced with a preloader injected interface, DawnSaveData
- Fixed incompat with LL items not getting registered
i added the interface DawnSaveData, you should be able to do what you want with JToken stuff inside of it, it's in vanilla methods as well so you can patch it but it'll just have the default implementation of using vanilla methods inside of it unless you edit it through a patch
.....actually nevermind that's a really bad joke
So fast as always lol, thanks
Ill def take a look at that when ill use dawnlib but who knows when idk
Last version.
I deleted my savefile and the scrap and items are still present.
Also I'm getting this
had to delete the save twice to actually remove the items in the ship
dawnlib .3.5 and .3.6 gave me the black bar
havent tried fresh minimal profile tho
Xu said there's an incompat if you use DawnLib and AutoScroll together rn
@thorn abyss @paper fog If you have AutoScroll try disabling it
Should fix the issue
At least if what Xu said is to believe anyways
Idk then
I lowkey am mixed on my feelings about DawnLib including moon and interior stuff anyways
Doesn't really feel fitting for DawnLib imo
:0
too bad
you fixed lethal elements
fix this mod
pacoito did all the fixing of Lethal Elements lol, I only asked him about it
So ig you're asking pacoito to fix DawnLib
☠️
@white finch I'm sorry apparently you have to fix DawnLib now
I have 0 coding knowledge
LOL
I would break it not fix it
I may be smart with a lot of things but coding ain't one of them
pacoito did all the coding for BetterLadders tbf, it was a collaboration project XD

He's even credited for redoing all the coding ☠️
i don't see how this is helpful. dawn is supposed to be a modern api for everything, it was going to have moons/interiors eventually

-# 

wait so dawnlib will be like LLL 2?
They want it to be, but I saw a ton of pushback from other devs about moving over to it from LLL so I don't think it'll replace LLL
I was actually just now pranked by DawnLib 
only reasons i could see for not wanting to use dawnlib is either its still kinda buggy or they dont like xu
Been trying to fix how LLL's handling ship lever, but I was wondering why this message kept showing up (forgor I had DawnLib installed in my testing profile): https://github.com/TeamXiaolan/DawnLib/blob/main/DawnLib/src/Internal/DawnMoonNetworker.cs#L244

It's cus they don't like Xu from what s1ckboy said
Idk what she did to piss so many devs off though
☠️
teehee
idk either
that might be a bug if youre seeing that though?
Shows up when routing to a moon
Oh huh didn't realize the ship lever tooltip's just disabled when routing (in vanilla)
I was trying to change it to say like 'Routing...' or something but I guess it's not necessary

Autoscroll removed, bug still present
yes
try
doesn't two radar map fixes a desync bug?
You can use FixPlayerName instead
well it also give u the line
https://thunderstore.io/c/lethal-company/p/chuxiaaaa/FixPlayerName/ This mod will fix the same desync issue
I dont' have the line with two radar map removed
gotcha, thanks
tf you mean it doesnt fit
its a fucking library
you tell batby what to put in LLL and not
I think it's the name of it that makes it feel unfitting, Libraries are usually relatively small, and large API mods are named something diff that doesn't include lib in the name so it just feels weird since DawnLib's goal is to be a large API
I think that's why it feels weird I didn't say I dislike it
it just feels odd
well this isn't a small library
To be fair the LevelLoader part of LLL kinda suggests that's the only thing it do 
its just an easter egg
because xu outdid themselves
why make a bunch of small libraries when you can have everything
Dawnpi
absolutely ridiculous what i wake up to, you have no idea what you're talking about and you have no right feeling self important enough to be here saying shit like that, please get out of my thread#
I didn't say anything negative you can chill and put the pitchforks down
what you said is so insanely negative, you need to recheck yourself
It wasn't though, at least it was not intended to come across that way
maybe not intended but it didnt come out that way at all
I can't help that I have Autism and I say things sometimes that comes across in ways I don't mean for them to
that
doesn't..
what?
I believe while not malicious, none of your comments were pertinent or helpful. Code rebirth lib was renamed to dawn lib to account for the scope enlarging
I hate that it happens, and I feel bad when it does my goal is not to piss people off by saying some things
I just reported this :,[
Yeahhhh I get ya
I'm sorry, I genuinely did not intend for anything I said to come across as rude or negative at all
☠️
You try living with a slew of mental issues for a day, words are hard and sometimes things just come out wrong 😔
i think you shouldve read the pinned message
its just you come in often and give your opinion which usually boils down to i dislike this, and while youre entitled to your opinion, its usually not constructive or pertinent to any ongoing discussion
I understand that, I have it too
-# Also unfortunately not really a defense, I'm willing to bet a good chunk of people here are on the spectrum™ too 
And I relate
In this case it wasn't me disliking it at all or trying to be against it and I'm sorry it came across that way
😔
I can't really defend or say if my other alters have acted opinionated or self important but I definitely wasn't trying to do either of those things
Probably, I wasn't trying to use it as a defense I'm also aware my DID plays a huge role I swear everytime I say or type something I have to put words together and just hope it comes across in a good way and when it doesn't I feel terrible
this probably isnt a good time, i'll come back later
Ye I just mean you've already apologized and it's fine to just move on, explaining yourself and/or attempting to justify actions ain't really necessary 
Can also kinda come off as shifting blame or making excuses, but I know that ain't really the intent
not to get in the way of whatever is going on here.. but... in a fresh profile, default configs... this is happening.
0199f578-5f05-f954-4731-fbf9158db22f
it doesnt happen with dawn lib 0.3.4
it does happen with dawn lib 0.3.5
its a conflict between TwoRadarMaps and DawnLib, I didnt try and downgrade TwoRadarMaps because there is only one version which is supporting V73.
I will post it in the other thread too incase its fixable at the other side (TRM).
what did you do to cause this btw
I just shouldn’t have said anything I’m sorry… I really did not think I’d upset everyone over what I thought was just a small comment. Sometimes I hate being an alter and being our system’s Co-Host cus I don’t always know if what I’m saying is right or not and if it doesn’t sound bad my other alts don’t step in and say “Maybe you shouldn’t say that Lacy” so situations like this make me feel genuinely terrible… I understand now why Alex used to get stressed out a lot tbh cus it’s so easy to accidentally fuck up things and it really sucks v.v
in orbit, and i think while landed, this is just always there.. if you host a lobby solo with that profile, you should see it appear
i think the line is always there, but the routing to only appears in orbit, the screen does change.. but its a mess
i just wokes up cheese let me catch up smh
they were just talking bout this
go back to sleep
its eepy time
nah im awake enough to not be able to go back to sleep
well i wish they were talking about it in a way where i could find a result so i didnt disable 200 mods for 2 hours at 5am trying to work out what was causing it 🙂
sorry 😭
but yeah the problem appears in 0.3.5 and 0.3.6
its fine, shit happens, if i had of just turned off the most recently updated mods, i would have found it right away... but i havent used mods until today on v73... SO.. yeah, could have been anything for me 😄
its ok now we know all the other 199mods on yours didnt affect it :D
well.. i dont think anyone was looking at them except me 😄
its ok im also looking at my own stuff
So true haha
I meanthey were literally just talking bout this
Like a few minutes
Moroxide had the same issue
Tworadarmap
Is haunted
Or maybe dawnlib or both idk
well using TWOradarmap alone is indeeed gonna invite something 
:0
Ooooh makes sense
Small spooky Xu
I mean lol
oh yeah, i saw part of the conversation, didnt see the image, but id already narrowed it down to dawnlib and trm by then.
problem with just images is.. cant search for the image with text.
I wish there was a mod that every time you did a ship scan it would emmit a submarine style sonar ping sound.
maybe it was LR
I don't know why I keep forgetting to type entire words
Especially because I think of the words and then continue thinking I typed them only to find out I didn't.
It's like I'm going schizophrenic.
It makes it really difficult to be in the server tbh
Makes it sound like autistic people can’t learn
You know that's not the case though 
-# (But also probably not really a discussion to be had in the DawnLib thread)
Now that was offensive. I didn't see any negative or painful comments except a few that criticized luni. She apologized because now every message of her own that can be misunderstood ends up in people getting very mad. She doesn't have bad intentions ffs, I know this, I've seen her growing as a person for a year and I have similar problems, so I understand her. You better chill and just tell her that it was badly worded
My thread isn't a place for drama, please do not continue
I would love to get deeper into that thinking
Mrov i love you but I'm hoping it ends here
I'm not continuing this here, no worries
You know how I feel about any of this so it's best for everyone to just not continue, thanks
Who up dawning their lib
Can you explain this to me rodrigo
It's an easter egg probably 
Paco
Hmm
Yeah probably some sort of easter egg
I feel like it has a deeper meaning on a while
Whole*
Whale* 🐳
Wheat*
Women*
You were sitting eating breakfast at dawn and thought “I wish I had some good name for my new library mod”
And FriedEggLib wasn’t quite the name you were looking for
101 gals confirmed
I got flashbanged from my phone seeing the cat
That's exactly right
I was playing I spy and that was my exact thought process
If it was at breakfast time you should’ve named it ToastLib
FriedEggLib kinda fire though
Is it gonna be the year of food named lib
Youre looking at your modlist trying to check something and got hungry instead
modfood list
JToken is the name ( abstract class ) Newtonsoft gives to JSON values
it represents any value that can be used in a json
so all primitives + JObject ( litterally other arbitrary nested json objects )
first time im seeing these
is this the saving achievement to savefile thingy after going back to orbit
Those be suits 
I think MoreSuits compat's still being made, but those errors are ignorable iirc (though not sure if that's the case with the new saving system)
There are a lot of words in here but just incase I will report something very minor, i have the clipboard and what not turned off using science tweaks or generalimprovements i believe (forgot which one), and 'unlockable saving' caused it to come back until i disabled it in the config of dawnlib
aighty
so what about the clipboard and sticky notes ?
Those do just be the two items the ship starts with
those items are part of the scene, i cant even save them so i'd be surprised if i somehow bring them back
SBT or GI would have to make compat depending on how they're getting rid of those items
as for suits its ignorable since most people always set suits up to always be unlocked but ill eventually make proper compat
<- Adds custom suits to the store rotation 😔
(Hence why StoreRotationConfig exists lmao)
jk it ain't urgent, I still need to update my own modpack overall 
yeah it's just that moresuits adds them at the very last possible moment lol
i'd need to do a harmony patch specifically after them just to get it registered
Fun
but ill probably just move their patch earlier
to like terminal awake
rather than startofround start
(unlockables load from the savefile at startofround start so i cant do it later than that)
Ye kept it as a dummy method so it won't complain when DawnLib attempts to patch it
noice
ill get rid of it next version then, might take a bit since there's some weirdness going on with preloader and whatnot
all of this because XU is a MonoMod elitist /s
exactly
hey @oak linden, the modpack i'm playing on doesn't load moons and i'm wondering if dawnlib is doing it
cuz this happens upon changing moons (the host's icon appears)
and this huge ass shit appears
I've been getting the wrong images popping up as well, sometimes the first frame is correct and then it just blacks out
Do you have two radar map mod?
People reported this issue with that mod
I havent had the chance to look into it
I do not, but just in case, I will say i was using imperium to route at that time since i know that mod does... things
Oh yeah idk I don't test with imperium
@oak linden I know this is the wrong thread but I could not find the other. Is this mod still needed?
https://thunderstore.io/c/lethal-company/p/XuXiaolan/SoftMaskKiller/
With diffoztweaks no, but whatever used to make it act out still will
So if I have diffoztweaks I'm good with out?
Ye
Huh near
okay, gets wonky if you go to a moon that doesnt have the image
1st moon -> normal
2nd moon -> normal if has image
3rd moon -> turns static, shows 2nd moon image
4th moon -> becomes black box
5th moon -> back to normal if has image
or might just be black boxes now rather than nothing if the moon doesnt have one
idki m too tired for this im out
Oooh well that helps me a lot thanks
When I get around to it I'll remember this
That does truly help a lkt
is that sarcasm 😭
No it's not 😭
Also I get this with the newest version of dawnlib
Do you have two radar map?
yeah
Cuz I've been told it's with combination with that mod but I haven't investigated it yet
so if u guys got those lines try turn off any mods taht is related to the monitor
thats how i found out tworadarmap does that
Just tested. Its TwoRadarMaps.
Does TwoRadarMaps need to fix it or do you?
Dunno, we'll see
Also I see that you figured out a way to make the loading work for custom moons using lethal level loader?
When routing to auralis, which is using lethal level loader, it showed the loading bar with the player head just like the other moons.
What the fuck is that thing?
.....idk what is but I don't like it. It looks like it's going to steal my soul.
Hell yeah
🤘
Yeah but it's not accurate at all it's just there for consistency
It will. Bye bye 👋
It'll just look finished from the first instant pretty sure
No idea why this error is throwing on boot
Oh maybe this, but why is it still erroring like the function is there?
okay I was super confused as to why MonoDetour's analysis isn't there but it's because it's a hook and the method is JITed for the first time there and it always had invalid IL
anyways this is an issue Xu is aware of
it is possible that its your mod conflicting with various other patches from various mods, and TwoRadarMaps is just the main thing people use which its conflicting with, i d k.
my friend pointed out, it looks like the line in the middle is the start of a video loading or something, so maybe your mod is interfering with how other mods handle that screen.
I mean I do mess with that screen so I'm sure it's an incompat with my mod included just wasn't 100% that it was TRM
Zaggy was also confused when I told him about it lol
yeah i read in his thread xD shit happens, what can you do xD dont think it even produces an error, just, things seem to be running together wrongly.
Yeah is weird
reminder that mrov autoscroll also trigger the line
Oh I never had that when testing with autoscroll so that's weird
hi zikpa
but maybe i was tripping cuz i remember someone said that you say autoscroll also does that lol
Nah afaik autoscroll just doesn't work as intended rn as in it does nothing
Will be fixed soon so its alright anyway
aighty 
oh does it not work?
ig I never noticed cuz I haven't been playing custom moons in quite a bit
but wait no i swear i saw it scroll last night
ill try import the pack from someone last night they also have the lines and autoscroll be scrolling still
The new hotloading UI broke it since i re-enable the moon's information the same instant mrov tries to run something relevant to them but they're still disabled
So it's like it just needs him to wait like half a second before starting the scroll
Maybe but I could guarantee it not working for me atleast dunno
Lol
oh you're talking about dawnlib ok
like I thought you meant it was broken like, since v73 or smth
not because of the incompat
makes sense
Nah its so minor unless zeekerss changes up a very specific thing it should be fine
ye
I wonder if the easiest way to even consider non-moon related content hotloading is to just dump like some absurd amount of dummy prefabs into the network registration then indiana jones swap them in and out when needed
that way you don't need to deal with the idea of having to register and unregister mid lobby and whatnot
Networked object pooling 💀
Interesting concept lol
I JUST CAME BACK
@oak linden IS THIS NORMAL?
It looked so good before
Unless you wanted to change it
But before it looked so good...
no i didnt make it extremely bright red on purpose lol
Oh mb
must be something i changed by accident, ill fix it next update too
Whoo hoo
!
Easter egg?
it is a pretty cool easter egg
what font is that in the pic
that's a good question i gotta open the project and check
probably one of the default ones, i wasnt too sure if i should use the LC one but i do use it in the actual button's UI
(which isnt shown in that screenshot)
this would be how the UI would look like before it broke for some reason last update lol
actually that might be the normal LC font
wow that screenshot from pineapple is really messed up, how badly did the bundle differ from someone else thats not me building it lol
Yeah I was gonna say
Though if you don't mind abit of nitpicking feedback,
-Bit odd that in the left panel the distance on the right is notably larger than the left and top
-The max font size on the achievement descriptions feels a little big, that Alternate Horizons desc. looks massive
-Those bin icons are very big, maybe reduce them to where they will allign nicely with the achievement title text
-The big icons are also a very dark colour and hard to make out in that pic without full-screening it
-The hidden achievement texture is a little low res 😛
yeah i appreciate the feedback, ill have to recheck the first since its a poorly cropped old image of the UI so it might be lined up unsure, i agree with 2 and 3, 4 i assume you meant bin, i should change the colour maybe, white might contrast better and not just look horrible we'll see ig
(for 5 i definitely didnt just copy paste the steam hidden achievmeents icon lmao)
i think its lowres because icons are at most 64x64, i dont think the spacing i gave em allows people to make achievement icons bigger than that
If you can find a higher quality image I'm pretty sure with the right import settings that should downscale nicer tho
no stress on any of this though ofc it's just yap for the sake of it
yeah i do appreciate that, i didnt enjoy the end result of the UI too much so i've been looking for feedback for this anyway
ill probably have to make a custom image for hidden achievements, which might not be a bad idea anyway
@obtuse pecan it might be because you change the scaling of items (and i don't put that in the save file) but the SSS just doesn't hold up the items despite the vanilla cupboard holding em up, I'll test more tmrw with scaling but I didn't think matty fixes would do anything with scaling
How it works is that the scale is restored after the item has been placed by Matty Fixes
So no I don't think this is it
okay idk what more i can do for ya, this is before and after lobby reload and it still doesnt work, ill keep investigating and talk to matty but the positioning is the same
I'm being so real
Some items just flat out vanish in the SSS
But keep up a slot and you can't take it out
It's a a bit funky
okay well i do see the problem :p
you'll have to patch postfix startofround.start @obtuse pecan
you'll have a lot of this problems XU XD
yeah a lot of people probably will patch those two specific methods
dunno if i can really do anything about that sadly lol
honestly this type of code would probably have been better on like, the .Start of the SSS though?
why?
i override LoadShipGrabbableItems completely, kinda have to since im overriding vanilla's saving entirely
AH
(also this code shouldn't be here i think, like i said, .Start of the SSS would be a better suit)
wait, so it does not run anymore at all?
ye it doesnt run at all
oh boy
hmmm ok, ill see
there are probably a good chunk of mods hooking into that so i would have to ask all of em but yeah kinda have to 🙃
I mean if my situation is just me changing this call for it to be in the Start of the SSS i guess that could work, but what about other mods that just have code run by patching this method without other alternatives?
Is there another good place to patch
ye just postfixing StartOfRound.Start would give basically same result
as long as they add host check
thanks
Since ill install DawnLib in my test local profile to see if its working, while im at it maybe ill go and switch to using dawnlib directly so i dont need to do that in the future
Ill come back and ask you things then
you'll probably need the local version of the next update since i havent pushed me implementing the fix for them being on top of stuff like the cupboard just fine
i am gonna push it sometime today bhut just testing a couple more things, so you might or might not need it :p
oh so you fixed something after all? ok i didnt know what was this first #1387434268577370324 message
So you fixed some item positioning but now there is just the patch i made that needs to be edited?
yeah i fixed it for all unlockables actually staying on where they should be, cuz before it'd just go to the ground
(and it actually still will for some vanilla decorations and ship upgrades because zeekerss put them on the wrong layer, but ill also patch that lol)
yep
well glad a fix for that has been found, hopefully the items falling out of the SSS were the cause for my friends falling out of the ship too (as that happened last time as well =p)
i would not hope such things but maybe? lol
well i hope its not the cause, but i also hope the falling doesnt happen anymore 🙁 but i havent seen the falling since i put the vanilla cabinet and SSS apart (and if you remember the vanilla cabinet seemed to be moving items from the SSS). lol
Yeah i remembered but since i never managed to reproduce this then i assumed it was Matty Fixes or simply something strange in the modpack
But yep i hope these issues will be gone
for you
matty fixes does do stuff with cabinets but thats all i know, i dont touch anything like that so maybe stuff will work out better :p
we'll see
also i'd push teh update now but uhm yeah quite a few prefabs need fixin
matty fixes does try to parent items to the cupboard, but uless the two storages were litterally intersecting i doubt it would cause problems
Thats what i thought as well
well yeah, my thought was the reparenting to the vanilla cabinet in matty's fixes, was pulling items from the SSS to the vanilla cabinet, leading to the SSS breaking, leading to the falling out of the ship (because the items dropped to the floor from the SSS), then it seemed it maybe improvedcruiser shifting items around (i d k if that did anything, but i disabled a setting there).
but after i disabled the CI setting, and seperated the cabinets, no more issues... til this weekend 😄 (SSS items fell again)
when i had issues, they were touching, but not crossing, afaik.
i now put a few (ingame) "inches" between them (at least, maybe 10 inches?)
yea when me and zigzag update it should be back to normal
yeah i get that, dw xD
silver lining anyway... at least it all leads to greater understanding of the bs that is falling through the ship floor.
Oh this looks way better wth
yeah i know lmao, bongo built it and ig it didnt like it when they built it so i rebuilt it and its fine now
okay done
You know what happens you change one thing a million other things change

Pretty cool Easter egg tho
agreed
v0.3.7
- Fixed a compat issue with TwoRadarMap.
- Fixed registering issues with MoreSuits.
- Fixes regarding soft dependencies breaking.
- Fixes regarding UI to achievements tab.
- Fixed issues regarding LL shop items not being registered potentially
- Fixed issues regarding items not spawning on top of furniture as they should be, including fixing some vanilla furniture that would have forced items to spawn under, like the following:
- Table
- Romantic Table
- Signal Transmitter
- Sofa
- Microwave
- Fridge
- Electric Chair
- Dog House
there might still be a couple more issues with TwoRadarMap but hopefgully its fixed now
lol i forgot to push my changes
Does this mean
yeah it means ill push again
No silly it means code rebirth tmmw!
oh uh probably
This is a joke please do take your time
Cool easter egg
That's a pretty cool Easter egg tho
Hey, this is a new save file I just made and for some reason it contains scrap of a previous one that I just deleted. And that one key had a weird rotation so that it stuck in the ground. Besides DawnLib I have BetterSaves & BetterSavesFix installed, just like myriad of other mods which I assume to be irrelevant for this.
Currently we are testing though and enabling one mod after another, trying to figure out which (without errors) makes connecting impossible, so maybe that has something to do with it
you cant grab thahat key? it's probably desynced into someone's inventory, i've seen this so many times but dunno whats causing it
not dawnlib afaik
I got this also
[19:30:06.8624838] [Error : DawnLib] Item: StickyNoteItem doesn't have a DawnItemInfo, this means this item cannot be committed to the savefile, contact the developer of this item to fix this ASAP!
yeah those are fine
ignore the scene placed item errors
sticky note and clipboard
those are just in the scene zeekerss doesnt spawn em and i havent bothered "fixing" em
bettersaves might be causing some of my save stuff to not work tbh unsure
I can grab it, no problem
i dont think any of this causes players to be unable to join though
oh, then you probably left hte lobby while dropping it or smthn similar so it stuck to that rotation lol
cuz i save item rotations
and it looks like that key is being dropped lol
lol X3
No, it is entirely unrelated to that; Sorry if I did not communicate that well ^-^'
I was just explaining what we are in the process of doing while we encountered this
That is primarily what I am concerned about with this as it kind of suggests that when I open a new save and items from a prior, now deleted one, somehow moved there
i should be deleting any savefile info when a save deletes (atleast from my tess stuffis gone fine)
tests*
It's weird. I can not see a clear cause or correlation either, just thought it'd be better to share such strange behavior in case you or anyone else got an idea as to why this happened
yeah ill keep it in mind thanks
Just food for thought but if your doing an extensive full replacement of the saving process should that maybe be a separate mod independent of all the additions dawnlib adds?
That way it’s easier to assume any modpack (and by extension mod) would have no strong reason not to use it
it'd need to depend on DawnLib since it uses the data about the items i collect, the SourceGenerator in Dawnlib collects the different vanilla items, Preloader in DawnLib makes it easier to get tthe data from each item, and DawnLib itself implements the NamespacedKey system that i use for saves
I see
im about to about 6 different C# projects in DawnLib lol
Compatibility has the stuff that cant belong in editor even as soft dependencies so the editor tool auto deletes taht when seen in the editor
DawnLib is just the coderelated registration etc
Interfaces is what the preloader takes from to inject interfaces into different classes like Item
and Dusk is the editor registration and registration stuff that isnt base game
If I may input on this, I think it's fine regardless if it stays part of dawnlib or becomes standalone. That being said it might be better for optics if it was standalone. Some people might not know about dawnlib's item saving rn, if it was a separate package dependant on dawnlib it would be more apparent I think. Do what you want with it that's just what I think
um.. the two radar map incompat issue thing seems still to be occuring (just different) from before, at least for me, just disabled two radar maps and it went away. lol
seems to now be showing my steam profile picture and name ingame interestingly.
Lol how lovely, but its still TRM issue?
yeah, i turn off TRM, it goes away, let me double check its happening only with TRM and Dawnlib, didnt get a chance to check that yet, one sec
ok, maybe its now TRM with something else... hmm
yeah, seems dawnlib isnt causing this anymore 😄 nvm
ok, im confused, because its now not occuring.. maybe related to the save system being converted? i was using a file that was last saved on the vanilla save system.. but have TRM reenabled and its not happening on my main profile..
Weird, maybe it's just a thing with routing to specific moons and not particularly TRM then
I'll have to do more extensive testing
But wouldn't be save system :p
yeah i d k, ill leave them both on and see what happens. its a minor bug, not a big deal.
If this is the only issue encountered though I'm happy with that
it reappeared.. hmm...new save, freshly opened game.. it appears.
i reopen same lobby without closing game.. its gone.
i created a new save without re-opening the game.. and it was fine, but then change of moon.. and its back. so it seems its occuring on change of moon now.
Okay but just so we're clear, this screenshot doesn't show anything wrong right?
You're just showing that you routed to offense from another moon and it did the overlay bug
it does, it shows the line.
ah ok, well it doesnt go away
What I'm confused about is how u managed to manifest the ship icon above the bar (the blue one), I've been trying and it just never wants to appear 😭
You also reminded me I needed to rewrite a bit of how the line works
Since rn it snaps to the next position (which is just 100% for vanilla and LLL moons), but I'd like to make it step increase from where it is to the point rather than snap to point
im not sure what you mean xD
it seems the loading is working correctly with just TRM/DawnLib, so maybe i need to do more testing with my profile
The progress bar is supposed to have a ship icon above it, but I've never managed to get it working
Appeared in your screenshot somehow lol
oh that original one yeah.. not the rest though.
ok, i know why the icon appears.
no icon during the loading time
icon appears once i pull the lever to land.
so with my profile, its doing it wrongly, but showing the icon, so something else is conflicting in my profile, ill try find out what.
Is it because that ship icon is part of the clock when vote is called
Like does it just get unloaded in orbit
It should just be part of the loading bar, my guess is some sort of sprite layering issue
Though I really think this is just a DawnLib bug to be honest I dont think it's a profile conflict
might just be because my pack is full of stuff, but on latest dawnlib being 0.3.8 when transiting to a new moon this error pops and doesn not transit me to a moon thus softlocking, but 0.3.6 functions properly
[Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
Dawn.MoonRegistrationHandler+<>c.<DelayTravelEffects>b__10_0 () (at ./src/API/Moons/.MoonRegistrationHandler.cs:361)
UnityEngine.WaitUntil.get_keepWaiting () (at <c39a522eee05469b8171a6cfeb646c59>:IL_0001)
UnityEngine.CustomYieldInstruction.MoveNext () (at <c39a522eee05469b8171a6cfeb646c59>:IL_0001)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <c39a522eee05469b8171a6cfeb646c59>:IL_0026)
@obtuse pecan Will the SSS be updated for my session tomorrow for the DawnLib compat? ;o
New changes be peak
Ty Xu
i just turned off the save stuff for sss to work
Oh seems like quite a lot broke before this I thinn
This error is saying that the networker is non existent
You got a log i can look at?
I could do that but it's gonna fix so much it's worth having it if I can
heres the log
gotcha icic, im naturally impatient :bb
Yeah I cant even open the game anymore since the recent dawnlib update, I Get the fatal error off the bat when loading in, downgraded it to a previous version I can load into the game again, but cant even play with friends anymore since the game disconnects my friends from the hose (me)
Huh I don't see anything going wrong too badly, HQRebalance, mirage and spectate enemies errored a couple times, I'm unsure what happened here
Uh what's the fatal error?
yea im not certain either, it only appears on the latest ver, i didnt see anything that stood out aside of dawn
but 0.3.6 does function perfectly fine
Hmm I see
I dont think I really changed anything relevant to that stuff in 0.3.8 so that'll be fun to check ig
[Info :HookGenPatcher] Previous MMHOOK location found. Using that location to save instead.
[Info :HookGenPatcher] Already ran for this version, reusing that file.
[Info :HookGenPatcher] Previous MMHOOK location found. Using that location to save instead.
[Info :HookGenPatcher] Already ran for this version, reusing that file.
[Info :DawnLib.Preloader] DawnLibPreloaderPrepatcher Started
[Fatal :DawnLib.Preloader] Could not find Interfaces dll! ⬅️
[Info :FixPluginTypesSerialization] Running under Unity v2022.3.62
[Info :FixPluginTypesSerialization] Found offsets for current version, using them.
[Info : BepInEx] Patching [UnityEngine.CoreModule] with [BepInEx.Chainloader]
[Info : BepInEx] Patching [Assembly-CSharp] with [Dawn.Preloader.DawnLibPreloader]
Do you have a modpack code for me I can use btw just for later
You sure you're using 0.3.8 of dawnlib?
0199febe-00a8-f1af-5af5-77637ddd9419
there you are, with current ver being 0.3.6
100% Sure
Can you try reinstalling mod, maybe the mod manager didn't do it right???
It's basically saying you're missing part of the mod lmao
But based on the log just above yours from dilly it's not for them
That's why I'm confused
I Did though, I Uninstalled and installed an older version, it worked, I Unistalled the old version and installed the new one again and it gave me that error both times with 0.3.8
Are you able to open up the mods folder, go to dawnlib and screenshot what's inside?
There should be a com.github.teamxiaolan.dawnlib.interfaces.dll somewhere in there
Are you able to copy paste your file path here? You can obscure the naming of anything you don't want to share I just gotta be thorough ig
C:\Users\ ######\AppData\Roaming\Thunderstore Mod Manager\DataFolder\LethalCompany\profiles\MyMods\BepInEx\plugins\TeamXiaolan-DawnLib
Thanks, you might be okay to downgrade to 0.3.6 for now until I figure this out (tomorrow after I wake up)
Alright, Thank You
i also hope your illness has been improving well, make sure to drink them fluids and get all that sleep
Thanks! I'm almost through it yeah
No, not tomorrow sorry
But ill try to do it as fast as i can, so first a small compat update and after that a big compat update
@oak linden Actually wait why are the .dlls on the top directory here
yeah its not a conflict with TRM at least, still gettting the issue in my session. it just seems on and off now, but now my group have gotten into playing, its stuck there whether in orbit or landed.
They're supposed to be in a DawnLib folder, which I assume is what you're looking for in code 
maybe related to this...? was just checking my log, can send my new log after session, but i still plan to test tomorrow.
[23:11:59.1384278] [Error : Unity Log] Coroutine couldn't be started because the the game object 'PlanetDescription' is inactive!
OH nevermind I'm dummy, I did not have latest DawnLib 
I see that is no longer the case, though I know not if it's intentional
@oak linden Since you save item rotations I assume I should disable this option in GI lol
im in the middle of testing all that stuff rn loll
from what it looks like, youll need this for items on furniture
and as for furniture, all items drop down 1 shelf in the vanilla red cupboard when loading a save, even after disabling matty's fixes, generalimprovements and sciencebird tweaks
and just incase ill mention it again, but going to a moon that doesn't have an image/video as a preview on the monitor causes the previous moons image to freeze/displays a black box
furniture rotations - im not 100% with my report, tbh. the monitor one, i am at least positive about. seems way better than it was on previous dawnlib with items and unlocks, so amazing job so far
I think me and matty ditched the extra folder since the directory looked like:
DawnLib/DawnLib
(There wasn't a TeamXiaolan-DawnLib though)
That shouldn't be though, unless the scrap is fairly problematic I've had no issues with saving items at the right heights in the furnitures etc, even furniture's that MattyFixes and GI couldn't do before
And yeah I'll probably go back to this lol
I will try even more thorough tests, what would be the best case scenario for dawnlibs new saving stuff? turn off matty's fixes, GI, sciencebirds tweaks (has a furniture storage tweak in it)?
Also. I was using 'lobby save' command, from lobby control. but i know i can force a save if i fly to the company and back if you think thatd be wiser
Lobby save isn't even needed since vanilla does save when u exit the lobby lol
Assuming you're in orbit
But yeah i never tried with having matty fixed GI SB turned on
Matty Fixes thing probably doesn't run with my mod and the option turned on
it wouldnt save my positions in the past
uhhh specifically bought furniture, moved items, etc. without launching
You can do lobby save if you'd like, no harm no foul, but I am confident in it being somewhat redundant (atleast without a mods interference ig)
mmmm sure alright i will go test and return to see if i figure anything out
if people prefer you could go back to nested folders, just give them meaningfull names and update the preloader to search in thoose 🤷
i do not have the game files open but i'm quite sure vanilla only saves when routing back from a moon.
it will save local player values tho
clip 1 - Sciencebird tweaks, GI, matty's fixes all enabled
clip 2 - Aforementioned mods turned off (might have to pause at the very start to see rotations)
clip 3 - Some items from previous save carried over (?)
clip 4 - Items remained floating after moving furniture
I just think the way the rotations are handled is different, you can really change the way you place it down depending on your angle in clip 1, whilst in clip 2 they're all pretty much the same, but you can change the rotation if you place it from a very different angle. This might just be the way it's intended and I have gone crazy. As for items falling through a shelf, well... they do it either way and I didn't test with dawnlibs options turned off unfortunately. Of course, if you'd like, I can go test this in an empty profile, but... meow.
Meow meow!
How are you resetting ur save file btw?
deleting and making a new one when i do reset the save file, otherwise if you mean ingame - i just quit out through menu and load the save
Hmm so you are deleting it through the vanilla options
yes... is there another way to do this rather than deleting the actual save data on my drive (doing that sounds like a pain everytime)
no thats fine, i was just making sure there wasnt like a weird mod utility that you had that deletes save files or whatever
Ah, that sounds similar to what I reported earlier. In case that matters at all regarding items moving from deleted saves to new ones, I also had SBT & GI with their fixes running. MattyFixes was disabled. The profile was very similar to this with just a few more, most likely unrelated mods, having been disabled:
019a009d-291e-c272-158a-81d1908742ec
#1387434268577370324 message I lied, Im trying to do the small compat update now
@oak linden i got some errors regarding DuskUnlockables
oh yeah for scene placed ones you can ignore em
zeekerss doesnt sspawn that set of unlockables, he just has them in the scene
which has its own set of issues but it just means that in dawnlib i dont "save them" etc
ah ok i see
Then maybe you should add checks to prevent errors from everything placed in the scene
maybe but it'd have to be pretty hardcoded so not worried about it rn
ok
anyways rn im trying to change the patch you mentioned yesterday
If it works then later ill try to fully switch the SSS to DawnLib, at least i will try and see if it works without problems
🫡
so um... done a bit more Testing...
on my profile...
i disable Open Monitors (i know its depreceated, but its worked fine until now), and the issue goes away.
i disable DawnLib, the issue goes away.
i create a profile with only Open Monitors and DawnLib.. and all is fine.
so it maybe a 3 or more mod conflict between DawnLib and Open Monitors and something else, or something else causing the whole issue now, i d k
will keep looking into it.
Edit: can apparantly add Terminal Formatter to the list.. xD (but more need finding x.x)
hmm changing the patch did no effect, ill investigate a bit more to see whats going on
this does not seem to run at all, the same as the Loading part
was this also overrided by Dawnlib ?
saving items? lemme check
lol yeah i do also override that
it just be the 3, LoadUnlockables, LoadShipGrabbableItems and AutoSaveShipData
i have to override it otherwise basegame will run its saving which isnt ideal 
lmao
ok
im be honest, is that really a good idea to nuke these vanilla functions? Is it not possible instead to still make them run but make it so they have no effect ? Like for example harmony patch return false ? And in the patch you run all the things that are needed such as SaveItemInShip but everything else is just return false?
well, there are the obvious downsides of me nuking other people's patches, but its a sort of necessary evil, the fun reason i can give you is that i dont like harmony and prefer to use monomod to patch
but i believe LLL and LL also do their own saving, which i should be overriding
and theres also other mods that do try to save stuff like in the items
Also AutoSaveShipData is run in SetShipReadyToLand but items are not saved when disconnecting which is supposed to be in Disconnect of the GameNetworkManager so whats going on
wdym?
I mean ok thats fair, monomod is fine
But there should still be a way to run all those important functions to keep the calls while still having them have no real effect
I don't want to just disagree at what you made because im chill with it but other devs might be not, and patching vanilla functions should usually always be done in a way that will not nuke these vanilla functions completely. I have a similar example in LethalThings actually where the mod is just nuking the battery charger for some reason without any possibility for other mods to patch it if LethalThings is installed without patching the patch of LethalThings which shouldn't be something that someone would need to do in the first place if the original patch was made differently
GameNetworkManager.Disconnect is run when the player is disconnecting yes?
Well inside of this function we have SaveGame and this will run SaveGameValues and this will run SaveItemsInShip
You didnt said you nuked this path so idk why it's not working
oh sorry i was multitasking and accidently typed what i was looking at rather than what i was thinking about
i dont nuke autosaveshipdata
that one would be dangerous
i nuked saveitemsinship
they're on top of eachother so accidently got it wrong lol
i dont necessairly disagree, but unlike something like nuking battery charger, i do feel its important that people explicitly patch something that involves vanilla saving in mind that other mods could do the same and that they'd need to have some sort of compatibility with eachother
cuz otherwise you have like 4 main stream mods all trying to save to different save files about the same information and just causing some unnecessary performance
mods im thinking about would be like LLL LL SmartItemSaving and DawnLib
now obviously if a mod is unmaintained or something is preventing them from moving their patch, i have solutions to those specific scenarios
ok, found the sources of this issue.
019a015c-f601-8b44-c849-b36cea5e6946
DawnLib
Weather Tweaks
Open Monitors
Terminal Formatter
you have all 4 enabled, the screen has the DawnLib loading bar screen stuck permanently on screen after routing to one moon.
if you disable dawnlib, there is no loading bar screen
if you disable any of the other three, the loading bar appears, and disappears (intended effect i assume)
so yeah, i guess a 4 way conflict.. somehow.. lmao.
all other mods in that profile are dependencies except for the typeloadexceptionfixer mod.
💀 okay ty ill try that
hmm ok i see
then its fine
lmao ok no problem
So DawnLib actually nuked the save AND the load of the SSS 💀 that is pretty funny 😂
Rn Im just really tempted to patch your patch
Because i want to fully switch the SSS to DawnLib then it will have no soft dependencies problem, is that something i can do safely or no?
yeah lol, you are actually a rare case honestly, and i dont blame you for patching those spots, i might even have to check coderebirth later to see if i do patch any of those
you could probably do that yeah, but do make sure you still run my code if possible lol
Yeah ill do normal prefix/postfix without any override
And actually it's even better cause it will work no matter the config value
😏
jk, no it's just that i only use monomod when i need it, otherwise harmony is fine
Probably
fanatic?
also while im looking into the ship monitor issue, i did adjust some stuff like the slider
funnily enough slider was never a snap slider, it just had a really strong lerp value that skipped everything
Actually i didnt test it yet but im unsure if all items are safe from falling through the shelves cause the shovel is not placed correctly
But ill see if it's happening again after i add the new patches
i do know the binoculars moved down, and i do wanna improve it but i am slightly lost on that
Ask Matty then because it works perfectly with Matty Fixes
it was made with matty's help in vc dont worry 🙃 (though there's a lot more in matty fixes that i might have to slowly integrate in a clean way)
ok ok, hope this can be done soon
there was a point where i was really confused why my items just were not staying on top of stuff like the vanilla furniture i was testing with, then we tested with matty fixes and it was like "it happens on matty fixes too" lmao, was just a silly vanilla bug
for some reason vanilla raycast for item spawning and dropping from spawning has different layers compared to player dropping it
Oh really? But i didnt saw any items fall through with Matty fixes so idk how it's possible
it was only on like 6~ different vanilla furnitures
but if you do find an item that doesnt sit pretty in SSS (preferrably vanilla) i can use that as a baseline to test
i have a couple ideas
(their colliders were on default layer and not room, items go through default layer when spawning)
there is 2 SaveData in your patches with different parameters, how am i supposed to get the one i want by name?
oh with harmony patches i think you're supposed to just give your patch the right parameters and from there it'll know?
(or atleast thats how normal C# would work lol)
I dont think thats how it works, because the compil says im on the AutoSaveShipData one rn
yeah but that's nameof, thats just gonna get compiled down into the string
ah yeah thats true
its as if you typed "SaveDataPatch.SaveData" in there (or "SaveData" i dont remember)
[HarmonyPatch(nameof(SaveDataPatch.SaveData), new Type[] { typeof(int), typeof(string) })]
``` might also be how you're supposed to do it (the parameters arent the correct ones idk what they are off the top of my head)
this should work then?
might just have to try and see, it might want you to put the parameter types in the harmony patch and not the method's parameters
ok lets see
you might be correct
ok its working, thanks Xu
just for the patch at least, now ill see if by converting everything i have item falling issue
me personally i woulda did a fatal log
(which is why the current release has a fatal log that i forgot to delete)
Lmao
ok so it seems to be working, even big items are fine just like in the good old past
the shovel does not fall
noice
Ok
Now xu, lets be serious for a moment 
How to i replace those lists with DawnLib?
and this
and that
alright let me see what you're talkin bout
😊 no problem
so what're u trying to get here
when do you need that list
When the cupboard is spawned
okay that should be fine,
you can get every item through:
foreach (DawnItemInfo itemInfo in LethalContent.Items.Values)
{
if (itemInfo.TypedKey.IsVanilla())
continue;
// blah blah (itemInfo.Item gives the item)
}
Will this give me every items even registered by things like LL, LLL, blabla?
there is also a Freeze event you can subscribe incase you want it as soon as its ready, it'd just be:
LethalContent.Items.OnFreeze += MyMethod;
// or
LethalContent.Items.BeforeFreeze += MyOtherMethod;
ye
i get every single item
Ok
if i miss a library, then they're probably adding it too late to even get saved by the game lmao
Well if the list contains items from DawnLib, LL and LLL then i think you have all
ye, there are a couple cheeky mods manually adding their items here and there
AND THERE'S MODS DUPLICATING VANILLA ITEMS (COUGH REMANENTS COUGH), but we dont worry about those too much i think
It should be always ready when i need it, i think, cause the ship will be in loading phase
yea as long as its like anywhere after StartOfRound.Start tbh
thats the benchmark for all content
Ok
lmao, those are not real mods 
goldscrap is the only popular one that does manual afaik
but i think that one's scrap is in dawnlib too
so for this, you should probably setup a code approach to registering stuff like this, ill get an example rq
Okay, so bear with me here and ask any questions you need to, it's a bit overkill for like registering one thing but DawnLib was meant for more bigger mods anyway
you need to split the SSS into two bundles, a main bundle and the one the SSS is in, this is an example of my code in Plugin.Awake that handles what you should do in the main bundle
oh uh you dont need the MainAssets part
that part is just me loading in extra prefabs with some utility from DawnLib
which is neat so you might like it but unneeded for just registering stuff
how do i get the mod name that registered the item? Is that something like itemInfo.TypeKey.Namespace ?
namespace is gonna beModName as in either MagicWesleysMod or LethalLib
for LLL the mod name is whatever the dev of the mod sets it to
in LL its LethalLib but not always i think? its a bit inconsistent
it's all soft dependency code where i grab it from em so its whatever they decide it is
I want the mod name just like LethalLib gets the modName from the calling assembly just like here : https://github.com/EvaisaDev/LethalLib/blob/main/LethalLib/Modules/Items.cs#L734
ye thats what i grab from LL
so for LL items that's what you're getting
for LLL, since its an editor mod usually, it'll be the "MagicWesleysMod" or whatever wesley decides to call his mods
sometimes its "therubberroomsmod:therubberroomsinterior"
i see
and oooh i wonder what this mod has in it
Is there a way to get the real mod name? Cause i didnt know LL was just LethalLib
for the modName at least
This means this can create conflict between 2 items from LL that have the same name no?
uh it should be the real name, it's basically what you had before if thats the field you were using
oh right i know why its sometimes LethalLib
i totally forgot, i think its unlockables?
unlockables dont store the calling assembly's name
in LethalLib^
ye
Ok ok then its good
so items will have ModName:ItemName
but unlockables will have LethalLib:UnlockableName
oversight or forgor ig
no worries
for the rest of the code part, you just need to make a content handler, doesnt matter what its called i just have one in CR for each category of content types
this is how my content handler looks like for registering skins (rn only has the halloween skins bundle)
i store the Assets class into CRHalloween incase someone wants to check if its loaded/enabled
i know emergency dice checks stuff like CRHalloween != null to make sure the skins do exist before trying to access em
RegisterContent gets fed the assetbundle's name
and there's a third parameter that's optional but basically it's like an extra check for forcing something to load
since anything in DawnLib can be disabled, i dont want people to go on oxyde whilst having some core mechanics disabled, so the third parameter is just me checking if all that content still exists
Ok i think i get it, but that does not explain how i can get the asset as a UnlockableItemDef, which i need to do stuff in Awake
yeah that's all handled in unity, I grab the UnlockableItemDef (UnlockableItemDef is an LL SO, DawnLib has its own which just means you'll need to refill the parameters since it'll be similar in some ways)
But how to you know it's a UnlockableItemDef ? It could be any asset
well I just look for assets of type DuskUnlockableItemDefinition :p
(i grab all DuskContentDefinitions's and then run a .Register method on each of em that does whatever it needs)
ooo ok
this is how one of the gal DuskUnlockableItemDefinition's look like in unity for mine
you create your Namespace at the top, the key is automatically grabbed from the UnlockableName a bit down
And then when it's registered, how can i get the registered asset in code? Is it just something like GetComponent<>()? or something else
then you give it a prefab but dont really have to touch much else
it'll be part of the Assets field that we stored the thing in
well, ideally you'd do:
LethalContent.Unlockables[NamespacedKey.From("code_rebirth", "daisy"] to get the data on it
hmm ok ok
accessing the ScriptableObject is kinda yucky because in reality there are no ScriptableObjects for this kind of thing for any vanilla content etc
all the important info is inside DawnUnlockableInfo which is just your UnlockableItem.GetDawnInfo();
Is there not a risk for when multiple mods enter the same key here?
same key no, same namespace AND same key yeah
wesley does it once, which is yucky but it doesnt get rid of the item or anything but DawnLib will kinda recognise both items to be the same thing in some ways
wesley has like a big red button scrap
same mod name, same name on both
Yeah i was thinking of imaging someone enters they namespace "code_rebirth" or something that already exists but if its not a problem then fair
the only case that someone should have of entering a namespace that isnt theirs is for entity replacements
which is just DawnLib's version of EnemySkinRegistry but more expanded and hopefully more versatile
and non-code
(basically the top one is the entity replacement's mod namespace and whatever key, and the one below it is what entity it wants to replace)
Well yeah for code rebirth thats pretty obvious
But now imagine a less unique namespace, idk something like "more_scraps" or similar, this could be a duplicate with another mod
im sorry for these questions lol im just curious
yeah that's definitely true, the nice thing about namespace is that it doesnt have to be accurate to the mod's name completely, the alternative was to make people do something like ModName.AuthorName.ContentName
which would've been hell for people doing configs LMAO
i do log warnings/errors when the scenario happens though, so hopefully WESLEY cough WESLEY changes it
i think i got those coughs backwards
after you setup the DuskUnlockableDefinition in unity, there's just one thing left, assign the SSS assets under the SSS's asset bundle, which you probably already do, then create a new SO, it'll be called ContentContainer, just give it the main assetbundle's name, mine was "coderebirthasset" like you saw in the first screenshot, and then make a new entry in the empty list and give it the assetbundle through the assetbundle dropdown, keep AlwaysKeepLoaded unticked since i believe ticking it would double the amount thats loaded into ram, and set whatever the config name you want to be
okok, then ill try to do all these things and see if it works
For the editor part i need com.github.teamxiaolan.dawnlib.dusk.dll right?
oh for the editor just drag pathfindinglib's zip and dawnlib's zip and dawnlib's editor dll into the editor all at once
ok
the editor dll is needed because i do a lot of inspector prettying (and i also delete one of dawnlib's dlls that shouldnt be added to the editor automatically but its in the thunderstore release so it would)
and pathfindinglib is my only dependency lol
wait dawnlib's editor dll ? Thats not in the zip?
nah including the editor dll in thunderstore release would cause a lot of issues
and also i dont think im allowed to
Where is it
i always include the latest in the github releases
Ok nice
have you ever used Editor dlls in unity or do you want me to tell you where to put it
unity is strict abotu what folder you put editor dlls in
I used it before
ah alright then ye you should be good to go
i know that dw
oh i guess you might need to look at your export zip when you're making a release package for thunderstore, the output needs to be a tiny bit specific for the main bundle to pick up the SSS, lemme check what its like in coderebirth rq
oh actually i think it was just that the dll needs to be in a folder above the assets, wherein the assets are in a folder called Assets lol
Config name?
config name is for the automatic config that generates, DawnLib generates your configs for you so you dont have to add ones for generic stuff like pricing etc
one of mine is ACUnit Gal so a new category in my config called ACUnit Gal Options is created by dawnlib
and it makes entries similar to these
the blacklist is the only one that isnt an automatic DawnLib config
Gale does kill config formatting a bit though which hurts 🥲
true
like why uncapitalise everything, get rid of my |'s blehhh
If i dont want that, can i disable this?
Cause ok the cost is good but having a toggle for is decor/ship upgrade is not something i want
ye its in the SO iirc
Ok
oh it might still keep the config for asking if its a ship upgrade or decor but i can add that rq if you'd like
Yes please
the other stuff like enemies and items require the dev to manually ask if that part is allowed but i was the only one using unlockables so didnt mind it too much lol
if there's anything in the editor you'd like as well feel free to ask, dawnlib's editor dll is huge with a lot of convenient stuff for dawnlib itself but i can always add more
Yeah no problem, ill come back if i have some requests or questions, ill first see if i can load the entire thing like you explained
lol that is true
added the config thing, it'll be there for next release as soon as i figure out how to fix the UI with the very specific and weird combination of TerminalFormatter, WeatherTweaks, OpenMonitors, DawnLib
a combination of these guys is causing this method to be skipped lol
ig i gotta look in ALL 3 REPOS to see who's patching what
okay, honestly? no idea
i made a fix but i hate it because its not a fix that's specific to any of these mods, it just checks if someone who overrid the ship monitor made the text pop up again
and im hoping this doesnt cause any issues with someone loading text too early
woo, love those situations, lmao, if i get time, ill look into that.. see if i can work it out.
yeah its super weird
i also got the ship icon back so it should look nicer too for the UI in general
is DelayTravelEffects yours? i dont see it in vanilla.. so thought id ask.
yeah, the vanilla method is called TravelToLevelEffects
im patching that method and none of my logs inside the patch runnin
yeah, looking at that right now.
ok, so essentially. they are preventing "TravelToLevelEffects" from running then i guess as your replacing that?
im not replacing it, just patching it
but ye, they just prevent that method from running
thats what i mean by replacing, sorry.
ye thats right then
in weather tweaks this is the best lead i can find i think
https://github.com/AndreyMrovol/LethalWeatherTweaks/blob/c3eb47dc7a0b54e606f8a6cf498195dd42514795/WeatherTweaks/Compatibility/WeatherRegistry.cs#L9
also, i noticed there is compatibility patches between open monitors and weather tweaks... for example weather tweaks unpatching open monitor's patch on a method that maybe relevent.
https://github.com/AndreyMrovol/LethalWeatherTweaks/blob/c3eb47dc7a0b54e606f8a6cf498195dd42514795/WeatherTweaks/Compatibility/OpenMonitors.cs#L15
then.. in open monitors.. this patch exists..
https://github.com/julian-perge/LC_OpenMonitors/blob/6e5aed49cb97ac4b640234cddd4afa117202661a/OpenMonitors/Patch/StartOfRound.cs#L43
ChangeLevelClientRpc calls TravelToLevelEffects.. so maybe this is generating the issue by calling the screen after the level has already changed, leading to it getting stuck? i dont know if you were meaning for your code to run earlier or what..
then.. terminal formatter may just be a passenger because weather tweak has patches for terminal formatter..?
thats best i can find in the short time i looked.
hey xu, im doing this rn #1387434268577370324 message, havent tried it yet but you said "DawnLib was meant for more bigger mods anyway", however the mod's description is "A modern API for Lethal Company content and all sizes of mods", which is idk strange? lol
Does this mean you are planning a simplier way to register stuff in the future?
technically you should be able to just do most things with code for registering but its not entirely completely cuz it doesnt look pretty and it looked pretty scuffed
is what i wanna say (which is true)
but i think bongo just changed the description and i never realised lol
the mod is meant for everything that anyone wants to do, but the current workflow promotes creating content en masse if that makes sense
not coderebirth big, but like, if i have to register more than like a couple things at once it'd be my go-to because its only the setup that takes longer compared to any other step
I know these mods are the kind that never see an end almost because of how much there is, but if you had to give it a percentage of where its at currently, what would you say?
yeah i saw most of that but couldnt make any proper connections to cancelling any methods either
hmhmmm, i guess that makes sense
But like if you want more people to switch to the lib, you should consider simplifying this registering part as much as possible
Or if not then people will wait for documentation or wiki or tutorials, but you said it will come so its ok
yeah exactly, the idea is actually to have a unity package that people can just import and use and it sets everything up for them as a template
which DOES exist but its outdated to DawnLib 0.2.0 and its hard to get people to realise they need to update that stuff etc
v0.3.9
- Added more logging for a specific issue that shouldn't really happen?
- Added a
WaitActionto replacements so you can have a wait happen inbetween actions. - Fixed an issue where the combination of the mods WeatherTweaks, TerminalFormatter and OpenMonitors would break the ship monitor.
- Cleaned up the hotloading UI a bit more.
- Created ProgressiveMoonScrap that when interacted with, unlocks a specified moon and destroys itself.
Oh and the config thing for unlockables
thx
and i think i finally understand why you said that it's a bit overkill to do all these steps for just 1 thing
Like i have the main bundle which is a Content container with the main bundle name and config name, nothing else, and then the SSS bundle which has the SSS only so it can be loaded by the ContentHandler, it's correct ?
Yep
Ok then yeah its nicely done
Just rn i have a Content container that is empty in unity ?
You should just make one entry into the empty list for the SSS yeah
no there is like nothing on the screen
Uh do you have the editor dll in there
it is
Huh, ig yeah any errors in console?
You probably forgot to untick Validate references on a couple of the dlls
this happens when i create the content container
Wah? And there's no other errors in the console?
no
Do you have the lethal company SO's in your Unity project?
Like Item, EnemyType etc?
I assumed you had a patched project but do you not?
Okie
Rip, I'll probably just need you to screenshot the errors that come through and I'll make sure the latest github dll isn't broken or smthn
ah ah, ok i fixed it
But i thought of something
About the config, is there a way to create config sections?
What i understand in Code Rebirth, every sections is a bundle
And when you have big mods that is great so you dont need to generate everything for like items and stuff
But for a small mod with some utilities that does not really load a lot, then the sections are just pointless, so is there a way to change that?
hmmmm yeah ok i think it's right
so thats some kind of a limitation
Ah also xu, if you want to improve things, i think it could be a good idea to have new configs options in the editor
If all those options are tied to the bundle then it's the bare minimum to add nice and simple configs options such as
- acceptable values list
- pair values / or n values of the same type
Alright after manually going through my entire pack, i discovered the conflicting issues
it seem high quota rebalance is the resounding issue, i updated dawnlib to latest again but without hqr enabled and i seem to be loading fine a well as other players in my lobby
which it erroring i didnt think had levels that deep, but it seems thats where the issues lie
Ye, technically you could just put all content under one bundle and that'd have one config instead but then it loses some of the benefit and some of the idea of dawnlib
Oh also
I guess u could put multiple bundles under the same config ittle
Title*
Wouldn't that do it for ya?
bwaa if you mean the DawnLib.Define stuff, its probably because the only time you've seen it used is in dusk where it's a bit worse.
it's perfectly fine to use those (meltdown does) and it is nicer than LL's methods (not to mention it's also entirely future proof). i spent a while trying to figure out how that would work smh.
teehee
yeah @obtuse pecan a lot of the code stuff is made by Bongo so I'm not 100% aware of it all, it is fine to ping both me and bongo when asking something just incase i fuck it up
DawnLib [Looking for maintainers]
:0
Just please don't do what happened with Diversity and abandon this amazing project while waiting for a maintainer
Keep updating and supporting it ❤️
Btw the hot loading ui is cool and we all really liked it
Completely unnecessary shot at the diversity dev that is made weirder by the lack of any evidence that this project would be abandoned
Not throwing anything at the Diversity dev Chaos and I are really good friends I just don't wanna see the same thing happen to any other good projects
I understand he is vv busy
yeah im probably not abandoning, i still have a lot to do, most of it is just external documentation and converters etc as most of hte content in DawnLib is in a mostly polished state at this point
Yeah and you've done an amazing job so far on it, getting it stable and polished so quickly has been really amazing too you've outdone yourself
In PEAKLib (a community modding API for PEAK) we have an API that can be used like this:
// In your BaseUnityPlugin class:
void Awake()
{
this.LoadBundleAndContentsWithName(
"yourassets.peakbundle",
// optional argument, called just before the bundle's content is registered
(PeakBundle peakBundle) => { }
);
}
And it'll register all the content in a bundle of that name that is found in the same directory as baseUnityPluginInstance.Info.Location or in a subdirectory. The method loads the bundle async, which is what the second optional argument is for.
PEAKLib also has a concept of a "ModDefinition" which is basically a container for a mod's registered PEAKLib content. It's basically a reflection of the BepInPlugin attribute's data, and all content registered with PEAKLib will belong to a ModDefinition, meaning one was created for the BepInEx plugin in the LoadBundleAndContentsWithName call.
The PeakBundle type is a wrapper of AssetBundle which doesn't have access to all the methods of AssetBundle, mainly to prevent users unloading the asset bundle or whatever as PEAKLib wants to handle all of that (suggested by Batby). The PeakBundle type also has a public property for the ModDefinition for convenience.
btw so because the ModDefinition can be implicitly taken from the plugin info, no content container SO is need in an asset bundle. One is only required when making a no-code mod which does not load the bundle via a BepInEx plugin, but instead entirely relies on the PEAKLib bundle loader to load it. The bundle loader automatically loads bundles with the extension .autoload.peakbundle (and .autoload_peakbundle because apparently . has a special meaning for Unity's asset bundle building stuff or something and it doesn't like it if there's two used like this)
the autoload stuff being done like that still seems silly
atp seems easier to just have something in the moddefinition that allows people to explicitly say dont autoload this stuff
eh? That would be a lot more steps, the current solution is just a specific file extension, like LLL, right? Having .autoload_peakbundle in the file extension makes it super explicit for modders that the bundle is loaded by PEAKLib's bundle loader and not by any other mod. I like APIs to be explicit about what they do because having hidden stuff will lead to issues because someone doesn't know it also does "x thing".
The recommended and intended way for PEAKLib to be used by mods is to manually tell the bundle loader to load a bundle if there is a BepInEx plugin. Because that way you only define the plugin info stuff once, and that is for the BepInPlugin attribute.
As for just .peakbundle as a file extension, it does nothing and there is no checks for it
Yeah in DawnLib only the ContentContainer is loaded through auto (in no-code mods) , cuz otherwise every bundle would be need .duskmod and would need to be autoloaded, this is would cause problems in the cases of not wanting to load specific bundles because how is the user supposed to inherently know that the extension is what auto loads the bundles
why should users be caring about what the extensions do period?
Yeah true, all they need to know is the main bundle is what has the extension in dawnlib, everything else is just defined within the ContentContainer's UI
sorry when i meant user there i meant like user user
for developer i dont think they need to inherently know that, thats what explicitly should be taught in documentation or fields/values in editor
Oh yeah they'd never care or even see anything like that ever, or atleast they shouldn't need to
modders who look at other people's mods do care. Because this has happened before with someone naming a bundle .lethalbundle and intending to load it manually, but LLL would try to load it which caused issues. This would not have been an issue with an explicit extension
which would be solved by some sort of bool in the extendedmod, which personally i think is a way less clunky way of handling that
where is that extended mod? in the bundle? If so, then it's just extra steps
Afaik you do need ONE thing to be auto loaded someway in no-code mods no?
in lll? no
How do you know which bundles to load then?
Oh yeah okay then I agree
Technically there is some step I can think of for it to be code yet at the same time no code, and for it to not rely on any extensions, but it's a bit of a roundabout way that involves an editor tool creating the dll for you within the ModDefinition or ContentContainer or whatever
personally given how unity editor dependent this kind of modding inherently is auto loading is the superior and more natural default option, with abstaining from it being the choice, rather than the other way around
idk, a file extension to me is much simpler than some bool in some SO in Unity, and I don't have to inspect the bundle to see if it's going to get automatically loaded or not
But its good to be explicit about this stuff imo
why do you need to do that period
i just dont get this kind of hypothetical
if your the developer you have unity open
you are using unity to actively tweak and develop your stuff
I do prefer how DawnLib has a "disable loading" button on every bundle in the config cuz sometimes I dont wanna load everything to test and unity takes ages to open, but other than that I don't see a reason for a checkbox in unity itself
If you are in Unity and you add a ModDefinition SO to your bundle, the system basically forces it to be automatically loaded or it will throw during loading of the bundle