#Lategame Upgrades
1 messages Β· Page 35 of 1
Would anybody happen to know if the shotgun upgrades work for stuff like the Piggy rifle and revolver? Bit scared to activate them if it does lol
They shouldn't.
Sounds like the mod didn't try to load at all.
Pikmin get annihilated by it lol. For lethalmin they count as an enemy
Nice, lol.
Found that out the hard way lol
it did load however, as far as i tested i could use the LGU menu
So you're just not finding it?
It is labelled "com.malco.moreshipupgrades".
@steady trail you do not seem to have a discord chat for the terminal api u did, so ill pop it here.
A: Beautiful
B: Is there a way to allow text input after selecting an option (Im dabbling with the idea of passworded "Professions" in a profession mod. So a player can access their profession from the last time the save was up by typing in a password.
Not really because the whole thing is an input text.
Dang ahwell
Surely u could have a "send to input page" sort of deal that sends u back to a "normal" input system and, upon pressing enter, takes that input and uses it in the logic again?
Maybe xD
I would have to figure out where to put the caret.
Also something u might like, I made a tiny factory for the UI elements and I think it looks rather clean imho :L
using System.Collections.Generic;
using ContentLib.API.Model.Terminal;
using ContentLib.Core.Model.Managers;
using InteractiveTerminalAPI.UI.Application;
using InteractiveTerminalAPI.UI.Cursor;
using InteractiveTerminalAPI.UI.Screen;
namespace ContentLib.Core.Model.Terminal;
internal class SettingsTerminal : InteractiveTerminalApplication
{
private readonly SettingsManager _settingsManager;
public override void Initialization()
{
CursorMenu cursorMenu = TerminalUIFactory.CreateCursorMenu(InitMenuCursors());
IScreen screen = TerminalUIFactory.CreateBoxedScreen("Settings", [
TerminalUIFactory.CreateTextElement(" "),
cursorMenu
]);
currentCursorMenu = cursorMenu;
currentScreen = screen;
}
private CursorElement[] InitMenuCursors()
{
var cursorElements = new List<CursorElement>();
cursorElements
.Add(TerminalUIFactory
.CreateCursorElement("Logging", _settingsManager.MoveToLoggingSettingPage));
cursorElements
.Add(TerminalUIFactory
.CreateCursorElement("Events", _settingsManager.MoveToEventsSettingPage));
cursorElements
.Add(TerminalUIFactory
.CreateCursorElement("Dependencies", _settingsManager.MoveDependenciesToSettingPage));
return cursorElements.ToArray();
}
}```
What if i said i'd give you one whole cookie if you did ? π
Busy with other stuff, lol.
Would you accept a PR?
My work with content lib speaks for itself lmao haha
I wouldnt dare do a PR without either Unit testing or in-game testing (one or the other, preferably both xD
Might even slip in that factory i did if you think it looks clean :L
Whitespike I'm gonna do a pr that deletes system 32
I hope you're okay with it
Nom
Oh btw spike, the links in the docs for the api usages in LGU are broke (as you moved where the terminal lives in ur repo)
@steady trail sorry to distrub again but , with the Terminal API, what is the workflow for something like LGU, where it sends you to a seperate screen via a button AND has a return key?
In this case, replaces the action callback from exiting the application and inserts the switch screen instead.
It could be better but it was a rushed out idea made at the moment and I don't have the time to make it better.
I meant how to do it in api haha
or is 2am brain getting to me?
Suggestion for malware broadcaster; Divide the upgrade into two levels, first level extends the duration of the trap disabling, second level explodes map hazards. First level cost is 550 second is 1100 or maybe more because it feels very op.
I like that you made these two mechanics as a config option but i think it would be more interesting to be able to use both mechanics this way.
I mean id prefer there to be a menu screen option to switch the,
them
as some people dont like the explodey
but only on certain levels
e.g: Id love to turn off explodey on the mine level
Maybe add a config option so we can chose which hazards are explodeable? For example i would like the see mines to explode but not turrets.
I mean whilst we are at it , use the termina api to add the config options in-game for the host β€οΈ
It doesn't have a specific thing for it right now.
https://github.com/Malcolm-Q/LC-LateGameUpgrades/blob/edaaffda168c90882c6494a4d7f0e0a4f1b80f9d/MoreShipUpgrades/UI/Application/UpgradeStoreApplication.cs#L104
I can make it configurable to have both options:
- Either have one of them at one level (either deactivate longer or explode on first purchase)
- Have both at different levels with their respect prices.
I think that would be good for everyone included.
I would have to look how I can see what the hazard is before doing anything to it.
If there is a way, a blacklist is possible.
You can probably do that, the only thing missing is input ones for string configurations.
The list ones I am not sure if it can support that by default but the only issue I can see right now is how long it takes to generate the screens for user experience.
Sorry for the late responses, withdrawal from socializing is kinda hard for me to deal with.
Having both at different levels is very fitting i imagine, would be great if you can make it
Hey everyone. I'm currently having an issue where I can't access the LGU command or the lategame store in general. Attached is my log file if it can give any insight
Seems to be some sort of problem with inserting sales into the terminal
Going out of bounds for some reason.
Might be worth tagging white spike
@steady trail any ideas?
You're running an older version of the game.
Which was before the anniversary update.
Where sales were changed.
@weak chasm
Oh I see my game was set to public beta assumed it would be at latest version
There has been alot with that, yeah. Haha
Wouldn't be an issue if zeekers followed consistency but oh well, we have to live with what we got.
Yes it works now! Thanks so much!
Didn't realise he changed how sales worked. How'd they work before?
Wasn't there a teleporter cooldown upgrade? or am i imagining things?
Particle infusion
I'd kill btw for the portable teleporter to be just a remote controller for a weighted bird paper weight that rocks onto the ship teleporter button when pressed π€£π
this?
yeah xd
is the general improvements cooldown settings are still incompatible?
these
if so then it would be a good idea to add a new upgrade for it
i found a problem, if i teleport myself with fusion matter upgrade my weight seems to go up
even after dropping all my items
teleporting again without any items fixes it
I can't do anything when the method I patch gets removed.
So right now worst case is the relevant upgrade does nothing.
I might have forgor back muscles calculation.
Because the patched method just resets the weight to "zero" which isn't ideal when being nitpick with what items stay.
So I have to calculate the weight based on what items you have in your slots.
- Implemented tier upgrade which increases the health regeneration cap of the vanilla health regeneration mechanic.
- Implemented tier upgrade which increases the amount of health you regenerate through vanilla health regeneration mechanic.
- Implemented API (UpgradeApi) to facilitate modding around LGU's upgrades.
- Allows retrieving data related to the upgrades of the session (All, Visible, Purchaseable, Rankable);
- Allows requests of triggering upgrade rank up;
- Allows requests of contributing towards an upgrade.
- Requests require the name of the upgrade (either original or overriden) or the node associated to the upgrade to be considered valid.
- Added world-building text to some upgrades. (Thank you Nat(discordID:twinkula))
- Fixed contribution values from Item Progression mode not being used correctly during save reboot.
- Item Progression modes of UniqueScrap and CustomScrap will not rank up upgrades hidden from Randomize Upgrades mode.
- Made Efficient Engines discount price effect also apply on [Lethal Constellations](https://thunderstore.io/c/lethal-company/p/darmuh/LethalConstellations/)'s constellation prices.
- Added configuration for Sick Beats to make the boombox music not attract nearby enemies when purchased.
- Added configuration for Discombobulator to blacklist enemies from its effect when fired.
- It checks both the internal names stored in its data or the header text shown in the scan node for equality in the blacklist.
- Fixed issue with GoodItemScan Compat with wrong logic being applied.
- Fixed issue with Item Progression leading to upgrades not having a contribution value assigned to them.
- Fixed issue with Contract objects showing radar icons even when they are destroyed.
- Fixed issue with Fusion Matter ignoring Back Muscles weight reduction when keeping items in your inventory.
This is what I have right now and I don't have an ETA for a release due to uni problems.
understandable, looking forward to it thanks
umm upgrades never seem to go on sale, any idea why?
do you have any idea on what other mods can cause it?
No clue, it is its own system.
health regen is a godsend in mods like usualscrap
Did u remove extra days from the mods? @steady trail
Its own mod.
Extend Deadline.
I thought it used to be in lgu
It was.
U removed it? Why not just make it a dependancy? π
Because it's not really a lgu thing
Welp
thats our current run fucked lol
we went to company thinking we could extend days
Big rip
Health regen? Finally, now I can get rid of LethalProgression, it was the only true reason why I used that mod, the other upgrades that came with it, like loot value and battery capacity were just a bonus.
Though will it account for increased health via stimpack? Or will it regen up to the default 100?
Actually, better question, is this actually going to allow us to grant normal health regeneration, or simply increase the threshold of health that would regenerate when critically injured?
So I noticed that whenever I reopen my save file my nightvision goggles go away? I assume that isnβt supposed to happen?
how can I disable a tier in upgrade
what I want to do is Betterscanner have only 2 tiers instead of 3
It increases how much health you regen to, critical shouldn't be touched from what I remember.
It should.
Without logs, I can't know for certain what's wrong
Better scanner doesn't support that right now.
oh sadge
Hey btw, you should likely switch the DropAllHeldItems error to a warning :3
Whenever you update the mod again
lol
I mean it does generate incorrect behaviour.
so as of WeatherRegistry's update to 0.3.0, Weather Probe no longer does anything. dont know if it's a matter of keeping up, or if WR broke something.
Hi @steady trail just asking if you can add a configuration where a contract is automatically bought every day on a random moon and Is show in the chat like the huntdown mod but it's sayd in orbit wich contract is and on what planet
Let me know if you wan't to do itπ
If you could explain better what you want right now.
Because the only thing I'm seeing here is that you want an option for an auto-buy (which I don't know if you want credits deducted or not) and for other spots to check what/where is the contract.
@steady trail Having an issue with the teleporter being on 0 cooldown in the ship which causes Vega's teleporter function to break
Zero cooldown on the button?
I don't remember ever touching its cooldown.
The only thing I can see it causing issues is the interns but then you would see the error prompt.
Should I disable interns N try again?
Will try that now
Also i noticed that you don't really select the player when you use the intern command
And you can only do it for one player and that's it
And there's no confirmation to using it like "spend 1000 to revive X person? Type (Confirm)"
The intern is on the person you are looking at the radar, yes.
Oh I did not know that
It was last touched seriously like five months ago.
Maybe more, I rarely need to check its functionality.
I personally think it should have the same ui as the normal lategame menu where you'd pick from a list of players, I think that's a better way of doing it
Oh i was just suggesting and stuff I wasn't insulting your work or telling you what to do
I know you're busy and stuff too i wasn't trying to say anything bad
It's fine.
How's uni going btw?
Decent.
That's good
Not many people I hang around are there though so I kinda just wander around when I go there.
Aww
Honestly same here, I don't know many people in my uni
So i just sit on my own on my phone sometimes during breaks
Right now, I'm just reading stuff for the paper and then start having some thoughts on how I want to make things out.
Yeah, I don't have classes anymore, only have to focus on doing the paper.

You got this!
Vega :3
oh!
Thanks!
If you need my configs for it I can send it to you
That hud was hard to make that way
No i Just setted the credits to 0 so Just an autobuy mechanic
And popup when the random assign happens?
I had an issue the other day with Landing Thrusters making the ship land slooow af instead of quicker, but upon testing again today, the issue is gone π€· Awesome mod btw, tons of fun.
Yep
I also setted It to spawn on also all Moon also the non free
So that you can go to a non free Moon After seeing that It has a contract
Something that could be cool for contracts would be if they also rewarded a bonus (e.g: The money for the contract and a guranteed sale on X item, a free upgrade, etc)
@steady trail hey when you're available, could you let me know if there is an inverse of this that I could get a listing of all the commands LGU adds? (or maybe if this is something you'd be willing to support?? π₯Ί) I'm looking to add some compatibility with the autocomplete feature in my terminal mod
oh I didnt think to check there
would you mind if I used an assembly publicizer on ITAPI in a soft dependency?
I don't mind at all
@steady trail whats ur thoughts on this?
Sounds neat.
Greetings~ I hope everyone is having a good or at least a decent saturday
Question! Is it possible to rebind the key for the night vision goggles? I saw chats here back in Jan of people being able to do it but I don't see a setting in the config. Was it removed or is it somewhere else I'm not looking? I'm looking in MoreShipUpgrades > Night Vision both in Gale and LethalConfig in game
settings > change keybinds
Great! Thanks so much, @gritty basin~ When I get back home I'll look at the settings ^w ^
so this worked for a few of them, specifically these
And now you need the upgrade command ones like disco?
but I was wondering if there was a listing anywhere for the more basic terminal commands like forcecredits atk etc.
Listing, no.
unlucky 
so I would essentially need to make a list manually if I wanted to add support for those
For now, yeah.
for now? π
oooo hell yea, that would be appreciated 
Other than autocomplete, it'd also be useful to have a list of commands you add that I can check so i'm not overwriting any of them in my mods that add commands
especially since I let keywords be configured by the user in config lmao
for now i'll do a manual list since it looks like these commands always return something
my friend and I are trying to use this mod but when he joins, he sees just a black screen. is it because of the new game update?
could we get your profile code and logoutput.log please
From what I saw just now, the quantum disruptor revert command can only called on host?
I don't remember if people reported this or I made it intentional when I made it but I feel like it shouldn't be a problem if clients can do it.
I can probably make a release today, actually.
Remind me again, the intended behaviour was for it to show the cooldown on the button?
Yeah
When in orbit the cool down goes to zero
So it breaks Vega cuz it uses the normal cool down N Vega is stuck at 0.25 seconds for the teleporter cooldown
Okay so I think what is happening is:
- Button is set to not interactable due to cooldown. This is just vanilla behaviour.
- Intern check sets it to wether the looked at person can be teleported according to the restriction (regardless of wether it was interactable or not before)
- If false after previous check, alter the error message to be related to the interns check.
So the problem here is that I didn't check if it was not already interactable before I did stuff. I reckon that's the fix I need to do here.
Ok ok, that should be fine then.
I will do this later on as it requires changing some of core stuff.
And the alternate currency is still in the works as there is some refinements needed such as where I can show the amount, trade, gain, yada yada.
3.11.0 release:
- Implemented tier upgrade which increases the health regeneration cap of the vanilla health regeneration mechanic.
- Implemented tier upgrade which increases the amount of health you regenerate through vanilla health regeneration mechanic.
- Implemented Upgrade API to facilitate modding around LGU's upgrades.
- Allows retrieving data related to the upgrades of the session (All, Visible, Purchaseable, Rankable);
- Allows requests of triggering upgrade rank up;
- Allows requests of contributing towards an upgrade.
- Requests require the name of the upgrade (either original or overriden) or the node associated to the upgrade to be considered valid.
- Implemented Discombobulator API to facilitate triggering callbacks to the Discombobulator upgrade.
- Allows checking if the discombobulator can be fired to stun nearby enemies.
- Allows checking if the Discombobulator upgrade is enabled in the configuration.
- Allows requests of firing the Discombobulator mechanic (so long as it is able to fire);
- Allows requests of setting/incrementing/decrementing the current cooldown of the Discombobulator.
- The calculated value will not pass the boundaries of zero to the configured maximum cooldown of the Discombobulator.
- Implemented Quantum Disruptor API to facilitate triggering callbacks to the Quantum Disruptor upgrade (more specifically the revert mode)
- Allows checking if the Quantum Disruptor upgrade is enabled in the configuration.
- Allows checking if the Quantum Disruptor revert time command is enabled in the configuration.
- Allows checking the reset mode used to reset the revert time usages value.
- Allows checking the current/maximum amount of revert time usages per moon landing and amount of hours reduced per usage.
- Allows checking if the Quantum Disruptor revert time command can be executed. (along with display message in case of error)
- Allows requests of firing the Quantum Disruptor revert time command.
- Added world-building text to some upgrades. (Thank you Nat(discordID:twinkula))
- Fixed contribution values from Item Progression mode not being used correctly during save reboot.
- Item Progression modes of UniqueScrap and CustomScrap will not rank up upgrades hidden from Randomize Upgrades mode.
- Made Efficient Engines discount price effect also apply on Lethal Constellations's constellation prices.
- Added configuration for Sick Beats to make the boombox music not attract nearby enemies when purchased.
- Added configuration for Discombobulator to blacklist enemies from its effect when fired.
- It checks both the internal names stored in its data or the header text shown in the scan node for equality in the blacklist.
- Fixed issue with GoodItemScan Compat with wrong logic being applied.
- Fixed issue with Item Progression leading to upgrades not having a contribution value assigned to them.
- Fixed issue with Contract objects showing radar icons even when they are destroyed.
- Fixed issue with Fusion Matter ignoring Back Muscles weight reduction when keeping items in your inventory.
- Fixed issue with Quantum Disruptor Revert Time command not being able to be called by non-host players.
- Fixed issue with Interns Teleport Restriction configuration making the teleport cooldown ignored.
Too big to fit in one message, lol.
Oh yeah, @strange violet supposedly constellations price should be affected by the engine upgrade thing.
Who else...
@devout prism this should address the issues you talked about earlier (plus removed the reset from LGU's side).
find anything involving probing weather with #1203871322841808906 's 0.3.0+ updates?
I haven't looked at that yet.
But my best guess is its system is completely separate from vanilla.
So it will probably have to change its "change weather" logic according to the registry when it's present.
@median egret ^ π
could be π€
i just wanna probe into meteor showers and eclipses again without being stuck on 0.2.9 >.<
Chuncky update, ty for the intern fix btw<3
What happened to the original creator?
01938464-ff7f-67a6-5fbe-68c1eded6994
my log is the first one, my friend's is the second
Fun.
In the configuration related to fixplugintypes, what setting you havein preference?
I cant seem to find preference, but here is the file
`## The GUID of the last downloaded UnityPlayer pdb file.
If this GUID matches with the current one,
the offsets for the functions below will be used
instead of generating them at runtime.
Setting type: String
Default value: 000000000000000000000000000000000
LastDownloadedGUID = 000000000000000000000000000000000
The in-memory offset of the MonoManager::AwakeFromLoad function.
Setting type: String
Default value: 00
MonoManagerAwakeFromLoadOffset = 00
The in-memory offset of the MonoManager::IsAssemblyCreated function.
Setting type: String
Default value: 00
MonoManagerIsAssemblyCreatedOffset = 00
The in-memory offset of the IsFileCreated function.
Setting type: String
Default value: 00
IsFileCreatedOffset = 00
The in-memory offset of the ScriptingManagerDeconstructor function.
Setting type: String
Default value: 00
ScriptingManagerDeconstructorOffset = 00
The in-memory offset of the ConvertSeparatorsToPlatform function.
Setting type: String
Default value: 00
ConvertSeparatorsToPlatformOffset = 00
The in-memory offset of the free_alloc_internal function.
Setting type: String
Default value: 00
FreeAllocInternalOffset = 00
The in-memory offset of the malloc_internal function.
Setting type: String
Default value: 00
MallocInternalOffset = 00
The in-memory offset of the m_ScriptingAssemblies global field.
Setting type: String
Default value: 00
ScriptingAssembliesOffset = 00
`
Hmm
So it's only generated after the download, okay..
Right now, the link they used was changed to https which it doesn't support due to either lack of redirect support or tls support.
The most likely workaround right now is to get some config before it was changed from someplace. There's an issue in this repo that has posted a config that apparently works.
would you happen to know where to find that config? or should i look through for it
Quick one to do with the faster encryption. Something you may not of considered with it is that, as the message as a whole is faster, so is its deleition. So the benefits of a longer message are missed as there is not enough time to read it (as it goes off pretty much instantly after finishing)
Also, I had helmet stay on me after being killed by Bracken. I respawned and didn't know it was still on me.
I believe the helmet only ever gets deleted from non-one-hit events.
At least from what I am remembering on the code related to it.
Whats your thoughts on the faster decrypt upgrade issue?
Like you want to delay the deletion based on length?
Plus terminal by vanilla is already limited.
Something like that mate, I can speak from a group of 6 of us. It pissed off one of my mates so much he asked us to stop using it as it was more annoying than useful as he could never read em xD
So supposedly increase this "0.5"
Hmm
Not sure how I want to do this because increasing it too much might be annoying.
And it should only apply when you're using Fast Encrytion aswell.
Maybe doing something like checking that upgrade, some config where you can put how much additional time it stays on (past a certain threshold maybe?)
Id do a ratio
Figure out the ratio of how long it stays on screen in vanilla vs how long it takes to write the longest sentence
And then apply that ratio to the number to replace there
also did zeekers legit just deadass hard code his float there?
grumbles
Maximum longest time to write the longest sentence in vanilla is:
- Wait
1.21fafter playing the transmit sound and showing the UI - whenever
Nextalways return between 0 and 4, makingnum0 which then it's always0.7fin each WaitForSeconds. (this up to maximum length of message) - Wait
0.5fafter transmitting the final character of the message.
Ah so whats the max then, man cannot do math rn its 3:30am xD
0.5 / max tranmission write time.
0.5/(1.21 + whatever the max is)
Or rather the more useful value:
(1.21+whatever the max is )/ 0.5
It's 1.21 + Sum of all values between 0.2 and 0.7 up to message length + 0.5 for the total transmission time.
Yes but I am suggesting you get the vanilla pause after writing is complete , and divide it by the vanilla time it takes to transmit a full message.
Or rather vice versa
to get you a ratio you can use for your messages
Infact wait
no
sorry whitespike
im being stupid
0.5 is the vanilla pause after writing yes?
Make your pause 0.5/9 * character count of the message
As 0.5/9 is the average pause time per character
That seems a smaller number.
And lesser is faster.
Have it ceil
at 0.5
But subtley get slower at higher word count
via the ratio
So minimum vanilla, but if word count goes over 9 start implementing the ratio
So the nine is actually vanilla length.
Because there's the twelve checked in the serverRpc then the ten in the client rpc.
Having an odd bug, which i don't think was present before the latest update.
If a non-host player is present, disconnects, and rejoins and an upgrade was purchased while they were gone, the non-host player seems to be overwriting the host's upgrade list with the last one their client logged. This reverts the upgrade list back to the state it was in when that player was last present, without refunding the money.
Is this a known bug? I know for a fact I've bought upgrades before while the everyone wasn't in my lobby, and this hasn't happened. If this is something new, I can post a log file.
I'm more inclined to believe they have less upgrades rather than overwriting because the saves only happen from the host and those only happen when they (the host) disconnect or autosave happens.
I am the host in this instance, and can see it happening in real time. The console outputs a second "Applying loaded upgrades..." message when another player joins, rather than the "disregarded, file already recieved from host" I think it should be outputting. I'm seeing the upgrades literally disappear as I'm looking in the terminal.
The upgrades reset to what they should be when I restart the server, but as soon as another player joins it resets it, every time.
It's reloading previous sale prices for upgrades too, now that I'm looking through the log file more. Before it does that and then reloads the (wrong) upgrade list and sales, it says this after another player starts connecting:
[Info :More Ship Upgrades] [LguStore] Save file received, registering upgrade objects and deserializing.
[Info :More Ship Upgrades] [LguStore] SHARED SAVE FILE: Loading index 0 save under steam ID: 76561198402117944
That's my friend's steam ID, not mine. Immediately after that it starts loading the wrong sale prices, and then a little later the upgrade list's state when they were last connected, overwriting mine.
I dont know why you're getting a second file loaded and start load upgrades log. A toggle is on before that log is made which is what stops from loading upgrades again.
I'll post my log file, if you have the time to look through it. Give me just one second
Tried to restart to get a relatively clean one. Sorry if this isn't the right way to go about this, I'm very new to asking for modding help.
No problem at all. Thanks for even responding, I really appreciate it.
I probably know why and I thought the previous person checked it but they didn't.
But yeah, I am already in bed
Because my bet is that it only happens on the first time.
The consecutive after wouldn't do anymore.
I think this is right, I do remember it giving the correct "disregarded" message if multiple people joined.
Because when the host joins, they didn't start with the toggle on.
And since they are a client as well, they get the save share message.
I just have to toggle it on after lobby load and it should be fine.
Fantastic, thank you. But yeah, get some sleep- sorry to keep you up.
Jeez. Dunno why I never ran into it before...
Because shared upgrades are less likely to show it.
You could only have found the issue if the host and client had different upgrades.
Pretty sure it's 9 iirc
Unless substring length parameter is not actually length, it should be 10 in the client rpc.
Either way point stands haha
0.5/10 aint gonna hurt haha
I don't like random numbers.
Oh ffs I just realised
The space after transmit no?
transmit the message
Is that why it's 10?
9 characters.
And then 1 space after transmit
So he starts from the space and nabs 10 characters. I.e 9 and the initial space
Zeeeeekers! * shakes fist
is Moon Day Speed Multiplier Patcher compatible with central config?
No. It gets replaced by CC.
You don't need it with CC anyway, their function for adjusting day speed works without it
Do you need it with LGU? I assumed no.
Need what with LGU?
Moon Day Speed should be independent from LGU.
Unless something went wrong when compiling it.
Moon Day Speed Patch
I assumed you don't need it with LGU as LGU has upgrade that affects timescale.
some moons has it as dependecies so
i have to use it i guess
Btw @steady trail took a long look at the TerminalAPI and I cooked up this structure as a refactor / remake. Thoughts?
Concept wise seems fine.
Yeah, was trying to figure out the best way to do the page navigation a bit cleaner
Might add a store element too
Yes , but specified to a button if that makes sense.
Or hell actually hold on...
a purchaseable button.
So a normal button element
It's essentialy a button.
yes xD
Im making the point of not recreating the Terminal API, but more, tidying it up a bit haha
Adding more "out the box without having to mcguiver it" solutions
Basically expanding urs π
I'll work on it and yeet a PR over when its cooked
Space battles with 4 people where you have pilot, gunner, engineer and scavenger classes.
Set amount of objectives and you try go as far as you can go with the resources you get throughout.
The building part in the ship is modular-like so you can easily change the setup when needed.
They use a manager of sorts to handle stuff (from what I have seen in their thunderstore page) so I was just messing with it.
Ended up using generics already, lol.
Are the blues like implementations?
mhm
Because IntegerSlider's min and max can be in the interface, I reckon.
Wait, interface, ergh
Should still work.
but say enum based.
Enums are limited aswell, no?
They are.
Ignoring the fact they inherit sbytes.
Thats the point. An Enum Slider is a slider that can slide between enums
So say you have code that is effected by enums
you can slide through which one you have active
Yeah, I get the idea.
I feel like the base should be able to include the min/max.
Because every slider will have those two always.
You cant have a min max string, or enum, etc haha
Well yeah.
E.g: The string slider would just rotate back to the begining once it reaches the list end
The rule is, if it doesnt work for one type, it doesnt go in the interfaces
:\
its to prevent yourself pigeon holing
What even is a string slider for.
Because I can only see a string slider being a variant of enum slider.
No idea. But immediatly i can think of a nice UI for a "change the name of your radar boosters" mod that uses it to toggle through names
Hmm
And also thats the beautiful bit about this, you are right most likely.
But right now theres 0 code
so i can just go
"snip"
Yeah, we are just arguing the usability of these.
Which is a lot more of a pain in the arse to do if i'd wrote the code first hah
Thats the point im making :L
Makes the process cleaner imho
For example, for string choices, you can always make it index based on list of possible names.
Sure, you can just have the names in the slider already.
True, but then why would you want to set min and max value yourself? It'd just be the max size of the list, so no need for those public methods
Yes.
Hence max and min value belong in integer slider ;L
We can always have a slider based on collections.
As numbrs are infinite #CitatioNeeded
Now THAT is a great idea
CollectionSliderElement
Thats generic
big fucking brain whitespike β€οΈ
Basically i had this idea of area of the screen its positioned is based on its impl
so footers would auto get put at the bottom
But im sorta rethinking that already iich
Hmm
Without a drawing, is hard to understand, lol.
Because that interface is used on everything basically right now.
Well, most of the text shown here is anyways.
Oh god yeah thats a bit of a pain... technically buttons could go outside the menu
Hmmm
Oh wait no
im dumb
I imagine the only position in ITextElement would be something like GetPosition or something.
To determine where it goes in the screen order
Uhhh.
If we're gonna involve position here, it's gonna be alot more painful from there on.
Because unless you plan to change the UI entirely, you will have only one source of text.
Or just have a IScreenElementMenu interface.
Have it where then we have the SelectableElementMenu and TextElementMenu
One sets the title , footer and description , one sets the buttons
And then screens are constructed from those 2 menus respectively
So a screen split in two where text on one side and buttons on other?
And Decorator Element ofc
That seems fine.
No as in they are abstract containers.
As in they will still do the normal "title means put it here, this means put it there" etc
But the ISCreen itself would have those 3 containers
Right.
So for an end-user the mod maker literally just has to fill the Text element container, the decoration element container and the element menu container.
Using probably factories and builders
Though drawing schematics is always better than actually building the schematic.
lmao
It's not a mystery prototyping is hard, lol.
Yeah its why i like everything being interfaces. We can build the core logic of the schem and get the IScreen and Screen maanger working
Sometimes it goes our way, sometimes it doesn't.
then slowly chip away at each aspect
And if we realise that the interffaces as written jsut do not work? We simply can change the interfaces in like 5-10 mins work
rather than full impl refactors
Yeee.
using System;
using InteractiveTerminalAPI.UI;
using InteractiveTerminalAPI.UI.Cursor;
using InteractiveTerminalAPI.UI.Page;
using InteractiveTerminalAPI.UI.Screen;
namespace ContentLib.API.Model.Terminal;
/// <summary>
/// Factory for creating the primary components of an Interactive Terminal UI. Used to save time in the creation of
/// custom UI Screens for the API.
/// </summary>
public class TerminalUIFactory
{
/// <summary>
/// Creates an empty text field, usually used to have a gap after the title of a screen.
/// </summary>
/// <returns>The Constructed Empty Text Element.</returns>
public static TextElement CreateEmptyTextElement => new TextElement() { Text = " " };
/// <summary>
/// Creates a "Cursor Element" , an element that can be selected and, upon pressing enter, perform a specified
/// action.
/// </summary>
/// <param name="name">The text name of the element, will be what the user sees as the element's text.</param>
/// <param name="action">The Action that gets performed when the user presses the button <i>(Developer Note:
/// Does not accept any params).</i></param>
/// <returns>The Constructed Cursor Element.</returns>
public static CursorElement CreateCursorElement(string name, Action? action) =>
new()
{
Name = name,
Action = action
};
/// <summary>
/// Creates a "Cursor Menu", a collection of Cursor elements to be placed within a Screen.
/// </summary>
/// <param name="elements">Array of Cursor Elements to act as the menu's contents.</param>
/// <returns>The constructed Cursor Menu.</returns>
public static CursorMenu CreateCursorMenu(params CursorElement[] elements) =>
new()
{
cursorIndex = 0,
elements = elements
};
/// <summary>
/// Creates a Boxed Screen Component, acts as the full visual view shown upon the Terminal. E.g: A "Settings Screen".
/// </summary>
/// <param name="title">The title of the screen.</param>
/// <param name="elements">The text elements of the screen, this can include both Non-Cursor and Cursor elements.
/// </param>
/// <returns>The constructed Boxed Screen.</returns>
public static IScreen CreateBoxedScreen(string title, ITextElement[] elements) =>
new BoxedScreen()
{
Title = title,
elements = elements
};
/// <summary>
/// Creates a Text Element, an unselectable Element that can act as a note upon the screen.
/// </summary>
/// <param name="text">The text within the element, this would be shown to the end user.</param>
/// <returns>The constructetd Text Element.</returns>
public static TextElement CreateTextElement(string text) => new TextElement() { Text = text };
//TODO Experiment with this later... much... much... later...
public static PageCursorElement CreatePageCursorElement(CursorMenu[] cursorMenus ) => new PageCursorElement()
{
cursorMenus = cursorMenus
};
}```
Also something simmilar to this for the factory
Made making my terminals so much nicer
public override void Initialization()
{
_mainMenu = TerminalUIFactory.CreateCursorMenu(InitMenuCursors());
_mainScreen = TerminalUIFactory.CreateBoxedScreen("Settings"
, [
TerminalUIFactory.CreateTextElement(" ")
, _mainMenu
]);
_settingsMenu = new SettingSelectionMenu("Logging",SettingPageSwitch, LoggingPageSwitch, UpdateText);
_loggingScreen = TerminalUIFactory.CreateBoxedScreen("Logging Settings"
, [TerminalUIFactory.CreateTextElement(" "), _settingsMenu]);
currentCursorMenu = _mainMenu;
currentScreen = _mainScreen;
}```
Noice.
Yeah I think this could be built up into something pretty special with a bit of grease work
If you end up helping out with it, would u be aight with me slapping it in as a module for ContentLib?
no?
Whitespike, brother... my entire job is listening to and giving thesis advice. Though i want to be reminded as it is soemthing I love talking about ^_^
The issue is that it's about making a better authentication system where it works on multiple servers such as so no singular server breach can leak user's secrets up to a threshold and doesn't allow people who's looking at the system executing can see who's authenticating.
And making a prototype of that is fun to say the least.
Ah
You do the diagram method?
Id reccomend it for two reasons
1: Helps
2: Looks good in ur methodology section
Yeah, I already have a thought or two on the diagram of the system as whole.
Because this system also allows introducing/removing servers dynamically and the clients can select a set of servers they want to use to authenticate..
My only issue right now is really just writing the paper, haha.
Because I think of several methods of writing the same thing, ending up with either nothing or a mix of all turning into a reading mess, haha.
Lyx
Use Lyx
- Allows code blocks
- Automatic numbering of headers
- Best damn equation editor on the planet
- Automated citations
- Prints out the final pdf in latex format (which is academic looking asf)
And then write all your headings and sub headings in one massive list
no content
just the sub headings with a little setence below each of what u wanna put in it

And then you get the same effect as a diagram . "Wait no thats dumb" *deletes like 5 words and replaces em
I see, I see.
I will try seeing it later, right now I just need citation material, lol.
As a supervisor. I utterly refuse to even start talking to my students about their methods and help them with the main bulk of the work until they show me their headings
They physically do not get permission to do the thinky part till they've done the thesis structurey part
Every student hates me for it, every student thanks me for it by the time they get down to writing it 
Oh yeah, having the structure defined is always good.
Its more than good
Its cheating
you are making your todo list and writing the most underestimated part of your thesis
at the same time
Yeee.
Oh also
if you have wrote code and its available
for gods sake add a data request footer on the title page or intro
So many code based thesis / papers get my eternal ire by going "Here is some nice shiny code" and then do not show the code nor point to where a reader can find it
Because right now I need to show that I can do the stuff proposed.
(What they told me anyways)
Ah a feasibility study
Yee.
Literature review is your friend
Lit Review to back up claims
Diagram based on Lit Review
Pretend ur lit review is the only place in the thesis you can put new references / sources.
Because technically, thats how it should be done.
9/10 by the time ur lit review is done, the paper writes itself
imho if a lit review doesnt literally scream at you how to do the thing
its a bad lit review
Student: *"I havent chosen whether to use Python or MATLAB facial recognition for my disseration" *
Me: "Is a discussion on the pros and cons of both language / libraries for facial recognition in your lit review?"
Student: "Errrrr"
Nice, haha.
I also am pretty ruthless with it.
Once had a student say "oh I havent done that bit of the lit review yet, but could we disc..."
and i legit just stopped them mid sentence and was like "I think the meeting's over. Stop wasting mine and your time, and go do the research, im not going to discuss hypotheticals and "umms" and "arrs" with you..."
If you try to plan something out without the full understanding and context, you are doomed to struggle
I feel like I'm fine with context and motivation right now.
My only problem really is that I have been shown several reports with meaningful differences in how they make the paper.
Which kinda just messes with my inner sanctum because they can't make up their minds, lol.
(Also I am already messing with transpilers in Void Crew, great).
If you have CC you can disable the day speed patcher, the moons have it as dependency but changing their time with CC will do the same thing without the glitch
Ah good to know, thank youu
Congrats. You just found something to discuss in your lit review
Also:
Updated structure
Ignore the red box was supposed to remove
idk if this is possible, but a small request would be a compat with the SellBodies mod.
If both mods are installed, the hunter upgrade activates the mod leaving the "SellBodies" scrap model instead of the vase
Between both mods I like making it so that you have to buy the ability to sell bodies instead of having it unlocked from the start, so I prefer the LGU, but having the SellBodies model might make this option seem more interesting to some.
Not sure if it's known, but HostFixes seems to make it so buying upgrades no longer consumes credits
As far as I'm aware, HostFixes is abandoned and hasn't been recommended in a while π€ so this likely is an issue with that mod and not something for Whitespike to fix
and I'd rather not pressure Whitespike to fix issues that aren't with his mod since he's very busy
Totally fair! Thanks for letting me know
You're Welcome ^^
Credit update is made through vanilla's provided RPCs.
There was one where it has exactly what I wanted but had to mess with the terminal completely to function correctly so I gave up on that.
If some mod starts putting "weird behaviour = cheat = abort", mods in which use these RPCs because of the "weird behaviour" would have to remake a new rpc with repeated code which is boring.
To better understand, you want hunter to use the body models instead of the jars?
Because at first glance, I think it would drop both with current release.
This assuming SellBodies does not have something for LGU, of course.
if that's possible, yeah
Have you already tried with both?
Just know what's the current behaviour right now.
No, I'd have to test it to make sure about that
If you don't mind.
yeah, doing that rn
I would do it but grandpa's doesn't really have a good PC, haha.
no issues, It would take like 5/10 minutes
Hmm
What I am thinking of doing might have to patch some stuff from sellbodies.
Because if hunter is to drop the bodies instead of jars, I will have to stop the jar spawning and let the body continue only if you have the required hunter level.
Yes, it is a matter of taste because I've seen that there are people who like the SellBodies models more.
this normal?
Stack trace:
MoreShipUpgrades.Managers.UpgradeBus.Reconstruct () (at <de7b1a1aae914eeb971ea7e6e6371b1e>:IL_002B)
MoreShipUpgrades.Misc.LategameConfiguration.PluginConfig_InitialSyncCompleted (System.Object sender, System.EventArgs e) (at <de7b1a1aae914eeb971ea7e6e6371b1e>:IL_000D)
CSync.Lib.SyncedConfig2`1[T].OnInitialSyncCompleted (System.Object sender, System.EventArgs e) (at /home/runner/work/CSync/CSync/CSync/CSync/Lib/SyncedConfig2.cs:49)
CSync.Lib.ConfigSyncBehaviour.OnNetworkSpawn () (at /home/runner/work/CSync/CSync/CSync/CSync/Lib/ConfigSyncBehaviour.cs:95)
Unity.Netcode.NetworkBehaviour.VisibleOnNetworkSpawn () (at <895801699cfc4b4ab52267f31e2a4998>:IL_0000)
UnityEngine.Debug:LogException(Exception)
Unity.Netcode.NetworkBehaviour:VisibleOnNetworkSpawn()
Unity.Netcode.NetworkObject:InvokeBehaviourNetworkSpawn()
Unity.Netcode.NetworkSpawnManager:SpawnNetworkObjectLocallyCommon(NetworkObject, UInt64, Boolean, Boolean, UInt64, Boolean)
Unity.Netcode.NetworkSpawnManager:SpawnNetworkObjectLocally(NetworkObject, SceneObject&, Boolean)
Unity.Netcode.NetworkObject:AddSceneObject(SceneObject&, FastBufferReader, NetworkManager)
Unity.Netcode.SceneEventData:SynchronizeSceneNetworkObjects(NetworkManager)
Unity.Netcode.NetworkSceneManager:HandleClientSceneEvent(UInt32)
Unity.Netcode.NetworkSceneManager:ClientLoadedSynchronization(UInt32)
Unity.Netcode.SceneEventProgress:<SetAsyncOperation>b__37_0(AsyncOperation)
UnityEngine.AsyncOperation:InvokeCompletionEvent()```
trying to test in lan
trying to figure out the loading error for clients
I have seen that error million times but I don't know what's causing it.
Because that means my manager prefab didn't spawn.
Which is odd because that would mean I wasn't able to test.
Omw
I gotchu homie give me an hour
Bug master general is on the case
actually I think I know but its broad
the client didn't intialize (idk why yet)
I can at least confirm it is not one of my mods
Let's find out together.
I'll do some investigating when I'm home. U free to join a call and bash our heads together
think it was because the client had this issue but it didn't cause it
some other mod broke client intialization
Well that is rather silly of them smh
See I get apis adopted by a whole community can be seen as restrictive, but ong its issues like this that make me say we need them.
Yes they restrict us, but that's because we are all a bunch of apes who need nut allergy warnings on packets of nutsπ
But yeah nearly home I can have a gander
Is LateGame still on hiatus?
Technically yeah.
Maybe til like.
February?
(Because that's the deadline for paper delivery)
((this is also ignoring what happens after the paper delivery which is another six months of work))
If there are issues, I can try fixing. However new content is gonna be hard to make the time for.
About the balance of LGU Running Shoes
Maybe add a config or something like that
so that fast speed consumes more stamina
And so that it only works when you press Shift (or add this in the config too)
Is this even possible? @steady trail Or is it too difficult...
Perhaps my translator got the idea wrong
What I mean is that when you buy running speed+
So that it works only when Shift acceleration is turned on
And not when you walk at a normal pace
Well, so that when Shift with such speed, a little more endurance is spent

I thought you meant the movement boost only apply on shift.
Not
Well, in short, do you understand?
So only additional stamina cost when speed+ applied.
or my translator let me down again xD
Movement Speed ββUnlock is this ordinary movement which?
Movement speed increment and this is on Shift?
Or I misunderstood...
that's it, I figured it out
Type the first update is the main speed, and the rest is for improvements +
Unlock is when you first buy it, Increment is when past the first level.
got it, figured it out
Oh I meant to ask... the weed killer upgrade is a bit defunct now no?
If you don't have a mod that enables the kidnapper fox, yeah.
Should be off by default tbh.
I guess, yeah.
Hey @steady trail you know how u removed some stuff like the wheelbarrow and whatnot? Was there a reason or just "I dont want this in my mod no more"?
Mostly clutter in the same mod.
Also removed as in moved to another mod.
THey're not completely gone.
Oh?
Whats the new mod with em in
Also, what does the quantum command do exactly
it isnt made clear in game
and my friend just found it on like the mod page lol
The same name as the items.
If revert mode is selected, the command reverts time by configurable hours.
You have configurable amount of charges which reset on whatever configured reset mode you want (Landing, Moon Routing or New Quota)
Oh noice
Also what mod is the one that already does extended days?
Should be "Extend Deadline"
LGU's README should have all the split off features listed at the bottom.
So unless I forgot one, there should be all there.
is Lethal Weight Fix compatible with LGU?
At first glance, it should be.
As it only messes with the lower bound of possible player weight.
i see, thanks
for some reason better scanner still scans through walls even if the config is set not to
oh it scans everything through walls not just enemies
i just realized the level of the upgrade doesn't matter, happens on all levels
Don't know how as there's an explicit check for the last level.
So does silver bullets work with modded guns? (I.e the rifle+revolver from piggyβs variety mod)
I see, thought Iβd ask before I try to shoot the ghost with them
Iβd assume hexis better shotgun mod doesnβt work either then
I haven't checked but if it's using a different class for shotgun behaviour instead of altering the vanilla's, it shouldn't work.
I mean when I tried with it the ghost girl didnβt die, I didnβt know whether I missed or the mods werenβt incompatible, thanks for your help
Rippy dippy.
Ye. they're definitely not compatible. Neither is EverythingCanDie (currently) as it implements part of Hexi's Better Shotgun
I see
well, someone made a patch sleight of hand works on piggy variety guns
Did y'all find a fix to this issue?
@steady trail There is a problem about the weight
When I buy the "Back Muscles" upgrade and sometimes interact with things like "Lethal Washing" or the SWRD-1 from "CodeRebirth" my weight goes up and doesn't go down until I re-enter the lobby or die
#1315122095738454056 message
I didnβt understand before why this could be, but I was able to role-play this situation and be convinced of it
0193cf6f-953d-20b7-228f-e753f2a050f9
Tested on this build
Perhaps this is only true with some items, because sometimes the weight did not increase, but still...
They told me to disable the ItemGrab function in TestAccountFixes and then there will be no problems...
Does it reproduce scenarios when dropping gives weight?
And it's only on some items and not all items?
not always
Yes
But it can be reproduced.
For example, from the LilosScrapExtension mod, almost all items that interact with Lethal Washing
Well by the way
Sometimes things that are not heavy donβt always work, I myself donβt fully understand why this is so
That seems like the items themselves aren't configured properly?
Certainly
No idea
Because to have weight when dropping, it means that the value is negative when picking up and positive when dropping.
Which would translate to having negative weight.
Only way for negative weight is either the item weight is already negative or back muscle makes it negative.
π―
For back muscle be negative, the multiplier configured would have to be negative.
It didn't help
The problem remains, but now I can put away items that could not be placed in Lethal Washing :Ρ
I don't think so because the code is executed by all clients.
So you can end up having two clients seeing different things.
Didnβt have that issue online, was only a lan thing and not this mod
a set of upgrades to the radar booster would be nice. specifically, i had an idea for an upgrade that allows players to be able to hear walkie chatter from the boosters
Like the booster having the receiver part?
Yes. Please God yes π
another upgrade to make free in my modpack if it gets added...
Wait I didn't know there was a time reversal command. Would it be possible to auto activate this on team wipe as a sort of emergency retry?
That would be gamechanging on my solo files
Ok I haven't even seen this ingame so I have no idea how it would work, I'll check it out tomorrow before I start making suggestions about anything
It's not a "fuck go back" command, no. Lol.
It decrements the current time of the moon by x hours.
It's not literally a loop back thing where everything goes back to where they came from, haha
Did it work for you? It didn't for me
When I collect items(whether it's scrap or item) I gain weight but when I drop it I don't lose weight
instead my weight accumulates
Even though I drop all the items my weight doesn't get back to 0
temporarily using teleportation or lethal hands(which makes you drop all the items) to get back to 0 lb
I guess this issue is occurring due to back muscle upgrade of lgu
it seems to work without any problems on my end
Oh, ok. Sorry
Not quite that kind of time machine
My dudes what can I do?
- Is it possible to change how much upgrades an item can provide? For example progression mode Apparatice: "gives you an upgrade upon selling it".
- Reentering the lobby or restarting it makes all the upgrades discounts dissappear.
- Is maximum and minimum discounts value for upgrades configurable?
Instead of ``Apparatus@1", "Apparatus@2".
I will try looking into it.
No.
Thanks, appreciate it and all the work you people have done for this mod. I am glad to have it as my must-have one. β€οΈ (Edge_2)
yo, whats the fix for lgu not using any credits when buying upgrades?
Something about HostFixes.
hello~ just gonna ask about a stack trace. dont know if something broke. when playing with my friends, stack trace appears with them joining.
we have no issue that session as far as I know.
Checking this in mobile is so much pain
Especially without a search
Can you show the stack?
Damn, how many items you got to fill the thing up, lol
we are playing to a save maybe thats why
The error is when it's trying to get the item upgrade associations for Item Progression mode.
It seems to be too big to send over the network.
is there something should we do or not do?
Should, uhhhh.
i remember we sell 15k+ worth of scraps
The issue here is really how many items you have
Because it always does an association per item
I could find a better way which sends less data over.
Not now tgo
so uhh whats the error effect ?
Uhh
I don't remember the order now.
But it's related to load upgrades aswell
So for the worst assume lgu stops working.
I would have to see the code to know where it's executed.
Hi whitespike. seems to be some sort of local client vs host bug with the tulip snake blood samples
First image is client-side (my friend)
Second image is my side
Third image is client-side (selling)
Or the seed is different, actually.
I forgot the hunter values were based on seed which is set when the first ever sample spawns.
So if a sample spawns before somebody joins, that somebody will have a different seed.
Hello, I just came back to playing the game. I went ahead and bought an upgrade after our first quota but I noticed that it isn't decreasing our credits. Is this a known issue?
Something something HostFixes.
The wacky thing is it only seems to be just for the tulip bois
Hmm
First screenshot is the client boi
second is mine
We killed the baboon hawks same day
Something to do with the tulip dying on my head perhaps?
I know that sounds utterly daft
but we had midas touch enabled too
Oh.
There's no way them despawning during day-night transition is only done by host.
?
When it hits night, they despawn.
Context Whitespike, you forget i dont know the ins and outs of how ur hunter works lol
Increases the scrap value.
At what point?
Oh
the only thing that has me suspicious is its always higher values it seems with the tulips
By quite a pretty penny too if you see
The only thing doing explicit checks for tulip is when they fly away and "die".
I can only think of clients having different iteration counts.
Because all samples use the same logic.
How does this explain a radical increase in mullah?
I don't really care if it increases or decreases.

If it's different, then the syncing is not working.
Agreed either way haha

at least its still a syncing issue
so doesnt actually effect in-game behaviour other than visual client side
Host is the only one that cares about the item's scrap value, yes.
Exactly, so whilst abug, at least it isnt game breaking as of this moment haha
still weird its only tulips specifically
want me to crack open my rider and have a looks with ya bud?
I mean
ive got a spare half hour haha
The only difference between regular enemies and tulips is that tulips despawn when it hits night.
Is the patch for the hunter mechanic in the main repo or in that side library of urs mate?
Main.
I have a feeling but will keep it zipped till ive gandered
I might be overthinking it, but the fact the only enemy this seems to happen to just so happens to be the enemy that you can self kill (hit with your shovel whilst its on your own head) doesnt seem like it can be a coincidence you know what I mean?
Counter point: Maybe noones noticed as when was the last time you saw someone succesfully pick their shovel back up to kill a snare flea in a multiplayer game?
Most folk have a mate near by to wacka wacka
I could test it to find out?
tl;dr: It could also be present with snare fleas, but the chances of self killing a snare flea is much rarer than self killing a tullip snake
So the chances of someone then reporting is lower too
Self kill uses the same mechanic as regular kill.
ifygm
Aka there's no special case for killing an enemy when its clinging on a player.
I tell you what mate, for the sake of "we'd be dumb not to at least see" ill grab a mate and test a snare flea
Oki
Process of elimination innit?
In the meantime, how does the client syncy shenanigans work anywho?
Like whats the logic?
For values?
yeah
I think just a Random initialized on the first ever spawn which then uses the min/max value defined to randomize between that range.
So long everyone uses the same seed and they do not see "ghost" items, they should see the same.
hmmm... then why tulip snakes inparticular i wonder? Very goofy
Cause everything else worked peacy
peachy
[HarmonyPatch(typeof(EnemyAI))]
internal static class EnemyAIPatcher
{
static readonly LguLogger logger = new(nameof(EnemyAIPatcher));
static ulong currentEnemy = 0;
[HarmonyPostfix]
[HarmonyPatch(nameof(EnemyAI.KillEnemy))]
private static void SpawnSample(EnemyAI __instance, bool destroy)
{
if ((__instance is DoublewingAI || __instance is FlowerSnakeEnemy) && destroy) return;
if (!(__instance.IsServer || __instance.IsHost)) return;
if (currentEnemy == __instance.NetworkObject.NetworkObjectId) return;
currentEnemy = __instance.NetworkObject.NetworkObjectId;
string name = __instance.enemyType.enemyName;
if (BaseUpgrade.GetActiveUpgrade(Hunter.UPGRADE_NAME) && Hunter.CanHarvest(name))
{
logger.LogDebug($"Spawning sample for {name}");
ItemManager.Instance.SpawnSample(name.ToLower(), __instance.transform.position);
}
}```
That first if statement... isnt flower snake tulips?
Yeah.
So doesnt that just... skip the the spawning of samples if its a tulip? 0_o
If the body disappears.
Thus the additional destroy check.
Because
public IEnumerator flyAwayThenDespawn()
{
yield return new WaitForSeconds(4f);
if (base.IsOwner)
{
KillEnemyOnOwnerClient(overrideDestroy: true);
}
}
One final sanity check. If in some magical world the client does NOT have the spawn item happen, but the host does, woul something else force an item to get spawned by chance?
I.e. if your intended client syncing didnt happen, but the host still spawns an item,
Neither am I , still wrapping head through ur logic.
Basically I was thinking, if somehow the item didnt sync as intended client side, what would teh client hypotehtically see? No item? An item but handeld through the games base mechanics?
The spawning has a server check.
So only the server would spawn the item.
So it's either:
- Random seed is different
- The range is different
- Iteration counts of the random is different.
One of these is true to have that happen.
Humour me just for a hot second mate, like even if you think im wrong. If spawn sample didnt return on the 2nd or 3rd if statements, what would happen?
How would that logic get resolved on that client that isnt host?
Checks if current hunter spawns the item.
If yes, instantiate the game object then spawn the network object.
Start function sets values from random to the scrap value.
Since Start is done by all clients.
Hmm... what just hit me (never has a more ironic statement been said as you are about to find out) .... is that I was the host and I killed the tullip via a self hit
could that of somehow in some wacky world bypassed the host check?
I don't understand.
The host check is to be able to spawn the item.
As clients cannot.
And my point is what happens if that check is bypassed and it spawns the item client side?
By some bullshit due to the host being the one to self it
You would have an error saying the client cannot spawn network objects.
So you would have an item which only the client would see and nobody else.
But could that somehow then prevent the syncing?
If a client which isn't hosting magically is the server, yes.
But all bets are off if that ever happens.
Because that would translate a bad network implementation if it demonstrates clients being servers while they are not.
Yeah not host relatyed
he killed on his head too just in a test
still the discrepancy
All other loot was fine
literally just tulips
His SS
mine
I just find it utterly bizzare how it just seems to be this extreme increase without fail
Is midas touch a flat increase to value? Or in a range?
[Debug :Matty's Fixes] Tulip Snake Sample(279) is computing vertical offset
[Debug :Matty's Fixes] Tulip Snake Sample new offset is 0.2674206
[Debug :Matty's Fixes] Tulip Snake Sample(279) position updated [(-70.03, -12.05, -16.64)] -> [(-70.03, -12.06, -16.64)]
[Debug :Matty's Fixes] Tulip Snake Sample(280) position updated [(-68.82, -12.03, -17.14)] -> [(-68.82, -12.04, -17.14)]```
His logs
```[Debug :More Ship Upgrades] [Hunter] Tulip Snake can be harvested at level 2
[Debug :More Ship Upgrades] [EnemyAIPatcher] Spawning sample for Tulip Snake
[Info : Unity Log] Kill enemy server rpc called with destroy False
[Info : Unity Log] Kill enemy client rpc called; False
[Debug :Matty's Fixes] Tulip Snake Sample(280) needs to compute vertical offset - scheduled
[Debug :Matty's Fixes] Tulip Snake Sample(280) will need to update the position - enqueued
[Info : Unity Log] clip index: 4; current planet: 20 Adamance
[Info : Unity Log] Current outside ambience clips length: 5
[Debug :LobbyControl] Attempted Grab for jorrdann, slot 2, max 6
[Info :LobbyControl] Grab validated for jorrdann!
[Debug :LobbyControl] Attempted Grab for ChroniclerDelta, slot 1, max 6
[Info :LobbyControl] Grab validated for ChroniclerDelta!
[Info : Unity Log] playerHeldBy on grabbed object: Player (1) (GameNetcodeStuff.PlayerControllerB)
[Debug :LobbyControl] Attempted Grab for ChroniclerDelta, slot 1, max 6
[Info :LobbyControl] Grab validated for ChroniclerDelta!
[Info : Unity Log] playerHeldBy on grabbed object: Player (1) (GameNetcodeStuff.PlayerControllerB)
[Debug :LobbyControl] Attempted Grab for ChroniclerDelta, slot 1, max 6
[Info :LobbyControl] Grab validated for ChroniclerDelta!
[Info : Unity Log] playerHeldBy on grabbed object: Player (1) (GameNetcodeStuff.PlayerControllerB)
[Debug :Matty's Fixes] Tulip Snake Sample(279) is computing vertical offset
[Debug :Matty's Fixes] Tulip Snake Sample new offset is 0.2674206
[Debug :Matty's Fixes] Tulip Snake Sample(279) position updated [(-70.03, -12.05, -16.64)] -> [(-70.03, -12.06, -16.64)]
[Debug :Matty's Fixes] Tulip Snake Sample(280) position updated [(-68.82, -12.03, -17.14)] -> [(-68.82, -12.04, -17.14)]```
My logs for the same item
Midas Touch can't touch sample spawns.
No worries
less bug related and more qol btw. Due to Lethal upgrades leading to much later runs, and a lot more kit , id like to propose a buyable 2nd cabinet.
Huh, maybe one of our mods?
I have two questions: 1. Can you use both buyable upgrades and scrap item based upgrades at the same time, or is it either or?
2: Can you use more than one item based upgrade path at the same time (ie set the config to Apparatice,ChancePerScrap and both of those ways will be active?)
Actually one more question: Can I make the item bassed upgrade path active on a save that was already started without it active? I tried, but it didn't seem to work (though I now realize it could be because only the host updated the config file and not the others)
- Can you use both buyable upgrades and scrap item based upgrades at the same time, or is it either or?
You can use both.
2: Can you use more than one item based upgrade path at the same time (ie set the config to Apparatice,ChancePerScrap and both of those ways will be active?)
Right now, no. You can only pick one of them to be active. You can make a suggestion of this in the github discussion so I don't forget to add in next release if you really wish to.
Can I make the item bassed upgrade path active on a save that was already started without it active? I tried, but it didn't seem to work (though I now realize it could be because only the host updated the config file and not the others)
It should let you. Item Progression initialization is always done regardless of configuration to ensure such case.
This is gonna be really painful to do..
At least makes this somewhat cleaner.
What u up to?
I think this might be worth I implementing a factory / builder combo. Once.ive done my current project (just got a home server set up ^_^) I could have a look if u like bud?
After I'm done changing all the upgrades, sure.
Been messing with config, basically reworking it. No promises that something won't break and/or show strange behaviour.
@west blaze
https://github.com/WhiteSpike/LC-LateGameUpgrades/tree/main/MoreShipUpgrades/Configuration
If you want to look what I got so far.
Gah fuck! Surprise tag
Guess it's back to the coding mines
I'll have a peek in a bit, just got up. My Christmas eve treat
Don't think I will be celebrating this year's.
It still doesn't have all the upgrades btw.
Well I have no family at all so I won't be celebrating Christmas itself either. I win whitespike! I win π€£
Like night vision is gonna be way too big, waa.
On review I have one suggestion that might be a very big W?
Why not have an IBindable interface that then you can use on classes that represent certain upgrades?
public interface IBindable
{
void Bind(IConfigProvider cfg);
}
E.g: You could have an abstract impl of IBindable called BaseBindableRandomizedUpgradeEntry that's bind method is one with the top section being LguConstants.RANDOMIZE_UPGRADES_SECTION and each child of the abstract class would have the values hard coded in already?
public abstract class BaseBindableRandomizedUpgradeEntry<T> : IBindable
{
protected readonly string Section = LguConstants.RANDOMIZE_UPGRADES_SECTION;
public SyncedEntry<T> Entry { get; private set; }
public void Bind(IConfigProvider cfg, string key, T defaultValue, string description)
{
Entry = cfg.BindSyncedEntry(Section, key, defaultValue, description);
}
}
This would then allow you to add every single IBindable to one list and just do a for-loop bind at the end? Or if you wanna be less spicy, do the loop for each section of upgrades.
public class RandomizeUpgradesEnabled : BaseBindableRandomizedUpgradeEntry<bool>
{
public override void Bind(IConfigProvider cfg)
{
Entry = cfg.BindSyncedEntry(Section,
LguConstants.RANDOMIZE_UPGRADES_ENABLED_KEY,
LguConstants.RANDOMIZE_UPGRADES_ENABLED_DEFAULT,
LguConstants.RANDOMIZE_UPGRADES_ENABLED_DESCRIPTION);
}
}
public class RandomizeUpgradesAmount : BaseBindableRandomizedUpgradeEntry<int>
{
public override void Bind(IConfigProvider cfg)
{
Entry = cfg.BindSyncedEntry(Section,
LguConstants.RANDOMIZE_UPGRADES_AMOUNT_KEY,
LguConstants.RANDOMIZE_UPGRADES_AMOUNT_DEFAULT,
LguConstants.RANDOMIZE_UPGRADES_AMOUNT_DESCRIPTION);
}
}
#region Randomize Upgrades
var upgrades = new List<IBindable>
{
new RandomizeUpgradesEnabled(),
new RandomizeUpgradesAmount(),
new RandomizeUpgradesAlwaysShowPurchased(),
new RandomizeUpgradesChangeEvent()
};
foreach (var upgrade in upgrades)
{
upgrade.Bind(cfg);
}
#endregion
Should tidy up that main config logic class right quick
Right now, I was more concerned of each upgrade.
Because a upgrade suggestion is more likely than a modification.
But yes, I could have done the same thing I did with others like contract, item progression, etc.
I think maybe a simmilar approach of the mbeing bindable, and each upgrade gets its own dedicated .cs
so at least it doesnt clutter up the main config file
So I'm back to the same problem?
Where for each new upgrade, I make a new set of fields?
Because from what I am seeing, I will be replacing each BindSyncedEntry with a item in a list.
Which realistictly it's the same.
Well in an ideal world what do would you want? If you could magically click ur fingers like?
Whenever I make a new upgrade, I don't have to repeat the same base stuff present in all other upgrades.
As I don't have to define a new enabled, item progression items list, individual (if used), etc.
Sounds like you need a registration process instead.
Like Dictionary<Class<T> , SyncedEntry<bool>> where T is an upgrade.
And then have some sort of logic to check if the upgrade's enabled via checking that dictionary?
And then have those dictionaries all be registered to (the enabled dictionary, etc ) when an upgrade is made
I get what you want bro, honestly to god. But what you want, within the confines of what you have, doesn't seem possible to me imho :S
So am I xD
Maybe i am misunderstanding
Its xmas eve so im gonna walk away with tail between legs and leave it at that xD
Anyone having issues with ButteryFixes is preventing the Landing Thruster upgrade from working?
Hi, which version of the mod is supossed for V56?
Prolly 3.10.4
I'll try, thanks.
@steady trail when lifting the cart while loading the map
the ship hangs in the air and loading stops
If you don't take it, then everything is fine
From host
or is it just a coincidence
Well, this is when the second player holds the cart, and the host, for example, launches it, then the ship freezes
I'm only finding error when they connect to the game. Besides that, nothing else.
Everything is fine, the culprit has been found
This is a player with an extra mod that was broken by out of sync
Does the contract command select from moons only present in current constellation when running LethalConstellations?
Don't know, it doesn't have an explicit check for it.
so whenever i launch the modded game and click online or lan it crashes my game
when i disable the fixtypepluginserialization it doesnt crash it but doesnt let my friends join my lobby
they get a weird black screen with smoke in the bottom left and all they see is the gui
idk if this is a bug with lgu or smth else
Without logs, it's hard to conclude anything.
The LogOutput.log file?
yea
Usually copy paste into here works
You can also use the add button next to the chat prompt to manually select it.
What game version are you playing at?
v69
Then I don't know why it's saying it can't find the butler enemy.
Only reason for that is you're playing a version before it was introduced.
weird
is one of my mods doing that maybe
BepInEx-BepInExPack-5.4.2100
sunnobunno-YippeeMod-1.2.4
2018-LC_API-3.4.5 (disabled)
x753-More_Suits-1.4.5
OrtonLongGaming-FreddyBracken-1.0.6
Rune580-LethalCompany_InputUtils-0.7.7
KlutzyBubbles-BetterEmotes-1.5.4 (disabled)
Steven-Custom_Boombox_Music-1.4.0 (disabled)
femboytv-LethalPosters-1.2.3
Amlinde-WhistleJester-1.0.1
NotAtomicBomb-TerminalApi-1.5.5
Evaisa-HookGenPatcher-0.0.5
Evaisa-LethalLib-0.16.2
TheBeeTeam-PersistentPurchases-1.2.0
raydenoir-SCP173CoilheadSFX-1.3.1
SoulWithMae-CompanyExecutive-3.0.1 (disabled)
Ozone-Runtime_Netcode_Patcher-0.2.5 (deprecated)
notnotnotswipez-MoreCompany-1.11.0
FlipMods-ReservedItemSlotCore-2.0.39
FlipMods-ReservedFlashlightSlot-2.0.8
FlipMods-ReservedWalkieSlot-2.0.6
CapyCat-Solos_Bodycams-1.0.5
RugbugRedfern-Skinwalkers-5.0.0
DrFeederino-LC_API_V50-3.4.11
loaforc-FacilityMeltdown-2.6.20
rytix-DeeperMeltdown-1.0.4
TrippyTree-PizzaProbability-1.2.2 (disabled)
BGN-PizzaTowerEscapeMusic-2.4.0 (disabled)
dacodingtrashcan-DoorsFloor2Escape-1.1.1 (disabled)
JacobG5-ReservedJsonSlots-1.0.1
Squid-ReservedBeltBagSlot-1.0.3 (disabled)
FlipMods-ReservedWeaponSlot-1.1.5
ControlCompany-ControlCompanyFilter-1.0.0
ControlCompany-ControlCompany-1.3.2
Nicole-OBS_Sync-1.0.0 (disabled)
no00ob-LCSoundTool-1.5.1
Clementinise-CustomSounds-2.3.2
Shamburg-SpongebobSporeLizard-1.1.1
Ozone-BepInUtils-1.2.1
Ozone-Glow_Steps-1.1.2
ModdingNoob-ItemsForQuota-1.3.3
thomas-AlwaysShowClock-1.0.0
MaxWasUnavailable-LethalModDataLib-1.2.2
Evaisa-FixPluginTypesSerialization-1.1.1
IAmBatby-LethalLevelLoader-1.3.13
DuskWise-WiseWilderness-1.1.2
LethalCompanyModding-VertexLibrary-1.1.0
LethalCompanyModding-RuntimeIcons-0.3.0
WhiteSpike-Interactive_Terminal_API-1.2.0
Sigurd-CSync-5.0.1
malco-Lategame_Upgrades-3.11.0
299792458-MoreMoneyStart-3.0.1
Plotection-MoneyForKills-1.4.0
No, a mod can't modify the game's assembly file.
i see
didnt fix it but ill keep it off
how come item progression mode does nothing for me?
im still able to purchase upgrades wtih credits, and selling an apparatus does nothing
is there anything wrong here or could it be a mod conflict
Without logs, I don't know.
I dont recall seeing any errors. The other configs work fine too.
Do you want me to send you the log if possible?
Nothing was touched with item progression mode for a long while so yeah.
i remember this same thing happening a while ago and i assumed it was just broken
but now i think its a mod conflict
would it help to send a mod list too?
log file
#help-and-troubleshooting message
mod list
If it checks if a moon is not locked/hidden (via LLL) then it should only be choosing from the current constellation. If itβs just random from any playable moon then yea youβd have to add explicit compatibility
Hi guys! In my game, when I buy something in LGU, my credits are not spending. That is, if I do not have enough credits to buy - I can not buy the item. But if I have enough money, then I buy an upgrade and the number of my credits does not change. How can this be fixed?
Something something HostFixes.
It does the locked check so it should be fine then.
I could not find issues so it could be something altering the selling scrap logic which ignores all mods' patches.
Alright so I did some tests and got a few results:
- It does pick the moons only out of the current constellation
Random Contract on free moons onlydoesn't respect modded moons which were given a free price via LC. You have to set prices for it manually in LLL. Vanilla moons set via LC work correctly
Then they don't have a route keyword.
Because otherwise I would have found the free price.
Previously I tried to generate contracts in a constellation and the command would continously try to pick either rend or dine
I'll test some more
Ok so
Nevermind the LLL argument
It can only pick from vanilla moons for some godamn reason
Trying to launch a contract from a constellation with no vanilla moons straight up crashes the game
Liquidation is here too for some reason???
(keep in mind I made all of these moons free except StarlancerZero)
Something silly is clearly going on
That's probably because it only applies the actual price tag when it matters.
You mean it checks for the "paid" tag?
It checks for whatever tag it has stored.
However if you change the routing to only care about the values you use, then the ones stored are useless.
and there is no way I can change the stored tags is there...?
User-wise, I don't know
It depends on the mod that allows you to change that.
I only know that LLL creates the routing the same way as vanilla intends.
Nice.
LLL doesn't really allow me to change moon tags via the config unfortunately...
Neither does LC...
I have no idea why changing the price to 0 didn't remove the paid tag, assuming it's even supposed to do that.
When I meant "price tag", I meant its cost.

You seem focused on tags so I just wanted to make that clear.
Oh. Then that's double weird because the moons were actually 0 credits
In both LLL and in LC
Summit for example
I don't know then.
It has explicit check for free cost.
If the node I am getting is in fact not the one being used for the actual routing.
This will never work, yes.
Alright. There's one more mod that could be acting up with prices, That being LethalQuantities
I'll set them to 0 there and come back with the results
should i still be able to see the price of and purchase upgrades with this setting?
because i can