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

HullBreaker Company Ambigous Fork

Making it more challenging to work for the company - a more ambiguous fork

Date uploaded 4 months ago
Version 2.2.2
Download link explodingMods-HullBreaker_Company_Ambigous_Fork-2.2.2.zip
Downloads 165
Dependency string explodingMods-HullBreaker_Company_Ambigous_Fork-2.2.2

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

README

HULLBREAKER COMPANY - Ambigous fork

All Credits go to Venterok! This is the original mod HullBreaker Company and HullBreaker Company on GitHub. Check it out!

Please do not report issues with this fork to Venterok. Report them to me on GitHub!

I forked this mod for personal use / tweaking to personal preference. Initially I just changed some strings and made a few small modificiations to the mod's logic. Since then more significant changes have been made.

Major changes

Ambiguous event messages

All event long and short messages in game chat are more ambiguous i.e. less obvious or rather 'more mysterious'. This is intended to reduce spoiling specific monster types and such for newcomers.

Basically I tried to fit the whole "Notes about this moon"-thing without giving away the exact event. For example all events that increase monster spawn rates can print the same message in game chat: telling you something about a dominant species. So even if you know all the events by heart you don't necessarily know whether it's spiders, lizards, slimes or bees you have to expect.

More events

Events, events, events. Can one have enough events?

  • More scrap events like 'Jar of pickles'-event. Some make your working shift harder, some make it easier.
  • HordeModeEvent increases spawn rate of inside enemies.
  • Time dilation events. Make your day shorter or longer.

You can find a full list of all events below.

Reworked event execution

Rewritten event execution logic allows to dynamically replace events that fail by exectuting another random event instead. Events fail on certain moons where the enemies or scrap they are trying to modify can't naturally spawn.

More impactful enemy events

The goal for all events is to make them feel unique but still balanced and manageable. So instad of increasing only the rarity of a certain enemy, additionally their max count can be increased and their power level decreased. For example where before the spider event would only guarantee a spider to spawn, it now makes spiders more likely to spawn (early), allows encountering multiple spiders in the same round and doesn't displace other enemy spawns. That means other enemies can still spawn additionally but they will spawn in later. Not all at once because we still spawn naturally.

Integrated mod events

Depending on whether you have other mods installed certain events are enabled automatically. No user interaction or configuration required. Introducing events for Shy guy, Herobrine, FacilityMeltdown and more. Check the changelog.

Custom Events

  • added support for modded enemies
    • make sure you use the enemy names exactly as they're printed in logs (case sensitive)
    • only works for mods that don't use custom spawn logic
  • added support for daytime enemies
  • added support for setting max count and power levels for all enemy types
  • added support for changing the level's power levels (inside, outside, daytime)
  • added support for overriding the level's spawn curve to a constant value (inside, outside, daytime)

IMPORTANT

With v2.2.0 the format of custom event config files has changed. Please update your configs. Refer to the template below.

Custom Event Template

The template file is located in your Hullbreaker plugins folder profilename\BepInEx\plugins\explodingMods-HullBreaker_Company_Ambigous_Fork\HullEvents

Show Custom Event Template
# CustomEvent Template
# I recommend you create a copy of this template and edit that.
# The filename doesn't matter. You can name it whatever you like.

# Change the line below to [ENABLED] or delete it to enable this custom event. 
[DISABLED]

# EVENT ID - REQUIRED
# The internal event name
EventID = CustomEventName

# EVENT WEIGHT - REQUIRED
# Default weighted rarity of the event
EventWeight = 0

# MESSAGES - REQUIRED
# The long form message printed to in-game chat when the event is active
# You can add multiple messages separated by semicolon (first message; second message; ..)
InGameMessage = My first custom event chat message; My second custom event chat message

# SHORT MESSAGES - REQUIRED
# The short form message printed to in-game chat when the event is active
# You can add multiple messages separated by semicolon (FIRST; SECOND; ..)
InGameShortMessage = FIRST; SECOND; THIRD

