You are viewing a potentially older version of this package. View all versions.
Tenemo-EpicLoot_ProgressionFix-0.1.34 icon

EpicLoot ProgressionFix

EpicLoot 0.14.12 progression, enchantment range, tempering and rune fixes, SLS compatibility, server-wide chat and optional Discord announcements. Requires server and clients.

By Tenemo
Date uploaded 2 days ago
Version 0.1.34
Download link Tenemo-EpicLoot_ProgressionFix-0.1.34.zip
Downloads 62
Dependency string Tenemo-EpicLoot_ProgressionFix-0.1.34

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2350 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.2350
ValheimModding-Jotunn-2.30.1 icon
ValheimModding-Jotunn

Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.

Preferred version: 2.30.1
RandyKnapp-EpicLoot-0.14.13 icon
RandyKnapp-EpicLoot

Adds loot drops, magic items, and enchanting to Valheim.

Preferred version: 0.14.13

README

EpicLoot Progression Fix

An unofficial compatibility add-on for EpicLoot 0.14.12. Keep the original EpicLoot installed. This package applies Harmony patches; it does not replace or redistribute EpicLoot's DLL, assets or configuration.

Enchantment ranges and item operations

Shift tooltips, tempering eligibility, tempering rows and previews, and rune extraction use the explicit value override when present, then the named item's override, then the effect's normal rarity range. Missing effect definitions cannot acquire invented tempering ranges. Augmentation's existing/keep option uses the item's range; new choices retain their ordinary rarity rolls. Fixed natural rolls remain hidden as ranges and may still be tempered when they have a positive increment.

Tempering binds its countdown to the selected item and effect, cancels when selection changes, and rechecks the item, range and full material costs before payment. EpicLoot's own reselection when a temper completes is not treated as a change, so the finish effect plays out. Invalid or unresolved required materials block the recipe. A failed temper never raises an effect that is already below its normal minimum. Success probabilities, increments, over-tempering and critical outcomes keep their configured rules.

Rune etching consumes its displayed material cost and rechecks the target and rune at completion, including that both are still the selections visible in their lists. If the search box hides either one, the operation cancels without consuming anything. Extraction preserves remaining sockets, named/set identity and unrelated effect history, including when the final rolled enchantment is removed. Removing an effect remaps augmentation/tempering indices; replacing a roll clears its old temper marker. Temporary effect removal while computing available replacements is always restored, including on errors. Existing item values are not automatically rerolled or normalized.

Automatic mead consumption

Automatic Mead Consumption checks actual remaining health after damage, including damage-over-time ticks. It consumes at most one eligible health-restoring consumable from the local player's inventory per damage event, only while alive and at EpicLoot's Health Critical threshold (30% by default, adjusted by equipment). Normal cooldown/category restrictions and Instant Mead still apply. Hits that leave health above the threshold or cause no health loss consume nothing. This is healing after a surviving hit, not protection against a lethal hit.

Personal favorites

With Quick Stack - Store - Sort - Trash - Restock 1.4.15 installed, Alt + left-click favorites only the selected equipment piece, including ordinary equipment that may later be enchanted. EpicLoot objects with rolled effects, such as etched runestones, are also individual favorites. Ordinary ammunition, food, materials and unidentified bundles remain type-wide favorites. Alt + right-click still protects the inventory slot. Existing keybind overrides are respected.

Equipment markers belong to the character that marked them; another player receiving the item does not inherit that favorite. Markers use the item's saved custom data, independent of enchantments, quality or durability. Type-wide favorites, protected slots and trash-type rules are saved in the character, outside Gale's configuration. With ServerCharacters, they follow the loaded server character and its normal save/restore cycle. An individual favorite takes precedence over a trash-type rule. Sorting, storing, restocking, trashing, borders, tooltips and Sacrifice use the same item-aware checks. Reset all favorites invalidates this character's equipment markers even on stored items. Favorites do not introduce a general ban on manual transfers or crafting consumption.

If a character's saved favorites cannot be read, that character gets an on-screen notice, every item counts as favorited and the saved data is left unchanged until corrected. Other characters are unaffected.

Characters without saved personal favorites start with empty item favorites, protected slots and trash rules. Legacy Quick Stack .dat files are intentionally ignored, including malformed files. Existing favorites already saved by this add-on remain intact. Set personal favorites again after the first update; subsequent profile updates and reconnects retain the character-saved choices.

Identifying a type-favorited unidentified bundle creates new, initially unfavorited equipment. Personal choices persist on normal character/world saves, not immediately to disk on every click; restoring an older save also restores its older favorites.

Progression behavior

When EpicLoot's Item Drop Limits is PlayerMustHaveCraftedItem, craftable equipment requires a positive crafting count for the character rolling the item, or a one-time legacy credit described below. Picking up, borrowing, buying, identifying or upgrading equipment does not unlock future rolls. Identification respects the unidentified item's tier without an additional boss-kill gate. Drops remain shared; this mod does not create personalized loot for each recipient.

On an existing character's first load with 0.1.15 or later, previously held craftable equipment receives permanent legacy credit, including items no longer carried. This intentionally preserves unlocks even when old crafting records are missing or the item was only borrowed. Credits and a completion marker are saved with the character, after ServerCharacters loads its authoritative profile. Later pickups never enter that saved set. New characters start with an empty marker, including ServerCharacters template characters. Genuine crafting statistics and achievements are not changed. Back up character saves before updating; restoring an older save restores its older migration state. Invalid migration data is reported on screen for that character only, whose craftable equipment then stays ineligible until it is corrected; it is not overwritten with newer pickup history. ServerCharacters integration targets 1.4.17 when installed.

Equipment finished at a cooking station, such as Nord gear from the Frost Foundry, counts as crafted by whoever crafted its cast. The station credits its finished item to the player whose game owns the station, which need not be the cast's crafter, so that statistic counts only if the finished item also has its own creation recipe.

The purchased Fishing Rod retains its held-item requirement only while it has no creation recipe. A mod-added creation recipe makes it subject to crafting history. Missing recipes for other equipment do not bypass the gate.

  • Identification previews enumerate the same eligible replacements as actual rolls.
  • Equipment fallbacks and gambling stock use the same crafting/legacy eligibility and original classification ceiling. Unclassified equipment cannot silently bypass the restriction.
  • Unidentified conversion retains the selected TierN equipment pool's ceiling with Meadows as its minimum. Tier-zero drops use original Unidentified Meadows Gear and the normal Meadows identification pool and costs. Ordinary identified drops keep their existing pools. Missing item classification still uses normal item resolution.
  • Saved None_<rarity>_Unidentified Starter Gear IDs resolve to the original matching Meadows prefab when character, chest or tombstone inventories load; all serialized item data follows the normal game load path. Loose world-item prefab IDs convert during world loading, including unloaded areas. Inventories persist the converted IDs on their next normal save; unopened containers convert when loaded. No custom Starter Gear prefabs or separate costs remain. Other saved unidentified tiers are unchanged.
  • Identification prepares the requested number of results before taking payment or consuming the selected items. An incomplete batch consumes nothing. The generation loop stops at the requested quantity.
  • Gambling restores its temporary loot-generation flags even if generation throws.
  • The standard skills panel combines vanilla status/set bonuses with equipped EpicLoot skill bonuses in its existing bonus label and total bar. Fractional trained levels no longer make a +15 bonus display as +14. Trained levels and Fortify Skills annotations stay separate; gameplay calculations are unchanged. Auga retains EpicLoot's own renderer. The pack uses BetterUI with its custom skills panel disabled.
  • Unidentified loot saves its network item data through a delegate to the game's private ItemDrop.Save method.
  • Sacrifice lists only eligible items in your personal inventory. Items in nearby chests or external inventory providers cannot be selected for sacrifice. Other tabs, including Identify, and nearby material access are unchanged.
  • Enchanting-table cost icons show available / required material amounts, with insufficient amounts in red. Counts of 10,000 or more show whole thousands, rounded down (12480 as 12k); the red color and the tooltip use the exact numbers. Hovering retains the item tooltip and adds the carried/nearby-storage breakdown. Counts use EpicLoot's own inventory-provider path and refresh twice per second while visible, so CraftyBoxes' range, access and pull rules still apply. Item selection, sacrifice inventory restrictions, output quantities and resource consumption are unchanged.
  • Quick Stack - Store - Sort - Trash - Restock favorites are protected in Sacrifice, including individual equipment, favorited item types and favorited slots. This integration targets version 1.4.15 and does not require installing that mod if you do not use it. If the mod is present but its favorite state cannot be read, Sacrifice blocks the affected selection and reports an error rather than ignoring favorites.
  • The selection is rechecked immediately before sacrifice. If any item was moved, protected, or became otherwise ineligible during the countdown, the whole operation is cancelled without destroying items or awarding materials.

