You are viewing a potentially older version of this package. View all versions.
SkyLiN3-Devourer_of_Light-0.10.4 icon

Devourer of Light

A four-phase Anglerfish boss encounter with dynamic abilities, vanilla boss UI, and a configurable catch chance.

By SkyLiN3
Date uploaded a week ago
Version 0.10.4
Download link SkyLiN3-Devourer_of_Light-0.10.4.zip
Downloads 1010
Dependency string SkyLiN3-Devourer_of_Light-0.10.4

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
SkyLiN3-BossMakerAPI-0.10.4 icon
SkyLiN3-BossMakerAPI

Server-authoritative API for custom How to Fish bosses with phases, abilities, vanilla boss UI and FishNet multiplayer.

Preferred version: 0.10.4

README

Devourer of Light

Version 0.10.4, by SkyLiN3. A separate boss content mod for How to Fish, powered by BossMakerAPI. Install both the API and this mod to add the encounter.

Devourer of Light replaces an eligible Anglerfish catch with an 18,000-base-HP miniboss: four phases, telegraphed attacks, bounded charges, native sea-creature support and the game's original boss bar. It reuses the installed Anglerfish mesh, animations, AI, physics, hitboxes and drops. No game assets or assemblies are redistributed.

Requirements and installation

  • BepInExPack 5.4.2305.
  • BossMakerAPI 0.10.4 and this content mod at the same version on every peer.
  • The exact inspected How to Fish 1.1.3/build 25604825 is the primary target. Retained references: 1.1.3/build 25603657, 1.1.2/build 25597996, 1.0.12 and 1.0.11. General API recognition of 1.0.10 is not approval for this encounter's newer rod/surface hooks.
  • The host's declared gameplay settings apply temporarily to clients; their local CFG files remain unchanged. Opted-in menu edits apply to future bosses; existing encounters retain their captured balance.

Use a Thunderstore-compatible mod manager to install this package and its dependencies: BepInEx-BepInExPack-5.4.2305 and SkyLiN3-BossMakerAPI-0.10.4. For manual installation, close the game, install the loader and API first, then copy this package's BepInEx folder into the game directory containing the game executable. Back up your mod profile and worlds before upgrading.

The installed files are BepInEx/plugins/SkyLiN3.DevourerOfLight/SkyLiN3.DevourerOfLight.dll and its adjacent SkyLiN3.DevourerOfLight.xml.

When upgrading an earlier test installation:

  1. Close the game and back up your profile and worlds.
  2. Move the old BepInEx/plugins/SkyLiN3.ElDevoraluz folder, or any loose SkyLiN3.ElDevoraluz.dll and its XML file, outside the entire BepInEx directory. Do the same for an obsolete BossMakerAPI.DevourerExample installation if present. Keep these copies as backups, not active plugins.
  3. Install the new SkyLiN3.DevourerOfLight folder. Keep only one Devourer plugin.
  4. Leave BepInEx/config/com.skylin3.howtofish.devoraluz.cfg and your saves intact. Update every multiplayer peer to the same new files before joining.

The old Spanish DLL name is legacy only. Renaming the assembly, DLL/XML and plugin folder changes no gameplay, balance or boss definition. The stable plugin GUID, CFG filename and boss/action IDs deliberately remain unchanged; this packaging cleanup does not add a saved-definition migration or repair historical mismatches described below.

Since 0.10.0 the mod uses the English public name Devourer of Light and migrates old ability-damage CFG keys to English with a backup; existing English keys win. Stable boss/action IDs, the plugin GUID and CFG filename are retained. Labels are part of the canonical manifest: rebuild and update every peer together. The same displayed version on an older candidate DLL is not enough to establish identical content. The 0.10.1 menu patch preserves 0.10.0 gameplay definitions, defaults and technical setting bounds; it introduces no additional saved-definition identity change.

How to summon it

Catch an Anglerfish with any rod and bait the vanilla game accepts. Each distinct, server-confirmed eligible catch rolls the configured chance: 12% by default, with no trigger cooldown or session activation cap.