# ENEMY LISTS
# Enemies followed by their modifiers, seperated by comma
# Event will be skipped when ONE or more of these are missing from the level's enemy list
# Format: enemyName:rarity:maxcount:power, ..
# enemyName: the name of the enemy. Must be identical to what's printed in hullbreaker logs/console
# rarity: the rarity to set (in % of the total enemy rarity i.e. 100 makes it 50:50), -1 to not change
# maxcount: spawn up to this amount, -1 to not change, can be omitted
# power: override the enemy's power level, -1 to not change, can be omitted

# INSIDE ENEMIES - OPTIONAL
# EXAMPLE: Centipede:100:10:-1, SandSpider:100:8:1
SpawnableEnemies = enemyName:rarity:maxcount:power, enemyName:rarity:maxcount:power

# OUTSIDE ENEMIES - OPTIONAL
# EXAMPLE: MouthDog:100:20:1, SandWorm:100:5:0
SpawnableOutsideEnemies = enemyName:rarity:maxcount:power, enemyName:rarity:maxcount:power

# DAYTIME ENEMIES - OPTIONAL
# EXAMPLE: RedLocustBees:-1:10:0
SpawnableDaytimeEnemies = enemyName:rarity

# SCRAP LIST - OPTIONAL
# List of scrap items and their rarity, seperated by comma
# Event will be skipped when ALL of these are missing from the level's loot table
# scrapName = the name of the scrap item. Must be identical to what's printed in hullbreaker logs/console
# rarity = the rarity to set (in % of the total scrap rarity i.e. 100 makes it 50:50) 
# EXAMPLE SpawnableScrap = Big Bolt:10, Cookie mold pan:20, Teeth:50
SpawnableScrap = scrapName:rarity

# MAX ENEMY POWER - OPTIONAL
# Increase the level's inside monster power cap by this number. Set to 0 to disable
GlobalPowerIncrease = 0

# MAX OUTSIDE ENEMY POWER - OPTIONAL
# Increase the level's outside monster power cap by this number. Set to 0 to disable
GlobalOutsidePowerIncrease = 0

# MAX DAYTIME ENEMY POWER - OPTIONAL
# Increase the level's daytime monster power cap by this number. Set to 0 to disable
GlobalDaytimePowerIncrease = 0

# ENEMY SPAWN RATE OVERRIDE - OPTIONAL
# Override the global spawn rate to a constant value. Think number of enemies to spawn per wave. 256 will spawn everything instantly. Set to 0 to disable
GlobalInsideSpawnRateOverride = 0 

# OUTSIDE ENEMY SPAWN RATE OVERRIDE - OPTIONAL
# Override the global outside spawn rate to a constant value. 256 will front load the outside enemy spawning. Set to 0 to disable
GlobalOutsideSpawnRateOverride = 0

# DAYTIME ENEMY SPAWN RATE OVERRIDE - OPTIONAL
# Override the global daytime spawn rate to a constant value. Think number of enemies to spawn per wave. 256 will spawn everything instantly. Set to 0 to disable
GlobalDaytimeSpawnRateOverride = 0

Compatibility

Fully compatible with LethalQuantities and AdvancedCompany overrides.

Using these mods you can allow events that are otherwise not available on certain moons by setting the respective monster or scrap rarity to at least 1. For example with vanilla moon configuration you can't get Jester event on Experimentation because Jesters don't spawn there. Using the tool of your choice set the Jester's rarity to 1 or any larger number. This will enable the Jester event on that moon.

Config file

Reorganized and restructured - allowing for more customization. Hopefully you'll find some settings more intuitive. Mainly putting this here so you remember to check your config :)

Events

Enemy events

Click to expand

All enemy events increase the repective enemy's spawn chance. Some additionally increase their max count and decrease their power level to varying degrees.

They are designed to be impactful and create unique situations but still be manageable overall. Check your logs for what is changed exactly.