The add-on does not select a gating mode for you, rewrite loot pools or configured drop chances, change rarity/affix settings, or alter crafting costs. Existing configuration patches still control those choices. Recipe-based and boss-based gating modes retain their existing progression behavior.

Crafting gating gives a fresh character no eligible craftable equipment until they craft it. Type-name loot entries such as Swords are supported. If a roll has no local player, the add-on preserves EpicLoot's upstream fallback behavior because no player's crafting history can be evaluated.

Source-tier preservation assumes vanilla equipment tiers: 0 and 1 = Meadows for unidentified gear, 2 = Black Forest/Ocean, 3 = Swamp, 4 = Mountain, 5 = Plains, 6 = Mistlands, 7 = Ashlands, 8 = Deep North. Custom biome orders or differently numbered TierN pools need a compatibility review; they are not automatically inferred from the player's physical location.

Star-dependent creature drops

Vanilla normally uses a countdown for drop chances at or below 30%. That countdown is keyed by item prefab and probability; a different probability resets it. Star-dependent chances can therefore repeatedly reset the countdown when differently starred creatures are killed.

The add-on bypasses that countdown only for native CharacterDrop entries whose level multiplier is enabled, or Drop That entries with an explicit minimum/maximum level condition. Those entries use the game's existing independent random roll at their already-calculated chance. The global NoPseudoDrops setting is not changed. Ordinary unscaled, unconditioned drops retain vanilla behavior, and guaranteed drops remain guaranteed.

This works with the pack's trophy, rare-material and shaman queen-bee rules without copying their chances into this mod. It does not add loot or change quantities. StarLevelSystem (SLS) custom tables already use direct rolls and are unaffected. Drop That support is optional and was checked against version 3.1.5; unsupported metadata produces an explicit startup error.

When StarLevelSystem and Drop That are both installed, the add-on repairs SLS's lookup of Drop That's character-drop manager using the loaded plugin's actual assembly name, then refreshes SLS's compatibility binding. This was checked against StarLevelSystem 1.18.0 and Drop That 3.1.5. It restores SLS's existing item-modifier integration without changing mining logic, loot tables, quantities or chance settings. The original SLS warning can appear before this add-on loads; startup succeeds only if the repaired method binding is verified.

StarLevelSystem's average damage estimate now uses its existing current-weapon fallback when a creature has no default weapons, as with ordinary skeletons. Previously the empty average became NaN and then an arbitrary 100-damage estimate, inflating Volatile and Poison Nova explosions. Nonempty default-weapon averages, nova multipliers and damage types are unchanged. If no current weapon exists either, SLS's existing no-estimate behavior is retained.

StarLevelSystem 1.18.0 lets an active boss-conditional tier replace a biome's BiomeMaxLevelOverride. The add-on restores the 1.17.0 order for ordinary creatures: a creature's CreatureMaxLevelOverride wins, then the biome cap, so the tiers set level odds and minimums within the cap. A tier minimum above the cap rolls the cap. Bosses keep 1.18.0's behavior, capped by MaxBossLevel in every biome. Startup fails with an explicit error if the SLS level cap method changes.

With independent rolls, a configured 25% chance means 25% on each kill, with no accumulated guarantee. Long unlucky streaks remain possible.

Optional Rested timing

BepInEx/config/valheim.epiclootprogressionfix.cfg contains [Resting] Rested delay multiplier. The default 1 preserves vanilla timing. Set 0.5 to activate Rested twice as quickly: 10 seconds instead of the installed game's 20 seconds, subject to the normal update tick. The server synchronizes this setting to clients. Fire/shelter/resting requirements, comfort, regeneration and buff duration are unchanged. This affects only the delay for applying Rested, not elapsed time for other status effects.

Crafting skill bonus

Vanilla gives stackable items crafted at a station with a skill a chance of skill level ÷ 100 × 25% per craft to add one extra item. Crafting covers the workbench, forge, black forge, artisan table, galdr table and stonecutter; Cooking covers the cauldron, mead ketill and food preparation table. A successful roll now adds another full craft's output instead: 20 arrows, bolts or bronze nails, 10 iron nails, 5 bronze from the five-bar recipe, 4 sausages. One-item recipes still gain one item, and raw fish gains the yield of the fish used. The chance, stations and eligible items are unchanged, the floating text shows the amount added, and grill/oven cooking keeps its separate one-item bonus.

Every successful roll adds exactly one craft. Vanilla multi-crafting added the running total instead, so a second success in one batch added two bonuses, and AAA_Crafting 2.1.10 replays that escalation across queued crafts by silently adding one more item for each earlier success in the run. Both escalations are removed. If the extra output would not fit in the inventory, the craft completes without its bonus instead of being skipped as in vanilla. If AAA_Crafting's streak patch changes, startup reports an explicit error.

First-join character enrollment

With ServerCharacters 1.4.17, the server can import existing campaign characters automatically for a private list of Steam accounts. Put one Steam_<SteamID> per line in the server save directory's characters_local/enrollment-accounts.txt. Leave Backup only mode off. Accounts outside that list retain ServerCharacters' fresh-character requirement; a saved account is never imported again.

Players select their existing campaign character and join normally. Before the server releases the join handshake, the add-on requests the character's saved profile, checks the authenticated account, selected name and history of this world, and preserves the original serialized data under characters_local/initial-imports/<account>.fch. It then creates the normal server character file and follows ServerCharacters' authoritative load path. Items, skills, crafting history and custom data are not rewritten during import. Dyrr binds the loaded character to the joined world through its usual path. This does not prove the character was never edited on its owner's computer; it is a one-time trusted migration of existing players.

A wrong character, incomplete upload or existing import is refused without replacing an existing server save. The initial backup and the server character file are each written in full to a temporary file and then moved into place without replacing anything, so an interruption never leaves a partial file. A failed write retains the initial backup for owner recovery; restore that file before allowing another attempt. If the enrollment list or character directory cannot be read during a join, the player is refused with a message instead of receiving a fresh character. Include the enrollment list and initial-imports in stopped-server backups.

