#DawnLib [V80]
1 messages · Page 12 of 1
back on track, reloading a save file with Hookah furniture results in this log, and I think the warning about Invalid unlockable key ':' in save is the problem here.
Was this boilerplate not good enough? https://git.vilunov.me/ratijas/HookahPlace/src/branch/master/HookahPlace/src/HookahPlaceKeys.cs
namespace HookahPlace;
public static partial class HookahPlaceKeys {
public const string Namespace = "hookah_place";
// Data Keys
internal static NamespacedKey LastVersion = NamespacedKey.From(Namespace, "last_version");
}
Hooray!
i dont think its that, how are you registering the unlockable?
ig if you send the entire log file i could probably see the issue quickly by looking at the unlockable registry logs
the reason is that it's the only valid target framework for source generators (and I think analyzers in general?), as Microsoft wants them to run on any runtime that might be used in the build process, or something like that
well that sucks
yeah it kinda does
anyways there are things that can help with it, like PolySharp
it makes some C# features work by adding code into your project
also could probably use something like MonoMod.Backports to backport new APIs to netstandard2.0
would it be simpler to just keep it as it is?
probably
Do you want me to close your prev pull request?
I already closed one. Second one needs a change
its not letting me download this lol
I remember there being a mod to fix the grabbable object thing (i think)
I might be crazy tho
The scrap spawning is erroring, not sure why, it could be trying to spawn an invalid item but I wouldn't know what, you could send me modpack code and id check
What grabable object thing?
Also I'll try to get a patch out tonight to address what crafty asked for, and changes to more terminal stuff by darmuh
i think theyre spekaing about either grab invalidated or the bug that softlocks inventory, i havent seen either in a hot minute though but... i..i dont playthe game..
modding but dont play gam??///
how would one go about making custom terminal commands through dawn now that ive cleared mostly everything else for now
you can do it through code or editor, code has a lot more control though, what are you trying to do specifically?
probably to list the decor with multiple copies of itself under one menu so e.g. rather than small medium large candles taking up 9 lines, put under 1 line that extends into a submenu of the list instead - thinking kinda like shipwindows i guess, but where would the command be listed? wonder if i could get it to list under the store command...
uhh you could technically override the store command with your own, but i maybe wouldnt go down that route
you could do that though (next update not current, darmuh finished it like last night)
other than that, you could do a simple command, give it a FuncProvider<string> that just figures out the list of unlockables, ship upgrades, whatever, formatting it yourself, and just returning that string
you could do it through DawnLib.DefineTerminalCommand
mmm yeah i guess ill do that and swap over when time comes if i even finish it in time'
ty
speaking of false positives and other Unity warnings in C# project
It's uh my new moon
interestingly,
USP0001 | IDE0029 | Unity objects should not use null coalescing
USP0002 | IDE0031 | Unity objects should not use null propagation
So I can't really send a code
how did you place items on your moon
Cruiser improved fixes this: [Host] Fix items left floating where the Cruiser was when reloading a save. All items will now be moved into the ship instead of just some. Could you fix this in your save system? Since dawnlib basically reverts to vanilla one.
Uh...
Some are like
Used via Scrap Spawners
jll ones?
Its the error in the log you couldnt open
dawnlib has scrap spawners?
I fixed it
ALSO
IS THERE A WAY TO PREVENT TREES/ROCKS/AND LIKE SPECIFIC ITEMS FROM SPAWNING IN CERTAIN AREAS?
Cause Rocks and Crates and stuff are spawning on my metal bridges
Which I dont want
so I'm not promising anything but this post reminded me that tags are opaque and not described well so I suggested since we let communities PR tags we should also have a description field and make those visible in some way and several site devs seem to agree that its a good idea so that's nice
XiMiscTools or whatever it’s called maybe? Idk if it still works but I think it had some spawn denial point improvements
I have never seen anyone like use it
I mean if it works it works
Really cool that you put DawnLib's motto in the logs
-# /j I havent had issues with it in a while and its a cool library mod
@oak linden
Okay
So...
The random like
Fall with curve thingh
Keeps randomly happening
Should I send my moon or whatever?
(In dms or smth cuz yea)
Uhh, it's not the moon it'd be the items I think
Spawn denial nodes deny an area of 16 units around it in a circle
I can probably add more configurable area denial to DawnLib
I noticed
What would I check for?
I have trashcans that you dig through to have a chance for items to spawn
And like these
Shop things
Or Is it like
THE ITEMS THEMSELVES?
It was one.
Tiny
Button fix
Omg
Okay so... IS IT WEIRD IT ONLY HAPPENS
SOMETIMES?
I think it just didn't spawn in the times it didn't happen
So it's one of the items
Correct?
Or is the spawning of said item
The items themselves yes
When I sent the logs is there anything specific I should look for?
Uh, the same error not being spammed is a good sign
idk if you saw this
I did, must've forgot to respond, but uh I could probably restore that behaviour, though from reading vanilla code a while back it feels like it should just send all items not in the ship, into the ship
@oak linden
Found it
Theres only one item
That has "itemgrabbable."
But it works and still doesnt work yet the scrap itself is fine
you can definitely create a command like that pretty easy. Getting it to display as a listing in the store, other, etc. is not something that i've added to dawnlib yet
If you have any questions about the dawnterminalcommand stuff feel free to ping me. I unfortunately haven't gotten around to documentation for it yet but having someone actually trying to use it will help get that done lol
You can definitely add your command and a brief blurb about it to a node's text but you want to make sure you only add it once (and dont remove any other mod's potential changes)
@oak linden Will these work?
Cuz somebody did float.parse instead of TryParse and react to a failed parse
Wait what?
Dusk.NamespacedConfigWeight.ConvertFromString is in the stack right before System.Single.Parse, seems like the obvious culprit
Whatever you're feeding it is supposed to be a single and its something the CLR can't interprete as any number, btw
Hmm
interestingly, there's a TryParse right above the Parse
guess there should be a second TryParse there and if that fails return the weight as 0? not sure what this is used by
If it is user input it should always be TryParse, and if its not user input why are you parsing it 
🤷
I think whoever wrote that line understood the assignment but just finished typing up a tryparse and decided to skip the second one cuz surely one of the two is valid and got bit
resets ur config
o
I mean yeah LLL's default configs don't get updated if modified from the mod side either, for it would erase potential user configuration and stuff

a bit loud
iTS
DAWNLIB THO
That I put my scrap in
Because achievements.
Ye I know