Event Details
Arachnophobia Bunker spiders are more likely to spawn. There can be two or even more. Recommended mod: Arachnophilia
Bee Bee hives are more likely to spawn and you can find a lot of them. This also increases daytime enemy spawns overall (take note LQ users).
Butler Butler spawns more likely and there's potentially more of them. They don't count to overall enemy cap.
DevochkaPizdec Ghost girls spawn more frequently and there can be more than one. Don't loose your head out there.
FlowerMan Brackens spawn more frequently and in larger quantities. They often move together but can separate and give you a really bad time.
Hell Jesters. Yes, multiple. Good luck.
HoarderBug Hoarding Bugs spawn a lot more frequently and in much larger quantities. It's a race for scrap - who will capture the most?
Lizards Puffers / Spore Lizards are more likely to spawn and there's more of them. They don't count to overall enemy cap.
Masked Masked enemy are more likely to spawn and there's more of them. They don't count to overall enemy cap.
Nutcracker Nutcrackers are more likely to spawn and there's more of them. They don't count to overall enemy cap.
Slime Hygrodere / Blobs spawn more frequently and in much larger quantities. Recommended mod: RandomSlimeColor, RandomEnemiesSize.
SpringMan Coil-heads are more likely to spawn and there can be a lot of them. Keep you eyes peeled.

Scrap events

Click to expand

Scrap events generally change the weights of certain scrap in the loot table to make them more common.

Most of these have been made with ImmersiveScrap in mind. They work perfectly fine without but balance might be off.

Event Details
Armday Incerases spawn chance of heavy loot
BabkinPogreb Spawns a lot of pickle jars
ChristmasEve Spawns a lot of presents
Clownshow (Girl) Spawns a lot of scrap that can make noise like horns
DayDrinking Spawns a lot of alcoholic beverages
LuckyDay Increases chance for very valuable loot to spawn
SelfDefense Spawns a lot of weapon-like scrap items

Miscellaneous events

Click to expand

Traps events, time events and even some gameplay changing events.

You might need to change your strategy so keep your eyes open for these!

Event Details
EnemyBounty The company pays money for killing monsters. Per enemy reward + final reward (configurable, read below)
HackedTurrets All turrets are permanently disabled
HordeMode Spawns enemies early and in large amounts
HullBreak Take a break. The company sends a bonus payment
LandMine Spawns a lot of landmines
NothingEvent This is used to balance the chance of any event occuring. This event = no event
OnAPowderKeg Spawns more landmines. Landmines will randomly explode throughout the day.
OneForAll When the first crew member dies, the ship's autopilot is immediately instructed to leave (like voting, you have two hours)
OpenTheNoor All big security doors start in closed state
OutSideEnemyDay Frontloads outside enemy spawns to occur early in the day. Like eclipsed but only outside.
SpikeTrap Spawns a lot of spike traps (might have no effect in some custom interiors)
TimeAnomaly Time passes faster
TimeDilation Time passes slower
TurretEvent Spawns a lot of turrets

Integrated events

Click to expand

List of events integrated with others mods (from all event categories).

Event Required Mod Details
Boomba LethalThings Increases boomba spawn chance and max count significantly.
Herobrine HerobrineMod Increases Herobrine spawn chance. Can spawn up to 2. Doesn't count towards power level.
ShyGuyEvent Scopophobia Increases ShyGuy spawn chance and allows more to spawn - drastically increasing chance of actually finding one.
Meltdown FacilityMeltdown Will trigger the meltdown event sometime during the day (random between early noon and midnight)
AC_Bunny AdvancedCompany Increases spawn chance of AdvancedCompany unique item: Bunny ears
AC_Controller AdvancedCompany Increases spawn chance of AdvancedCompany unique item: Controller (Pietsmiet)
AC_RGBShoes AdvancedCompany Increases spawn chance of AdvancedCompany unique item: Light Shoes

Other changes

Events

Changes to existing events from the original Hullbreaker mod.

Click to expand

EnemyBountyEvent

  • The amount of credits rewarded for each kill is now random. Similar to an above average scrap item
    • Min/Max is configurable
  • The amount rewarded will show in game chat
  • New config: Limit the amount of rewards. The final reward will pay 150% of Max

HullBreakEvent

  • The amount of bonus credits you receive is now random
    • Min/Max is configurable
  • The amount will show in game chat

NothingEvent

  • When the mod randomly selects NothingEvent (no event) the event message is omitted from chat. With event counts this makes it so events seem more random especially when combined with the option that increments the number of events every day. With high EventCount it simply prevents flooding the chat with empty lines from NothingEvent to a point where things become unreadable. This depends on your configuration (event count and event weights) of course
  • When all events on a given day are NothingEvent the entire NOTES ABOUT MOON section is omitted from game chat