The API looks for safe surface entry 8–12 m from the rod. It accounts for the scaled body, nearby terrain/boats and the native relocation check. On successful replacement, the owner's rod returns through the supported native routine; the boss does not wait at the original deep hook point. Rod return is attempted after replacement commits; a delayed or failed delivery does not undo the live boss or restore the consumed fish.

An occupied native boss slot, rejected compatibility gate or unsafe spawn can still prevent replacement, even at 100%. The original fish is preserved or restored when the transaction fails. Finish the existing encounter to free the global slot; the next distinct catch rolls normally. Dropping/re-hooking the same catch does not grant extra rolls, and failed rolls do not accumulate a guaranteed future spawn.

Configuration

Launch once to generate BepInEx/config/com.skylin3.howtofish.devoraluz.cfg:

[Encounter]
SpawnChancePercent = 12

The range is 0–100: zero disables catch activation; 100 forces the probability check to pass for testing, without bypassing other safety checks. Existing CFG files retain saved values, including an old 30% or 100% test setting. No local CFG is copied into the package.

The CFG also exposes base health, contact damage, ability-damage scaling and ten per-ability damage overrides. Movement, dash forces and timing are not exposed CFG settings. Read the English descriptions beside each entry. All 14 settings are declared for session-only host authority. A 100% host and 12% client can negotiate the host's effective chance without copying CFG files. Validated host edits now affect future catches and new bosses without restarting. Existing encounters keep their captured balance, even for late-joining players. Changes may briefly queue while a peer is joining. The API's included BepInEx/plugins/BossMakerAPI/docs/DEVORALUZ_CONFIGURATION.md lists keys, defaults, ranges and how multipliers combine. Other docs/ references below use that same installed API documentation folder.

BaseHealth is base HP, not the final health displayed in combat. Native difficulty applies Easy ×0.75, Normal ×1, or Hard ×1.25: a configured 5,000 therefore becomes 6,250 HP on Hard. The default remains 18,000 base HP. This boss disables the separate extra-player HP multiplier. Changing health during a session affects newly spawned bosses, not an existing encounter.

Optional in-game settings

Install evansvl-ModMenu-0.3.6 separately to use its main-menu/pause-screen Mod Settings entry. Standard BepInEx controls discover this mod automatically; no hard menu dependency or third-party DLL is included here. Client controls show local preferences, not necessarily the effective host values. Check the log for update status. The 0.10.4 controls can be operated with the mouse:

Setting Menu control Full technical CFG range
Catch chance Slider 0–100%, step 1 0–100%
Base health Arrow choices 5,000–50,000, step 500 100–1,000,000
Contact/global multiplier Arrow choices 0.25–3, step 0.05 0.1–10
Impact damage Integer slider 1–100 1–1,000
Periodic damage Integer slider 1–30 per tick 1–1,000

Valid legacy values outside the UI range or step remain unchanged when loaded. For an old value absent from the choice list, the first explicit arrow click may jump to its first or last choice, not the nearest value. Verify your selection. Manual CFG editing retains the full technical range; multiplier text must use a decimal point. Narrower menu controls do not change host/save compatibility.

The local 1.1.3 test log confirms ModMenu 0.3.6 loading and accepted live setting changes. This does not guarantee every menu version or UI edge case. The boss also works without the menu. See the API's docs/MODMENU.md.

API startup-only options are separate in BepInEx/config/com.skylin3.howtofish.bossmakerapi.advanced.cfg and require a restart. The API's generic F8 listener is retired; summon this encounter through eligible Anglerfish catches. Voltfin's separate testing shortcut belongs to that tutorial mod, not this boss or the API.

Fight overview

Default base stats: 18,000 HP, contact damage ×1.35, scale ×2.1, mass ×1.6 and native corpse value ×5. Session difficulty can increase final health. Charges are bounded by travel distance, stopping margin and braking.

Health threshold Phase Main threats
85% Void Harpoon Narrow line strike, charge and sweeping cone lashes.
60% Electric Hunt Multi-hit electric charges and temporary Eels.
36% Venomous Depths Targeted periodic damage with Stonefish and Sea Urchins.
15% Blackout Strong charge, limited repeated pursuit and reactive close bite.