Persistent world bindings

With Dyrr 1.4.2 installed, bindings live in BepInEx/dyrr-state/homes.dat in each local profile. Gale scans every file inside its config directories and common text extensions elsewhere; this .dat file outside config is excluded from both export and pull cleanup. Existing dyrr-home.txt, threshold-home.txt or boon-home.txt rows are adopted only when durable state is absent, and their original files are archived privately beside it with .dat names. Later imports cannot replace established local bindings. Back up the entire profile, including this directory. Existing accounts can use the first-join enrollment above; after the saved character loads, Dyrr binds it to that campaign through its normal client path. An already conflicting home still needs an owner-approved correction; storage migration does not silently change it. Use dyrr forget or edit homes.dat for an owner-approved correction, even if an upstream message names the old path.

Personal HUD position

With FedoHud 1.0.0, the death/weight/armor block starts 500 UI pixels below its normal automatic position, retaining its minimap-centered horizontal alignment. Dragging it saves the coordinates in local Unity PlayerPrefs outside the Gale-managed config directory, keyed by the local profile path. Later config imports/pulls cannot overwrite that saved position. FedoHud's Reset positions action returns this block to the lower default and saves it again. Existing custom config coordinates are adopted when still present on first load; coordinates already erased by an earlier import cannot be recovered. Preferences are local to this computer/profile, not cloud-synced or character-bound. Other HUD blocks are unchanged.

Server-wide chat

Normal chat, typed without a /s or /w command, reaches every player on the server wherever they are. The game limits normal chat to nearby players but sends shouts to everyone, so the add-on sends normal chat as a shout. DiscordBot_AWL relays shouts, so it posts normal chat to Discord as well. Shouts, including /s, keep their yellow color and the speaker's name on floating text, but show what was typed instead of capitals. Whispers (/w) stay local and are not relayed.

Daily death leaderboard

With DiscordConnector 3.1.3, the dedicated server can post a Polish death leaderboard at 06:00 Europe/Warsaw through the connector's primary webhook. Enable [Death leaderboard] Enabled in the server's valheim.epiclootprogressionfix.cfg, keeping both connector statistics settings enabled, then restart. The pack's server override enables this feature; the mod default is disabled. Credentials stay in the server's existing connector config.

Reports cover the half-open interval from 24 hours before the scheduled deadline up to that deadline, group by platform identity, display the latest character name in that interval, share ranks for ties, and include the total. Zero-death days get a short message. The post does not print the dates it covers. Large rankings show an omitted-player count to fit Discord's limit; mentions are disabled. Daylight-saving changes keep the post at local 06:00 and the window exactly 24 hours, so adjacent reports overlap or leave a one-hour gap on those two days.

The add-on records the native immediate OnDeath broadcast from the connected player's current character, verifies the sending peer and character identity, and ignores repeated broadcasts for that character. It does not wait for respawn or require the server to have that character loaded nearby. The connector record is timestamped and committed synchronously when the server receives the death, so disconnecting during the ten-second death screen does not lose it. The reporting boundary uses server receipt time, not a client-supplied clock. Historical records are unchanged. The first report waits for a complete window after activation, which takes 24–48 hours. After downtime only the latest missed deadline is reported when the server returns.

Private delivery state is BepInEx/death-leaderboard/<world-id>.dat; include it in rollback backups and do not delete it. Confirmed delivery advances the completed deadline. When Discord certainly did not post the report (it could not be reached, refused it with a 4xx status such as a deleted webhook, or rate limited it), the report is retried after 15 minutes or Discord's retry delay, at least 5 minutes. When it may have posted (a timeout, a lost connection, a 5xx reply, or a server stop during delivery), it is not resent, to avoid a duplicate: the log shows a warning with the full report text to post by hand if Discord lacks it, and the next report continues normally. A report still undelivered at the next 06:00 is replaced by that day's report. No manual state edit is needed.

Dry run = true logs previews without HTTP, using separate -preview.dat state. Isolated test preparation enables it.

DiscordConnector records

With DiscordConnector 3.1.3, the add-on flushes the connector's records log before LiteDB reads it in full. LiteDB 5.0.21 writes each log page through a buffered file stream, and under the game's Mono runtime the last page of every commit stays in that buffer. A checkpoint reads the log through another handle, so it found that page missing, failed an internal check, and LiteDB refused every records call until restart. Checkpoints run automatically once records-log.db passes 1,000 pages (about 8 MB), usually after a day or two of play, and at shutdown. Before this fix the connector then saved no records and sent no first-join or first-death notices until restart, and vdc.log showed Error when trying to find <name> to count!. Shutdown checkpoints failed silently, so the log carried over between restarts. LiteDB's own checkpoints and database settings are otherwise unchanged.

Installation and compatibility

The optional server-synced [Achievements] Discord announcements setting defaults to false. When enabled with DiscordBot_AWL, new in-game achievement unlocks from connected clients are relayed through the server's existing Chat webhook in an ANSI code block: Player earned the achievement "Name" [Requirement]. The name and requirement use the game's English achievement text independently of the player's selected language. Startup checks, Unshamed's retroactive awards and their nested meta-achievements are excluded, and repeated callbacks are deduplicated. Announcements do not change achievement eligibility or unlock anything, and clients do not receive webhook credentials.

If DiscordBot_AWL is installed, the add-on corrects its death-quip text-file search. Pack authors may place their templates in BepInEx/config/DiscordBot/QuipsOverrides; these are read after DiscordBot initialization and survive its default-file writer. Restart after editing that override folder. Without an override folder, the normal Quips folder is read with the corrected *.txt pattern. This compatibility path was checked against DiscordBot_AWL 1.4.7. Player-death reports use the creature's displayed name, including StarLevelSystem affixes and custom names. One to four stars remain symbols; five or more use 5★, 7★, and so on. Death reports appear only in Discord (see below): the joke alone in an ANSI code block, with red player names for creature and environmental deaths on supported clients; color rendering varies by Discord client, and creature names remain plain in ANSI blocks. The "has died" title, killer thumbnail and embed timestamp are omitted. Automated message bodies from DiscordBot_AWL and DiscordConnector use the same ANSI code-block style, including joins, departures, first-time notices, server lifecycle, events, and achievements. Existing death colors and already-boxed messages are preserved. Runs of backticks in message text are split with zero-width spaces so they cannot close the code block, and text inside the block is not markdown-escaped because Discord shows it literally. Player chat is not boxed; embed titles, images and routing remain intact while descriptions and field values are boxed.

DiscordBot notifications and Discord/AI message relays are Discord-only: their in-game broadcast and display paths are disabled, including deaths and new-day quips. Outgoing Discord webhooks and player chat are not affected. DiscordConnector already sends its automatic notices only to Discord. This also prevents bot messages from opening the in-game chat window.

DiscordBot_AWL 1.4.7 marks a heartbeat unanswered when it sends one to Discord's gateway and answered when Discord acknowledges it, but never resets that mark for a new connection. After a connection dropped while a heartbeat was unanswered, every later connection gave up before sending its first heartbeat and reconnected, logging Heartbeat not acknowledged, reconnecting... about every half minute until restart. The add-on starts each new connection with no heartbeat outstanding. Webhook posts do not use this connection.

Install through Gale or another Thunderstore-compatible manager on the dedicated server and every client. Dependencies are installed automatically. Restart the game/server after installation. Multiplayer compatibility requires the same add-on version on both sides.