OnAPowderKegEvent

  • Now explodes mines periodically. Respects custom day lengths

Readded events

  • TurretsEvent, OneForAllEvent, MaskedEvent

Other

HullBreakerLevelSettings

  • only changes enemy count and spawn rate
  • no longer touches scrap amount, scrap value or quota

CHANGELOG

v2.2.5

Added

  • Barber Event: Spawns barber more frequently. They don't count towards max enemy power.

  • TestAccountVariety Events:

    • PrisonMine Event: Spawns more prison/cage mines. Uses amount from TurretScale config.
    • GiftMimic Event: Spawns more gift mimics. Uses amount from LandmineScale config divided by 3.
    • PropulsionMine Event: Spawns more propulsion mines. Uses amount from LandmineScale config.
  • Logging: Added an additional table for map hazards / traps.

  • Unique event messages: new config setting to prefer unique event chat messages (non-ambiguous)

    • Each event always prints the same message.
    • Please report any duplicates I didn't manually cross-check every event.

Changed

  • Updated the Scopophobia compatibility check since ShyGuyPatcherPatcher is no longer needed.
    • Make sure to disable the spawn patch in Scopophobia config or the event won't work properly.

Fixed

  • Removed pointless fatal log

v2.2.4

Added

  • EasterEvent: Spawns a lot of Easter Eggs (vanilla scrap).
  • Integrated Events (SCP)
    • Eggman Event: Increases SCP3199 outside spawn chance, spawns up to four.
    • InvisibleGuest Event: Increases SCP966 spawn chance, spawns up to three.
    • RottingMan Event: Increases SCP106 spawn chance, spawns up to three.
    • SlimyFriend Event: Increases SCP999 spawn chance, spawns up to three and less other monsters spawn.
  • Integrated Events (Surfaced)
    • BruceAlmighty Event: Guarantees Bruce spawn outside. Spawns up to three.
    • Urchin Event: Spawns up to ten Urchin early in the round.
    • SeaMine Event: Spawns a lot of old sea mines. Uses LandmineScale config.
  • New config option for coloured event messages in chat.

Changed

  • Adjusted Bee event spawn curve
  • Updated README

Fixed

  • Mod not loading correctly in LAN mode

v2.2.3

  • (NEW) Crawler Event: Spawns thumpers more frequently and reduces their power level.
  • HackedTurrets Event now also spawns additional turrets according to your TurretScale setting
    • makes more sense thematically to actually see turrets when the event reads all of them have been disabled
    • you can also troll your friends. turrets during the event are indefinitely deactivated at round start but their state can still change. Use the terminal :)
  • improved code to modify and restore trap spawns
    • fixed a bug where trap's spawn curves weren't correctly restored after finishing the day
    • allowing for more possibilities in the future (more integrated mod events)
  • updated event messages
  • updated config descriptions
  • updated README

v2.2.2

  • added support for multiple long and short messages for custom events
    • messages are separated by semicolon (;)
    • updated CustomEventTemplate.cfg
  • improved custom event config parsing
  • improved event execution by adding a method to simulate all event modifications before queueing them up for application
    • fixes a bug where custom events with no or undefined scrap definitions would apply changes to enemies without being considered an 'active event' i.e. no message printed to chat, etc.
  • improved random event selection code
    • previously under normal circumstances you could only get one NothingEvent per day i.e. effectively you only had a chance to reduce the total number of events per day by one
    • now NothingEvent can roll every time an event is selected
    • if you previously increased the NothingEvent weight to increase randomness / decrease frequency of events you might want to consider tuning it back down
  • ignore case for enemy and scrap names (in custom events)
  • updated event messages
  • updated a few logs

v2.2.1

readme changes only

  • Added warning about breaking custom event changes
    • Once more: You have to update your custom event configs. The notation for enemies has changed.
  • included custom event template
  • fixed table formatting

