You are viewing a potentially older version of this package. View all versions.
explodingMods-LethalMoonUnlocks-1.0.1 icon

LethalMoonUnlocks

Permanently unlock moons and more. Works with all custom moons. No issues with special characters, whitespaces, etc.

Date uploaded 4 months ago
Version 1.0.1
Download link explodingMods-LethalMoonUnlocks-1.0.1.zip
Downloads 1936
Dependency string explodingMods-LethalMoonUnlocks-1.0.1

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100
IAmBatby-LethalLevelLoader-1.3.10 icon
IAmBatby-LethalLevelLoader

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

Preferred version: 1.3.10
xilophor-LethalNetworkAPI-3.2.1 icon
xilophor-LethalNetworkAPI

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

Preferred version: 3.2.1

README

LethalMoonUnlocks

Permanently unlock moons and more. No issues with special characters in custom moon names.

Credits for the original idea to Permanent Moons by BULLETBOT.

Unfortunately Permanent Moons is not maintained anymore and has some issues where it's not working with certain custom moons (Atlas Abyss, Outpost-31, ..) due to the non alphanumeric charaters in their names.

That is why I decided to make this mod. You can seamlessly transition your savefiles to LethalMoonUnlocks. Read more below.

All clients need to have this mod installed!

Report issues on GitHub: LethalMoonUnlocks


This mod requires:

  • LethalNetwork API - Used for networking the necessary data between host and clients.
  • LLL - Allows us to easily access and change moon prices.

If you don't use LLL, you don't have custom moons, so you can use Permanent Moons (link above) just fine.

Seamless migration from Permanent Moons

LethalMoonUnlocks automatically imports your Permanent Moons data from existing savefiles and migrates it to the LethalMoonUnlocks format when you load into them.

Any data for moons that are not installed (or enabled) at the time or can't be matched for other reasons will be discarded.

Once you've installed LethalMoonUnlocks you can disable/uninstall Permanent Moons. No need to start the game with both installed once or anything like that.

Additional features and config options

You can configure the mod to do a little more than just setting the price of visited moons to 0.

Currently there are two additional features:

  • a discount mode where each moon goes through a customizable list of discount rates. Each time you buy a moon it unlocks the next discount rate.
  • a randomly selected unlock (or discount) each time you make the quota.

Full description below

Feature: Reset when fired

When enabled will reset all your moon unlocks (or discounts) when your crew is fired.
Disable to keep all your unlocks (or discounts) through all quotas on the same savefile.

Enabled by default (Config value: True)

Feature: Unlock on new quota

When enabled a random moon will be unlocked every time you complete a quota.
You can configure this in two ways.

Disabled by default (Config value: False)

Config: Max unlock price

This will limit the random unlock to moons below this price. Of course free moons are always excluded.

Disabled by default (Config value: 0)

Config: Limit number of unlocks

Simply limit how often this unlock can occur in a single run.
For example if you set this to '3', you will get three random unlocks: Upon First day of second, third and fourth quota

Disabled by default (Config value: 0)

Feature: Discount mode

Instead of permanently unlocking moons when bought once, unlock a new discount rate each time you buy a moon.

Disabled by default (Config value: False)

Config: Discount rates

Set your preferred discount rates. Values are given as '% off' of the original price and seperated by comma.
Each time you visit a moon the next discount rate from the list will be applied (the list is basically discount after 1st visit, discountafter 2nd visit) ..
Only affects prices when discount mode is enabled.

50%, 75%, 100% by default (Config value: 50,75,100)

Special Thanks

CHANGELOG

v2.1.9

Added

  • Terminal Scrolling: Added an option to smooth terminal scrolling and avoid skipping moons when you have a lot visible at once.
    • Disabled by default. Toggling requires game restart.
    • Can be configured in Advanced config section.
    • This is the same patch used by StoreConfigRotation and TerminalFormatter. Don't use more than one or the effect will multiply!
    • Currently has no effect when AdvancedCompany is installed.
    • Thanks @pacoito123 for the transpiler patch!
    • Thanks BULLETBOT for making me aware of the skipping moons issue!
  • Quota Discovery: New Match cheapest constellation option
    • Use this config setting to change the behaviour of Match cheapest group to discover the next cheapest undiscovered constellation instead of the one that has the cheapest undiscovered moon.

Changed

  • Quota Discovery: Chat message will now print the group name similar to other chat messages.

Fixed

  • Fixed an issue where disabling Discovery Mode and loading an existing savegame that previously had it enabled would not show all moons.

v2.1.8

Fixed

  • An issue where certain moon names could break the moons catalogue.

v2.1.7

Added

  • WeatherTweaks: Added a compatibility workaround to ensure WT's custom weather types are displayed on terminal until a better solution is found.

Changed

  • Alert messages: removed redundant alert messages when an entire LethalConstellation or custom group was discovered on Quota Discovery with Match cheapest group enabled.

Fixed

  • An issue with Reset permanent discoveries on .. expiry config settings resetting the discovery status more often than they should.
  • An issue where the new day discoveries are permanent discoveries config setting was not respected.

v2.1.6

Changed

  • Group tags (custom groups and LethalConstellation) will now show on terminal regardless of whether they are used for any discovery mechanic group matching..
    • .. as long as the respective group matching method is selected and the tag itself is enabled.