This release targets the original EpicLoot 0.14.12 and was built against Valheim 1.0.15. Legacy Starter Gear migration hooks are installed before the version gate and independently of gameplay patching, so an unrelated gameplay patch failure does not remove save compatibility. Version-specific gameplay hooks remain disabled on other EpicLoot versions. Initialization failures are logged and shown persistently on screen; the separate Sacrifice guards block destruction while initialization is incomplete or failed. Stop and fix the installation before continuing when that error appears. A character whose saved crafting history or favorites cannot be read gets a separate notice instead; only that character's affected feature stays locked, and loading another character clears it. Do not combine this add-on with a replacement/forked EpicLoot DLL. Other mods patching the same identification or loot-resolution methods may conflict.

Removing the mod

Keep this add-on installed while loading and saving every character and container that may still contain legacy Starter Gear. The add-on converts those items to original EpicLoot Meadows gear; loose drops convert when the world loads and persist with its next save. Unloaded inventories and old backups can still contain legacy IDs, so removing the migration support before loading them can lose items. Keep world and character backups before changing mods. Converted Meadows items need only original EpicLoot, but remove this add-on from server and clients together.

Source and credits

The package includes its C# source under src/. Built with AI assistance. EpicLoot is by RandyKnapp; this add-on is an independent project and is not an official EpicLoot release. No personal server configuration is included.

CHANGELOG

0.1.75

No change in play. The mod versions the add-on requires are each written once in its code, Discord messages share one helper that removes the game's formatting tags, and three source files are named after their features. Includes 0.1.74.

0.1.74

Ammo Count's badge scales with its slot, and its count ends on the slot's right edge with the icon just left of it, as big as the count, at the owner's request. Ammo Count 0.5.1 builds the badge in screen pixels, so it kept its size while the hotbar scaled with the resolution and GUI scale, and no offset in its config could follow the slot: at 2560 x 1400 with the GUI scale at 85% the count ended 22 pixels past the bow's slot. The pack's config now places the badge in slot units, and the add-on keeps the icon beside the count whatever its number of digits. CombatStats settings a player changes in game, with F10 or its settings panel, survive Gale imports and pulls, at the owner's request; CombatStats 1.0.3 saved them in its config file, which every import and pull replaces with the pack's copy. The add-on keeps them in BepInEx/combat-stats-state/settings.dat and applies them over the pack's values at every start, and CombatStats no longer writes its config file, so a Push carries only the pack's settings. Includes the complete 0.1.73 release.

0.1.73

Ctrl + middle click with the hammer also takes a cart apart near a workbench, as it does a ship, at the owner's request; the game marks the cart as not removable, so the hammer did nothing on it. A plain middle click still does nothing on a cart, and nothing on screen mentions the key. The game's other removal rules apply: a workbench in range and no ward or no-build zone. All 20 wood and 10 bronze nails come back, and the cargo drops in crates, as when a cart breaks. Someone pulling the cart is let go. The battering ram and the catapult, wagons without a hold, stay unremovable. Includes the complete 0.1.72 release.

0.1.72

The enchanting table's rune tab takes items only from the inventory, equipment and quick slots included, at the owner's request; EpicLoot also offered items from chests nearby. Extraction, which removes the chosen enchantment from its item, also leaves out Quick Stack favorites, as Sacrifice does, and checks the item again when the countdown ends, so an item that left the inventory or became a favorite cancels it before anything is paid or changed. Etching still offers favorited items, and its runes, favorited ones included, also come only from the inventory. Rune costs can still be paid from nearby chests. Includes the complete 0.1.71 release.

0.1.71

Ctrl + middle click with the hammer takes a ship apart near a workbench, at the owner's request; the game marks the raft, karve, longship and drakkar as not removable, so the hammer did nothing on them. A plain middle click still does nothing on a ship, so one cannot go by accident, and nothing on screen mentions the key. The game's other removal rules apply: a workbench in range, no ward or no-build zone, and nobody aboard a raft. Every material comes back, and the hold's cargo drops in floating crates, as when a ship breaks. Includes the complete 0.1.70 release.

0.1.70

CombatStats shows damage per second, at the owner's request. CombatStats 1.0.3 adds up each player's damage over a window, from 30 seconds to 30 minutes, and its average is damage per hit. The detail window now has a dps column after damage and shows the group's dps after the total; the compact meter shows each player's dps between their damage and share, as 412/s. Each figure is the window's damage divided by the window's whole length, quiet time included, so after a one-minute fight the 30-minute tab shows a thirtieth of the fight's rate. The per-hit average stays. Includes the complete 0.1.69 release.

0.1.69

A boss that has been defeated is no longer announced to the whole server, at the owner's request, so farming one such as Eikthyr no longer interrupts everyone. The game shows a boss's arrival, the first time it notices a player and its death in the middle of every player's screen, wherever they are, such as "Eikthyr summons the storm" and "Eikthyr is slain". A boss's first defeat sets its world key, such as defeated_eikthyr, and once that key is set the add-on drops those messages for that boss. The defeat that sets the key and every fight before it are still announced, and the player who makes the offering still sees "You make the sacrifice". Includes the complete 0.1.68 release.

0.1.68

A bow shot released while the previous shot's animation is still playing now fires as soon as the bow can fire, at the owner's request; the game dropped it. The bow fires again only once that animation ends, about 0.8 seconds after a shot, but the next draw and its crosshair fill from the moment the button goes down, so from Bows skill 85, or lower with Quick Draw or a Bows skill bonus, a quick follow-up shot was fully drawn before the bow could fire, and releasing it then gave no arrow, used no ammunition and showed no message. The arrow now stays drawn until the bow can fire, for up to a second, and then flies, even if the button was pressed again meanwhile; a new press starts the next draw. The bow fires no faster than before. Blocking still cancels a draw, and a release refused for another reason, such as during a dodge or without stamina, is still dropped. Includes the complete 0.1.67 release.

0.1.67

Alt + left-click favorites and unfavorites items in an open chest, cart, ship or tombstone too, at the owner's request; Quick Stack 1.4.15 takes favoriting clicks only on the player's own inventory. An equipment mark is saved with the chest, so only the player whose game manages the chest can change one there: with MultiUserChest, a player who opens a chest another player is already using gets a message instead, and can mark it after reopening the chest once that player is done. Type-wide favorites work in any open container. Alt + right-click in a container stays an ordinary click, since protected slots belong to the inventory, and controllers still favorite only in the inventory. Includes the complete 0.1.66 release.

0.1.66

Quick Stack's borders are one pixel wider, at the owner's request. Its border texture is a 1024-pixel square with a 24-pixel frame, stretched thin over each slot. The add-on draws a second copy of it one UI unit further in, so the line grows by one pixel on the inside at 1920 x 1080 with the game's GUI scale at 100%, and proportionally at other sizes. The copy keeps the border's color, so favorite, protected-slot and trash borders all widen, in the inventory and in containers. Includes the complete 0.1.65 release.

0.1.65

Favorited items keep Quick Stack's favorite border in chests, at the owner's request. Quick Stack 1.4.15 draws its borders only on the player's own inventory, so an item lost its border while it sat in a chest, cart, ship or tombstone, although it stayed favorited. The add-on now draws the same border, in Quick Stack's favorited-item color, on the player's favorites in any open container: equipment the character marked and every stack of a type-wide favorite. Another player's marks do not show. Protected slots and trash flags keep their borders on the inventory only. Includes the complete 0.1.64 release.

