You are viewing a potentially older version of this package. View all versions.
ser1ka-HtF_HostRules-1.1.0 icon

HtF HostRules

Stepless difficulty and host rules: creature health, damage taken, friendly fire, one-shot kills, hunger, regen, poison, fire, PvP damage, revive values, plus catch weights and bite time. Host only. English / 繁體中文.

Date uploaded a day ago
Version 1.1.0
Download link ser1ka-HtF_HostRules-1.1.0.zip
Downloads 877
Dependency string ser1ka-HtF_HostRules-1.1.0

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

HtF Host Rules

English | 繁體中文

Turns the game's three difficulty presets into a set of dials, and adds host-side rules on top: friendly fire, one-shot kills, hunger, regeneration, poison, fire, PvP damage, revive values — and the fishing ecology: catch weights, per-species multipliers, pity rolls and bite time.

Only the host needs it. Everything it changes is computed server-side — damage resolution, the hunger / regen ticks, and the catch roll. Installing it as a plain client does nothing at all, good or bad. Nobody else in the lobby needs it.

Changes take effect immediately; you do not have to restart the lobby.

Install

Mod manager (recommended). Install through Thunderstore Mod Manager or r2modman and start the game modded. BepInEx comes along as a dependency.

Manual. Install BepInEx 5.4.23.5 first, then drop HtF.HostRules.dll into BepInEx/plugins/.

Upgrading from HtF.Economy

The fishing half of HtF.Economy lives here now. It was never really economy: catch weights, pity and bite time are rules the host sets for the whole lobby, and they take effect in exactly the same place as the difficulty multipliers — so having them in a second mod only meant opening two settings pages to tune one thing.

If HtF.Economy or HtF.FishingEcology is still installed, delete it. All three patch CreatureManager.GetRandomItem the same way, and two of them loaded at once make the multipliers compound. The bite time is worse: each side snapshots BaitInfo._catchTimeMinMax and multiplies, so whichever applies second records the already modified value as the original and can no longer put it back. Neither produces an error.

When this mod spots one, it disables its own fishing half and says so in the log, so nothing can compound while you sort it out. Difficulty, rules and player stats keep working. Delete the old plugin folder and restart the game to get fishing back.

HtF.Economy's money half — sell price multiplier, cost multiplier, starting money for new saves — was removed, not moved. If you were using those, this release drops them.

Your old htf.economy.cfg does not carry over: the plugin GUID is different, so BepInEx writes a fresh file. The setting names are unchanged, so they are quick to re-enter.

Settings

BepInEx/config/htf.hostrules.cfg, written on first run. Everything is also editable in game through HtF Config Menu (F9).

Multipliers act on the game's own defaults, which are listed so you can see what a value of 1 actually means.

Difficulty Multipliers

Setting Default
Override Difficulty Multipliers off When on, the two below replace the game's Easy / Default / Hard presets
Creature Health Multiplier 1.0 Applied to Creature.MaxHp. Vanilla: Easy 0.75, Default 1, Hard 1.25
Player Damage Taken Multiplier 1.0 All damage players take. Vanilla: Easy 0.5, Default 1, Hard 1.25

Rules

Setting Default
Friendly Fire Unchanged Force the lobby's friendly fire toggle on or off
One-Shot Kills Unchanged When forced on, melee, fists and bullets all deal a flat 99999

Player Stats

Setting Default Vanilla behaviour it scales
Hunger Speed Multiplier 1.0 1 fullness lost every 300 ticks
Starvation Damage Multiplier 1.0 5 damage every 150 ticks once fullness hits zero
Regen Speed Multiplier 1.0 Heals once every 100 ticks
Regen Amount Multiplier 1.0 5 health per heal
Poison Damage Multiplier 1.0 5 every 100 ticks
Fire Damage Multiplier 1.0 10 every 50 ticks
Player vs Player Damage Multiplier −1 Absolute override, −1 = leave alone. Vanilla is 0.25
Health On Revive −1 Absolute override, −1 = leave alone. Vanilla is 25
Fullness On Revive −1 Absolute override, −1 = leave alone. Vanilla is 10
Invulnerability After Damage −1 Seconds. −1 = leave alone. Vanilla is 0.25

Fishing

