You are viewing a potentially older version of this package. View all versions.
ZetaArcade-ZetasMoonTweaks-1.1.3 icon

ZetasMoonTweaks

[v81] Tool for handling moon prices, weather affecting moon risk level, Company buying/selling rate, and a custom Ironman system!

Date uploaded a month ago
Version 1.1.3
Download link ZetaArcade-ZetasMoonTweaks-1.1.3.zip
Downloads 1803
Dependency string ZetaArcade-ZetasMoonTweaks-1.1.3

This mod requires the following mods to function

MaxWasUnavailable-LethalModDataLib-1.2.2 icon
MaxWasUnavailable-LethalModDataLib

A library for Lethal Company, providing a standardised way to save and load modded data.

Preferred version: 1.2.2
Sigurd-CSync-5.0.1 icon
Sigurd-CSync

Configuration file syncing library for BepInEx.

Preferred version: 5.0.1
xilophor-LethalNetworkAPI-3.3.2 icon
xilophor-LethalNetworkAPI

A library/API to allow developers to easily add networking to their mods.

Preferred version: 3.3.2
mrov-WeatherRegistry-0.8.8 icon
mrov-WeatherRegistry

A mod for controlling the game's weather system: scrap multipliers, weather chances, blacklisting and more!

Preferred version: 0.8.8
mrov-WeatherTweaks-1.1.10 icon
mrov-WeatherTweaks

Difficulty tweaks to the weather system in Lethal Company.

Preferred version: 1.1.10
TeamXiaolan-DawnLib-0.9.25 icon
TeamXiaolan-DawnLib

A modern API for Lethal Company content and all sizes of mods [V81]

Preferred version: 0.9.25
mrov-MrovLib-0.4.15 icon
mrov-MrovLib

Common methods for my mods.

Preferred version: 0.4.15
IAmBatby-LethalLevelLoader-1.7.13 icon
IAmBatby-LethalLevelLoader

A Custom API to support the manual and dynamic integration of all forms of custom content in Lethal Company. (v81 Compatible)

Preferred version: 1.7.13

README

Zetas Moon Tweaks

This is a mod i made for personal use in my own modpack, though it may be of use to you! It comes with 9 core features:

1 - Modifying the Company Buying Rate

You can set the Company buying rate (how many credits you get for selling stuff) to whatever you want for the deadline day, as well as for non-deadline days separately.

2 - Auto-Routing to the Company

When enabled, automatically routes you to the Company on Deadline Day!

3 - Dynamic Moon Discounts

Previously in my modpack, i used LethalQuantities to set the moon route prices between each moon to setup a discount system. With LethalQuantities broken in v73, i made this mod to replicate the system i had setup. It works like this:

  • Lets say you have Moon A (Moon you are currently routed to), and Moon B (The moon you want to route to)
  • If Moon B is significantly cheaper than Moon A, you can route down to it for free (Free Downgrade). If Moon B is $3500 cheaper or more, it will always be free to route to.
  • If Moon B isn't THAT much cheaper, but is still cheaper (or the same price), then you can route to it for a small fee (Downgrade/Swap)
  • If Moon B is more expensive than Moon A, you can route "up" to it, only paying the difference in cost to route up (Upgrade)
  • Upgrading has a cap for how far until the moon discount won't apply, and downgrading also has a cap where moons that are significantly expensive always cost a fee to route between

All of the above effects are configurable to your liking. With default settings:

  • Any moon that is $300 cheaper than the current moon or more is free to route down to (Unless it costs $1000 or more)
  • Any moon that is $3500 cheaper or more is always free to route
  • Any moon that is the same price / slightly cheaper costs $50 to route to
  • Any moon that is more expensive (Up to +$500 more) can be upgraded into by just paying the cost difference

With this system, there is more flexibility in where you can route, yet there is still fees in place which keeps credits being useful, which is important for game balance around collecting crewmate bodies.

4 - Dynamic Moon Difficulty Levels

When enabled, this system allows for the risk levels of moons to be increased based on what weather is there currently. A config is used to specify the "danger level" of each weather, and that is then used to determine what risk level it should have. It works like this:

  • Every difficulty level (Letter) is converted into a whole number. 0 is F, E is 1 etc. etc.
  • Every difficulty modifier (E.g. -, +, ++, *) is a decimal value, where if the decimal falls in the middle (around .5) then it will be blank. - means it is low, + is past the midpoint, and * is very close to the next whole number. E.g. A* difficulty would be 5.9, whereas A- would likely be around 5.1, and 5.5 would just be A
  • Using this system, the moon's default difficulty is converted from text into a number, then the associated weather has it's attached value from the config retrieved, and then both numbers are added together and turned back into text to produce the new difficulty level!
  • Combined weathers use a small formula that takes the highest difficulty weather's danger level in that combination, and then adds a little bit to it based on how many weather effects are active in total. Since this system is quite inaccurate, it also appends a "?" to the difficulty as well.