0.1.64

Andvaranaut's pings cover a wider range of rates, at the owner's request, so the rhythm changes more with the distance. Beyond the search radius the ring now pings every 8 seconds at the max range and quickens in proportion to every second at the search radius, in place of 5 and 2 seconds; with no max range it pings every 8 seconds. Within the search radius it pings every second at its edge, in place of 2, and still quickens to every 0.5 seconds at the target, so the pings never slow on crossing it. Includes the complete 0.1.63 release.

0.1.63

Andvaranaut's pings follow one rhythm, and only the wearer hears them, at the owner's request. Beyond the search radius the ring also pinged as soon as 1.5 seconds after the previous ping whenever the wearer's view came back to the target or the ring re-aimed, so a quick ping could mean a nearer target or just a glance away and back. It now pings while the wearer faces the target only at the distance's rhythm, every 5 seconds at the max range down to every 2 seconds at the search radius, and never sooner; looking away only lengthens the gap, and turning onto the target still pings at once when the last ping was long enough ago. The pings were also sent to nearby players, who heard them mixed with their own; they now play only on the wearer's game. Includes the complete 0.1.62 release.

0.1.62

Andvaranaut has two modes, Far and Near, and its status icon shows which, at the owner's request. Within the search radius the ring pings on its own whatever the wearer does, every 2 seconds at the search radius and faster in proportion down to every 0.5 seconds at the target. It pinged there only when the wearer had walked closer in the last 5 seconds, and in the last 20 m EpicLoot's own pings took over, starting again at 5 seconds and changing sound. The add-on now does all of the ring's pinging, so EpicLoot's pings stay off for Andvaranaut, and it no longer keeps a bounty creature's beacon when the creature takes damage: it finds the creatures by their bounty. Beyond the search radius nothing changes. The icon reads Far or Near, and nothing while no target is within the max range. Includes the complete 0.1.61 release.

0.1.61

DiscordBot_AWL's bot shows the number of players online as its Discord status, such as Players online: 3, at the owner's request. The dedicated server updates it within seconds of a join or leave, at most once every 15 seconds, and sets it again after each new Discord session. If Discord closes the connection within 5 seconds of a status, the add-on stops updating it until the server restarts, so a rejected status cannot start a reconnect loop. Includes the complete 0.1.60 release.

0.1.60

AAA_Crafting's crafting amount returns to 1 when the crafting window closes, at the owner's request. AAA_Crafting 2.1.10 kept the amount for the whole game session, so an amount set for one batch was still there for the next craft, even at another table. Choosing another recipe while the window stays open keeps the amount. Includes the complete 0.1.59 release.

0.1.59

Works with AzuCraftyBoxes 1.8.24, which added its own Container Toggle Key for taking a chest out of the storage that crafting draws from, or putting it back, and changed the chest's hover text; 0.1.58 failed to start its gameplay fixes on that hover text. The pack now sets that key to Shift + L, so the add-on no longer moves the switch itself. Quick Stack's Restock on L still skips the switch key, now whichever key AzuCraftyBoxes has. Includes the complete 0.1.58 release.

0.1.58

Ammo Count's badge shows only on weapons, whose attacks are all that draws ammunition, such as bows, crossbows, fishing rods and tankards. 0.1.57 kept it off meads and ballista bolts by their item types, which missed the Corked Vial: that crafting material also carries the tankards' ammo type, so in the hotbar it still showed the first mead in the inventory. Includes the complete 0.1.57 release.

0.1.57

Ammo Count's badge, the ammunition icon and count above a hotbar or quick slot item, shows only on items that use ammunition, such as bows, crossbows and tankards, at the owner's request. Ammo Count 0.5.1 skipped only arrows and bolts themselves, but the game also counts meads as ammunition, which tankards drink, and ballista bolts, so every mead showed the first mead in the inventory and its stack size, and every stack of ballista bolts the first stack. Includes the complete 0.1.56 release.

0.1.56

Andvaranaut's facing pings tell the distance, at the owner's request. Beyond the search radius the ring repeated its ping every 5 seconds while the wearer faced the target, however far away it was, so nothing told the wearer they were getting closer. It now repeats every 5 seconds at [Andvaranaut] Max range and faster in proportion as the wearer comes nearer, down to every 2 seconds at the search radius. With no max range, the default, it keeps repeating every 5 seconds. The turning ping and the walking check within the search radius are unchanged. Includes the complete 0.1.55 release.

0.1.55

SkilledCarryWeight's quick cart key, H by default, now attaches to or detaches from a nearby cart with a build tool out too, at the owner's request. SkilledCarryWeight 1.5.0 ignored the key in place mode, which every build tool turns on: the hammer, the hoe, the cultivator and the serving tray. Includes the complete 0.1.54 release.

0.1.54

Death reports name the killer in English whatever language the dying player's game uses, at the owner's request. The report is written on that player's game, which named the creature in its own language, so a Russian game reported an Alert Greydwarf as "Предупреждение Грейдворф". The add-on now translates the creature's untranslated name, StarLevelSystem's affixes and Nemesis names included, with the game's English words and the English words mods add through Jotunn. A tame's given name, another player's name and a name with a word that has no English text stay as the game shows them. Achievement announcements read the same English words, so English text that a mod adds or replaces through Jotunn now applies to them too. Includes the complete 0.1.53 release.

0.1.53

ComfortMe's "This room" panel shows only while the hammer is out, at the owner's request. ComfortMe 1.2.2 showed it whenever the player was in place mode, which every build tool turns on, so the hoe, the cultivator and the serving tray showed it too. Its chips and Comfort category were already limited to the hammer's comfort pieces. Includes the complete 0.1.52 release.

0.1.52

AzuCraftyBoxes' per-chest crafting supply switch moves from Shift + E to Shift + L, at the owner's request. Shift is also Run, so pressing E while sprinting switched a chest instead of opening it; E now always opens the chest. Shift + L on a chest takes it out of, or back into, the storage that crafting, building and the enchanting table draw from, and the chest's hover text names the new key. Quick Stack's Restock, on L, no longer also runs on Shift + L. A gamepad keeps AzuCraftyBoxes' own buttons. Includes the complete 0.1.51 release.

0.1.51

Augment lists only items in the player's own inventory, as Sacrifice already does, at the owner's request. EpicLoot also offered items from nearby chests that inventory providers such as CraftyBoxes make available, and augmented them where they lay. Equipped and quick-slot items still count as inventory, and augment costs still draw on nearby storage. Includes the complete 0.1.50 release.

0.1.50

Andvaranaut can ignore targets that are too far away, at the owner's request. The new server-synced [Andvaranaut] Max range limits the ring to unfound treasure maps and accepted bounties within that many meters; with none within it the ring stays quiet, and one that comes into range can ping straight away. The default, 0, keeps the ring's reach unlimited, as before. Includes the complete 0.1.49 release.

0.1.49

Render Limits' zone settings apply from the moment a player joins, at the owner's request. Render Limits 1.16.0 sends a player's zones to the server only when a zone setting changes in play: its attempt while joining comes before the character exists, so the server kept sending buildings only as far as the game's own 2 zones. The add-on now has Render Limits send them each time the player's character spawns, so the pack's 3 loaded zones take effect on every join. Includes the complete 0.1.48 release.

0.1.48