v2.2.0

  • updated for v56
    • last version was probably already compatible
    • this version is also still compatible with v50
  • (NEW) SpikeTrapEvent: Spawn more spike traps. Amount configurable.
  • (NEW) Added integrated events for AdvancedCompany
    • Every unique AC item now has its own event (Light shoes, Bunny ears, Controller)
  • (NEW) Updated custom event system. You can do almost anything with custom events now. Please see the README and custom event template for more information
    • IMPORTANT You have to update your custom event configs. The notation for enemies has changed.
    • Added support for multiple custom event folders. It will search for custom event cfg files in any folder called HullEvents inside your profile's BepInEx folder (including subfolders)
  • added a % chance column to enemy and scrap log tables
  • slightly modified how Hullbreaker events modify enemies and the level's power level
  • added a few checks for events that spawn or modify traps
    • should fix OnAPowderKeg spamming errors when a round ends early
  • updated event messages
  • added logging when scrap rarities are recalculated due to unspawnable items
  • other logging changes / typos fixed
  • fixed an issue where modifications to a level's max power levels weren't correctly applied
  • fixed an issue where the event weights section was duplicated in BepInEx config when the config file was newly generated / deleted
  • removed FloodedLevelsFixed dependency. If you encounter any issues with flooded levels during time events please let me know.
  • updated README

v2.1.0 (based on HullBreaker_Company_v1.3.11)

  • v50 compatibility
  • (NEW) ButlerEvent
  • (NEW) TimeAnomalyEvent: Time passes quicker (150-200% of default rate)
  • (NEW) TimeDilationEvent: Makes time pass slower (50-75% of default rate)
  • changed the way rarities are applied. Enemy and scrap rarities will now scale proportionally to the total rarities of the current level
    • This applies to custom events!
    • e.g. event A adds HoarderBug at 100 rarity. This will add HoarderBug at a rarity equal to the sum of all other monsters rarities resulting in every other enemy being a HoarderBug (on average)
    • Scrap events will automatically compensate for scrap that can't be spawned (missing from level's loot table)
      • The rarity of scrap that can spawn will increase proportionally to match the same overall event:normal scrap ratio
      • For example Event A spawns gold bar and cash register as 50% of total rarity each. If gold bar can't spawn, cash register will be added as 100% of total rarity.
  • refactored event execution code
    • NothingEvent is no longer removed from pool of events after being rolled
  • improved logging
  • changed order of event weights in config so custom events show at the very bottom
  • improved event descriptions in config section '3 - Event weights'
  • fixed bunker spider event failing even if SandSpider is spawnable on the moon

v2.0.2 (based on HullBreaker_Company_v1.3.11)

  • added support for modded enemies to custom events
    • make sure you use the enemy names exactly as they're printed in logs (case sensitive)
    • only works for mods that don't use custom spawn logic
  • changed DaysPassed to actually store the number of days that have passed in the current quota
    • avoids potentially confusing logs when IncreaseEventCountPerDay = true
    • doesn't affect anything other than logs

v2.0.0 (based on HullBreaker_Company_v1.3.11)

Core

  • reworked the event execution logic
    • when an event can't be executed on the given moon another event will be randomly selected and executed
    • events can't execute when a moon doesn't naturally allow the enemy or scrap to spawn
      • e.g you can't get Jester event on (unaltered) Experimentation but you can get Girl and Nutcracker event
  • reworked the chat messaging logic to be more flexible
  • added a variety of event messages (long and short)
    • each event now has multiple possible 'Notes'. One of which is randomly selected on each execution. Some more, some less ambiguous.
  • fancy enemy and loot logging (Host only)
    • this can be especially helpful when you're balancing custom moons or changing things with LQ or AC

Compatibility

  • fully compatible with LethalQuantities and AdvancedCompany
    • if you set custom enemy or scrap rarities for a moon using these mods it will allow relevant events
      • i.e. when you set Jester rarity to 1 on Experimentation you can get the Jester event where otherwise you could not
  • Implicit compatibility with ImmersiveScrap, wesley's moons and other mods that add scrap
    • If you have those mods their scrap will be utilized for some events

Integrated mod events

Reworked event execution also allows for dynamic modded enemy events and other integrated events:

  • (NEW) MeltdownEvent (only available with FacilityMeltdown installed)
  • (NEW) BoombaEvent (only available with LethalThings installed)
  • (NEW) HerobrineEvent (only available with Herobrine installed)
  • (NEW) ShyGuyEvent (only available with Scopophobia installed)
    • IMPORTANT You currently must use this mod (ShyGuyPatcherPatcher) to prevent Scopophobia from overwriting the spawn logic. The event will be disabled when you don't have this installed.

