#Lategame Upgrades
40603 messages Β· Page 41 of 41 (latest)
Impossibru!!!
I have like a really big list AND a modpack containing all fixes mods!!!
it did indeed fix it
Anyways yes fix mods have broken completely in v80
Quite a few have updated by now
Matty fixes you gotta use experimental
Yeah most of what remains is v80+ but a few are still remaining
The apparatus progression mode doesn't seem to be working for me? Is it working correctly for anyone else?
I'm having an issue where items don't stay while teleporting even when fusion matter is upgraded. I tried just the mod and its dependencies by itself and am having the same problem. Is there a setting I need to change?
If you remove safe solo scrap it will probably work fine.
Do you use any other mods which could also influence dropping all items?
Ah, the second part of the paragraph.
I can take a look at the logs to see what's wrong
this is what pops up when teleporting
Which doesn't have anything that I logged so I need the full file, lol
how do I get that? Sorry new to the lethal mod logs honestly
What are you using to manage mods?
And what items you tried bringing in?
maxed fusion matter but just a walkie and regular flashlight
And none of those stayed?
Nothing. Tried shovels and pro flashlight a different time and those didnt stay either
Thought it could be a visual glitch but all the items drop immediately
Might have to get out of bed then
It seems some code was moved around so I am probably patching nothing (related to stop dropping).
Should I just try to reinstall it again?
It doesn't matter because the clients can't fix code issues. 
ahhh thought you meant I messed with something
This should have that issue resolved.
You can just add this as local assembly through thunderstore mod manager and toggle off the one you downloaded from the site to check.
At least for me, both the new slot and regular inventory slots, the pro-flashlight stayed when teleporting.
I have this issue from time to time, opening and closing the steam friends menu (Shift + Tab) fixed it for me
Not sure if it'll help you.
Do I do import as local mod? If so lgu doesn't work at all with that installed
im not able to scan items or scap thru the wall, i disabled GeneralImprovements and BetterScan just to be sure. still nothing im pretty sure my config is set up right but im not sure. not rlly sure what else to check
Yea and still keep the dependencies.
It's the exact same assembly so there isn't a reason to not work.
This is preventing me from leaving the game
You got something die earlier than this.
Game was like nah keep playing
Here's my output log, and here's my modlist
Coroner is probably also super dead, seeing a bunch of Could not find PlayerControllerB.KillPlayer call in X. It hasn't been updated in 9 months but it's not marked as Deprecated yet so hopefully they come back ππ»
I already told you safe solo scrap
I will take a look at this when I actually wake up in the right time.
Are you aware of an alternative?
Oh! I didn't see you mention it as you turned off pinging lmao my apologize ππ»
I'm in so many little conversations, I need to be pinged or i'll never remember to look back to see if anyone responded
Probably the upgrade (at least I recall there being one that does) where you can config to always be on and 100 percent chance. Or scrap insurance which is command prompt for keeping items on team wipe for credits which you can make it free.
Or just suggest the guy to not remove code and it works with lgu, lol
I'm going sleep now
Thank you very much, enjoy the eeps!
maybe Im doing something wrong then but when I install it the lgu command doesnt work
So, the Scrap Keeper doesn't seem to work. I made it's price dirt cheap for my solo play, put a bunch of scrap on my ship, died and when I came back, all scrap poofed
anybody else having this issue? or did i set something up wrong
I'm assuming you also put the asset bundle to the same folder as the assembly?
It just did for me.
I might need logs to understand your issue better as it seems to be working fine.
This could be due to soft compat tho, lemme confirm real quick..
Hmm vanilla doesn't work.
i can get logs in a little bit. in a run rn
I might not need them after all.
Was kinda expecting this code to be causing more problems than its worth.
This should have this addressed. I basically reworked the patch that involves the scanner. It seems to be working fine from when I tested it.
Later on, I will make a release with this fix/rework.
ur goated
Lol.
Has the mod been updated for the most recent version of Lethal Company (v80 / v81)?
Yeah.
idk if these have been mentioned but I have run into 3 possible issues with some of the upgrades:
- BetterScanner: Does not scan through walls, half the time does not work this things like cupboards. (I see this was addressed now, but personal no worky for me). The third upgrade is just the one that does not work right.
- Market Influence: From what I could tell it did not change the minimum sale percentage. It is possible I did something wrong.
Charging Booster: Last I checked it would not work and I could not charge things on it. It could have been because my flashlight was in the utility slot even though I was holding it out.
I tried them out a few days ago and again today.
to fix the scanner just replace ur current MoreShipUpgrades.dll with the one a few messages above
ok thx
Hey, was wondering how many upgrades I'd need to extend to allow for Medical Nanobots to full heal, after getting (and extending) the health upgrade to 200 hp total?
nevermind. Think I'll just do it in 5 upgrades and make the increase 80 initial, 50 incremental. should get there by 5 exactly... unless my math is off
So you didn't get this prompt?
About 2. , it seems I missed a zero?
Either that or I just don't remember ever seeing this extra zero before.
Because I restricted it to clamp the value of the item's sale percentage to be between minimum (market influence) and its maximum.
But then it picks a value between zero and the clamped value, thus allowing it to give a sale below market influence's minimum.
I'm just gonna do a couple landings just to see if I indeed fixed it.
Seems fine now, I will just push this.
It could be conflict with another mod. I will try and find out what
Found the issue on my end. It only shows the prompt if I look at the very base of it mb
Yeah, to not collide with the pickup thing
For Lategame Upgrades, is there a way to either hide the >LATEGAME text in the terminal or a way to remove the extra empty line between >OTHER and >LATEGAME
Are there any mods that are recommended for use alongside Lategame Upgrades? It's been a while since I last played
Probably changing the whole screen. LGU doesn't add any newlines before its text.
[Error :More Ship Upgrades] [Tools] DropAllHeldItems method went missing.
Should there be any concern with this line of text in the cmd box?
Based on my testing, it only appears when I have General Improvements installed alongside Lategame Upgrades
Is this mod compatible with newest version?
This error appears to be harmless. Its been throwing it for a long time now. Makes sense its when GI is installed.
That means the Fusion Matter upgrade will never work.
It should be.
It prolly wonβt work on V81 anyways he apparently removed that method and moved it elsewhere
Got ya
Gotcha! GI has a feature to change what may or may not be teleported with a player's inventory, so it's probably just conflicting with the feature
GIβs feature is also broken rn
The problem the error is pointing out is that something else removed code so LGU decides to do nothing to rectify it.
So, for scrap saver, it appears everything you got during that day gets deleted if you die. I got a shopping cart and a ton of stuff, died and everything I got during that day went byebye but everything else was fine
Gib logs.
It's pretty girthy as I played several solo rounds before dying to a nutcracker because I got stuck under the stairs trying to bonk and run him hahaha
Oh wait, during that day.
Yeah, if you didn't configurate it so, it will delete the scrap you got that day.
Unsure if its a LGU or Boom_Variants or whatever else issue, but I'm unable to use weedkiller on cadavers. posting this in both threads to see if we can figure it out faster
Unable as in can't spray?
Because I'm seeing errors on each frame from ModelReplacement related to holding items.
we can spray but nothing happens to cadavers specifically. shrouds we can get rid of fine
the modelreplacement was causing other issues though, I'll test to see if it fixed the cadaver thing later on. we haven't seen any since dropping modelreplacementapi
The Apparatice progression config isn't working on the latest version. I tested it on a fresh pack with just lgu and set that config and tried selling an apparatice but it didn't send any logs related to it and didn't give me an upgrade
I see that there's an additional branch and it's probably picking the wrong one.
Because apparently there's an item that you can sell in vanilla that isn't considered a scrap?
You can try with this one if you want. It managed to give me one just fine when I sold an apparatice after I basically duplicated the code into both branchs.
This probably also solves the other modes, now that I think about it.
Because if it wasn't working with apparatice, it probably wasn't working for collection scrap because they use the same functions.
I should be fine to make a release soon too, hmmm
There's a release so tell me if something burns.
Update got rejected it looks like
Selling an apparatus seems to work now. I also tested with a custom apparatus and that works too
Yippie.
I love this mod btw, nice job
Took me a while to realize this but the nanobots isn't healing past 100 anymore
Helloo, I was working on one of my old mods that lets you overspend and go into the negatives when buying things and I was looking into making it work with LGU, but I've realized it would require a lot of patches and transpilers to do something that could be easily done from LGU itself. I was thinking maybe adding a boolean that allows players to overspend if my mod is present? Just an idea I had, let me know if you'd be down to do something like this, I'd appreciate it
I can add a boolean in which you can just manipulate with your mod.
I'm assuming this is to only affect company credit purchases?
If you want to try it out.
You should be able to use the following methods for what you want:
UpgradeApi.TurnOnOverspending()
UpgradeApi.TurnOffOverspending()
Yes! Just the company credits
Oh, thank you! I'll try it out later when I get on ^^