Andvaranaut keeps pinging for a bounty's creatures during the fight, at the owner's request. EpicLoot removed a bounty creature's beacon as soon as it took damage, so its ring fell silent, and the add-on then stayed quiet about that bounty and every other target for as long as it was the nearest and its creatures stayed loaded; a creature that ran off could not be found again. The beacon now stays: EpicLoot's own pings continue within its range, faster as the wearer gets closer, and farther away the ring keeps leading to the creature. Includes the complete 0.1.47 release.

0.1.47

Requires EpicLoot 0.14.13 and pairs with StarLevelSystem 1.18.1, which now fix most of what this add-on fixed, so it drops its own versions: identification's power, payment, quantity and tier gate, gambling's flags, the tempering countdown and failure floor, effect ranges in tooltips, tempering and augmentation, rune etching's payment and history, effect history on extraction, Executioner, projectile weapon effects, bonus hits other than the meteor's and Eikthyr's charge's share before crit, Reflect, the parry tooltip, Eitr Shield after armor, Immovable, discarded and Feint-avoided hits, the Blood Block cost, and StarLevelSystem's Drop That lookup, damage estimate, SoulEater and Splitter owner checks, LifeLink targets and share, and Alert hearing. The identification preview still lists only the equipment the crafting gate hands out, and now also decides whether the Identify button is available, as EpicLoot 0.14.13 requires. Skill above 100 continues from EpicLoot's new unclamped range, and EpicLoot now counts its skill bonuses in hit, parry and summon levels itself; the add-on still counts them in SkilledCarryWeight's carry weight and in tooltips of weapons not in hand. Chain lightning strikes are marked as bonus hits, as EpicLoot's own are. EpicLoot's versions differ from 0.1.46 in a few details: a short identification roll shows no message, clicks during the temper countdown are ignored instead of cancelling it, etching shows EpicLoot's messages and clears the tempered marker even for an identical effect, armor wears from the hit before Eitr Shield takes its share, and an Immovable block no longer fills the stagger bar at all. Includes the complete 0.1.46 release.

0.1.46

Bounty creatures keep the strength they spawn with, at the owner's request. EpicLoot gives a bounty's creatures extra health through StarLevelSystem as they spawn, three times as much for a gold bounty's target, twice as much for an iron bounty's and one and a half times for adds, but SLS kept that bonus only on the spawning player's game, so a creature lost it once it was loaded again or another player's game took it over. EpicLoot also marks a bounty's target as a boss for its boss health bar, and SLS then scaled it as a boss: +2% damage per star instead of +20%, boss modifiers instead of ordinary ones and, after a reload, +30% health per star instead of +75%. The bonus now comes back from the bounty the creature carries whenever SLS works out its stats, and SLS scales, modifies and evolves the target as an ordinary creature; the boss health bar stays. A 2-star troll for a gold bounty keeps 2,700 health, where a reload left it 960, and hits 40% harder than an unstarred troll instead of 4%. Includes the complete 0.1.45 release.

0.1.45

Bulk Up's regeneration penalty takes its share of the health regeneration that is left, at the owner's request. EpicLoot subtracted it from the regeneration multiplier after Wet, Cold and every other effect, so −30% turned 50% regeneration into 20%, and a penalty at least as large as what was left stopped regeneration entirely; it now turns 50% into 35%. With regeneration bonuses the penalty takes its share of those too: +30% regeneration and −30% Bulk give 91% instead of 100%. Bulk's added maximum health is unchanged. Includes the complete 0.1.44 release.

0.1.44

Holding Shift over an item at the enchanting table shows its effect details, as in the inventory, at the owner's request. EpicLoot built each list row's tooltip once, when the list was filled, so pressing Shift over a row changed nothing; the hovered row's tooltip is now rebuilt whenever Shift is pressed or released, and cost rows keep their stock numbers. Includes the complete 0.1.43 release.

0.1.43

Death reports in Discord mark the player's name as >>Name<< instead of coloring it red, at the owner's request. The red came from ANSI color codes, which Discord's notifications, its in-game overlay and its mobile app show literally, as [1;31mName[0m with a box for the escape character. The report keeps its code block. Includes the complete 0.1.42 release.

0.1.42

Stop overriding StarLevelSystem's level caps, at the owner's request, now that the pack turns on SLS's boss tiers. An active boss tier's range again replaces a biome's BiomeMaxLevelOverride, as StarLevelSystem 1.18.0 intends, so each boss kill raises the earlier biomes' caps along with their odds and minimums. Before, the add-on kept the biome cap, but the tiers were never on, so it changed nothing. Includes the complete 0.1.41 release.

0.1.41

The staff's double shot cuts each cast's whole hit to EpicLoot's configured 66% instead of only the staff's base damage, without editing the damage all staffs of that kind share, as triple shot already does. EpicLoot's skill bonuses now count where the game reads the skill level itself, as the game's set bonuses already did: the Staff of Protection's shield and any other status effect a hit or parry applies, summon strength and the Staff of the Wild's root count, and SkilledCarryWeight's carry weight, where each point of +Movement Skills adds 1 kg. More creature area effects get the creature's star damage factor: death and self-destruct explosions, Fader's fissures and walls of fire, and effects built into a creature, such as a frost wisp's aura. Built-in effects, including a lox's trampling, now use the creature's factor at each hit; a newly spawned lox's trampling kept the factor it had before StarLevelSystem gave it its stars. Includes the complete 0.1.40 release.

0.1.40

Identification rolls every effect with the Sacrifice upgrade's identified item power, up to 114%, instead of only the fixed effects of named items. Triple shot cuts each arrow's or bolt's whole hit by EpicLoot's configured share instead of only the weapon's base damage, without editing the damage all weapons of that kind share. StarLevelSystem fixes: LifeLink passes its share only to living, untamed creatures that are not the boss's enemies; SoulEater and Splitter run only on the game that controls the dying creature, so a death with a death animation no longer occasionally heals or splits twice; Alert no longer compounds the hearing range on each creature setup; and area effects and projectiles that creature attacks spawn with their own damage get the creature's star damage factor like its other attacks, which makes them stronger. Skill above 100 now raises damage, at the owner's request: every damage roll uses the whole level, trained plus the game's and EpicLoot's bonuses, and continues past 100 at the same 0.6% per point instead of stopping there, and the skills panel shows that level for weapon and tool skills. An area effect that takes an attack's hit rolls the skill a second time, as the game always has, and that roll keeps its old ceiling so the gain does not compound. Tooltips of weapons you are not holding show the damage range as if equipped too. Includes the complete 0.1.39 release.

0.1.39

Show the enchanting table's available / required cost counts 50% larger, at the owner's request; they were held at EpicLoot's base text size. A count too long for its icon shrinks back toward that size so it stays on one line. Includes the complete 0.1.38 release.

0.1.38

Fix more EpicLoot combat effects: bonus hits such as Reflect, chain lightning, the Yagluth meteor, the Blood Block cost and StarLevelSystem's LifeLink share no longer roll crit, double damage, lifesteal, on-hit effects, Wager, Mercenary or Executioner again; the meteor and Eikthyr's charge take their share from the hit before crit and double damage; Reflect no longer depends on whose game controls the attacker; Wager judges kills after the target's resistances, armor and damage scaling; area effects a projectile leaves behind use the hands that fired it; falls and the Blood Block cost no longer trigger damage-taken effects; the parry tooltip shows the real parry multiplier; and shields that cannot parry no longer get EpicLoot's parry bonus. Cap StarLevelSystem's SoulEater damage bonus at +50%, including on creatures that already saved more. Includes the complete 0.1.37 release.