Setting Default
Enable Fishing Ecology on Off = vanilla catch weights. Does not affect anything above
Rare Threshold 0.25 Anything at or below (largest weight in that bait's table × this) counts as rare
Rare Multiplier 1.0 Above 1 = rare fish show up more often
Common Multiplier 1.0 Lowering this raises rare fish relative to everything else
Boss Multiplier 1.0 Weight of boss creatures. The game's own "only one boss alive" rule is untouched
Per-Item Multipliers empty name=multiplier, comma separated, lowercase with spaces removed — e.g. tuna=5, giantpiranha=0.2. Overrides the three above
Pity After N Non-Rare Rolls 0 0 = off. After N non-rare rolls in a row, the next draws only from the rare items. The counter is shared by the whole lobby, and survives loading another save — only quitting resets it
Bite Time Multiplier 1.0 Below 1 = fish bite sooner. Edits the BaitInfo asset; restored when you turn Enable Fishing Ecology off, and when you quit

Debug

Setting Default
Log Every Roll off Every catch roll into the BepInEx log. Handy while tuning

How rarity is decided

The game has no rarity field for fish — Rarity is only used for skins. So rarity is derived from the weights themselves: within one bait's table, the harder something is to roll, the rarer it is. That is what Rare Threshold compares against.

Why the .cfg file is in Chinese

The section and key names inside the .cfg are Chinese, and they stay that way in every language. They are identifiers, not labels: BepInEx uses them to find your saved values, so translating them would make every setting you had tuned look like a brand new one and reset it to default. The names in the tables above are what the in-game settings page shows you.

What it deliberately does not do

It adds no new synchronised state. FishNet's SyncVars are produced by compile-time IL weaving, and Harmony cannot add one at runtime — so this mod only changes results the server already computes. That is also why it is host-only rather than something clients could opt into.

Compatibility

  • How to Fish 1.0.9, Unity 6000.4.4f1 (Mono)
  • BepInEx 5.4.23.5, Harmony 2.9

The difficulty dials hook the static multipliers on ServerSettings. Patch targets are verified at startup, so a game update that moves them produces a warning in the BepInEx log rather than silent no-ops.

Links

CHANGELOG

Changelog

All notable changes to this package. Versions follow semantic versioning.

1.1.0

  • Absorbed the fishing half of HtF.Economy: catch weights (rare / common / boss multipliers, rare threshold), per-item multipliers, the pity counter, and the bite time multiplier. They were never really "economy" — they are rules the host sets for the whole lobby, and they take effect in exactly the same place as the difficulty multipliers already here.
  • HtF.Economy is gone. Its money half — sell price multiplier, cost multiplier and starting money for new saves — was removed, not moved.
  • If HtF.Economy or HtF.FishingEcology is still installed, delete it. All three patch CreatureManager.GetRandomItem the same way, so two of them loaded at once make the multipliers compound, with no error to tell you. When one is detected this mod disables its own fishing half and says so in the log, so the multipliers cannot compound while you sort it out. Difficulty, rules and player stats keep working.
  • Fishing settings do not carry over from htf.economy.cfg — the plugin GUID is different, so BepInEx writes a fresh file. The setting names are unchanged, so they are quick to re-enter.
  • Fixed: turning Enable Fishing Ecology off left the bite time multiplier written into the BaitInfo asset, and re-applied it on the way out. Fish kept biting faster until you quit the game. The toggle now restores the vanilla values.
  • Fixed: when the weight table could not be built (empty table, field names not matching, all weights zero), the pity counter still compared the result against the previous roll's rare set, so rare detection and the pity streak were both wrong. Those rolls are now skipped.
  • Changing any setting no longer rewrites every bait asset — only the two settings that actually touch it do.

1.0.0

Initial release.

  • Stepless difficulty: creature health and player damage taken replace the game's Easy / Default / Hard presets.
  • Force friendly fire and one-shot kills on or off.
  • Player stat multipliers: hunger speed, starvation damage, regen speed and amount, poison damage, fire damage, player-versus-player damage.
  • Absolute overrides for health and fullness on revive, and for invulnerability after damage.
  • Changes apply immediately; no need to restart the lobby.
  • Bilingual UI, following the language setting of HtF_ConfigMenu or the game's own language.