Earlier phase gates require minimum time and their signature ability, with a maximum failsafe and one phase crossed per hit. Blackout no longer prevents defeat: a lethal final-phase hit does not wait for its timer or signature. Supported hit/kill notifications wait for the server-confirmed accepted hit and actual death; they do not apply damage again or predict a kill before the boss dies. Poison-themed fields use periodic area damage, not a general poison status-effect system.

Support creatures use the English display labels Devourer Spine (Sea Urchin), Devourer Bolt (Eel) and Devourer Venom Anchor (Stonefish).

Telegraphs use lines, cones, fills, trails and layered effects. Gameplay, phase transitions and rewards are server-authoritative. Contact grace lasts 3.5 s after entry; it does not disable every damage source or make players immune.

The encounter uses the native miniboss bar and 900-second timer. UI mods that patch that original bar may also affect this encounter, but arbitrary UI-mod compatibility is not guaranteed.

An optional hook/stagger definition is present for integrators. Ordinary catch replacement and rod return do not hook the living boss: the stagger mechanic needs a separate server-side mod authenticating a real live-boss hook.

Rewards and corpse limitations

Native Anglerfish drops are preserved. Only the boss corpse receives the ×5 value factor; support creatures do not. A neutral base worth of 1,500 becomes 7,500 before native weight, cooking, casino, score/dynamite and rounding factors. This is not a guaranteed final sale price or an extra money/drop reward.

The runtime preserves scale during same-session pickup/drop. Devourer of Light 0.10.4 also opts into the API's supported corpse and living-encounter persistence. Matching content is required; casts in progress are cancelled, not replayed, and restored native value is not multiplied again. Native world-item eligibility and the 64-item cap remain. Re-saving without the API can discard its metadata. Read the API's docs/PERSISTENCE.md. Save/load and multiplayer were reported working by the user on 2026-09-21; Steam Cloud and every restore edge case are not covered by that report. Keep world backups.

The earlier 0.10.0 English rename changed canonical display data. A historical saved boss with a different definition digest is retained as unresolved data, not automatically migrated. Use a backed-up test world for this upgrade. New specimens retain their captured numeric settings so later balance edits do not retune saved encounters. The 0.10.1 menu changes preserve the 0.10.0 definitions and declared bounds. The 0.10.3 final-phase adjustment does change the main boss's definition fingerprint. Back up worlds and retain the previous kit; old mismatched boss records are not automatically migrated. A normal version update does not repair an incompatible historical boss record.

Troubleshooting and validation

  • No spawn: verify Anglerfish identity, configured chance, a free native boss slot, accepted manifest and safe surface space. Look for the rejection code.
  • Peer rejected: match API/content DLLs and assets, then inspect the setting-schema or effective-manifest diagnostic. Different local declared balance alone should not reject a peer. Do not disable compatibility checks.
  • Unexpected health: check server difficulty as well as the boss CFG.
  • Deep/blocked entry: keep the placement diagnostic, location and nearby island/boat context. Recovery is bounded assistance, not pathfinding or a guarantee that every shoreline has a safe candidate.
  • Missing bar: inspect the native boss lifecycle and whether another boss owns the global slot.

Historical version 0.10.3 compiled with the API on both audited game references without warnings/errors; each managed regression suite passes 444/444 checks. On 2026-09-21, the user reported successful combat, multiplayer and save/load testing with 0.10.3. This is user-reported acceptance; individual late-join/reconnect paths, broader coastal placement, first-attack frame timing, menu interaction, all reward/restore edge cases and Steam Cloud are not exhaustively covered by that report. Version 0.10.4 refreshes the API dependency without changing boss balance or saved-definition identity. On 2026-09-30, the release owner reported that all requested in-game checks worked with the installed API/Devourer 0.10.4 and Voltfin 1.3.2 on How to Fish 1.1.3/build 25604825. This is owner-reported acceptance, not independent or exhaustive multiplayer, Steam Cloud or edge-case certification. This is a 0.x beta; automated checks do not certify every native game scenario. Include game/build, host/client role, mod versions, relevant CFG and a sanitized BepInEx/LogOutput.log when reporting a problem. Do not include credentials or unnecessary personal paths.