Ok...
DawnLib 5G takes hold of another 😔
hello and welcome to hell: https://git.vilunov.me/ratijas/HookahPlace/src/branch/master/HookahPlace/src/Content/NukeDawnLibConfig.cs
what the fuck lmao
i had a look at the definition yesterday before i got off, i have never ever toyed with the terminal before so i guess its just what the fields do, though i should have probably just started with checking the code now that i think about it. do any of the fields let me tie unlockables/decor to them?
what do you mean by tie unlockable/decor to them? As in purchase unlockable/decor or do you just want to display a listing of unlockables/decor?
that would work actually that would be far more simple lmao
i could actually work that out on my own
in your own Func<string> you can do your own logic once the keyword is entered. So technically you could do any of that
#dev-general message
if you have any questions feel free to ask. There's also the DawnTesting class you can look at for examples
If you have any answers feel free to answer 
the BasicLightsCommand method is a very simple command for toggling the lights and returning their status for example
I will, I'm gonna be back later i am sturrggling to stay awake lmao, thank you however for the help reassurance
christ
This is not the same thing lol
And is also something I disagree with but hey it's your own code lol
That bit of code is fine, it takes this string as an input +10 and evaluates it with a try parse on everything after the first character, assuming the first character is an operation.
And if it's unsuccessful it assumes someone did just 10, which defaults to the config taking in the operation as being + implicitly since it was never specified
If the first one fails due to the input being "bwaa" then you'll throw on the second one
Even if that's expected behavior I'd suggest doing a tryparse and logging the state you're working on for tracing the bad parse
Or empty, though I assume that's accounted for prior to the TryParse

That's true, I do think that should throw tbh, and usually in those cases the throw logs the exact issue but ig I didn't do that in that scenario
If throwing is part of your expected behavior you can still throw a format exception afterward, in fact you can throw new FormatException("Unable to parse an invalid config: {configEntry}"); or something like that
I think that is more helpful to users but its not a massive deal
Yeah I have one of those that logs pretty nicely, just didn't use it at the time of making ig

Dunno what you mean by this but float.Parse throws on invalid input, it doesn't return default(float), so you have the overhead of the stack and searching for a catch instead of just getting a false return from TryParse and the ability to gracefully exit on your own terms (and then throw if you want to)
I think he means an input like an empty one would also throw but is saying that's probably checked before the tryparse anyway
oh, I read it as "or you might end up with an empty output"
Yeah I can see an early return with string.IsNullOrEmpty() mayhaps
Oh lol
I shoulda clarified I meant empty input, blank string