5 - Oxyde - Relock Oxyde on Eject

CodeRebirth has a bug where Oxyde isn't locked again after ejecting, requiring a new save file to be made. This patch relocks Oxyde whenever you are ejected.

6 - Oxyde - Destroy Selling Scraps when Leaving

This patch destroys any leftover Shredded Scraps / Compacted Cubes in the ship + in player inventories when leaving Oxyde. This prevents an exploit where scraps can be "prepared" in advance for the Oxyde sell process with no risk by visiting Oxyde before selling day.

7 - Oxyde - Dynamic Routing Cost

Configs to change the route cost of Oxyde based on how close it is to the deadline day. This is ideal if you want to make Oxyde visits affordable for visiting the Merchant, yet want visits during Deadline Day to be more costly for balance.

8 - Oxyde - Lock Modes

An additional locking system to the default one (Where you have to find an Oxyde Tablet, or force-unlock it in the config), this system sets the route price to Oxyde to "9999" if certain criteria aren't met, to balance when you can visit Oxyde. Options include:

-None: No Changes
-Odd Only / Even Only: Oxyde can only be visited during Even/Odd numbered Quotas, meaning each quota alternates between Oxyde being On/Off
-Threshold: Oxyde can only be visited once the Quota amount reaches a certain value
-Rng: Oxyde has a random chance to be visitable each Quota. This chance is saved to your mod data, preventing lobby reloads from rerolling the chance.

On top of this, the Oxyde Tablet has been given new functionality, by forcing Oxyde to be unlocked regardless of the above conditions for this quota. This means Oxyde Tablets can still be useful after Oxyde is initially discovered, since they let you bypass the above lock conditions!

9 - Setting up moons for an Ironman Challenge

Another custom thing i setup in LethalQuantities for one of my modpacks was an Ironman system, whereby each moon was "paired" with another one, and the goal was to complete each pair of moons from start to finish. Unlike a traditional Ironman, where you would either visit a new moon each day or quota, this one has you visit each pair. This is important because players are still given a CHOICE as to which out of the 2 moons they want to visit each day, which plays nicely with Weather Multipliers creating interesting decision making.

This config, when enabled, allows you to group moons together in a list (or on their own!!), prefixed with their route cost. From there, whilst at the company, the route price for every moon is taken from the config, and once you route to a moon, every other moon besides the ones in that group (and the company) costs 9999 to route to, effectively preventing routing outside of there, locking you to the moon(s) in that group. To make the Ironman more restrictive, you can enable "Restrict Routing", which fully locks any moons besides the ones for that current part of the Ironman, and you can also enable "Auto routing" so the ship forcibly takes the players to each set of moons.
e.g. by putting 0@Experimentation;0@Assurance;0@Vow; in the config, and enabling "Restrict Routing" and "Auto Routing", this will mean for Quota 1 you can only visit Experimentation (And it will automatically take you there once loaded, and lock all other moons besides the Company/Oxyde). Then, when the Quota is done and you are routed back to the company and finish selling, it will then automatically route you to Assurance for the 2nd quota, etc. etc.

Other Info

  • This mod requires all players to have it installed
  • All configs are synced with the host!
  • Currently, the mod uses LethalModDataLib, which is problematic in v80. The plan is to move to DawnLib fully soon!

CHANGELOG

1.1.9

  • Fixed the "Bodies 0 value" setting to actually work now (?)

1.1.8

  • Fixed a rounding error when calculating the moon risk level, it should be more accurate now.

1.1.7

  • Changed how the syncing of the Random Moon selection works so hopefully clients always take the host's value, preventing issues when ejecting and rejoining etc.
  • Added an option to instantly despawn "body scraps" when on Oxyde, preventing infinite farming exploits. For now its just hardcoded to be Shotguns, Knives, Coilhead-heads from MoreCounterplay and all the bodies from SellBodiesFixed, but in the future i should probably make this a config or something. Warning: May be incompatible with other spawning methods on Oxyde, such as storage mods retrieving those items or debug mods trying to spawn them in. I need to add a method to determine how the things are spawning in rather than my current lazy method. I'm also aware the Ceasefire isn't counted from Peacekeepers, but thats due to the Oxyde store.

1.1.6

  • Added option to configure the "Header"/"Title" of the interior name popup
  • Due to a limitation with CSync, all of the long string config entries are now local instead of synced. This may then cause issues if clients have different configs for the moon rotations etc. but shouldn't matter for the interior names.

