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

EnemyValuableTweaks

Tweaks the indestructible behavior of the EnemyValuable (orb) to make it a little more fair. Fully configurable.

Date uploaded 9 months ago
Version 1.0.1
Download link BLOKBUSTR-EnemyValuableTweaks-1.0.1.zip
Downloads 4522
Dependency string BLOKBUSTR-EnemyValuableTweaks-1.0.1

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2305 icon
BepInEx-BepInExPack

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

Preferred version: 5.4.2305

README

EnemyValuableTweaks

Are you sick of those moments where you've put so much effort into tossing a monster down a pit, only for the orb to bounce everywhere and break on its own without giving you a single chance to get anywhere within grabbing range?

I am, because this happened WAY TOO MANY TIMES to me. So, I decided to fix this annoyance myself with this mod.

❗️ All players must have this mod installed, and all clients must have the same config settings as the host! Otherwise, visual desync at the very least will occur.

❇️ Current Features

⏲️ Enable, disable, and adjust the length of the indestructible timer duration of the orb.

💨 Automatically disable indestructibility when the orb's velocity slows to a stop. This is intended to cancel the main timer if the orb has already reached a standstill, so that the orb wouldn't remain invincible for longer than it needs to.

👐 Disable indestructibility when a player grabs ahold of it, since at this point the safety of the orb is now in your hands... get it?

🛒 Last but not least, disable indestructibility when the orb has been placed in a safe area, such as the C.A.R.T. or an extraction point.

This mod is extensively configurable, so you can fine-tune the orb's behavior to your liking. The default configs are intended to make a slightly more fair experience than vanilla without feeling overpowered. If you do want to make it either completely overpowered or brutally unfair, you have all the freedom to do so!

🚧 Roadmap

  • Automatic config syncing
  • Ability to adjust explosion probability for each moon phase?

Suggestions are welcome! Tell me what's on your mind in the Discord Thread.

🔧 Configuration

Note that each category somewhat takes priority over the previous. Configs update immediately, especially while in-game if using RepoConfig.

  • Timer
    • EnableTimer: Whether to enable the main timer that automatically disables indestructibility once expired. If disabled, the orb will never become destructible unless any of the following additional checks are enabled.
    • TimerLength: Time in seconds until the orb loses indestructibility. Vanilla default is 5 seconds.
  • Additional Checks
    • AdditionalChecksDelay: Time in seconds before all following checks activate after the orb has initially spawned. This option reads from the main timer, and will not work if greater than TimerLength. Set to 0 to disable.
  • Velocity
    • EnableVelocityCheck: Automatically disables indestructibility when the orb slows down to a certain velocity threshold. Takes precedence over the timer, meaning it will cut off the timer early if the orb has already reached a standstill.
    • VelocityThreshold: The minimum threshold for the velocity check.
  • Player Grab
    • EnablePlayerHold: Automatically disables indestructibility when the orb is grabbed by a player.
    • PlayerHoldTime: Time in seconds that a player must continue holding onto the orb before indestructibility is disabled. Resets when the player lets go, so that it will not prematurely become destructible if the player gets distracted by something else. Can be set to 0 to immediately disable indestructibility.
  • Safe Areas
    • EnableSafeAreaCheck: Disables indestructibility if the orb has been placed inside a safe area, such as the C.A.R.T. or an extraction point.
    • SafeAreaTime: Time in seconds that the orb must remain in a safe area to disable indestructibility. Works exactly like PlayerHoldTime.
  • Debug
    • EnableDebugLogs: Enable all debug logs for this mod. Note that this will create a lot of spam in the console, so please keep this disabled for normal gameplay!

⚠️ Compatibility

This mod may potentially conflict with other mods that extensively patch the Start() and Update() methods of EnemyValuable.

❤️ Acknowledgements

  • Huge thanks to OrigamiCoder and Omniscye in the R.E.P.O. Modding Server for helping me get started with modding, and for guiding me through the making of this mod!

Please report any issues on GitHub or the Discord Thread.

CHANGELOG

Changelog

1.3.0

  • Updated to R.E.P.O. 0.4.0.
  • Upgraded BepInEx dependency.
  • Various code optimizations, tweaks and cleanup.
  • Fixed an oversight where the explosion probability logic was being skipped in Singleplayer.
  • Altered the default config values for random spawn chance to 100% for all difficulties, making this feature completely opt-in.
  • README tweaks.

The config has slightly changed again, so I suggest deleting/resetting it.


1.2.0

  • Added configurable probabilities for the orb to drop when a monster is killed, depending on its difficulty level. This does not interfere with the maximum spawn amount.
  • Added a "Host-Only Mode" option to the config, which disables all features that require multiplayer synchronization, leaving only behaviors that are host-authoritative. Currently, this disables everything except the "Spawning" options.
  • General code and README tweaks

Note: The "7 - Max Spawn Amount" config category has been renamed to "7 - Spawning". This will not break the mod, but the "Max Spawn Amount" option may end up being duplicated if you've played with a previous version of this mod.


1.1.0

  • Added configurable max spawn amount.
  • Upgrade BepInEx dependency.

1.0.3

  • Recompiled for R.E.P.O. 0.3.0 (The Monster Update) to indicate compatibility.
  • Refactored project structure.

1.0.2

  • Implemented configurable explosion probability for each moon phase.
  • Cleaned up debug logging implementation and split logs into two types: Timers and General.
  • Adjusted README's "Configuration" section to use an expandable list to slightly reduce initial clutter, and fixed some other discrepancies.

1.0.1

  • Update README to properly link to this mod's Discord thread

1.0.0

  • Initial release 🎉