Fixed

  • Fixed/changed a few chat messages being sent even if chat messages were disabled.

v2.1.5

Fixed

  • An issue where group tags wouldn't display when using custom groups and Quota Discoveries match cheapest group was the only group matching option enabled.
  • An issue where Quota Discovery match cheapest group wouldn't correctly match moons under certain conditions.

v2.1.4

Added

  • Terminal Formatting: Customizable font size config for the moons catalogue.

Changed

  • LethalConstellations: Ensured the default constellation is set correctly for better integration.
  • Terminal Formatting: Attempting to prevent some inconsistent ugly line breaks in the moons catalogue.
    • LLL changes the font size depending on the numbers of moons visible.
    • LMU now overrides that behaviour and enforces a constant font size.
    • The max line width config was changed accordingly to allow for longer lines when using smaller font sizes
  • Group tags: All Custom groups and LethalConstellations tags are now displayed in uppercase for visual consistency with the LethalConstellations page and other LMU terminal tags.

Fixed

  • Minor bugs, inconsistencies and config descriptions.

v2.1.3

Changed

  • LethalConstellations:
    • Removed LethalConstellations patch.
    • Subscribed to the new RouteConstellationSuccess event (thanks @darmuh!)

Fixed

  • Resolved warnings and errors that occurred when LethalConstellations was not installed.
    • This was due to an interaction between Linq compiler magic and referenced types that are not present, along with runtime reflection.
  • Fixed a bug where attempting to route to an unaffordable constellation was incorrectly interpreted as purchasing the constellation's default moon.
  • Corrected an error when LethalConstellations was selected as the group matching method but was not installed.

v2.1.2

Fixed

  • Addressed an issue where the assembly was missing from the v2.1.1 release package.

v2.1.1

Fixed

  • Hotfix for the moon catalogue breaking when LethalConstellations was not present.

v2.1.0

Added

  • LethalConstellations compatibility:
    • Introduced a new group matching method for LethalConstellations.
    • In Discovery Mode, constellations are discovered when at least one moon is discovered.
    • The number of discovered moons is displayed in the LethalConstellations Terminal screen ([optionals] in your LethalConstellations config)
    • Terminal tag (shares 'Group tag' config)
    • Show alerts when discovering new constellations.
    • Config option to override constellation prices with the cheapest discovered moon, applying unlocks and discounts to constellations.
  • Quota Discovery: New option to match the currently cheapest not fully discovered group (custom group or LethalConstellation).
  • Fallback options: Added fallback options for group matching in all additional discovery mechanics.

Changed

  • Cheap Moon Bias:
    • Now applies to Quota Unlocks, Quota Discounts, and Quota Full Discounts.
    • Separate toggle and bias values for each applicable mechanic.
    • Added an option to ignore price changes.
  • updated in-game messages

Fixed

  • Corrected some incorrect logs and other minor issues.

v2.0.3

Added

  • Alert Messages Networking: Improved alert message handling across the network.

Changed

  • Discovery Mode Safety Check: Now considers moons on the whitelist.
    • Added several fallbacks for better reliability.
  • Whitelist Verbosity: Enhanced error messages for incorrect entries in the whitelist.

Fixed

  • Resolved issues with alert messages not displaying on clients.
  • Fixed a bug where a moon was incorrectly added to the rotation when both free and dynamic free base counts were set to 0 but a whitelist was used.

v2.0.2

Fixed

  • Corrected the display of terminal tags, which were shown with default settings.

v2.0.0

Note: This is a major update. Please refer to the README and configuration for detailed information on new features and options. It is recommended to delete your existing config for optimal performance.

Added

  • New Unlock Mode Mechanics:
    • Unlocks can expire.
    • Introduced Quota Unlocks.
  • New Discount Mode Mechanics:
    • Discounts can expire.
    • Added Quota Discounts and Quota Full Discounts.
  • Discovery Mode:
    • Base selections and shuffling mechanics.
    • Introduced Quota Discoveries, Travel Discoveries, and New Day Discoveries.
    • Added Cheap Moon Bias
    • Added Moon Group Matching (including custom groups).
    • Automated ship rerouting on deadlines and after shuffles.
    • Extensive configuration options for all features.
  • Terminal Tags and Formatting:
    • Improved compatibility with LethalQuantities (LQ risk level preference).
  • Alert Messages:
    • Implemented a queue system for alerts, with compatibility for other alert sources.
  • Malfunctions Compatibility: Navigation malfunction can be handled as buying a moon.

Changed

  • Code Rewrite: A significant portion of the old code was rewritten to improve functionality while maintaining existing features.

The behavior of LethalMoonUnlocks in default configuration remains unchanged.

Fixed

  • Resolved a bug where purchasing equipment after routing to a free moon was incorrectly counted as buying the moon.
  • Fixed several smaller bugs from v1.0.1.

v1.0.1

Changed

  • Code Optimization: Refactored and optimized code related to original prices.
    • Always retrieve original prices from LLL and restore them on disconnect.
  • Updated chat message on new quota unlock.
  • Updated various logs.
    • Consolidated excessive logs from development.
  • Minor performance and stability improvements.

Fixes

  • Corrected issues with discounted prices not reflecting changes to moon prices (e.g., via LLL config) when loading existing saves.
  • Fixed incorrect log data during saving.

v1.0.0

  • Initial Release