You are viewing a potentially older version of this package. View all versions.
ProfMags-HaldorOverhaul-1.0.2 icon

HaldorOverhaul

Transforms Haldor into a full merchant with buy/sell panels, 580+ items, recipe-based pricing, search filters, category tabs, and full controller support.

Date uploaded 7 months ago
Version 1.0.2
Download link ProfMags-HaldorOverhaul-1.0.2.zip
Downloads 107
Dependency string ProfMags-HaldorOverhaul-1.0.2

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2200 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured and includes unstripped Unity DLLs.

Preferred version: 5.4.2200
ValheimModding-JsonDotNET-13.0.4 icon
ValheimModding-JsonDotNET

Shared version 13.0.3 of Json.NET from Newtonsoft, net45 package for use in Valheim mods. Maintained by the ValheimModding team.

Preferred version: 13.0.4

README

Haldor Trading Overhaul

Haldor Trading Overhaul

Transform Haldor into the ultimate merchant with full buy/sell functionality

580+ items • Recipe-based pricing • Full controller support

Version BepInEx Items GitHub

FeaturesInstallationConfigurationPricingCustomizationTroubleshooting


✨ Features

🛒 Trading 🔍 Search 📂 Categories 🎮 Controller
Buy & Sell system Real-time filtering Organized browsing Full gamepad support
580+ tradeable items Persistent focus Collapsible sections Seamless switching
JSON-driven configs Both panels supported Visual item icons D-Pad navigation
Boss progression gates Instant results Quick navigation All actions mapped
⚙️ Technical 💎 Balanced Economy
Reflection-based for update resilience Recipe-based pricing ensures fair values
No hard dependencies on internal types Biome-tier progression (Meadows → Ashlands)
Auto config generation on first run Category multipliers for item types
Hot-reloadable JSON configurations Rarity overrides for special items

🎮 Controller Support

Full gamepad navigation with seamless keyboard/mouse switching

LB / RB D-Pad / Stick X A B
Switch panels Navigate items Toggle category Buy / Sell Close UI

📋 Requirements

Requirement Version
Valheim Latest PC
BepInEx 5.4.2200+

💡 Recommended: CurrencyPocket — Late-game items cost 50,000+ coins. This mod removes the 999 coin stack limit!


📦 Installation

Step Action
1 Install BepInEx for Valheim
2 Download the latest release
3 Extract to BepInEx/plugins/HaldorOverhaul/
4 Launch Valheim — configs generate automatically!
BepInEx/
├── plugins/
│   └── HaldorOverhaul/
│       ├── HaldorOverhaul.dll
│       ├── manifest.json
│       └── README.md
└── config/
    ├── HaldorOverhaul.haldor.buy.json    ← Items Haldor sells
    └── HaldorOverhaul.haldor.sell.json   ← Items you can sell

Pre-generated configs included! Ready to use out of the box. Use generate.py to customize.


⚙️ Configuration

Config File Locations

File Purpose
HaldorOverhaul.haldor.buy.json Items Haldor sells to you
HaldorOverhaul.haldor.sell.json Items you can sell to Haldor

Entry Format

{
  "item_prefab": "SwordIron",
  "item_quantity": 1,
  "item_price": 4234,
  "must_defeated_boss": "defeated_gdking"
}
Field Description
item_prefab Internal item name (must match exactly)
item_quantity Stack size per transaction
item_price Price in coins
must_defeated_boss Boss key required (empty = always available)

Boss Keys

Boss Key Boss Key
Eikthyr defeated_eikthyr Yagluth defeated_goblinking
The Elder defeated_gdking The Queen defeated_queen
Bonemass defeated_bonemass Fader defeated_fader
Moder defeated_dragon

💰 Pricing System

Biome Multipliers

Items scale in price based on their biome tier

Biome Mult Boss Required Example Items
Meadows 1.5x Wood, Flint, Leather
Black Forest 2.75x Eikthyr Bronze, Core Wood, Troll Hide
Swamp 4.5x The Elder Iron, Chain, Guck
Mountain 7.5x Bonemass Silver, Wolf Pelt, Dragon Tears
Plains 12x Moder Black Metal, Lox Pelt, Barley
Mistlands 20x Yagluth Eitr, Black Core, Carapace
Ashlands 32x The Queen Flametal, Charred Bone, Sulfur
Deep North 50x Fader Future content

Category Multipliers