wups
the problem with resetting your config is that theres no easy way to tell if a user wants to edit the config and instead it just resets to the new default value if i interpret it as the dev wanting to edit the default forcefully, i could maybe add a button that you'd need to click to allow edits but ill probably do a poll for that since that type of change would cause people's configs to be forcefully edited, im trying to see if there's a way to add that type of button without changing configs though
its okay
I force reset it
I think the core issue is in the fact that the config is filled with values without user input. Really, default values shouldn't be written into configs by default, they should be empty instead, and if the value is empty, use the actual default value.
For example, a default config value like this is problematic:
```toml
Setting type: Int32
Default value: 100
SpawnWeight = 100
It should instead be like this:
```toml
# Setting type: Int32?
# Default value: null
SpawnWeight = null
```
However, this hides the default value. So it should be specified in the description. Anyways idk if BepInEx 5's config system handles nullable value types
i dont agree with this, the user would never be able to tell what the default value is if its empty
its definitely a "smart" solution (not being sarcastic i did think it was fairly good), but not good enough imo
it should be described somewhere, it could even be automated with a better config system
What do you have in mind that would be better? (if you have any)
not really anything great, only the classic button that when ticked allows you to override the mod dev's default
if by better config system you mean not bepinex's, then idk if thats a super realistic option
BepInEx config system is pretty bad, but yes not using the standard can be a bad idea, especially if you are the only one using it
anyways, for a better config system, I imagine Apple's pkl format could be potentially the best option
i dont believe im familiar with that one
it's this https://pkl-lang.org/
I feel like toml was fine right up until the BIE config format ditched all the cool stuff like arrays and dictionaries
I read some of the docs a few days ago, seems cool
ic, it looks alright, seems to be made for this sort of thing, cant say i get the exact advantages with just a few seconds of looking at it, but we gotta use the hand we're dealt with :p
pkl has some really cool stuff that could make it really good. But yes toml would be my #2 choice for a better config format
the document you linked just looks like JSON but without the outer bracket, I don't get it
yeah I spent a few hours reading it to understand what it's like, like what the advantages are and how everything is structured and stuff
I'm fairly certain you can put everything inside a { } but then everything is one level more nested
I'm just confused what the point of it is
the docs do explain things much better than I can
First input should always be bwa

responding a bit late, sorry
but from what the log says i think the issue is in unity, it seems like your UnlockableItem's NamespacedKey is incorrect, from what the log says its just empty? like the format should be something like my_mod_name:my_unlockable_namebut it's just seeing :, ill install the mod to see rq if the namespacedkey is fucked for some reason
An entire 50% of the elevator pitch page is dedicated to "look it can become yaml, json, plist or prop files" none of which is useful for configuration if you can't read those files and .net has binding for real JSON that just works out of the box, I'm just not seeing the benefit of pkl here as a user facing configuration
I guess though as the docs say here, it might not be all that revolutionary for simple needs
I think a configuration format that needs to be evaluated is asking far too much of users. A lot of people can barely manage to just edit the flat, basic toml files BIE already uses, hell they are so stripped down they're basically just fancy INI files, all the bonus toml features were removed and people still have problems
yeah your NamespacedKey is an empty string
A part of this is that it can be used as a replacement for stuff like yaml for github actions
im not sure how you even got a prefab in there without it automatically filling in a Key to it, do you maybe not use the Editor dll provided with the mod on github?
anyway, I'm gonna stop talking over xubert cuz they're actually trying to help somebody with a real problem

oh true
anyways, pkl works as a replacement for a simple config format like toml, but also can be used for much more complex use cases, and has IDE tooling and is somewhat programmable to help with repetitive configs
Most readable is still yaml / toml. Json is daunting to look at for a person who never really messed with stuff like that. Pkl looks interesting, I’d need to read thru the link later to see whats the point cuz as a first perspective its just a jumble of json and toml.
i hate all formats 😡, just get rid of configs, NO MROE
Nuke them configs 🔥
i think its kinda silly to nuke a cost config when mods that already configure price exist, but it's funny
Lets make a new format
Hell yeah!
me when i made dawnlib and immediately after another lib gets developed 
I have created a new, simple config format for my mods: You simply write a text document describing what you want my mod to do and then I delete it on startup and do what I want
cinema
actually holy shit, LLM powered configs!!!!!!!!!!!!!!!!!!!
you just write bullshit and it interprets it however it likes
Already on it 
Alright, I currently have a build to upload, it gives Crafty some compat code to restore how his configs used to look like, I'll wait for him to test before uploading it
Finally ❤️
lol

the death of lethal modding
it'll just become every other game's modding where there's like 0 configs lol
"What do you mean you HATE <insert feature>, you'll learn to love it!" 
I don’t configure it, I do not tweak it.
If it’s bad, I uninstall it
finally got around to adding all the config configuration shit i've wanted to in a fairly clean way
that was a long few hours
update is NOT out but this is what you can expect:
```
v0.7.8
- Added a compat thing for LunarConfig to convert the weird names i.e.
Sevenfour_adamanceinto the old names it had,Adamance(Crafty will update when he gets the chance). - Cleaned up some code, Added more safeguards around.
- Terminal commands can now override other commands like vanilla commands (thanks to darmuh).
- Organised Config ordering a little bit better so configs aren't generating in an unintuitive order.
- Added a new default config to generate,
AllowEditingConfig, at the top of each content type's config entries.- This config is used to toggle whether the user is allowed to edit the config for that content type, or whether they follow the mod developer's defaults incase the developer updates the default configs.
- This config is defaulted to true if you have used DawnLib before, otherwise it's defaulted to false, and also defaults to false after you launch DawnLib more than once after version 0.7.8.
- Added Mod Dev configurability for whether stuff like Unlockable cost should be configurable.
no one's configs should reset, i'd be very surprised if they do
and if you wanna test if they do here's a build
build goes live once crafty does what they need to do with it and give me the go-ahead
bcause $130 bucks is my final deal as a supplier, no one shall tamper with that 😎
it may sound silly, but I was very annoyed when debugging what appeared to be 'cache invalidation' problem for hours
i get that, there's a reason it exists like this, but the next update should make you not need that type of thing lol
I know y'all joking about it here, and I don't mind it. But I personally stand by the point that almost every config option's existence is someone's artistic failure to provide good/balanced defaults.
oh some arent joking
batby half isnt
i get where you come from and i agree, but it's a standard and I dont wanna be the guy with the biggest mod that's also unconfigurable
*obviously I'm not talking about configs like microphone device, display resolution or choice of songs to play
https://github.com/TeamXiaolan/DawnLib/pull/58
tooling in .NET looks pretty awesome
Release tracking analyzer
Fixes warning RS2008: Enable analyzer release tracking for the analyzer
project containing rule 'DAWN001'
(https://github.com/dotnet/roslyn-analyzers/blob/...
(The half is mostly just me thinking the precedent of heavy user configuration ends up downplaying the sophistication and polish of dev driven configuration)
I still just wanna be able to configure moon tags since most dont bother to set them right
myself included

forgot to put flesh tags on viscera
That’s literally the problem i described
if you don’t bother to set them up right, bother
If the responsibility is moved to the user everyone’s experience worsens
consider the fact that forcing the moon creator to use them really hasnt done anything
people still forget to add them all the time
or dont know they exist
moon creators also dont really feel pressured to add them
so now all its done is make it so users dont really have control
eventually I will go back and give viscera the flesh tag, its not that i dont want it to have them
its just that i forgot
People forget they exist cuz I made a mistake in adding matching by moon, mod and author name 😛
what are even moon tags? no, I don't care. I don't have to know. Just set them up straight!
I don't feel pressured to use their broken products either ¯\_(ツ)_/¯
Okay fine i will give all the items proper weights fiiine stop pointing the gun
this warning pmo 😡
thus warming cmo
oh my

do i have to edit them all or can I just... disable that
im too lazy to do all that math
You can kind of tell what the issue is from reading those warnings... ill try to do smthn automatic about it
Also 

interesting. .NET compiler services updated Source Generators to 5.0 where they deprecated the old ways used in DawnLib
in 5.0 the package Microsoft.CodeAnalysis.CSharp.Workspaces must not even be referenced, oof
it's fine it wasn't that hard to fix you just gotta make sure everything is a multiple of 5
Listen I love the enthusiasm but also like try not to make a mod that like does EVERYTHING. Gets me worried

Those who remember
are you talking about dawnlib?
No no...
I'm just saying in my eyes it reminds me of someone.
Ratijas
Not in a bad way
There was someone A longgggg time ago. Who like tried to make a mod which was better than all the rest! I dunno. Maybe I'm reading into it.
I'm still missing the point
I was making a joke
especially what do I have to do with any of that
I dunno? It was A BAD JOKE
Mb

I was joking saying I hope you don't do what that guy did!
Or smth
Idk
do what? turn DawnLib into an super-uber-library which does everything?
Xu's evil plan to replace Lethal company's code line by line until none of the original code exists
Company of Theseus
I'm not in that business. I'm just curious how it's done so I can copy-paste required pieces to make my mod free of dependencies
some say it was... "advanced"...
<- Living in blissful ignorance 
i wouldn't mind that

thank you for the link, btw. it's useful.
Maybe I am not qualified to speak on this since I am not a mod dev, but I think there is little reason not to include configs for mods. I think seeing it as a cop-out for not giving the mod good default settings is rather cynical, as I doubt many mod devs have that in mind, plus it completely disregards modpack makers. Many modpacks (including the one I am making) have unique balancing separate from vanilla, so they rely heavily on configs to make their mods fit together the way them want them too. Having configs for mods is good because you really cannot simply create one-size-fits-all setting values.
I don’t see why you can’t have both (at least in principle, I know it is a lot of effort). I for one do appreciate when a mod works great out of the box, but I also appreciate when it has well-designed and explained configs that let me customize it to my tastes. There is a art to both imo, and the best mods are the ones with both
i think the user should have power to tweak what they want
I think the user should do what I tell them to and then thank me for the opportunity 
and that's how we ended up with current desktop Linux experience
okay
I think the user deserves no rights
I hate users, grr...
that's something a product owner / manager would say
lol
Layer 8 🤮
what's layer 8?
it's an IT joke, refers to the OSI model
I see...
i assume its user layer since layer 7 is application
working on another PR to allow for finding a keyword and inserting some text to it's result node displaytext. General use-case would be for safely adding lines to help/other and would most likely not support modifying any modded commands (including DawnTerminalCommands)
silly 
@oak linden I think this might be an oversight with DawnLib. I notice if a DawnLib furniture exists in the store then the Disco Ball or any Furniture I adjust the price of in Lunar Config will be the value I set, if there is no DawnLib furniture in the Store it becomes the Vanilla value 
No errors or anything but I reprod it with Mel's Pocket Rooms by having the Store Room enabled and then Disabling it
lol
make agithub issue, i cant check it out rn
да
@fallow remnant is there any sort of "breaking" change to the sourcegen caused by adding the analyzer releases/editing the category? i assume not but making sure since i didnt write the sourcegen
I believe it's just a string for users to see in IDE
and markdown files are something-something they want to see in the project so that IDE/LSP can provide better information
btw I ended up fixing Microsoft's own documentation about it: https://github.com/dotnet/roslyn/pull/82238
lol, that's funny, that makes sense, alright ill merge it, i havent read anything in the docs about anything going wrong from that
I mean, it's not unreasonable to assume they might have better support (like, maybe translations or icons on the gutter) for well-known categories, so why not
omw to narrow down the persistence issue (a.k.a. someone stole my hookah)
when quitting to the main menu:
```txt
[Debug : DawnLib] [Debug-SaveManager] Checking whether to save unlockable: Bunkbeds into save data.
[Debug : DawnLib] [Debug-SaveManager] Saving unlockable: lethal_company:bunkbeds into save data.
[Debug : DawnLib] [Debug-SaveManager] Checking whether to save unlockable: Terminal into save data.
[Debug : DawnLib] [Debug-SaveManager] Saving unlockable: lethal_company:terminal into save data.
[Debug : DawnLib] [Debug-SaveManager] Checking whether to save unlockable: Signal translator into save data.
[Debug : DawnLib] [Debug-SaveManager] Checking whether to save unlockable: Hookah into save data.
[Debug : DawnLib] [Debug-SaveManager] Saving unlockable: : into save data.
[Debug : DawnLib] [Debug-SaveManager] Unlockable: : has GameObject: HookahContainer(Clone) (UnityEngine.GameObject).
my immersion is BROKEN!!! im goikg to DIE!
i pinged you a bit ago in this thread :p
i think i pointed out the issue
.
that one. And I didn't get it, so here I am trying to understand the NamespacedKey and the registration stuff
you registered through unity right?
the scriptable object for DuskUnlockableDefinition should have a Namespace and aKey field
key should be auto filled using the unlockable's name through the unlockableitem field (the editor dll script does this)
I think it is not aware that it "should" anything
i think you're missing the editor dll
looking at C#, it seems that base class properties got lost
they SHOULD still be there just not formatted properly
i dont actually know why you dont have them completely
but this is my guess
because I was replacing them wrong, and had to edit raw yaml to get it back into a somehow working state, probably?
huh, that one script is pointing into Dependencies folder. But at the very least it should still have all the base types in there
can I just... edit yaml again real quick, and call it a day? 😑😑😑
just replace your dawnlib dlls with file explorer 💀
as long as you're not deleting .meta files you're fine
its not gonna lose reference
well reference is already pointing into a wrong folder
also the .compatibility dll should be deleted too
I mean, the Script is pointing to the dll in the Dependencies folder, but should be the one in /Editor
nah that script does come from dependencies folder, assuming you mean the scriptableobject one
the editor dll doesnt have any scriptableobjects to it, but it does edit the inspector for a bunch of dawnlib's scripts
🙈😵💫💥
I'm getting weird behaviour with spawn weights. Me and a friend couldn't get a piece of scrap to spawn on Adamance despite specifically setting the config to have it spawn there, so I look at the log output and its not applying any weights from moon names or moon tags. (all tag still worked, though)
Checked with a Code Rebirth enemy to make sure its not something we broke on our end (although that hasn't been updated in 3 months which could affect things
) and it seems to have the same issue - set the Duck's spawn weights to some high value and it only used the weather config value. (Duck didn't apply interior spawn weight either, while the custom scrap did, which is odd)
Also Snailcat and Jimothy seem to think Experimentation is a custom moon?
weird, ill take a look soon
Sorry, a lil late
But i would respectfully disagree for lethal
i think...for a lot of types of games, take a platformer or fighting game for example, the environment of those games are rather set in stone
In terms of like balance, capability of players etc.
A custom level for a platformer does not need configs, because the level either works with that game's physics, how far the character can jump etc. or it doesnt and then rightfully the dev should look at balancing it better
Same if you made a mod that adds a new character into a fighting game or something, its either well-balanced for that game or not
There isnt much diversity
Lethal on the other hand is early access, and arguably a bit under-developed still, and has rather questionable balance in a lot of places
So naturally, any user-generated content in this kind of space is gonna expand more on whats being done and spiral off into different directions
Lethal modpacks can vary a lot in design, balance and directions, and so likewise mods that arent flexible via configs often dont hold up as well imo
This is funny though, i love this
I do think for moons, it could be argued they could have no configs for most of their stuff
You either like it or you dont
But then the problem is how do you balance spawns of multiple modded enemies/items without configs?
Can you try putting "lethalcompany:fourone_experimentation" in the moon spawn weight instead? My CR stuff hasn't spawned in lately either but changing to these weird names seem to work.
unknown_modded:fourone_experimentation worked
Ah shit, that makes sense :/
What lmao
Okay I think I see where the issues are
I'll likely revert to the old system then
There's too many incompatibilities that I never could have seen coming with this type of thing
The evil namespace key
People are just gonna have to not make a bunch of items with the same name with the only differential being a number
Sorry @patent citrus but I tried :p

Tfw lurking saves me billions of hours after being 3 items of 50 something for unity editor item weights setup and slowly pasting in lethal_company:onetwothreefour_moononallfours into all fields
makes sense
it is....pretty silly from my pov anyways
makes sense its gonna cause issues, i'm sure the cases where that happens the devs didnt really think too deep about it
ao yeah they should probably just...not do that
😭 I would not have made everyone change their default configs like that dw
That would be such an insane standard change
This is such a destructive change I'm reverting it tonight
I would revert it immediately if I could but I'm not on my pc
Apparently, I has 'Validate References' disabled for com.github.teamxiaolan.dawnlib.dusk, but I needed to uncheck it for the base com.github.teamxiaolan.dawnlib as well
so now I see the Namespace dropdown again. what a huge middle finger from Unity!
and now I see this namespace in the yaml as well:
```yaml
<Key>k__BackingField:
_namespace: hookah_place
_key: hookah
it didn't magically fix the thing tho
should I still bother with JSON and that partial class? I'm still lost af
v0.7.8
- Reverted to old namespace system due to too many issues, Sorry but there's no support for if you register multiple items with the same name except they start with a different number.
- Cleaned up some code, Added more safeguards around.
- Terminal commands can now override other commands like vanilla commands (thanks to darmuh).
- Organised Config ordering a little bit better so configs aren't generating in an unintuitive order.
- Added a new default config to generate,
AllowEditingConfig, at the top of each content type's config entries.- This config is used to toggle whether the user is allowed to edit the config for that content type, or whether they follow the mod developer's defaults incase the developer updates the default configs.
- This config is defaulted to true if you have used DawnLib before, otherwise it's defaulted to false, and also defaults to false after you launch DawnLib more than once after version 0.7.8.
- Added Mod Dev configurability for whether stuff like Unlockable cost should be configurable.
you'll have to be more specific, if you mean the partial class with your namespace, its not required, its part of the template as an example of how to save something through dawnlib's persistent data
wait so
this fixes lunarconfig stuff?
the issue lunar config had with the config resetting to new names like seven_four_experimentation is reverted so stuff is back to experimentation now
And dungeon injection is working?
the experimentation was on you...
Idk if specific lunar config features work or not, I don't specifically work on it
oh cool
ngl forcing mod creators to have a better naming scheme was probably the right play
They worked for me personally
I was able to inject some interiors based on weather, even showed up in the simulate command
meanwhile me still at 0.7.2:
cool, i didnt ask
I noticed that cruiser improved can bring items that its not even in the cruiser so its better leave this way
im keeping one pack on 0.7.2 so i can still play the game but otherwise dawnlib owns all my genetics
Whats broken with dawnlib? I didn't notice anything.
nothing afaik
moreso just trying to make changes to accomodate bad name design for items whilst also accomodating lunar config
but i decided to give up on accomodating the bad name design
oh no wait there is something (the reason i keep it on 0.7.2 is one pack, brain worms are real)
oh?
basically 0.7.3 + breaks centralconfig
oh right, yeah fair enough
i still wonder how 0.7.3 did that but oh well, too lazy to look into that atp
btw this should be okay now
just posted another update so that you wont see these warnings and instead i just quietly handle it internally
I need to see bepinex while playing
not sure how to be more specific. the asset bundle now contains namespace key information (validated via AssetRipper). but at runtime it still tries to save as : a single double-colon. ig I'll have to add debug prints to dawnlib
DawnItemPosTest.cfg
Send a build here I'll try to check with unity explorer if I can later
Or DM me the build, whichever you prefer
will send a bundle if I fail at debugging it myself.
Sure
meanwhile, how do we feel about .slnx format, if your tooling supports it? (might need to >Reload Window in VS Code, or restart Rider)
.slnx is comprehensible. Read more about it:
https://devblogs.microsoft.com/dotnet/introducing-slnx-support-dotnet-cli/
I'm unsure, it looks fine, but I gotta test to make sure it works and read up more on it
It sounds like a newer format, but it's probably fine to just sit on it until I see a proper reason for it
1m downloads nice
unless CI can't crunch it, should be supported since a year ago. wait, we have CI jobs to publish but not to build on pull requests? OH SH~!
Most of the GitHub stuff goes over my head :p
Idk if you know how to setup that up lol
understandable. everyone hates CI. I did it once for a Sublime Text syntax plugin, and as usual the branch test-ci was a gazillion of commits "aaaa attempt 9000 will it finally work??/"
(it did, in fact, not finally work)
Lol
Congrats @tawny hull
All configuration mods adopt the 'configure content' at some point 
I have no idea idea wtf has changed, but now namespaced keys (and by extension, saving Hookah) just works \o/
also, I feel like this was meant to be hidden from LethalConfig, but DawnLib doesn't have even optional integration with it
LOL I guess I should add a thing so that the editing config doesn't get created if you have no configs to begin with
Also side thing but DawnLib has a pretty invasive hook onto LethalConfig because LethalConfig is actually kinda stupid about how it handles Bepinex configs (it doesn't auto support every Bepinex format)
not sure if that is possible with BIE
LethalConfigManager.SkipAutoGenFor is not very invasive
Gross patch is a better word for what I meant honestly
lemme guess, because LethalConfig is abandonware?
Oh no I just meant that recently, every content addition has a config called "Content Name | Allow Editing Config" so that Devs can update config defaults like item cost and now it actually transfers to the users config and I shouldn't generate it if the dev decides to not allow any configs to their thing (which, your screenshot shows you removed configuration of stuff like prices etc)
It could probably have a PR done to it but it's not actively maintained no
yea, I figured out how to uncheck a checkbox lol
it just... made another checkbox in its place
xD
Lol
FYMTBYBF
+3 lines -30 warnings
```cs
<ItemGroup>
<Analyzer Include="C:\Users\user.vscode\extensions\visualstudiotoolsforunity.vstuc-1.2.1\Analyzers\Microsoft.Unity.Analyzers.dll" />
</ItemGroup>
however, unclear how to do it in a portable way...
1 manul
💀 lol
mvn, I figured it out
undefined tree. nice cocks docs, microslop
I've had decent success with submitting PRs for LethalConfig. I actually got a pretty quick response from Aina the last time that I was not expecting. The actual PR review took some time tho
Tbh it would be nice if there was a community run alternative or something that was a bit more actively maintained though
just put the repo under community-maintained org
i dont really think that'll help much tbh
I do the bare minimum required to keep mods running in the community org even when they don't have maintainers, so its better than nothing but only by a little
we shall have CI and badass badges
could use "modern" square style badges, but personally I'm into ol' good vanilla
CI build on PR is a good check, I've started implementing it in every community repo to slow down ambitious developers from breaking things
Tbh I have no idea if their license would allow that. And if it did it's still a really odd project to set up lol (uses thunderkit)
i think thunderkit might still be standard in risk of rain 2
Yeah I think it's based on risk of options so that would make sense
It do be the only lethal company mod I've seen using thunderkit tho
Enemy skin registry does too iirc
GPL3
PL3
Hi will DawnLib use AI for 30% of it's code next update? I fear if more modders dont use AI for useful purposes we'll lose social permission to waste energy on it.

xu already using XuGPT
Who’s we?
Microsoft
Also if you arent using microsoft edge then you should
it comes with multiple helpful AI features to assist your online browsing
i already have something called "AI mode" in my chrome
Why are you even still using Chrome?
why not
Chrome is just horrible, no Ublock Origin or anything ☠️
But we collect your data and sell it to advertisers so you get ads relevent to you!

Firefox isn't any better they're planning to ruin the Browser with AI I just use Brave cus they continue to support UBO
im russian, i dont need ublock
seriously tho, im using adblock and sponsorblock instead

Every other Adblocker is just so limited and Google knows it lol
I do also use Sponsorblock though
if i cant see ad i do not care how limited my adblock is
Manifest v3 do limit extensions in general
There be a lot it can't really fully block
yo, that way too offtopic. please continue browser holy-wars and whatnot in #general-chat
It wasn't, it was in the discussion of the AI stuff
people usually dont care if there is offtopic chat in threads
yo, that way too offtopic. please continue “yo, that way too offtopic. please continue browser holy-wars and whatnot in #general-chat” and whatnot in #general-chat
yo, thats way to yo, yo. Create yo own yo thread in #newthreadnitsyo
Bro did not disable the ml flags in about:config
ouguhghhhh......... im so full and round.......................
ouuuuughhhhh
rubs belly
I'm wondering cus discord is gonna phase out tenor and switch to either klipy or giphy
thats.
right i cant say that
thats fucking stupid
And atp im hoping its klipy cus giphy search is completely useless
Yeah we fixed it for now by ensuring this was done in Lunar Config for dungeons
paco informed us
Update pushed
It was interesting cus I had enabled debug logging and couldn't even get it to let me know why the game would soft lock on landing the ship or land the ship and the interior would fail to generate, but Dungenplus was freaking out with debug logs so I just sent paco a couple logs and he found it lol
v0.7.10
- I said the dungeon stuff breaking wasn't DawnLib and then I woke up to a message showing it was, It's time I pull out the ukelele.
anyway im going back to bed, thank you to the people who reported the issue and paco for pointing out where it was
That's because it was workin as intended, but the intent in question was clamping max dungeon length to 0 
No need to log an error or somethin if it's properly working, clearly
congratulations on claiming 1 million peoples minds
why game no work
?
@fallow remnant i thought merging your CI PR would allow me to see if other PR's also build
but uh, i see nothing of that nature
i might have misunderstood it
Afaik firefox plans to add a toggle to disable all ai related functions from their browser, but idk how true is that yet
I know but the browser already has issues of failing to load web pages randomly and has memory leaking issues for a handful of people
Hmm
and they wanna bloat it with a bunch of opt-out AI features
Fog should be fine now (probably) 
needs to be rebased. old PRs don't have the CI yml yet
will do in a minute
Icic
Am I good to set everything back to the way it was
I.e. disable the clamp option in Lunar
Or should I still keep it enabled just in case
wtf is GitHub doing... second time I rebase and force-push a branch, and it just closes the whole PR without any option to reinstate it! wttffff
yeah, that's how rebasing works
it sees a root change and invalidates the whole PR
no, that's not how rebasing is supposed to interact with open PRs
GitHub has had partial outages yesterday around the time I opened those PRs which later got erroneusly auto-closed. it's gotta be the collateral
if you say so
this one didn't get destroyed, and passed CI checks:
https://github.com/TeamXiaolan/DawnLib/pull/57
.slnx is comprehensible. Read more about it:
https://devblogs.microsoft.com/dotnet/introducing-slnx-support-dotnet-cli/
I say so because of years of experience in Qt & KDE where rebasing is a cornerstone part of workflow. We don't make "merge commits", we rebase them onto current master branch, and merge with fast-forward only. So yes, rebasing is how I usually get things done. It doesn't make any sense that force-pushed branches get deleted & recreated, which as a consequence renders the whole existing PR completely unusable.
i mean, i've encountered that exact behaviour on github myself, so i assume it's their version of doing things
nah, it's 30% of all code being AI generated
it was happening long before microslop
anyway, this time they game me a Reopen button. It's all green now \o/
i think i've found a reference to that behavior happening: https://github.com/orgs/community/discussions/7523
Steps to reproduce: Work in an existing repository with a number of branches and commits. Create branches "master", "release" and "trigger-ci", where the latter two ar...
oh, isn't that because rebasing to another commit on main (merged in previous PR) made those two branches the same?
that's some undocumented bullshit anyway
oh wait also no
who knows now... they also retroactively cleaned up that 'because the branch was deleted' BS. just blamee the outage
Yeah you're able to reverse your clamp changes
The default clamp was supposed to be 0 999 but it was 0 0 erroneously
another minor stuff with a green checkmark on it
https://github.com/TeamXiaolan/DawnLib/pull/65
ye i saw, responded to it, if you dont wanna look for hte others i can merge and look for em myself
just working on some other impl's rn
I did look for the others, couldn't find much
part of the story is that I'm mostly just doing through dotnet build output
whatever throws warnings catches my eye
everything using IDawnObject should have it or smthn, thats what ill look through when im done writing my transpiler
honestly, don't know how to benchmark the benefits of this one:
https://github.com/TeamXiaolan/DawnLib/pull/64
probably extra minor time save at best
yeah i wasnt sure about this one because I don't know why it was GeneratedFile and not MyPluginInfo (I dont even know what GeneratedFile is lol)
just any file name
Outputs Optional attribute.
The files that form outputs into this target. Multiple files are separated by semicolons. The timestamps of the files will be compared with the timestamps of files in Inputs to determine whether the Target is up to date.
golden locker... (Testing adding extra scraps per interior impl, seems to work)
just a wee bit of scrap
@hollow viper I don't know what are you up to, but I genuinely think you should be rebasing your patches onto main rather than trying to merge main into your branch over and over again
maybe
but im writing my own stuff here
not just patches with fixes
well, in the main repo though, so I was wondering ¯\_(ツ)_/¯
also, all commits are patches, not just fixes. just a different word
this one gets rid of half of the warnings, pretty big
https://github.com/TeamXiaolan/DawnLib/pull/66
I have considered alternative routes, and I think I chose the most optimal one
this one has been bugging me, i needed to use the obsolete values but i didnt know what to do about the warnings lol
i have this for shit that i dont care about
not gonna lie, not being very familiar with .NET ways I "consulted" with an LLM on the topic. Pretty much very other alternative boiled down to some sort of "globally suppress them for everything", can't selectively suppress for APIs inside the same project, unfortunately. I don't want to suppress each and every Obsolete warning, because they might be legitimate, coming from 3rd party API.
yeah i thought about the global suppression and i didnt want to for that exact same reason
thanks for mentioning! now that we have Unity analyzers, we can remove existing suppression there
oh yeah
(I think, hopefully)
well at least awake() is not gray out for me so i think it worked?
without supression i mean
six seven new funny number or so I've heard
https://github.com/TeamXiaolan/DawnLib/pull/67

is dawnlib still causing issues or is it sorted
can you be more specific when asking for support?
as in is it causing issues when it comes to multiplayer joining?
loading etc
afaik people are able to join eachother
hmm ok
those issues should've been solved a while ago
means another mod is causing issues 4 me rn
ah, rip
i speculated it was dawnlib because of the prior issue
Likely gotta downgrade LLL, I be fixin a thing 
ill try that
1.6.5 or a diff one
for lll
1.6.5
got it
im gonna test and see if that was the case
thanks
yeah it was lll multiplayer works fine now
appreciate the help
Found Terminal.DawnTryResolveKeyword which could use type? with [NotNullWhen] attribute
dam, i missed that looking at the PR lol
it is slightly concerning how much API is public
looking at the file with DawnTryResolveKeyword, yeah 
i never thought to look at that stuff in the PR's lol
paco how could you do this

You were the chosen one you’re not supposed to be breaking LLL 
well, I didn't break public API in any PR (yet), and will continue leaving [Obsolete] fallbacks
but yea, Terminal is totally public, I can use from HookahPlace
yeah that makes sense, i might sneakily break public API for things im sure no one's even had a chance to use it :p (depends how brave im feelings on that)
what about this guy https://lkml.org/lkml/2012/12/23/75
lmao
thats why it depends on how brave im feeling and how sure i am it is actually totally unused
my track record so far is only one breaking change on something was public, thankfully
lol so true

Oki ty :3
oopsy
oh i see now what you meant
The (this is a much better search query than whatever I was looking for previously
this one's tough, I'm done for today
https://github.com/TeamXiaolan/DawnLib/pull/68
[NotNullWhen(true)], savior of my intellisense
can't find any solid claims whether changing a parameter type from out T arg to out T? arg constitutes an API breaking change.
https://learn.microsoft.com/en-us/dotnet/core/compatibility/library-change-rules
i dont think that would constitute a breaking change
if the logic itself doesnt change
```
✔️ ALLOWED: Changing the value of a property, field, return value, or out parameter to a more derived type
For example, a method that returns a type of Object can return a String instance. (However, the method signature cannot change.)
Is `?` part of method signature? Gotta find out
I'd wish ABI compatibility tools were part of every project template out there...
@fallow remnant while you're looking at terminalextensions (and stuff that works with dawnterminalcommands) feel free to ping me with any questions you have. Majority of that stuff was written by me
great job! for now I'm fixing an unholy amount of build-time warnings, and in that aspect Terminal Extensions are making surprisingly little troubles
I wanna say yes the nullable operator is part of the signature
A bool? can't be compared directly like a bool it has to be coalesced first so that may constitute a breaking change if any of the subsequent logic on the out value could result in a previously valid comparison or usage becoming invalid
Its sort of correct to think of nullability as a less derived type. An object? is not just an object but sometimes null so that changes flow as a return or out type
all things in question are classes, not value types
That was just an example of how control flow changes based only on the nullability, if the output was always capable of being null and this is a fix rather than a change then your consumers may have already been using it wrong but I'd still call it breaking anyway
I created a classlib for test, and unfortunately I can see ? in the decompiled signature
Okay everything I'm reading says adding a nullable annotation to a value type is breaking at all levels and to a reference object its breaking in source but not in IL land
Cuz value types become a new type like Nullable<T> and reference types are content to be null without the extra work, but breaking in source still means consumers need to know about the change so I'd treat it as breaking in IL and give consumers time to adjust anyway
I tried both classes and value types. Both preserve ? in decompiled code. Not sure about IL yet - how do I get that raw?
Uh you can get extensions for your IDE that let you select and view IL for a given section or use something like DNSpy I guess?
I know Rider has one, but haven't used it in a decade
nvm, ILSpy has a dropdown for C#/IL
Nice. From what I've gathered, a nullable reference type gets an attribute [NullableAttribute] so its a source-only break but even MS represents source-only breaks as breaking because it can and often will require consumers to modify their usage of the method. Its not a technical signature change and out Thing should remain equivilent to out Thing? since a pointer is a pointer no matter how you dress it up
Previous consumers should still be able to call it but will see new nullable warnings when building against it. That's what I've learned
yea, I see NullableAttribute in IL
externally they are the same
```
// Methods
.method public hidebysig static
bool TryClassNullable (
class DotNetAbiOutVarNullable.ClassToExtend self,
string input,
[out] class DotNetAbiOutVarNullable.ClassArg& arg
) cil managed
{...}
.method public hidebysig static
bool TryClassNonNull (
class DotNetAbiOutVarNullable.ClassToExtend self,
string input,
[out] class DotNetAbiOutVarNullable.ClassArg& arg
) cil managed
{...}
well, that was fun
Yey
no idea why it decided to record glitchy background audio but gravity obtained, i can mess with the direction and strength, but for now im going to sleep
god obs is such a performance hog
wait what's wrong with lll? I was having a problem earlier trying to play with people after updating mods including lll
I did a couple goofs, should keep LLL on 1.6.5 in the mean time 
switch the encoding to happen on your gpu
it's much better
GravityLib is real (/j)
I cant believe next lll update will be 1.6.7
Nah that’s cowardly

Don’t let the Gen Alpha get to you
You're right

1.7.0 
versioning be damned 😭
Hey so while I am here, my modpack is having a big issue where it softlocks after finishing the first day of a new save file. It seems the ship is not properly registered as being in orbit despite completing the takeoff process. I cannot find the precise issue, but based on the logs and my recent activity it seems Zeta's WeatherInjector may not be playing nice with DawnLib. Downpatching LLL to 1.6.5 does not fix it. Anyone got any advice?
it's almost criminal that 80085 is not a valid version number part on Thunderstore!
Latest update should be fine (hasn't shown up yet in mod managers) 
-# Also pinging 
The latest Dawnlib update appears to interfere with LLL's changing of interior probabilities
I have the mineshaft interior set to a much lower spawn weight on Artifice (45 rather than the default 213), but with the latest DawnLib it still uses 213
Latest update shoulda fixed that specifically
v0.7.10 (left) vs v0.7.7 (right)
Ye there's no fire exits because it's just like one tile
gonna just revert back to 0.7.9

someone did find a tedious fix for it recently
but this isnt even my only problem today, ive been getting freezes and still trying to find the cause for it
This do be a large issue though
well not freezes, but infinite loading times ig
Yeah
good messages to wake up to
Interior fails to generate because max size of 0 does not work for almost all interiors
Thus you remain in orbit
oh wow...
ive been stressing to this one thing all day?
🫠
Mayhaps
It should be fixed in DawnLib 0.7.10 though
Like specifically the two values that were left at 0 by accident are at 999 in the latest version
welp just found literally both of my issues
the latest update causes infinite loading, idk
if you check #help-and-troubleshooting Ive been posting my logs from earlier and it did show dawnlib
It mighta not been your fault though, I dunno if it generated those as defaults due to earlier versions
But yeah it's that
nah the default is 999 but it might not have changed it for me when it updated lmao


theres my fix
Is this a known bug or should I create an issue on the Github page
I never had a similar issue
actually, now that im checking you might be right
Im using lunar config to set my possible interiors
and this is defintely not correct
@slow aspen
Might also be me questioning lunar earlier
That might be what it is, keeps complaining about encoding, I'll switch the settings thanks
The very first log is typeloadexceptionfixer breaking, my bet is on that
Do you have lunar config? If not then yeah please report it on the GitHub and I'll take a look at it
it only happens when upgrading dawnlib so it's probably some interaction between them
Would you say I just uninstall it then? I am not sure how that works
Not sure, some of your mods might need it, I'm just unaware of what might cause that so you might have to ask hamunii
Do you know which version it might've been that caused the weighting to be inaccurate?
0.7.7 is fine, 0.7.10 uses the vanilla weights instead
Hmmm okie thank you
Do you have a code I can consistently reproduce it on?
019c26f6-fb23-7084-8ce7-47d6000f3a9e
Has a ton of other mods but it's what my friends and I use. It currently has 0.7.7 as that's what we downgraded to when we noticed the weights issue
I booted the pack up without typeloadexceptionfixer or weatherinjector, and it still had the aforementioned issue. The logs are starting to point to DawnLib tbh
[Info :LunarConfig] Initializing Moons
[Error : DawnLib] Invalid key-value pairs format:
[Error : DawnLib] Invalid key-value pairs format:
[Error : DawnLib] Invalid key-value pairs format:
[Error : DawnLib] Invalid key-value pairs format:
[Error : DawnLib] Invalid key-value pairs format:
[Error : DawnLib] Invalid key-value pairs format:
[Error : DawnLib] Invalid key-value pairs format:
[Error : DawnLib] Invalid key-value pairs format:
[Error : DawnLib] Invalid key-value pairs format:
[Info :LunarConfig] Completed Initializing Moons
What the dog doin
Do you have a pack code? 
So
We remember that our partner pointed out that AdditionalNetworking Experimental was vomiting errors during the reign of the lag
We turn it off, and the lag completely disappears
We suspect that either DawnLib or LLL in their most recent versions is fucking with AdditionalNetworking, as lag like this has never come up before until those two mods' recent updates
We couldn't be fucked to debug any more tonight as we have been doing it all day, but if you could have a squizz at this hypothesis, that'd be nice
We like clients being able to crouch from flying old birds, so getting rid of AN E in favor of Dawn/LLL is gonna suck,,,
We're doing a final test rn to see if the lag manifests again, but from the two tests we did just before, it hasn't
Wdym the logs are pointing to DawnLib? Do you have any specific logs that are apparent? I couldn't see anything from what you sent leading to that (I usually only search for errors)
If you can confirm it reproduces with just DawnLib and weather injector installed though I can give it a try
These are logs that make me suspect Dawn
Ah those
I'll take a look at what would print that usually but maybe your lunar config's values aren't being picked up right? Unsure
Also I did it without weatherinjector, the timing of the logs made it was that mod but it does not seem to be
Yep, lag is completely gone
Thank god I finally found the culprit
When we first discovered this lag, we thought it was due to the fucking WEBLEY entity
😭
019c2749-9ef2-8fd9-57fc-1610ff6944ca
play around for me
I can believe that though

No, but here are three things we noted about it:
- An indication of when the lag is coming, aside from faint stutters at the beginning the round, or around 2 PM, is sounds randomly starting and stopping, as if the game's audio limit has been reached
- The lag most often comes into full effect at around 5 PM in-game
- It might be moon-dependent??? Adamance when we played didn't experience this lag, while Assurance and Offense got the boot
- We believe it favors Wesley's Expanded Mineshaft interior, for whatever reason. Dunno though, the lag can also happen in his Expanded Factory interior as well, but from what we've observed, it's happened less
This lag has not been tested with Zeekerss' Manor yet, and I doubt interiors really have anything to do with the lag
Unrelated (probably) but you might wanna set all curves in your LunarConfig settings to default 
Some of these have few keyframes and can thus do wacky stuff
It was fixed on DawnLib's end, but older configs don't get set back to default
I'm just glad I'm out of this lag purgatory tbh,,,
So I should not have custom curves?
Oh I dunno if you have them set some way
Or do they need a sort of ‘minimum’ key frames
I just aimed for simple linear curves or put in one curve if I wanted something a little different
Deliberately simple
It's just that tangents aren't accounted for, so like vanilla curves go haywire
But if you intend them to be like that it's prooobably fine? 
Assurance Turret curve (normal)
Assurance Turret curve (tangentless)
wdym exactly tangent
What Paco is saying, is that if you use only a few keyframes, it doesn't follow the curve how you expect
This is just because unity curves (and curves in general) aren't just made from points connecting, but they try to connect them in a smooth way, so you end up with unexpected results without forcing it with more points
You could have the desired effect if I supported being able to specify a tangent thingie, but uh that's not a reasonable expectation lol
But also including the extra stuff would make config significantly more confusing than it already is

numberToSpawn:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0.35461718
outSlope: 0.35461718
weightedMode: 2
inWeight: 0
outWeight: 0.28011334
- serializedVersion: 3
time: 0.9031903
value: 3.2084963
inSlope: 20.105343
outSlope: 20.105343
weightedMode: 3
inWeight: 0.19196574
outWeight: 0.71409297
- serializedVersion: 3
time: 1.0002186
value: 7.182892
inSlope: 99.52484
outSlope: 99.52484
weightedMode: 3
inWeight: 0.2207584
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 0
Tl;Dr, give your curve configs more points to force them to the shape you want them to have otherwise they'll curve in a way you don't expect
I wonder if there is a way to visualize curve for end user
I mean would be cool if mod managers could do curves for config 
Well good to know, but respectfully I would like my pack to properly work first 
mod for gale/r2/thunderstore
It is critical information if you have like 40 Turrets every round or somethin 
yeah im looking into it rn, just something mentioned on the side since it usually gets overlooked pretty easily
Also gotta commit, say it disrespectfully 
8-Titan seems like the vacation resort for you!
@icy nest are your curve configs empty for some of them? it's not a problem but this is where that log comes from, which just sets it to an empty 0 value curve (which is what i assume your intent is)
FIX MY MODPACK YOU USELESS DEV 🤬🤬🤬🤬
(Or v49 Dine if you remember that piece of shit's hazards)
Ye but it's like a 1-5% chance for the higher Turret counts on Titan, these wacky curves would make it very consistent
Yeah some are, I would just put 0 curves in all of them
Version be damned, Dine has never been good, fite me
Mostly for map props
putting 0 curve would get rid of the error, but it's a non issue those logs specifically
The BEST Assurance nerf in history ?!
A lotta custom moons use Assurance's Turret curve so they were all being affected 
v50 Dine was the best since you had optimal routes spread out across the hilly landscape, away from forest keepers
v70 Dine is a piece of shit cramped hellhole and v49 Dine, we do not speak of it
Audioknight should have used titan for tutorial 
i find it funny using assurance and offense as templates
v50 Dine was still worse Rend but it was the best iteration of Dine
I have a core classic LC memory of savescumming v49 Dine more than 10 times because fire always had either like 7 landmines or 3 turrets facing towards the door or where I needed to go
because they allow you to double jump
so theres just these bunch of custom moons taking from those two moons and keeping that bug in
which i have no idea where it comes from
Ironically enough would have way less turrets
Or like consistently way less turrets
Do ppl not bother in learning how hazard curves work or smhtn
But more landmines i think?
Double jump? What?
yo gale nice enums
Titan Turrets (tangentless)
It's enough to make a grown man kill himself... 🥹
if you walk along an incline, no matter how small it is, and spam space, you can double jump
only on offense and assurance (since they're the same map basically)
? What did Zeek do to their scenes in order for that to happen
no idea, could never figure it out even with some extensive logging
seemed like an engine bug
If I ever make I moon, I should use Offense's base then lol,,, ball knowledge tech for sweaty players
And also because Offense is our favorite moon
but also @white finch this is so stupid lol, why can i tick ALL of them
I know 
Lol
oh no, the engine bug thing wasnt relating to your pack, im still testing thaat
the engine bug comment was about the being able to double jump on offense and assurance
Ah
Works fine for me
Ye
I mean works I guess
But Solar Flare networking goofed
Snow looks oily black
Oh wait that's not Beta
Yeah I know beta is scuffed
Oh lol

But yeah replace with this: https://thunderstore.io/c/lethal-company/p/pacoito/LethalElementsTheta

θ
dunno, i rolled dawnlib back to 0.7.7 to see if it was smthn pretty recent but it wasnt
oh actually works fine as it is with re-enabled
is it just me disabling imperium's instant landing? lol
i dont use imperium but i didnt like having that enabled so i just disabled itand i think it worked
Ye just makin sure you do turn it off when actually playing
also im just leaving and re-entering gordion
but its counting up the days on your save
lol

Go to another moon
*Adds time to Company moons* 
I find that breaks things more
hmm yeah that did break
well Well WELL
man im at like 30 mods on this modpack and its still not showing me what the issue is 😔
Secret 
I appreciate the effort
😭
But which mods are the 13 finalists
Contest coming close to an end
i honestly dont know
my best guess is weather registry
you'd have to ask mrov but all i can say is that
when its working, all these logs get outputted
but when its not, only the first one does
so whatever is logging weathers received isnt being called and might be the reason to hanging in orbit
no idea
i should've tested disabling dawnlib from the start
it's not dawnlib that's for sure
that was a painful couple of hours
next time please test its not the mod before coming here atleast
Eye eye
your pack doesnt even load for me 😭 (i updated dawnlib to test), it just hangs with that last log "start is good"
Start is good!
there's two lunar config configs for dungeons
they look identical
idk which one is the right one either
this is likely better suited as an issue for lunar config anyway
crafty can reach out if he cant figure out what the problem is
The duplicate config would be if they made a backup and put it under the normal config section prob
Open both in VSCode and check the directory the one under BepInEx > Config > LunarConfig is the one that's important lol
the other one will do nothing
my best guess to TLEF being broken and screaming about the lack of MonoDetour is that MonoDetour is not installed for whatever reason
and the most likely options are:
- The user disabled it
- The mod manager has a bug which caused it to not install or get disabled
teehee
I dont know when this happened, but i can use playmode now with dawn installed?
idk why but the newest LLL update fried one of my modpacks in multiplayer 😭

it shows the screen when u land onto a moon when someone joined my lobby
idk why
downgrading to 1.6.6 fixed it
might be in combination with other mods but still caused by the newest version
specifically the "waiting for players to load" screen
you can? i guess when moving to injectionlibrary
apparently so... only noticed because i was interested in checking out the profiler
works on my machine ¯_(ツ)_/¯
It takes a long time to load because of all the models and such