It's easy to add more modded enemy events unless they use custom spawning logic like Scopophobia. Feel free to request more.

More events

I probably forgot some..

  • (NEW) HordeModeEvent: spawns more inside enemies, earlier.
  • (NEW) ArmdayEvent: spawns a lot of heavy loot
  • (NEW) ChristmasEveEvent: spawns a lot of gifts
  • (NEW) ClownshowEvent: spawns a lot of scrap that can be used to make noise
  • (NEW) DayDrinkingEvent: spawns a lot bottles, alcohol flask, canteen and similar items
  • (NEW) LuckyDayEvent: increases chance for high value loot (cash register, gold bar, ..)
  • (NEW) SelfDefenseEvent: spawns a lot of scrap wepons (stop, yield, toy hammer, )

Enemy events

  • made enemy events more impactful by not only increasing rarity but also (where applicable) increasing the enemy's max count, decreasing its power level and increasing the level's overall max power to compensate
    • e.g. during a bunker spider event you might encounter up to 4 spiders on the map

Config

  • restructured config file. Changed defaults. I RECOMMEND YOU CHECK YOUR CONFIG AFTER 1ST START OR DELETE IT ENTIRELY BEFORE
  • made the range of credits rewarded for BountyEvent configurable
    • added a configurable limit to the amount of rewards until the bounty is considered complete
  • made the range of credits rewarded by HullBreakEvent configurable
  • new level settings selection: vanilla, hullbreaker or custom
    • level settings no longer change scrap amount and value or quota settings
  • changed behvior of having IncreaseEventCountPerDay enabled to increase number of events on top of the amount set in EventCount

Other event changes

  • readded and fixed OneForAllEvent (auto vote ship leave after 1st death)
  • readded MaskedEvent
  • reworked OnAPowderKegEvent
    • After a random delay mines will explode one by one (with random delays inbetween) instead of all expldoding at the same time
    • this will properly scale with custom day lengths set by other mods
  • fixed BeeEvent
  • fixed a bug with EnemyBountyEvent where killing an enemy resulted in multiple rewards (for good now)
    • Despawned enemies will no longer trigger a reward
    • Bounty rewards now print more diverse and better chat messages
  • fixed a bug with BabkinPogreb event where pickles would keep spawning the next rounds until the ship was routed and landed on a different moon

Other changes

  • fixed IncreaseEventCountPerDay (config where nr. of events increases each day) being incorrect when loading a save or getting fired resulting in more or less events than expected on a given day

v1.1.1 (based on HullBreaker_Company_v1.3.11)

  • fixed a bug with EnemyBountyEvent in MP lobbies where killing an enemy resulted in multiple rewards
    • fixed a typo in the EnemeyBountyEvent reward chat message

v1.1.0 (based on HullBreaker_Company_v1.3.11)

  • Re-enabled the turrent event that is currently disabled in original HullBreaker
    • spawning and despawning of turrets
    • works fine according to my testing
      • turrets can spawn in weird positions but that's the vanilla game - spawning more just makes it more obvious
  • OnAPowderKeg will spawn some additional mines (66% of LandmineScale in config) - so it can explode more mines :D
    • changed the random explosion interval to 10-300s
  • HullBreakerLevelSettings config option will only affect enemies from now on
    • no changes to scrap value or amount
    • no changes to quota
  • removed error message in console when no custom event folder is found
  • fixed an error in ArachnophobiaEvent (checked spawnability of wrong enemy type)
  • merged changes from upstream repo

v1.0.1 (based on HullBreaker_Company_v1.4.0-alpha)

v1.0.0 (based on HullBreaker_Company_v1.4.0-alpha)

  • initial fork release
  • fork changes (check README for more information)
    • short and long event messages reveal less information about the event (more ambigous)
    • BountyEvent: random reward; print reward to chat
    • HullBreakEvent: random amount of credits; print amount to chat
    • NothingEvent: omit message from game chat; if all events are NothingEvent omit everything from game chat including 'NOTES ABOUT MOON'