Weapons Mult Armor Mult Consumables Mult
Two-Handed 1.3x Heavy 1.35x Cooked Food 1.0x
One-Handed 1.0x Light 1.2x Raw Food 0.7x
Staves 1.35x Capes 0.85x Meads 1.2x
Crossbows 1.25x Shields 0.9x Ammo 1.0x
Bows 1.1x
Materials Mult Trophies Mult Other Mult
Common 0.8x Boss 3.0x Keys 2.0x
Rare 1.5x Rare 1.3x Tools 0.8x
Boss Drops 2.5x Common 0.9x Cosmetic 0.7x

Rarity Overrides

Special multipliers for particularly rare items

Boss Drops Mult Rare Materials Mult
HardAntler 2.0x Chain 1.8x
CryptKey 2.2x SurtlingCore 1.6x
Wishbone 2.0x Ectoplasm 1.4x
DragonTear 2.0x BlackCore 1.7x
DragonEgg 2.5x Eitr 1.8x

Key Constants

Sell Ratio Craft Markup Min Price Max Price
30% of buy 15% on crafted 5 coins 99,999 coins

📊 Sample Prices

Materials by Tier

Material Buy Sell Biome
Wood 5 1 Meadows
Bronze 105 31 Black Forest
Iron 144 43 Swamp
Silver 180 54 Mountain
Black Metal 336 100 Plains
Eitr 3,510 1,053 Mistlands
Flametal 972 291 Ashlands

Weapon Progression

Weapon Buy Tier
Flint Axe 54 Meadows
Bronze Sword 676 Black Forest
Iron Sword 4,234 Swamp
Silver Sword 12,232 Mountain
Blackmetal Sword 10,920 Plains
Mistwalker 31,220 Mistlands
THSwordSlayer 67,891 Ashlands

Boss Drops

Item Price Unlocks After
Hard Antler 600 Always
Swamp Key 1,331 Eikthyr
Wishbone 3,375 The Elder
Dragon Tear 4,500 Bonemass

🔧 Price Generator Script

The included generate.py auto-generates balanced configs from live Jotunn data

Usage

# Default — outputs to Steam Valheim config folder
python generate.py

# Custom output directory
python generate.py "C:\path\to\output"

# Using environment variable
set HALDOR_CONFIG_PATH=C:\custom\path
python generate.py

How It Works

┌─────────────────────────────────────────────────────────────────────────────┐
│                              DATA SOURCES                                   │
├─────────────────────────────────────────────────────────────────────────────┤
│     Jotunn Item List ──────► Parse HTML ──────► Raw Items                   │
│     Jotunn Recipe List ────► Parse HTML ──────► Recipes                     │
└─────────────────────────────────────────────────────────────────────────────┘
                                    │
                                    ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│                            PRICE CALCULATION                                │
├─────────────────────────────────────────────────────────────────────────────┤
│     RAW MATERIALS:     base_price × biome × category × rarity               │
│     CRAFTABLE ITEMS:   ingredient_cost × markup × biome × category × rarity │
│     FINAL:             max(base_price, recipe_price)                        │
└─────────────────────────────────────────────────────────────────────────────┘
                                    │
                                    ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│                              OUTPUT FILES                                   │
├─────────────────────────────────────────────────────────────────────────────┤
│     HaldorOverhaul.haldor.buy.json    (579 buyable items)                   │
│     HaldorOverhaul.haldor.sell.json   (593 sellable items)                  │
└─────────────────────────────────────────────────────────────────────────────┘

Output Location Priority

Priority Location
1 Command-line argument
2 HALDOR_CONFIG_PATH environment variable
3 Default Steam path
4 Local ./output folder

🎨 Customization

Adding New Items

In generate.py, find ITEM_DATABASE:

'ItemPrefab': (Biome.TIER, base_price, stack_size, sell_only),

Excluding Items

# Hilda-exclusive items
HILDA_EXCLUSIVES = {'CapeDeerHide', 'CapeTrollHide', ...}

# Pattern exclusions
EXCLUDED_PATTERNS = [r'^Bow_projectile', r'^fx_', ...]

Adjusting Prices

# Global adjustments
SELL_MULTIPLIER = 0.30      # Change sell ratio
CRAFTING_MARKUP = 1.15      # Change crafting fee

# Biome multipliers in Biome enum
MEADOWS = ("Meadows", 1.5, "", 1)  # (name, mult, boss_key, order)

# Category multipliers
CATEGORY_MULTIPLIERS = {'weapon_2h': 1.3, 'weapon_1h': 1.0, ...}