Development used AI-assisted tools. Original code depends on the player's installation for native assets; no game artwork, audio or binaries are bundled.

CHANGELOG

Changelog

0.10.4 — game compatibility dependency refresh

  • Require BossMakerAPI 0.10.4 for the inspected How to Fish 1.1.x integration.
  • Preserve boss stats, abilities, definition versions, GUIDs and saved identities. The English DLL/folder name remains SkyLiN3.DevourerOfLight.
  • Update all peers together and back up worlds before upgrading.
  • Record owner-reported successful in-game checks on 2026-09-30 with the installed release on How to Fish 1.1.3/build 25604825, not exhaustive multiplayer or Steam Cloud certification.
  • Clarify that configured base health is scaled by native difficulty; live health edits affect new encounters, not bosses already in combat. Balance is unchanged.

0.10.3 — final-phase and hit/kill feedback fixes

  • Use the English assembly, DLL/XML and plugin-folder name SkyLiN3.DevourerOfLight. The previous SkyLiN3.ElDevoraluz name is legacy only. With the game closed, move old plugin copies outside BepInEx before installing the new folder; keep configuration and saves unchanged.
  • Preserve the plugin GUID, CFG filename, boss/action IDs and gameplay during this final packaging rename. It adds no new boss-definition change; the earlier final-phase change below still has its documented save limitation.
  • Disable Blackout's ProtectFromDefeat: lethal final-phase damage no longer waits for the timer or signature ability. Earlier phase gates and one-phase- per-hit progression remain in place.
  • Require BossMakerAPI 0.10.3/wire 12 for server-confirmed custom-boss hit/kill feedback, without applying damage twice or predicting defeat before actual death.
  • The changed main definition has a different save fingerprint. Back up worlds and keep the previous kit; historical mismatched bosses are not auto-migrated.
  • Build without warnings/errors on the audited 1.0.12 and 1.0.11 references; each API regression suite passes 444/444 managed checks. User-reported acceptance on 2026-09-21 covers combat, multiplayer and save/load, not every Steam Cloud, late-join/reconnect, menu, performance or restoration edge case.

0.10.2 — unreleased health/phase hotfix alignment

  • Require BossMakerAPI 0.10.2 for encounter-local phase health and a real-HP reserve while Blackout's protected final gate is closed.
  • Keep all boss/support definitions, damage/health defaults, setting bounds and saved-definition identities unchanged from 0.10.1. No artificial bar fill or healing is added; the runtime limits incoming damage until the gate opens.
  • Native combat/multiplayer acceptance remains pending for the hotfix.
  • Use the API's captured maximum consistently for phases and the native bar, with an actual-HP refresh on binding and client difficulty readiness checks. Closed phase thresholds remain protected against large-HP float rounding.

0.10.1 — unreleased menu-cleanup candidate

  • Replace overly broad mouse controls with practical health/multiplier choices, whole-percent chance and smaller impact/periodic damage sliders.
  • Preserve technically valid legacy values when loading/opening the menu.
  • Keep technical validation bounds, defaults, definitions and saved recipes unchanged from 0.10.0; update the API dependency to 0.10.1.

0.10.0 — unreleased English/live-configuration candidate

  • Rename the public boss and package to Devourer of Light / Devourer_of_Light.
  • Keep the legacy plugin GUID, DLL filename and boss/action IDs for identification.
  • Migrate player-facing ability-damage configuration keys to English without replacing an already customized English value.
  • Connect declared balance changes to BossMakerAPI's host-controlled live settings. Existing encounters keep their original balance; later catches/spawns use updates.
  • Support optional ModMenu through standard BepInEx configuration discovery. The menu is not bundled and is not required to run the boss.
  • Require BossMakerAPI 0.10.0 on every peer. Release default remains 12% chance, 18,000 base health and a x5 native corpse-value multiplier.

0.9.0 — unreleased host-configuration update

  • Target BossMakerAPI 0.9.0 and declare all 14 existing gameplay CFG values for session-only host authority: chance, HP, contact/global multipliers and every individual ability damage. Defaults, stable keys and combat design are unchanged.
  • Allow different local balance settings when joining a matching host. Host values apply in memory; client CFG files remain local and are not overwritten.
  • Keep code/assets/schema verification and the requirement to restart after changing hosting settings. Native multiplayer acceptance remains pending.