By the way, has anyone bothered checking if Landing Thruster works or not? I tried fixing multiple times but nobody says anything here so I can never tell.
I'll check
just want to check if it works?
Apparently the issue was when landing on the company as one of the speed increase/decrease doesn't execute thus giving a lower/higher speed.
While other moons does the normal behaviour.
Yeah, just checking if it works should suffice for me.
can I ask a request here?
Pretty sure that's what the thread is for, lol
a config option to disable "forceCredits" on the terminal
Why isn't being host only enough?
cuz I'm not the host always, and I've got cases where other people uses it when they are the host
Hmm
in short... cheat
But you take the host's config..
How is that gonna stop them from cheating still, lol
Unless you want an all agreement config to cheat?
I share a modpack, on the modpacks usually people don't modify the config.
But when people know about this mod, they know about this command
I think it's just easier to just a config option to disable it, and avoid more trouble with it
But this config is only on your machine.
I feel like I'm not properly explaining this..
afaik if I share the modpack, the config options are also shared
right?
Which they can change, yeah.
but they "usually" don't
But then I don't care about the ones that do? Lol.
You will still have the problem with the ones that do.
It's more of a matter of principle.
It's preferable to have it disabled by default in a modpack, and then if some user modify it, it alters the modpack's principle.
I mean, it's better to have a door locked with a key in front of you, than just an open door
It's not if the key's already on the door, lol.
but what about the people that doesn't know how to use the key :]
I understand the dilemma, but as I said, I prefer to keep it blocked for reasons of principle.
It's better to have the extra step of using a "sort of a" cheat than to have it active by default.
Works great, thanks :)
I worked something out.
I'm gonna eat something now.
Hi! Been using this mod since my group started playing modded Lethal, and it's a must-have whenever we play!
I had a few suggestions for consideration as features for the mod (which as of writing I realize almost all have to do with contracts):
1. Alternative method of random contracts
Instead of the player initiating the random contract selection, at the start of a new quota, the game has a chance to randomly selects a moon from it's available list and notifies the crew that a contract has been made available with one of those yellow screen notifications. This turns the contract more into a random "event", with standard contract picking (random/specific) being disabled.
2. Expansion of the "Extermination" contract
Not sure on the status of NEW contract types in this mod, but I feel a fairly simple expansion to the Extermination contract can be made.
Simply put, allow more enemy types to be the extermination entity, instead of just hoarding bugs. Either as fixed types or as a whitelist that users can modify to add or remove certain enemy types. (Don't ask why you would be trying to steal an egg from 15 Masked).
3. Make the Extraction healing requirement compatible with Usualscraps Medical Kit
Straightforward one. Our group usually disables this mods medkit in favor of the Medical Kit from Usualscrap.
4. Have an option for upgrade notifications to appear as the yellow screen notifications instead of the ingame chat.
For #1 and #4 I'm referring to this kind of screen notification like the one you get from LethalMoonUnlocks or using the utility slot for the first time.
@steady trail Took me a bit to locate it but LGU is causing this bug to happen with teleporters
I need logs but my guess is it didn't patch fully
Either that or somebody else patched and made vanilla not run
One of the two
Ironcially for me, mine has been fine... infact, before it wouldnt bring any tool items i specified, but then one day... it kinda just started working... and has been working since, was working yesterday
It's possible, he did drop a couple hotfixes the other day
Was it after your most recent LGU update?
I'mma test with DawnLib initialization off incase it could be that somehow
I don't know thus the question, lol
Dawnlib did have a few updates recently
They were
He dropped 2 updates on the 16th
you last updated the mod on the 15th
Okay issue does happen with Dawnlib initialization off as well
I don't know what this is doing by the way because it's not doing any of the upgrade code (no logs about it) so it should still do the same thing without it.
Yeah which makes it weird it's only when the mod is on
Hmm, I put the wrong condition here..
I seem to have fixed it?
The only issue right now is that animation is getting reset (even though it shouldn't) so I still need to figure that part out.
Forcecredits does not work with this test build
LMAO
It's disabled in the config afaik lol
I asked for it
Ah let me reenable it
You need all clients to have it on
I was testing alone to see if the Teleporter was fixed and was like "Well can't buy teleporter"
lmao
I have turned it on now
It should have said it in the terminal that it didn't work tho
Yeah because it requires all clients to have it on to work
I think this solves moros issue better.
It is fixed though
btw, thanks
and sorry for all the trouble
So the animation is right?
Because mine gets wonky.
When you have the item up when teled
Dunno what is wrong with the animation since I can't notice it but yeah items drop properly now lol
Maybe I have a mod fixing it somehow lmao
btw, kinda hurts that now better exp uses a deprecated dependency :,]
I meant when they are kept.
Ah yeah I didn't test Fusion Matter lol
I was testing if I no longer got the desync but odd
Also what is this audio clip XD
Lmao
yeah when I played it it just sounded like your phone was cutting out audio so nothing important went through
I'm like in middle of assessments stuff so you probably heard noises
lol
Does the hive value increase for beekeeper just not work anymore? I've set mine off the 1.5 default to 2 and 3 to test, and it doesnt change the price, im still getting hives that are physically too low value for the upgrade to not be changing them, the damage reduction still does work though
The related vanilla code could have been changed between versions that nobody decided to care about it, lol
I can take a look at it and see if there's anything wrong.
hi, idk why i only get 1 or 2 credits on a 700 quota
i use lgu gui
019dd59b-2713-94b8-b91e-960e88decba2
Hello! any way to remove the 'Entrance Points' tags when getting the Better Scanner upgrade?
Hilarious.
Right now there isn't a config for it so you will just have to suffer with it, I guess.
what does the sleight of hands exactly do?
i can't swing shovel more faster, i can't reload shotgun more faster, either.
makes u reload shotgun faster
then it's the mod collision or bug yeah
always the possibility
buy why isn't there any error log lmao
wdym
you can always go to AppData\LocalLow\ZeekerssRBLX\Lethal Company and grab the player.log out of there
it'll have everything in it, including debug logs
ok it doesn't have any related log btw
Then the shotgun you're using isn't using the vanilla script.
I can take a look after a nap though.
Sleepy Spike
ignore maximum amount per player, it was a test
the configs doesent seem to fix that
Is this the config when it happened?
it happen too with thiis config
if i have a quota rollover mod that block the rollover max to the next quota maybe its that
idk how the alternative credits interact with basic credits
From what I recall, it just pick up the value that vanilla has before anything happens to it when leaving the company.
does this work with modded company moons ?
It should if they all use the same functions.
And I don't see different company moons causing a problem where it requires to be different logic implementations.
I see, hope there'll be a config for it eventually π
Hi, can I ask, I have this, and it only goes up to Hunter level 2.
and the mouthdogs aren't dropping samples. I only got like 1 sample from a snare flea and we've been killing monsters like crazy... I apologize if I'm not supposed to ask here.
This is with default configuration?
Because you can alter which tier drops which samples.
i seem to be getting an error that prevents LGU from loading into the store... this is on a fresh install too
Do you have something that also tries to prevent items from despawning on a team wipe?
Hey, my friends and I wanted to try something different so we changed to alternate currency. Can anyone tell me how the alternate currency works? Do you need to buy them or do you get them automatically after every quota? And if you have to buy them, what is the command for?
thx :)
I think so? something like SaveSoloScrap?
That would be probably why
Yeah, remove that and just use LGU Scrap Keeper. You can set their prices to be 1,2,3,4 price for each upgrade. That's basically what I did lol
I seem to be having an issue with only the lobby host having the upgrades? Is there an easy fix for this?
Or, only some of them are applying. I, the lobby host, am really fast, however none of the other players are. Same goes for the jump height
Without logs from the host & clients, I don't know what fix you want.
Which logs specifically? I've got a LogOutput.log in the BepInEx folder, is that the one?
Without having any background knowledge of the code at all (I've like, vaguely skimmed the repo in the past) I can't see anything being done on player connect (in the host log), which I'd assume is when unlocked upgrades would be applied (Unless there's some shenanigans whereby the connecting client applies the upgrades to itself based on the save or some such?)
It's only saved when the game saves.
Also your clients have steamId of zero?
That's hilarious to look at.
The logs say they are loading your save just fine so unless they're rejoining after the game's autosave, there shouldn't be any issues.
Or the id being zero kinda makes it go wonky but not sure.
Anyways, you have load lgu command where you put the name of the person you want to get the save from.
That could temporarily fix your issue.
(e.g load lgu WhiteSpike if you wanted to get the LGU save from the player WhiteSpike)
Oh, might be a crazy idea, but is it possible that might have happened because we were playing during Steam maintenance or some such?
Didn't know about the load lgu command though, that'll hopefully work as a fix when I get a chance to test with them next
Well, running the load command definitely works, though if they disconnect and reconnect it resets
That's why I said temporarily, lol.
@steady trail can we get a bullet res and explosion res upgrade that reduce damages from shotguns/turrets and explosions (obviously)
:>
pretty please
I will try to remember.
So, I'm trying to dig to the bottom of exactly why the issue I'm having is occurring. Load LGU is a form of solution, but if I can fix it so it just works, that'd be ideal. Whereabouts are the LGU_{saveNum}.json save files actually stored? I can't seem to find them anywhere and I want to make sure they aren't the source of the issue in some manner
They're stored inside the game's run save.
Riiight, so not an immediately accessible file then
Looking through the Log, I found [Info :More Ship Upgrades] [LguStore] SHARED SAVE FILE: Loading index 0 save under steam ID: 76561199028265100
in one of the client files.
Which means this code is being run:
ulong steamID = LguSave.playerSaves.Keys.ToList<ulong>()[0];
logger.LogInfo($"SHARED SAVE FILE: Loading index 0 save under steam ID: {steamID}");
SaveInfo = LguSave.playerSaves[steamID];
UpdateUpgradeBus(false);```
which, is getting the key of the first player in the playerSaves list, which I'd presume is *meant* to be the host(?) though in this case, the steamID that is getting logged is the clientsID? Definitely possible I haven't followed this along right, since I'm having to make some assumptions
I've noticed an issue with movement speed via "Sick Beat" from "LateGameUpgrade" and "Lethal Status" (mods based on "Stranger Things")
The running shoes work fine, but the movement speed via "Sick Beat" doesn't work with this mod
Just in case it's useful
Edit: My bad, the conflict is with "Legafusioncore"
Apparently, it doesn't get a steamid if it's gonna use host's save.
Possible cause is that it created a save which makes it appear in the same slot causing issues.
That just sounds something is messing with player's movement speed without considering past changes.
Does it not? The function reads to me as it's sent the hosts save (byte[] json) sets the save as being received, deserialises the save, gets the first object in the playerSaves dictionary (Which I'm assuming since it's a dictionary contains not just the hosts data, but each players as well) under the assumption that the first object in that dictionary is the host, sets the save to the recevied host data (SaveInfo = LguSave.playerSaves[steamID], and then runs UpdateUpgradeBus to apply the updates
If the Clients own steamID is what's appearing in that log string, then is it not their SaveInfo that's being used with UpdateUpgradeBus, which is likely outdated compared to the host in this scenario?
It does not.
public void UpdateUpgradeBus(bool UseLocalSteamID = true, bool checkID = true)
{
if(UseLocalSteamID) // so if this is false, ignore doing anything inside the branch.
{
if(playerID == 0 && checkID)
{
logger.LogInfo("SteamID is not available yet, waiting...");
StartCoroutine(WaitForSteamID()); // only place where playerID (steamID) is fetched
return;
}
if(!LguSave.playerSaves.ContainsKey(playerID))
{
logger.LogInfo($"{playerID} Was not found in save dictionary! Creating new save for ID.");
SaveInfo = new SaveInfo();
RegisterNewPlayerServerRpc(playerID, Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(SaveInfo)));
StartCoroutine(WaitForUpgradeObject());
return;
}
SaveInfo = LguSave.playerSaves[playerID];
logger.LogInfo($"Successfully loaded save data for ID: {playerID}");
}
UpgradeBus.Instance.activeUpgrades = SaveInfo.activeUpgrades;
UpgradeBus.Instance.upgradeLevels = SaveInfo.upgradeLevels;
if (oldSave != null && oldSave.playerSaves.ContainsKey(playerID))
{
CheckForOldData(oldSave.playerSaves[playerID]);
ServerSaveFileServerRpc();
}
ContractManager.Instance.contractLevel = SaveInfo.contractLevel;
ContractManager.Instance.contractType = SaveInfo.contractType;
CurrencyManager.Instance.CurrencyAmount = SaveInfo.currencyAmount;
CurrencyManager.Instance.SpentCurrencyAmount = SaveInfo.spentCurrencyAmount;
UpgradeBus.Instance.SaleData = SaveInfo.SaleData;
UpgradeBus.Instance.LoadSales();
StartCoroutine(WaitForUpgradeObject());
}
In fact, I think that's exactly what's happened, as the two client logs I sent both have the steamID 76561199028265100 in them, which isn't actually the host, it's the steamID of the second client
So, the UpdateUpgradeBus is being called after that logged line with UseLocalSteamID set to false, so the first if statement is skipped entirely, and it then does
UpgradeBus.Instance.activeUpgrades = SaveInfo.activeUpgrades;
UpgradeBus.Instance.upgradeLevels = SaveInfo.upgradeLevels;```
which will be the wrong SaveInfo as it were, since I just established that the SaveInfo it is setting is that of one of the client players, not the Host
I'll see if I can get it set up to compile and test with my own dll to confirm, but I'm fairly certain that the LguSave present in my (the host) save file has one of the clients playerSaves at index 0, rather than the expected hosts
how exactly does the setting "include spent amount in maximum amount" work? i thought it meant that if i had set "max amount per player" at a value like 50, and then a player with that cap of 50 spent 10 AC on an upgrade they wouldn't be able to earn anymore since that spent amount was still being considered. however once the AC is used players are still able to earn back that spent AC to reach a cap of 50 again while keeping the upgrade so what am i missing?
Is there any guide present for cloning the project and getting it to build? Out of the box it has 1445 build errors, no doubt the majority of them are because I'm missing key packages, but I can't find any obvious ways of working out which ones those are
(Medkit.cs has using Unity.Netcode but I can't see a Unity.Netcode available as a NuGet package, so I presume it's acquired some other way)
add this to your csproj
<PackageReference Include="LethalCompany.GameLibs.Steam" Version="81.0.0-ngd.0" />
Actual godsend, though that has only halved the number of errors I have π
Godspeed. those are probably other mods/libraries
Feels like a lot of work when all I essentially want to do is add an extra log line π
So, I've made a small change that I believe will fix the issue, while also not breaking anything else. Is it worth making a fork for it so that it can be looked at? I'm still not able to build the project to test it myself unfortunately, but I don't see any reason why the changes wouldn't work (though I haven't been able to build to put in any extra logging, so definitely might be stuff I can't see)
Though all it boils down to is
ShareSaveClientRpc(Encoding.ASCII.GetBytes(json), playerID);
public void ShareSaveClientRpc(byte[] json, ulong? hostID)
and
//ulong steamID = LguSave.playerSaves.Keys.ToList<ulong>()[0];
logger.LogInfo($"SHARED SAVE FILE: Loading index 0 save under steam ID: {hostID}");
SaveInfo = LguSave.playerSaves[hostID.Value];```
Since playerID in the LGUStore of the host will always be the hosts playerID, you can pass it through to the ShareSaveClientRPC, which can then ensure to load the SaveInfo of the host if SharedUpgrades is set to true
Rather than loading the SaveInfo of whatever player is 1st in the LguSave.playerSaves dict
It will always be the hosts if you're globally sharing all the upgrades.
(Or whatever the plan was when this was written)
If it was always the hosts, then the SteamID that appears in the logs when logger.LogInfo($"SHARED SAVE FILE: Loading index 0 save under steam ID: {steamID}"); is run, would always be the hosts steamID, which is provably not the case from the logs I sent
That log always had the right id
Both Client logs have the steamID 76561199028265100, which is not the hosts steamID
Then the assumed order is wrong.
Lol.
I dont know why you need to send the ID over.
Without being able to compile the code, and with only a relatively surface level knowledge of how to mod specifically Lethal Company, it was the only way I could work out that would guarantee that it's the hosts save that's loaded from the list of saves the Client receives
I presume there's some way of getting the hosts steamID as the client, without having to have it sent over, but I don't actually know what that would be, so sending it in the call seemed the only option based off of what I knew
The thing is this whole shared save thing seems useless right now.
Because it already unlocks for all when the upgrade is purchased.
So I see no reason to keep this up.
That's a fair point, though would involve changing the way saves are currently structured to remove there being a save for every player, which, while not necessarily too much work, would invalidate any saves after the update containing that was pushed
Well, maybe invalidate, I'm sure there's some wizardry that could be done to actually maintain previously started saves, but it'd be a case of weighing whether that work would be worthwhile
What needs to be changed exactly? The upgrades are saved per player because you can have individual upgrades.
Ohh, never mind I see what you meant in your previous message. You meant the sharing of the saves between the host and the client. Isn't that rather necessary for the mod to function though? If a player joins a host they haven't played with previously, on a save that's already in progress, without the save sharing they wouldn't get any of the upgrades prior to their connecting?
No because they are still saving their upgrades to the host.
Regardless of this save sharing happening or not.
So if instead of trying to pick up the host's save, they would just pick up their save.
And since it has the same upgrades as hosts because it was globally shared, nothing is lost.
So, I get what you're saying, but in this instance, I'm 99% certain that the players save that's being loaded from the host does not have the same upgrades as what the host has
Because it's picking up a random's save instead of hosts.
Which is why when they're connecting, they're not loading with the same upgrades as the host
So.
If instead they got their own save.
Which is always happening already.
And that's always reliable, it would solve the issue.
Doesn't seem like it? The process that happens in the code is
(The below only occurs if SHARED_UPGRADES is true)
- They request a save from the host
- They load whatever save is at index 0 of the playerSaves
- Whatever upgrades that playerSave has, is what upgrades they get
In the instance that I have occurring, the playerSave at index 0 is not the playerSave of the client making the request and also doesn't have the same unlocks as the host.
Since the code is only run when SHARED_UPGRADES is true, it's designed that any upgrades purchased should be global, so having the players SaveInfo set to that of the host's makes sense, since their save should effectively be treated as the source of truth in this case
I dont know why we are skipping the save phase which is the most important.
Your save has garbage in it because your clients kept putting it under id zero.
Could you link me to the save phase? As far as I can tell, it doesn't have any bearing on the bug I'm experiencing/describing
[Info :More Ship Upgrades] [LguStore] Received and updated save info for client: 76561198078774565
[Info :More Ship Upgrades] [LguStore] Received and updated save info for client: 0
[Info :More Ship Upgrades] [LguStore] Received and updated save info for client: 0
Could you also point me to where in the logs that's happening? Haven't actually come across that at all
That garbage data doesn't actually matter though, right? Sure, it's being saved, but it's not actually being loaded at any point in this process, so doesn't make any difference
Certainly not ideal that it's being created, but also not the end of the world
Sure, if the list used to grab the save preseved insertion order.
Which it doesn't to begin with, thus why this happens.
Is it why this happens? If insertion order isn't preserved, then adding a save with a steamID of 0 isn't going to be any more detrimental than adding an ID of any number
It's faulty to begin with, yes.
Thus why I just want to get rid of it.
Because it's the only time it has ID zero and if it doesn't, everything else works fine.
These would have the correct steam ids.
And during boot, everyone would just grab their own save through their steamid.
Right! I think I get what you mean has happened now. In a world where all of the upgrades are global, it doesn't exactly matter who's save you grab, since they should all have the same unlocks, so index 0 is fine there. But what's happened is that when it's gone to save the save of whoever is at index 0, their save actually went in under steamID 0, so their save wasn't updated. The host is fine, since there save gets loaded with their steamID taken into account, but that isn't the case for any connecting clients
Yes.
So what I was describing would effectively be a temporary fix to a more systemic issue
Yes because the assumption of the save share being wrong due to not preserving insertion order.
If it did, it wouldn't cause this issue.
In that case, is there an easy way of getting the hosts steamID without having to pass it via that function? Having it specifically load the hosts save is the only way I can see of having a quick fix to that issue without completely changing how the current save system works
Uhh.
If you really want the host steamId, I would leave it like that.
Otherwise, the actual fix is removing the whole if branch for global shared upgrades.
And just leave the uhh UpdateUpgradeBus callback.
Yeah, that makes sense, though that fix would also have to be alongside another fix to prevent whatever allowed saving to host with a steamID of 0
That includes it.
I even linked the code explaining how it happened.
With comments on the relevant lines.
Wait, where? The code you linked previously didn't have anything to do with saving right? Just loading a save?
Or, posted previously I should say, if you linked some I haven't seen it
And assigns the value to represent the steamID.
That code is the only time it can get non-default value assigned to.
#1178407269994594435 message This one.
So, this code functions fine, but if a player has saved to host using UpdateLGUSaveServerRpc with an ID of 0, which hasn't then updated their actual save with whatever their steamID is, then UpdateUpgradeBus would load their save when called, but it won't have been updated properly because of the erroneous save earlier
Which is what I mean when I say that removing that if statement would have to be paired with also fixing whatever causes it to be possible to save with a steamID of 0
Which is a problem I have 0 idea how to solve, because I can't see a reason why their steamID would be set to 0 after already being set to it's correct value
Zero is default value.
Thus if it's still zero, the function never did the assignment.
When does it not do the assignment?
When UseLocalSteamID is false.
And would you look at that
if(UpgradeBus.Instance.PluginConfiguration.SHARED_UPGRADES.Value && saves.Count > 0)
{
ulong steamID = LguSave.playerSaves.Keys.ToList<ulong>()[0];
logger.LogInfo($"SHARED SAVE FILE: Loading index 0 save under steam ID: {steamID}");
SaveInfo = LguSave.playerSaves[steamID];
UpdateUpgradeBus(false); // UseLocalSteamID is false, hmmst
}
Genuinely so sorry, after you've mentioned this now, I've got a picture of the full flow of events
1st Instance of the save being hosted, people get their SteamIDs as normal. Since the upgrades are shared, they get saved to everyone, it's all fine and dandy. People disconnect, it gets saved under their SteamIDs, all is good
2nd Instance of the save being hosted, the receive the save from the host. It doesn't do any SteamID assignment, because UpdateUpgradeBus(false) is called, but all seems normal. They load with all the upgrades they had previously, because while it hasn't loaded their own save, everyone had the same, so everyone loads with the same. When upgrades are purchased, they still receive them as usual, but when it comes time to saving, their upgrades get saved under SteamID 0, and since the playerSave at index 0 is a client, and they're effectively not present since they've loaded in with playerID set to 0, it doesn't get updated
3rd instance of the save being hosted, clients all load in with a playerSave that hasn't been updated since the end of the 1st hosting, which is when the issue is noticed
Which is also why using load lgu SimplyFenton doesn't persist between reconnects, since they're not actually getting their save back when they reconnect (Assuming using load lgu and then disconnecting would actually save in any capacity, I haven't actually looked at that too much)
That's actually such a disgusting way for an issue like this to occur, and I'm incredibly sorry for how much of a bother I've been with all of this, I just wanted to try and be helpful and make my friends less annoyed that I'm so much faster than them π
Been a long time,
I wonder if there are any mods or methods to allow support for modded enemies to drop samples via the Hunter Upgrade.
And I am quite confused by what happened with the mod over the years since I stopped playing lethal way back. Seems like the whole mod changed who is developing for it and multiple people contribute to it?
Original creator got job and gave mods to people they trust.
HunterAPI should provide methods to allow what you want.
Do you want to keep the explosive one shots or not?
Because there are some which are meant to just be instakills.
yeah no
i feel like landmines blowing you up even if you have above 100 HPs is already too much in general
That's gonna be more complicated then.
well yeah it depends in a sense because i think it's related to the PlayerControllerB
or is it the landmine's script that's hardcoded
ah yeah fair, well with that
With probably 100 damage?
same could be done if a fire res upgrade was made for the Old Bird
yeah
in vanilla 100 damages kills you in any case so
Isn't Old Bird just straight out oneshot after a while from the torch?
Lol.
idk why zeek didn't just make it do 20 5 times over
(or more cuz of crit state)
btw, did you get to make samples for the new v81 enemies with the Hunter upgrade?
good luck with that!
Market saturation is fun.
agreed!
yeah, we all struggling with that hehe
Though I can do the same thing I did with Fluffy Seats.
Saaaaame
If you want though i could make a model for the samples
Like a new one
I just need like a free hour to make the new ones, shouldn't be that difficult besides changing the colouring then put the text on the label.
Only downside is having to open unity editor.
Speaking of, I have no idea if still works after that one crash I remembered now.
Well i'm open to making a new model for you, since the current model is a bit rough, and also gets decals applied on it which is not a normal item behavior
Funny dog.
Also the fact they use the aluminium step sound for the drop sound, but these are just my nitpicks
Explosion res seems worky.
Now the uhhh
Bullet?
Which is for the nut's shotgun and turret?
Oh.
i'd say more like any damage detected that's tagged as "Gunshots"
which by extension means Shotgun script, turret script, ect... yeah
also shotgun script just does up to 100 damages, it's not a one shot
Yeah, I can see that.
i did activate the alternate currency mode so everyone needs to buy there own upgrades, but when playing with many players it takes very long for everyone to finish there upgrades after quota. is there any way to speed that up and make people do their upgrades simultaneously?
There is a mod that offers GUI for all players to spend their currency.
It is not managed by me however so UI suggestions will have to go to this mod's git.
thx this mod will help a lot :D
with the new LLL update does that mean this is no longer needed ?
From what I read from mentions, yes.
Since both software that allows/facilitates moon making have this patch.
Hunter samples for Gunkfish, Feiopars and Cadaverbloom?

maybe add an ectoplasm drop for ghost girl too since there's an upgrade that lets us kill her with the shotgun?
also is it intentional that the beehives and sapsucker eggs aren't really affected by things like midas touch?
If they use different mechanics to spawn them, it kinda happens.
There's a new release, already handled the problem with being blocked so we should be good.
Again, if there are any issues, just tell me so and I will try solving them in time.
My buddy and I have been playing a modpack of mine and as of this update they no longer have any of the upgrades we used to share
if we buy upgrades they still get the shared upgrades from that point on, but every other upgrade we previously had has vanished only for them, presumably because of the code that was removed at the end of the changelog?
for now im just gonna use an admin command thingy to give us enough credits to catch their upgrades up, but potentially something worth fixing
It's already fixed. Your buddies' saves were already fucked to begin with.

It was discussed before why it was removed here. I don't really want to explain it again.
i know why it was removed, it was mentioned in the changelog
im just saying that we played the day before the update and they had the shared upgrades, then post update they didn't. not really that big of a deal we'll just cheat the upgrades back onto him
That's normal.
Hi, I can't seem to use the forcecredits command. I've only installed LGU and its dependencies via r2modman (a total of 10 mods), I start up LC and create a new save game in LAN mode, nobody else is in the game, I type "forcecredits 1000" into the console and it says "rejecting command due to not all players agree to use the command". Persists after save wipes, game restarts, and even PC restarts.
The console says "[Info: More Ship Upgrades] Received consensus response from 0...; Somebody rejected using forcecredits command."
There's a box in the config that needs to be checked for you to use the command

If I have Item Progression on and put the Apparatus as a Contribution Item for every single upgrade, would selling an Apparatus give me a random upgrade, or give me 1 of every upgrade?
Also a small nitpick, Aluminum Coils' "Price of each additional upgrade" section has a space in it
This is my first time opening the config, so I'm pretty sure I didn't do that
and "seperated" is a typo
Wait no, I'm dumb, I misunderstood what UniqueScrap meant
UniqueScrap/CustomScrap gives a "contribution" value which decrements to the upgrade's price til it's zero which then triggers the buy prompt.
It doesn't really matter, any spaces you decide to put will get removed through processing anyways.
Latest update introduced config option for forcecredits so that all players involved in the lobby need to have it on in order for the command to work.
Right, I get that now
For some reason I keep thinking putting something in Contribution Items will make it have some effect in UniqueScrap, even thought this about a year ago when I first started playing modded LC lol
Is there a program to edit .moddata file types?
I remember asking about a list of items that is generated if UniqueScrap is active, but I never had any success getting into the file
LGU doesn't use any .moddata files.
Is there a way to sync upgrades between host and clients without load lgu? Like, some command for host to sync all upgrades or fix for this π€
If host bought upgrade and someone joined/rejoined after this - he won't get this upgrade.
Also, with AdditionalNetworking mod upgrades not syncing at all, except for those, who is in the lobby atm.
And also, locksmith upgrade's lockpicker pops up when you approaching the door - is it intended ? Quite an inconvenient feature, especially with some client-host desyncs.
It would be more convenient to activate it with interaction key π€
i thought it does have an interaction. last time i checked it says E to Picklock
It has both approach and interact, yes.
No. That is the only way to be syncing upgrades between people when they weren't around when it was bought.
Is there a way to disable approach activation? Or maybe you could add it? Because sometimes it really gets in the way, especially when there are desync issues, and possibly some custom doors.
Nearly the same thing. Could you add some functionality like I mentioned? Or maybe just fix upgrades sharing if it's possible?
Because with 5-6+ ppl lobbies and when the only possible solution is "load lgu" command - it becomes very annoying.
Also, is there a way to change upgrade description?
For example, I changed items per Fusion Matter level and wanna describe it - is there a way to do so?
Right now, no.
What's there to fix if you're saying that you're buying upgrades when somebody isn't on?
Sure, I will try to remember when I get free time.
Plus, what would be an example of a description change?
In my understanding, with the "upgrade sharing" feature, each upgrade should be synced between the host and each existing/new client, but in reality, it only syncs between existing clients (those already in the lobby). π€
Because it syncs when its bought, yes.
So...
Is there a way to change/add functionality to be able to force-sync upgrades or just auto-sync them with every new client connected to host ?
I don't know, it's not really my top priority right now.
It was already a hasle arguing over removing the broken sync save we had before as it was effectively not working at all.
So it's another hassle to make a new one from scratch.
maybe just simple command for host to force-sync all clients?
That would be a good compromise.
since we already have load lgu, it shouldn't be so hard to add something like this?
Force sync to who?
to all clients
Right, from what save?
in lobby
host's ?
Plus, it's gonna be the same situation someone argued over forcecredits where host just decide to do whatever they want.
_<
These are strange arguments, considering that the host can change any configs and configure upgrades literally however he wants.
Which the clients can see and decide wether they stay or not to play with.
They couldn't do anything if the host decide to use forcecredits.
#1178407269994594435 message I'm just gonna link it cause I don't want to talk about it again, lol
literally, add even a simple option to replace the shovel with something else.
But overall, I would like to be able to completely change this text.
Right.
How "completely" are we talking about here.
Cause you don't get the choice of splitting the list of items if that's what you want.
I can give you the option to change the format of the description.
Like where the price goes, level, etc.
So, a config option for my proposed command would be a solution too?
Or is it really hard to do? Not much into coding, so can't say anything.
But this command would really GREATLY simplify the gameplay with this mod, especially in large packs - so I'd love to see it implemented.
just text of "lvl" description is ok.
Like
"Allows safekeeping the following items when teleporting: key, flashlight, walkie-talkie, pro-flashlight"
to:
"Allows safekeeping the following items when teleporting: pro-flashlight"
or if it's possible to any text like
"Allows safeekeping of pro-flashlight"
yes?
So you still want to safe-keep the flashlight, even if the text doesnt' say so?
From that perspective, it's not.
Only problem I can see this cause is when the host doesn't have all the upgrades (aka started from an individual playthrough but then later decided to be shared)
ok, sorry, maybe this whole thing would be unnecessary.
I have thought that if I change configuration - description (at least items) isn't changing, but it is.
My bad.
I don't think this is a significant problem, at least because it is clear in advance what the command will do?
But if we want to have the command to give everybody the same upgrades as the one that has the most.. 
Instead of you know, have n-1 (I forgor the -1 because the other guy obviously doesn't sync to themself, lol) people type out the load lgu command to that one guy.
Because you say it's an annoyance to do that.
I think it's fine?
It's just that, in my case, the most reliable person who has all the current upgrades is the host.
But if there's a way to run this command to sync (copy) upgrades from anyone, not just the host, it might be useful and convenient for someone - though I personally can't say much about that.
if I understood u correctly
From what I am understanding:
- The problem is that it's annoying having to do
n-1times theload lgu <playerName>command for each person in the lobby (wherenis the amount of people in the lobby). - Your solution is we make a command (
syncall lgufor example) which does the same behaviour as doingn-1times theload lgu <hostName>.
No?
yeah
Then yeah, I can make it where you can specify who and make it host only and the config and what not.
I will just have to see if it doesn't break everything else.
Also the locksmith disable collision is done.
I don't know if you want to see if it works or not since I can't really boot up the game right now.
np, take your time.
Hopefully everything will go smoothly and it won't take too long π
It will depend on how this month goes.
Sure, I can test it, if needed.
yeet
Just replace the one you got from thunderstore with this one instead.
It's a config setting for the disable btw.
Works fine with vanilla, but some custom doors do not respond to interaction - however, if approach interaction is left enabled, the lockpicker appears.
Hm
I don't know anything about "custom" doors unless they're using a different script that isn't from vanilla.
To which I simply ask why, lol
But this is not related to the new config settings - there was no interaction before either.
Before, the lockpicker activated simply by approaching the door, so there was no need to interact with it.
So, new setting is totally fine, just overall problem with "custom" doors.
Not sure, but it's at least related to Bozoros Wheel's glass-door (as in the screenshot) and Code Rebirth's safe - though idk if it's supposed to work with it, since that approach wasn't working either π€
I think there were more examples, but I can't remember them right now.
I feel like it would be better if the others agree to have this upgrade interact with their stuff.
I will only patch others' stuff if they really don't want to bother at all.
np, just letting you know.
Not a big problem, tbh.
So, thank you for the new config! (because this approach interaction thing was rly annoying, imho)
And waiting for the new command :p
GenericGMD:s mods Generic scraps and Generic equipment both add in a sledgehammer to the game. Its basically a shovel that deals 2x damage at the cost of swing speed. The problem is the "Protein powder" upgrade in lgu does not give extra damage to the sledgehammer, which sucks. I tested it out with imperium and without the upgrade shovels deal 1 damage and sledgehammers 2. Max upgrades the shovel dealt 3 damage but the sledgehammer still dealt 2. Can you please fix this? I've reported this to the developer of the generic mods but he replied saying that it wasnt really something he could do on his end, and he just added the sledgahammer with JLL:s custom shovelscript.
If you do fix this please also make it so that the sledgehammer gets double the damage buff from the upgrade. Otherwise the sledge will still be worse than the shovel with upgrades. (Max shovel would deal 3 while sledge would deal 4, only one more damage than the shovel, its supposed to be 2x damage shovel for Gods sake)
It doesn't because LGU doesn't affect the script generic uses
It affects the base shovel item script only
That's how it works, LGU affects vanilla scripts, if an item or feature that's closely looking like vanilla uses a different script than vanilla, LGU won't be able to use/modify it
Unless whitespike (or someone else) makes an update/alternate addon mod for it
Only 2 of which exists, one for the car, one for piggy's variety
yeah alright makes sense, Thanks
If you want to try it out.
You need LGU, JLL and CSync installed.
Just drag the file to the same folder as other plugins (BepInEx/plugins)
You type the name of the items which use JLL's melee script in its configuration file and they should be affected by the upgrade.
I can post this later today, maybe.
Holy crap it works. Yo this goated bro. Does this sync with other players if I am host? They won't need to download this too right? Also is it possible to make specific items get a larger damage buff than the shovel does?
oof
By larger damage buff, you mean a different num than what protein gives?
yes I think so
well only the big guys
which are kinda not possible to melee
there are a few mobs with 5 hp which dont get one tapped by the melee weapons im tryna buff with protein
I feel like one taps is already OP, lol.
well ig
true, its already pretty cracked
honestly idk why I'm trying to make lgu even more busted than it already is
Well, please do turn this into a mod on thunderstore at som point, my friends are lazy and will definitely be reluctant to manually mod the game, putting it on thunderstore so I can just share a code would be of huge help.
If you want to, you can rebalance the lgu store via config if you feel it is busted. I rebalanced and extended most of the upgrades for my group due to how overpowered stuff felt. It costs over 250k credits to max out LGU now for what I have. Vast majority is just like 10+ levels for Quantum Disruptor and Midas Touch.
Adding Randomize Upgrades to 12 can decrease how long you spend in the store too if you feel people spend too long looking at stuff trying to decide what to buy.
-# Btw, you can make it so the shovel goes up to whatever value you want it to. Though, idk if it only adds damage, not multiplying it, so using a shovel will only do 1 less damage then the Sledge Hammer if it is only addition?
You said it at the end, what I originally wanted was that you could make certain items get more damage from the upgrade, because normally maxed shovel would do 3 dmg, sledge would do 4. This felt inconsistent because the sledge is supposed to be a shovel that does 2x damage, so it should do 6 damage instead of 4 with max upgrades. But I honestly don't need it now that I think about it. The one extra damage from sledgehammer already allows it to kill some enemies faster than the shovel can, so it's fine as it is honestly.
Also it would probably be kind of unnecessary extra work to add that as a feature, I don't think many people would need it.
The balancing of lgu is fine for me and my friend group, I was mostly just responding to Whitespikes comment on oneshotting enemies being kinda op if I am to make the sledge do even more damage.
It's published.