0.1.37

Extend Andvaranaut beyond its 20 m range to the wearer's nearest unfound treasure map or accepted bounty, for worlds without a map. Farther than 1,000 m it pings when the wearer faces the target; within 1,000 m it pings every 5 seconds while they walk toward it; within its own range EpicLoot's pings take over as before. The ring aims at the center of the map circle until the chest or the bounty's creatures load, and goes quiet about a bounty once its creatures have been hit. Two server-synced settings, [Andvaranaut] Search radius and Facing angle, adjust the distance and the angle. Includes the complete 0.1.36 release.

0.1.36

Fix EpicLoot combat effects: Executioner is used up only by a hit that applied it; CoinHoarder uses its roll below 1,000 coins; Wager's kill refund no longer depends on which game controls the target; chain lightning jumps deal the rolled damage and use EpicLoot's falling chain chance; projectiles use the weapon effects of the hands that fired them; bow and crossbow enchantments also apply to the ammunition's damage; unequipped weapon tooltips show the damage as if equipped; hits the game discards and hits Feint avoided no longer trigger damage-taken effects; Feint no longer rolls on hits blocked with stamina left; Eitr Shield absorbs damage after the bubble, block, resistances and armor; Immovable blocks hold while stamina lasts; and a blocked hit converts physical damage to elemental once, before resistances. Includes the complete 0.1.35 release.

0.1.35

Check blocks and parries against the damage left after the player's resistances and body armor instead of the full hit. The game applied resistances and armor only after the block, so a hit that armor would reduce to a fraction still broke the guard and cost block stamina at full size. A successful block now subtracts from the reduced hit; resistances and armor still count once. Includes the complete 0.1.34 release.

0.1.34

Shorten the daily death leaderboard: drop the line with the covered dates and times, and end the zero-death message after "Nikt nie zginął.". Includes the complete 0.1.33 release.

0.1.33

Stop DiscordBot_AWL 1.4.7 from reconnecting to Discord every half minute until restart. It marks a heartbeat unanswered when it sends one and answered when Discord acknowledges it, but never resets that mark for a new connection. After a connection dropped while a heartbeat was unanswered, every later connection gave up before sending its first heartbeat, logging Heartbeat not acknowledged, reconnecting.... Each new connection now starts with no heartbeat outstanding. Includes the complete 0.1.32 release.

0.1.32

Make normal chat reach every player and Discord. Chat typed without a /s or /w command now goes out as a shout, so every player receives it wherever they are, and DiscordBot_AWL relays it as it does every shout. Shouts are no longer shown in capitals in the chat window or in floating text; they keep their yellow color and the speaker's name. Whispers stay local and are not relayed. Includes the complete 0.1.31 release.

0.1.31

Target EpicLoot 0.14.12, which fixes bounties being lost by its new save system. No other change. Includes the complete 0.1.30 release.

0.1.30

Fix the cause of DiscordConnector 3.1.3's records failures and replace 0.1.29's workaround. LiteDB 5.0.21 keeps the last page of each commit in its log writer's buffer under Mono, so every checkpoint during a session read a log one page short and failed. Flush that writer before LiteDB reads the log in full; its automatic and shutdown checkpoints now succeed, and 0.1.29's skipped automatic checkpoint and world-start checkpoint are removed.

Keep StarLevelSystem's biome caps with 1.18.0. That release lets an active boss-conditional tier replace a biome's BiomeMaxLevelOverride, so the default tiers would push early biomes far past their caps as bosses fall: up to 7 stars in the Meadows after Eikthyr. Ordinary creatures again use the creature override, then the biome cap, as in 1.17.0; bosses keep 1.18.0's MaxBossLevel cap. Includes the complete 0.1.29 release.

0.1.29

Keep DiscordConnector 3.1.3's records working for the whole server run. Its bundled LiteDB fails an internal check when it checkpoints automatically during play, once records-log.db passes 1,000 pages, and then refuses every records call until restart. First-join and first-death notices, statistics and leaderboard deaths were lost for the rest of the run. Skip the automatic checkpoint and checkpoint once when the world starts, before anyone can join. Includes the complete 0.1.28 release.

0.1.28

Credit equipment finished at a cooking station, such as Nord gear from the Frost Foundry, to the player who crafted its cast instead of whoever's game owns the station. Cancel rune etching without charging when the search box hides the selected item or rune. Let a completed temper play its finish effect instead of cancelling itself. Limit an unreadable crafting-history or favorites record to that character, with its own on-screen notice, instead of disabling features for the rest of the session. Synchronize the Rested delay and achievement announcement settings from the server as documented; previously each client used its own file. Write enrollment backups and server characters through a temporary file so an interruption leaves no partial file, and refuse a join with a message when the enrollment list cannot be read. Keep the death leaderboard running after failed posts: retry when Discord certainly did not post, and skip a report that may have posted, logging its text, instead of pausing until the state file is edited by hand. Stop the warnings logged for every DiscordConnector message, split backtick runs so they cannot close a code block, and stop escaping markdown in achievement messages shown inside code blocks. Includes the complete 0.1.27 candidate.

0.1.27

Internal cleanup only: clearer internal names, and the crafting-history log line now counts "legacy credits". Gameplay, saved data, configuration, plugin IDs, RPC names and network behavior are unchanged. Includes the complete 0.1.26 candidate.

0.1.26

Make each successful crafting-skill bonus roll add another full craft's output instead of one item, so arrows, bolts, nails, bombs, bait and multi-portion food double like one-item recipes. The chance, stations and eligible items are unchanged. Every successful roll adds exactly one craft instead of vanilla's escalating multi-craft total, a craft whose extra output would not fit completes without the bonus instead of being skipped, and AAA_Crafting's hidden sequential bonus streak is disabled. Includes the complete 0.1.25 candidate.

0.1.25

Show enchanting-table cost counts of 10,000 or more in whole thousands, rounded down (12480 shows as 12k), so large nearby-storage totals stay readable instead of shrinking the label. The red shortfall color and the tooltip keep the exact numbers. Includes the complete 0.1.24 candidate.

0.1.24

Record deaths from the native immediate death broadcast instead of the delayed respawn transition. Validate the sending connection and current character, ignore repeated broadcasts, and commit the death record synchronously so disconnecting during the death screen does not lose it or move it across the reporting cutoff. Includes the complete 0.1.23 candidate; client death/reconnect and delivery acceptance remain required.

0.1.23

Size the on-screen initialization error to its content so every reported failure stays readable instead of being clipped at a fixed height. Build against the unmodified game assemblies, so direct use of a private game member now fails the build rather than the game. Otherwise internal cleanup only: gameplay, saved data, configuration, plugin IDs and network behavior are unchanged. Includes the complete 0.1.22 candidate.

0.1.22

Trigger Automatic Mead Consumption only after actual damage leaves the surviving local player at Health Critical. Preserve EpicLoot's equipment-adjusted threshold and normal consumable cooldown/category restrictions, and stop after one successful consumption per damage event. Fully blocked or absorbed hits do not consume mead; damage-over-time ticks use their actual health loss. Includes the complete 0.1.21 candidate.

0.1.21