1.1.5

  • "Day Ironman" now factors in how many times you have fulfilled the quota (sold at the company), so it shouldn't skip days anymore (?)
  • Added a new "Random Moons" gamemode, that just picks 3 random moons from the config to be available + free to route to for that quota. Rerolls each quota. Amount of moons and choice is configurable. Might add a blacklist in the future.
  • Fixed issue where the interior name popup broke when clients rejoined (The thing resetting the flag was in the wrong place and only worked for the host)
  • Updated dependencies

1.1.4

  • Project is now using the correct SDK format rarghhh. I also think the dll being referenced was old for some stuff (Like DawnLib), so thats been fixed. It worked prior somehow, but yeah. I still need to cleanup the spaghetti code sometime but its fine for now!!
  • Added option to remove all day 1 sales from the store
  • Combined weathers now use a much better algorithm to determine risk level, by factoring in the base risk level of each weather when calculating the weather count bonus. This means that having more evil weathers combo'd at once should result in a much higher risk level. Previously, the weather count bonus only added a flat bonus for every unique weather, ignoring their base risk level.
  • Progressing weathers also now use a much better algorithm to determine risk level, instead just dividing each weather's risk level by the total number of weathers for that day (E.g. None --> Eclipsed is 2 weathers, and if Eclipsed has a difficulty value of 1, then it would be divided by 2, resulting in a difficulty level of 0.5, which is accurate since Eclipsed is only active for half of the day)
  • Added a popup when first entering an interior for the day, telling you the name of the interior, as well telling you the chance for it to have appeared. Comes with an override config to change the name shown.
  • Replaced the "Ironman" gamemode toggle with an Enum: "Normal", "QuotaIronman", "DayIronman", and "SMHQ"

-Normal does nothing
-QuotaIronman is like the previous Ironman Mode: You are locked to 1 set of moons at a time based on the config (or a single moon), where you then advance to the next once you complete the Quota. Whatever set of moons you're supposed to be on is free to route to.
-DayIronman is the same as the above, except you advance each day that is completed
-SMHQ restricts you to only the moon(s) named in the config, and all other moons are permanently restricted. Also the route price is set to 0.

  • Added options for the Ironman to either loop infinitely, or to lock you to the last moon from that point once you reach the end.
  • Possibly fixed Auto-Routing not working after a lobby reload?

1.1.3

  • Fixed "EvenOnly" and "Threshold" Oxyde lock modes

1.1.2

  • Fixed issue in v80 where setting an Oxyde lock mode that triggered as soon as you opened the lobby (Such as EvenOnly on Quota 1) would break the game
  • HUD alerts regarding Oxyde now only show as red alerts when it becomes locked, and yellow alerts when it is unlocked

1.1.1

  • Fixed the auto-company reroute not working past the first Quota
  • Currently, the mod uses LethalModDataLib, which is problematic in v80. The plan is to move to DawnLib fully soon!

1.1.0

  • Optimised the reroute checks
  • Rerouting to the Company on deadline day will now only apply once per quota
  • Fixed route prices with DawnLib in v80. Moon Discounts and Oxyde price changes should work again! With this however, the mod may not work in v73 anymore.
  • The Oxyde Tablet now bypasses whatever lock conditions Oxyde has for that quota (E.g. If Oxyde is set to only be randomly available in the config, then if a Tablet is used, Oxyde will 100% be available for that Quota). This means it is now still useful after initially unlocking Oxyde!

1.0.0

  • Initial release, originally as ZetasMoonDiscounts
  • Added CSync, LethalNetworkAPI and LethalModDataLib as a Dependency
  • Added DawnLib v0.16.0 as Dependency (This will now lock this mod to v73 until i make an updated one for v80+)
  • Renamed "ZetasMoonDiscounts" --> "ZetasMoonTweaks" since the scope of the mod expanded
  • Configs are now synced with the host
  • Cleaned up the code
  • Added option to fix the CodeRebirth bug where Oxyde remains unlocked after ejecting
  • Added new options to control when Oxyde should be locked, such as:

-Whether the current Quota No. is Even/Odd
-A random configurable chance each Quota, which is synced properly with the host and saved between sessions
-Once the Quota reaches a certain value

  • Added HUD alerts whenever Oxyde's lock status is changed
  • Added options to change Oxyde's route price based on how late in the Quota it is, to make earlier visits to use the Merchant Store easier whilst making Selling-day visits more expensive
  • Added option for Shredded Scraps + Compacted Cubes from Oxyde to be deleted from the ship if any are brought into orbit
  • Added an option for Auto-Routing to the Company, independent of the Ironman Mode