# Rarity overrides for specific items
RARITY_OVERRIDES = {'Chain': 1.8, 'Eitr': 1.8, ...}

🔍 Troubleshooting

Issue Solution
Items not appearing Verify item_prefab matches exactly
Items not appearing Check boss has been defeated
Items not appearing Validate JSON syntax
Prices seem wrong Re-run generate.py to regenerate
Prices seem wrong Check NAME_TO_PREFAB mapping
Prices seem wrong Verify item is in ITEM_DATABASE
Script errors Ensure Python 3.x is installed
Script errors Check internet connection
Script errors Try custom output path

Validation Warnings

The generator automatically warns about:

Warning Meaning
Price inversions Higher-tier item cheaper than lower-tier
Suspiciously cheap High-tier item under 10 coins
Very expensive Item over 50,000 coins

📜 Version History

Version Changes
1.0.2 Updated README.md
1.0.1 Updated README.md
1.0.0 Initial release

🙏 Credits

This is my first Valheim mod! I really hope people enjoy it.

Inspiration Data Source Recommended Mod
shudnal's TradersExtended Jotunn Modding Library Azumatt's CurrencyPocket

📬 Contact

GitHub Issues    Discord


Made with ❤️ for the Valheim community

CHANGELOG

Changelog

1.0.19

  • Added shared bank balance sync with HildirOverhaul (both traders now read/write the same bank balance)
  • Internal bank persistence now migrates and mirrors legacy Haldor/Hildir keys into a shared key

1.0.18

  • Fixed custom trader UI so it only applies to Haldor
  • Other traders (Hildir and modded NPCs) now use the vanilla StoreGui
  • Improved compatibility with mods that add their own traders

1.0.17

  • Improved trader UI layout and visual polish

1.0.16

  • Removed boss progression gates from treasure sell items (Amber, AmberPearl, Ruby, SilverNecklace, GoldRuby)
  • Players can now sell treasure to Haldor at any point in progression

1.0.15

  • Added custom UI sprites for search bar and category buttons (SearchBarBackground.png, CategoryBackground.png)
  • Fixed item category classification to use enum comparison instead of string matching
  • Fixed panel tinting so panels use a clean grey tint instead of brownish sprite-based coloring
  • Fixed TMP font warnings by deferring TextMeshProUGUI initialization until a font is assigned
  • Updated category button icons (bronze axe, troll leather helmet, wooden shield, stamina mead, bronze)
  • Added a grey tint overlay on the Buy/Sell action button to match panel styling

1.0.14

  • Added BowsBeforeHoes mod support
  • Added 10 BowsBeforeHoes items to buy/sell configs (3 bows, 4 quivers, 3 arrows) with recipe-based pricing
  • Doubled list panel scroll speed

1.0.13

  • Fixed standalone bank UI cursor being locked when opened with the Z key
  • Fixed bank UI registration so it behaves as a store UI (camera and input now work correctly)
  • Removed Z key shortcut for bank; bank access now happens through the trader UI
  • Added full controller support to the standalone bank panel

1.0.12

  • Bug fixes and stability improvements

1.0.11

  • Removed CurrencyPocket dependency requirement

1.0.10

  • Bug fixes and internal maintenance updates

1.0.9

  • Added Haldor's Bank system; bank balance funds purchases and selling deposits directly into the bank
  • Added Bank tab to the trader UI and a standalone bank panel (Z key)
  • Added setbankbalance console command (fixed registration so it now works in-game)
  • Reverted bank panel to a clean text layout
  • Additional bug fixes and performance improvements

1.0.8

  • Fixed controller navigation issues with item list scrolling and selection highlighting
  • Fixed controller inability to select category headers for expand/collapse
  • Fixed scroll position not resetting when switching tabs
  • Fixed multiple UI bugs and layout issues
  • Suppressed Haldor talk bubbles while the trading UI is open
  • Added setcoins console command for testing
  • Updated UI design

1.0.7

  • Updated trader UI visuals
  • Bug fixes and interaction improvements

1.0.6

  • Updated UI design
  • Updated price generator script
  • Updated config files
  • Various bug fixes

1.0.5

  • Added JsonDotNET and CurrencyPocket as required dependencies

1.0.4

  • Updated dependency configuration and packaging metadata

1.0.3

  • Added capes to the buy menu

1.0.2

  • Documentation updates in README.md

1.0.1

  • Documentation updates in README.md

1.0.0

  • Initial release