0.8.0 — unreleased persistence update

  • Target BossMakerAPI 0.8.0 and opt into its supported corpse and living-encounter persistence. Keep the boss/plugin identifiers and existing combat balance.
  • Preserve configurable 12% eligible catch chance, 18,000 base health and native equivalent corpse value ×5. Existing user CFG files are not overwritten.
  • Require the matching API/content build and definition-affecting configuration on every peer. Native save/load, restored combat, reward/sale, multiplayer and cloud acceptance remain pending; no installation or release is implied.

0.7.0 — unreleased candidate

  • Align source/plugin/file versions and the API dependency to 0.7.0. Preserve the GUID, boss IDs, health, damage and ability tuning.
  • Keep configurable 12% catch chance. Each distinct eligible catch rolls again: no session activation cap and no trigger cooldown. An occupied native boss slot, compatibility rejection or unsafe placement still preserves the original fish.
  • Opt into body-aware surface entry 8–12 m from the rod, authenticated owner-side rod return after replacement and recovery independent of horizontal-only progress.
  • Retain the API's pickup-scale, initial-publication and rehost stabilization fixes.
  • Refresh English documentation and configuration guidance. No local CFG is packaged, no game installation is updated, and no public release is implied.
  • Use the English phase labels Void Harpoon, Electric Hunt, Venomous Depths and Blackout, with Devoraluz Spine, Devoraluz Bolt and Devoraluz Venom Anchor for support creatures. Preserve the proper boss name, stable IDs, CFG keys, statistics and ability behavior.
  • These display labels change canonical definition identity. Rebuild and update all multiplayer peers together; matching version text alone does not make older candidate DLLs compatible with the revised definitions.
  • On 2026-09-14 the current plugin compiled with the isolated API solution on both audited references without warnings/errors; each API suite passed 230/230. Reward/save/load, coastal performance, real multiplayer and the separate final content package remain pending. Automated checks are not native acceptance, installation or publication.

Historical entries describe development builds, not necessarily published packages. Earlier probabilities, limits and balance values are not current defaults.

0.6.2

  • Prepare an independent Thunderstore identity, El_Devoraluz, removing “Example” from the player-facing package name.
  • Change the test preset's 100% Anglerfish replacement chance to a configurable 12% default. [Encounter] SpawnChancePercent accepts 0–100; restart and use matching values on all peers.
  • Preserve native rewards and multiply only the boss corpse's vanilla value by five. Support creatures retain normal value.
  • Target BossMakerAPI 0.6.2 / SkyLiN3, content schema 7, wire 6, manifest 3.
  • Retune permanent movement: contact cooldown ×0.90, native thrust ×1.10, movement interval ×1.10 and mass ×1.6. Engagement starts beyond 40 m at speed 8, caps horizontal speed at 18 and polls every 0.30 s.
  • Bound seven charges: impulse 14–22, maximum speed 24–32, travel 10–16 m, stopping margin 2–3 m, braking 0.30–0.45 s, clearer warnings and 0.70–0.90 s recovery.
  • Share the audited vanilla player anchor for chase/abilities. Suspend engagement during charges and after death to prevent runaway motion and flying corpses.
  • Add the then-bilingual public README, installation/configuration help and historical 1.0.10/1.0.11 compatibility notes; current coverage supersedes these.
  • Warn users to remove the old private BossMakerAPI.DevourerExample folder before installing the public identity, avoiding duplicate DLL registrations.

0.6.1

  • Target BossMakerAPI 0.6.1 / SkyLiN3.
  • Adopt wire 6 prefix compaction so the entire definition fits the 64 KiB section.
  • Preserve all abilities, phases, gates, support creatures and VFX; logical schema 5, combat design and the then-active 100% test preset remain unchanged.