Use Meadows as the minimum unidentified gear tier. Resolve saved Starter Gear IDs to the matching original Meadows prefab when inventories and world items load, preserving rarity, stacks and serialized item data. Remove custom Starter Gear prefabs and their separate identification-cost fallback. Includes the complete 0.1.20 candidate; client migration and gameplay acceptance remain required.

0.1.20

Add an optional dedicated-server death leaderboard at 06:00 Europe/Warsaw for the preceding 24 hours, using DiscordConnector 3.1.3 records and its primary webhook. Count the live-to-zero character-ID transition instead of respawn, group by player identity, share ranks on ties, and preserve delivery state across restarts. Wait for a full day of corrected recording before the first report. Isolated previews never contact Discord. Client death/respawn and delivery acceptance remain required before promotion.

0.1.19

Fix the first-join black screen by uploading the character through the registered outbound connection before PeerInfo completes. Keep connection identity and server-side enrollment checks intact. Call Inventory.Changed through a private-method delegate so favorites initialization and toggling work against the real game assembly. Do not use 0.1.18. Client enrollment/save/reconnect checks remain required before promotion.

0.1.18

Allow one-time first-join import of existing campaign characters for server-enrolled Steam accounts. Preserve the original profile before releasing the join handshake, then use ServerCharacters' normal authoritative save path. Existing saves cannot be replaced by enrollment, unknown accounts retain fresh-character admission, and players do not manually send save files. Requires ServerCharacters 1.4.17 when installed. Client enrollment and reconnect checks remain pending.

0.1.17

Keep Dyrr 1.4.2 world bindings in private per-profile storage outside Gale's config scan. Preserve existing binding files locally and prevent later profile imports from replacing durable bindings. Start personal favorites empty instead of importing legacy Quick Stack files; existing character-saved favorites remain intact. Includes 0.1.16. Client gameplay and profile-update checks remain pending.

0.1.16

Keep DiscordBot notifications and Discord/AI message relays out of in-game chat. Preserve outgoing Discord webhook messages and native player chat; suppress both broadcast and display paths so bot messages cannot open the chat window.

0.1.15

Require positive character crafting history for craftable equipment drops, identification and gambling in PlayerMustHaveCraftedItem mode. Preserve existing characters' previously held craftable equipment once as saved legacy credits, without altering crafting statistics or achievements. Later pickups do not unlock items; fresh characters start with an empty migration marker, including the first ServerCharacters template save. Keep the purchased Fishing Rod eligible after pickup only when it has no creation recipe. Client migration and multiplayer checks remain pending.

0.1.14

Lower the FedoHud player-stat block default by 500 UI pixels while retaining automatic horizontal alignment. Persist dragged positions outside Gale-managed config in local, per-profile Unity preferences; Reset positions restores the lower default.

0.1.13

Favorite individual equipment and EpicLoot items with rolled effects while retaining type-wide favorites for ordinary supplies. Save personal favorite/slot/trash choices with the character and equipment markers with each item. Initialize after ServerCharacters loads the authoritative character, migrate legacy Quick Stack favorites once, and apply item-aware protection consistently to Quick Stack actions, display and EpicLoot Sacrifice. Requires Quick Stack 1.4.15 when that optional mod is installed. Back up legacy favorites before updating the Gale profile; see README migration instructions. Client gameplay validation remains pending.

0.1.12

Use each item's explicit or named enchantment range, then the normal rarity range, for Shift tooltips, tempering eligibility, rows and previews, and rune extraction. Bind tempering to the selected item and effect, cancel it when the selection changes, and recheck the item, range and full material cost before payment; recipes with invalid materials are blocked, and a failed temper never raises an effect already below its minimum. Rune etching now consumes its displayed material cost and rechecks the target and rune at completion. Extraction keeps remaining sockets, named/set identity and unrelated effect history, so an item with sockets or a named/set identity stays magic after its last rolled enchantment is extracted.

0.1.11

Use consistent ANSI code blocks for automated Discord message bodies across DiscordBot_AWL and DiscordConnector, including achievement announcements. Preserve death-message colors, avoid double wrapping, and leave player chat/shouts and webhook routing unchanged.

0.1.10

Target EpicLoot 0.14.11. Fix StarLevelSystem's empty default-weapon damage average, combine vanilla and EpicLoot bonuses in the skills panel, and show available/required crafting materials with inventory and nearby-storage totals. Add optional English Discord achievement announcements with their requirements, excluding startup and retroactive awards. Death messages use displayed creature names and compact stars above four; player names are red in game and Discord ANSI blocks, with italic creature names in game.

0.1.9

Withdraw the optional boss-trophy override added in 0.1.8; boss trophy counts and runestone rewards remain pack configuration decisions. Save unidentified loot's network item data through a delegate to the game's private ItemDrop.Save method, fixing the MethodAccessException that 0.1.7 and 0.1.8 raised by calling it directly. Use 0.1.9 instead of 0.1.8.

0.1.8

Add an optional boss-trophy override. Withdrawn in 0.1.9.

0.1.7

Post DiscordBot_AWL 1.4.7 player-death reports as a plain text line instead of a Discord embed. The joke text is unchanged, including the localized creature name and its stars; the "has died" title, the killer thumbnail and the embed timestamp are dropped. No other DiscordBot messages change.

0.1.6

Correct DiscordBot directory-path access to use its field rather than a property. Fixes the startup failure in 0.1.5. Use 0.1.6 instead of 0.1.5.

0.1.5

Fix DiscordBot_AWL 1.4.7 death-quip file discovery (.txt versus *.txt). Optional pack-owned files in BepInEx/config/DiscordBot/QuipsOverrides are loaded after DiscordBot initialization so its startup default writer cannot overwrite them. No Discord credentials or message templates are bundled with this add-on.

0.1.4

Add an optional server-synced Rested activation delay multiplier. The default 1 keeps vanilla timing; 0.5 changes the vanilla 20-second wait to 10 seconds. Resting requirements, comfort, regeneration rates and Rested duration are unchanged.

0.1.3

Register Starter Gear independently of gameplay patch initialization, retain Sacrifice protection when gameplay patches fail, and show a persistent visible initialization error. Starter identification uses Meadows material costs when no explicit None costs exist. Validate the identification transpiler's result-load instruction before branching to it. Restore type-name loot entries, upstream no-local-player fallback behavior, and the equipment-effect cache refresh after identification. Clarify tier mapping, fresh-character gating and the requirement to keep the add-on loaded when carrying Starter Gear.

0.1.2

Level-scaled creature drops and Drop That drops with level conditions now use independent chance rolls. This prevents vanilla's low-chance countdown from resetting whenever different star levels produce different probabilities. Existing probabilities, conditions, quantities and guarantees remain unchanged; ordinary unscaled drops keep vanilla behavior. This also covers rare items and queen-bee rules configured with Drop That level conditions. SLS custom loot already rolls directly and is unchanged.

0.1.1

Sacrifice now lists only eligible items in the local player's inventory. With Quick Stack - Store - Sort - Trash - Restock installed, favorited item types and favorited slots are excluded. Immediately before sacrifice, the complete selection is checked again; a moved, protected, or otherwise ineligible item cancels the operation without consuming anything. Other enchanting tabs and access to nearby crafting materials are unchanged.

0.1.0

Initial experimental release for EpicLoot 0.14.10: consistent held-item identification and previews, constrained fallbacks, source-tier preservation, exact batch quantities, payment after successful generation, and exception-safe gambling flags.