syxe-BeenThere icon

BeenThere

Resources drop more in biomes you have been through: per player, by boss kill, with a catch-up tier for returning players.

By syxe
Last updated a day ago
Total downloads 163
Total rating 1 
Categories Mods Tweaks Server-side Client-side AI Generated Deep North Update
Dependency string syxe-BeenThere-0.3.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2351 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.

Preferred version: 5.4.2351

README

BeenThere

Resources drop more in biomes you have been through. Kill a biome's boss and its wood, stone and metal drop at a higher rate for you. Returning from an earlier world? Name a catch-up biome and get the boost up to it until you kill its boss here. Both rates default to 3x and are configurable.

Progress is per character, not per world. A group of players killing a boss does nothing for a player who was not there. New players start with vanilla rates until they kill the first boss, unless they set a catch-up tier for themselves (or the server has a default catch-up tier set).

Install on the server and on every client; the server sends its settings and records to clients on connect.

How a drop is decided

The two rules have different reach. The tier rate is for building: a biome's wood, stone and the like (quartz, tar, soft tissue, black cores, dvergr lanterns, Fenris claws), and its ore unless TierRateMetals is off. Each item follows its biome's boss: Meadows wood through Eikthyr, Black Forest fine wood, core wood, stone and ore through the Elder, and so on. The table is config.

The catch-up is for speed: with Scope = Everywhere (the default) it covers every stackable drop from anything that belongs to a biome at or below your catch-up tier, trees, rocks, pickables and creatures alike, except three categories the server can switch on or off: boss summoning items, planted crops and their seeds, and ocean creature parts (chitin, serpent scales). Trophies never scale. Scope = TableOnly limits the catch-up to the tier table.

The player who landed the breaking hit on the tree, log, rock, ore deposit or creature decides the rate:

  1. has killed this tier's boss and the item is in the tier table: tier rate (default 3x);
  2. otherwise has a catch-up tier at or above the item's tier, or the tier of the thing that dropped it: catch-up rate (default 3x);
  3. otherwise vanilla.

Drops nobody hit, such as a tree knocked over by a falling tree, use the world's boss key by default (NoAttackerRule) and never the catch-up.

Setting a catch-up tier

Three ways, all answered by the server top-left:

  • In game without a console: open Configuration Manager (F1), find BeenThere, and set MyTier to a tier name or none. Changing it sends the request; the setting itself is not the record.
  • Console (F5): beenthere catchup <tier> or beenthere catchup none. beenthere alone shows your record and the rate you get per tier.
  • Server admins, for anyone: beenthere set <character name> <tier|none>, not limited by the allowlist or cap. Admins are the server's adminlist.txt. Admins also repair kill records with beenthere credit <character name> <tier> and beenthere uncredit.

What belongs to which biome comes from the game's own placement data, so a Meadows birch counts as Meadows wherever it stands and a greydwarf is Black Forest even in your meadow.

Kill credit

When a boss dies, every character that landed a hit on it is credited with that tier and a message names them (KillCredit = Attackers; Connected credits everyone connected instead). A hit from a tame does not count. Any kill counts, not only the world's first. A credit ends a catch-up it completes: kill the boss of your catch-up tier, or a later one, and your catch-up is set to none.

The server also hears the game's own defeat key for the boss, so a kill made by a client without this mod still credits the players who hit it. beenthere status names any tier this world has cleared that you are not credited with, so an admin can fix it.

For server admins

Progress lives in BepInEx/config/BeenThere/state.txt on the server, one character per line:

world=MyWorld
player=Alice;kills=BlackForest,Meadows,Swamp;catchup=Mistlands
player=Bob;kills=Meadows;catchup=none

Every character gets a line when it first connects. Edit the file while the server runs; it reloads within a second and pushes to every client. No catchup field means the server's DefaultTier applies.

Config (syxe.BeenThere.cfg):

  • [Rates] TierRate, CatchUpRate
  • [CatchUp] DefaultTier, AllowedTiers, MaxTier, Scope, ExcludeBossSummons, ExcludeFarmables, ExcludeOceanClutter
  • [Rules] NoAttackerRule (WorldKey, ZoneOwner, None), CreatureDrops (creature drops for the tier rate), TierRateMetals, KillCredit (Attackers, Connected), KillCreditRadius (for Connected; 0 credits everyone connected; the Frozen King counts at its final phase)
  • [Tiers] Order plus one bosses|world key|items line per tier

Vanilla's own resource-rate world modifier still applies underneath; run the world at the default rate.

Changelog

  • 0.3.0: kill credit works (0.2 checked ownership after the game had already dropped the boss's network view, so no kill was ever credited; a world that ran 0.2 needs its kills repaired with beenthere credit); a kill credits every character that landed a hit, read from the boss's own record; the server also hears the game's defeat key, so a kill by a client without the mod counts; a kill ends the catch-up it completes; admins repair records with beenthere credit and uncredit; beenthere status names tiers the world has cleared that you are not credited with.
  • 0.2.0: catch-up covers every drop from biomes you have been through, minus switchable categories; tier rate can drop metals; Eikthyr boosts plain wood, the Elder fine and core wood; Moder adds crystal and Fenris claws, Yagluth tar, the Queen soft tissue, black cores and lanterns.
  • 0.1.7: admins set another player's catch-up; players set their own from Configuration Manager.
  • 0.1.5, 0.1.6: README.
  • 0.1.4: characters get a line in the state file when they first connect.
  • 0.1.0 to 0.1.3: first release and packaging fixes.