0.6.0

  • Raise base health from 8,500 to 18,000. Historical tuning used damage ×1.35, contact cooldown ×0.78, thrust ×1.60, interval ×0.55 and mass ×2.3 without replacing native AI or hitboxes.
  • Replace ring attacks with stalking, harpoon, electric-hunt, poison-floor and blackout mechanics: lines/cones/circles, charges, instant/periodic damage, forces and near/far targets.
  • Gate each phase by minimum time, a signature ability and maximum failsafe; retain 1 HP while the final Blackout gate is closed.
  • Historical engagement capped speed at 34 and steered beyond 28 m, without teleportation or new navigation.
  • Track targets then lock before impact; add cyan/electric/poison/blackout VFX anchored to boss/origin/target/endpoint with layered telegraphs.
  • Strengthen support creatures, add explicit lifetimes, lower minion budget to six and fix seafloor placement. Use a cone, not a ring, for Sea Urchins.
  • Set safe hook tension to 0.34–0.70, stagger to three seconds, and temporary vulnerability modifiers affecting thrust and interval.
  • Keep the then-active 100% test preset, transactional replacement, native bar and 3.5 s contact grace.

0.5.0

  • Transactionally replace Anglerfish catches with a boss 3–5 m away. Preflight, commit, fish rollback and compensating boss despawn prevent partial outcomes; failures do not consume activation.
  • Promote to VanillaMiniBoss for 900 s, using native bar/timer and 3.5 s contact-only introduction grace.
  • Start presencia_abismal at 2.75 s; bounded Water placement preserves its declared range.
  • Migrate dependency/metadata/BossId to BossMakerAPI 0.5.0 / skylin3.

0.4.0

  • Log catch activation and meaningful eligible-catch rejections without warning spam for unrelated templates.
  • Use the temporary 100% test preset with one activation per session.
  • Make the encounter an external acceptance consumer with no Assembly-CSharp, FishNet, Runtime or external-asset dependency.
  • Add composite reactive conditions; replenish Eels only after the prior group has been defeated and emptied.
  • Add phase exit cleanup and baseline-recomposed UntilPhaseExit modifiers.
  • Place Urchins/Eels/Stonefish deterministically in water or on the seafloor, skipping actions when a safe location cannot be verified.
  • Give every action a stable ID; analyze definitions and observe structured action outcomes before/after registration.
  • Declare optional hook/stagger reactions requiring an authenticated external server-side rod integration, not automatic vanilla fishing physics.
  • Target BossMakerAPI 0.4.0.

0.3.0

  • Migrate the fight to declarative API abilities, interval scheduling, cooldowns, finite repeats and deterministic probability.
  • Express damage, forces, telegraphs and summons through built-in actions.
  • Historical catch setup: any otherwise valid Anglerfish rod/bait, 8% chance, one activation per session and 30-minute cooldown.
  • Use PreserveVanilla instead of inventing an unverified template reward.
  • Remove the 0.2 director/combat bridge and its independent MVID guard.
  • Reference only Contracts, BepInEx and Unity presentation modules.
  • Track up to seven declared supports, clean up on owner defeat and use an encounter minion budget of eight.

0.2.0

  • Target BossMakerAPI 0.2.0 and its canonical fail-closed manifest.
  • Consume state snapshots for client presentation; keep damage, state changes, forces and summons on the server.
  • Treat skipped revisions/late-join initial state as history, not casts to replay.
  • Include consumer identity, seed and assembly digest in session compatibility.

0.1.0

  • Introduce El Devoraluz (skylin3.devourer_of_light) using Anglerfish without an external model or AssetBundle.
  • Historical base: 8,500 HP, cumulative damage/cooldown, mass ×2, scale ×2.1 and final visual aura ×1.15.
  • Four phases: Thorn Crown, Electric Hunt, Poison Floor and Blackout.
  • Spawn native Sea Urchin, Eel and Stonefish supports on the server after procedural telegraphs.
  • Use an external BossEvents/BossSpawner director without private-member reflection or local spawning of network objects.
  • Resolve ring wave, rotating beacon, poison tide and Blackout cross authoritatively.
  • Match visuals to damage areas, freeze target eligibility, provide sweep grace and use the native TargetRpc for forces.
  • Guard the custom combat bridge by audited MVID.
  • Bound instances to eight (boss plus seven supports); cancel on death/despawn and avoid replaying gameplay for late joiners.
  • Preserve native drops; redistribute no game assets.