EndlessEasy
Makes BOMBANANA! endless mode more forgiving: bomb timer multiplier, extra tolerated mistakes, and an optional whitelist of allowed modules.
About this mod Author’s original text
Endless Easy
Makes BOMBANANA! endless mode more forgiving: more time per wave, more tolerated mistakes, and
two optional ways to control which modules a wave can contain.
What it changes
Difficulty
The mod tunes the game's own EndlessModeConfig object. Values below are the real shipped ones,
captured from a running game:
| Lever | Game field | Vanilla | With defaults | Default |
| --- | --- | --- | --- | --- |
| Starting bomb timer | StartTimeSeconds | 150 s (2:30) | 225 s (3:45) | x1.5 |
| Per-difficulty time bonus | EasyTimeBonus | 25 | 38 | scaled |
| " | MediumTimeBonus | 40 | 60 | scaled |
| " | HardTimeBonus | 55 | 82 | scaled |
| Mistakes tolerated per wave | StrikesPerWave | 3 | 5 | +2 |
Targets are computed from the vanilla baseline captured on first use, never from the current
value, so repeated application can never compound.
Modules — both optional, off by default
| Option | Effect | Default |
| --- | --- | --- |
| [Modules] EnabledModules | Whitelist: the ONLY module types endless waves may use, comma-separated. Empty means the game's normal module pool. | empty |
| [Modules] DisableMorse | Drops the Morse module from the normal pool, using the game's own allowMorse selector flag. | false |
Details: choosing which modules endless waves may use
and keeping the Morse module out.
Configuration
BepInEx/config/BOMBANANA.EndlessEasy.cfg:
[General]
Enabled = true
OnlyApplyAsHost = true
[Time]
TimeMultiplier = 1.5
MaxStartTimeSeconds = 0
ScaleTimeBonuses = true
[Difficulty]
HealthBonus = 2
[Modules]
DisableMorse = false
EnabledModules =
[Debug]
VerboseLogging = true
- Enabled — master switch.
- OnlyApplyAsHost — only apply when you are the server/host. Endless mission data is
synchronised over the network, so a non-host client changing the config can desync the lobby.
- TimeMultiplier — 1.5 = 50% more time. 1 disables this lever.
- MaxStartTimeSeconds — safety cap on the rewritten timer, in seconds. 0 = no cap.
- ScaleTimeBonuses — also scale the per-difficulty bonuses, so the multiplier holds whatever
difficulty a wave rolls.
- HealthBonus — extra mistakes tolerated per wave. 0 disables this lever.
- DisableMorse — keep the Morse code module out of the puzzle pool. See below.
- EnabledModules — the ONLY modules endless waves may use. Empty (the default) means the
game's normal module pool. See below.
- VerboseLogging — logs the vanilla baseline, every value written, and the lobby start gates.
Only the host needs this mod
The host's values are what everyone plays with: the bomb timer is pushed to clients by
Bomb.StartTickLoopClientRpc(int timeRemaining) and BroadcastTimer(int timer), and
Bomb.Health / MaxHealth / Outcome are NetworkVariables that the server owns.
A client without the mod still shows the vanilla timer in the lobby panel, because that panel
reads each client's own local EndlessModeConfig. That is cosmetic: the in-mission countdown and
the strike count both come from the host. This was confirmed in a live three-player run — a
non-modded client displayed 2:30 in the lobby while the mission was played at the host's 25:00.
OnlyApplyAsHost defaults to true for exactly this reason. Set it to false if you want clients
that also have the mod to rewrite their configs, which makes their lobby panel agree too.
Keeping the Morse module out
[Modules]
DisableMorse = true
BOMBANANA's module registry already takes an explicit allowMorse flag on both of its puzzle
selectors, so the mod simply forces that flag to false with a Harmony prefix — no module data is
edited, no entries are ripped out of the registry, and the game's own "Morse not allowed" path does
the rest:
bool TryPickRandomPuzzleAtDifficulty(Difficulty, HashSet usedModuleNames,
bool allowMorse, Random, out Module)
bool TryBuildPuzzleCandidates(Difficulty, HashSet usedModuleNames,
bool allowMorse, bool uniqueOnly, out List)
This applies wherever the game offers the module, not only in endless mode. Default is false, so
nothing changes unl
Install & use Install: follow the bundled instructions
- Unzip the archive from playbuff and read the bundled readme / instructions first.
- Most mods rely on the game's mod loader — the usual route is a community mod manager (such as r2modman): pick this game, install, and it handles the loader and dependencies.
- For a manual install, put the mod files into the matching Mod / plugins folder inside the game directory.
- Launch the game to confirm it loaded; mods with listed dependencies need those installed as well.
Install locations vary a lot between mods — the bundled readme is the most reliable guide.
Install these first, or the mod will not work: