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

Marketplace

Server-wide marketplace: list any item for coins, buy from other players, keep coins in a server-side bank. Valheim-styled UI, English and Polish.

Date uploaded 2 weeks ago
Version 1.1.0
Download link Northarun-Marketplace-1.1.0.zip
Downloads 21
Dependency string Northarun-Marketplace-1.1.0

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2333 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.2333
ValheimModding-Jotunn-2.29.0 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.29.0

README

Marketplace — server-wide trading board for Valheim

A trading board for every player on the server. Anyone can list any item from their inventory at their own price, and others can buy it — even while the seller is offline. The currency is regular Valheim coins, and every player gets a server-side bank for storing them safely.

How to use

Press F7 (configurable) to open the marketplace. Esc or F7 closes it.

Tab What it does
BUY All listings on the server, with search (item or seller name) and sorting. Pick a listing, set the amount (- / + / Max) and click Buy.
SELL Items from your inventory. Pick one, set the amount and price per piece, click List for sale. The item leaves your inventory and waits for a buyer.
MY LISTINGS Your active listings. Cancel any of them to get the item back.
MAILBOX Items from cancelled or expired listings. Collect all moves them to your inventory.
BANK Your coin balance and transaction history. Deposit / Withdraw a chosen amount, or everything at once.
  • Sale income goes straight to your bank balance. If you are online, you get a notification.
  • Purchases are paid from your balance first; if it is too low, the rest is taken from coins in your inventory.
  • Bought items go straight to your inventory. If it is full, the rest is dropped next to you.
  • You can buy part of a stack (e.g. 20 out of 100 wood).
  • Quality, variant, durability, crafter and other mods' item data (m_customData) are preserved.
  • Equipped items and coins cannot be listed.

Installation

The mod must be installed on the server and on every client. Jotunn rejects players without it.

Requirements: BepInExPack_Valheim, Jotunn 2.29.0 or newer.

  1. Copy the Adrian-Marketplace folder to BepInEx/plugins/. In r2modman: profile → Browse profile folder → BepInEx/plugins.
  2. On a dedicated server, copy the same folder to the server's BepInEx/plugins/.
  3. Start the server once — the config file BepInEx/config/adrian.valheim.marketplace.cfg is created.

Configuration

Section Setting Default Description
1 - Client Hotkey F7 Key that opens the window.
1 - Client Language English English or Polish. Can be changed in game (e.g. with Configuration Manager).
2 - Server FeePercent 0 Percentage deducted from the seller on each sale (0–50). The fee removes coins from the economy.
2 - Server MaxListingsPerPlayer 25 Simultaneous listings per player.
2 - Server ExpireHours 168 Real-time hours until a listing returns to the seller's mailbox. 0 = never.
2 - Server MaxPricePerUnit 100000 Highest allowed price per piece.
2 - Server BlockedItems (empty) Comma-separated prefab names that cannot be listed, e.g. DragonEgg,Wishbone.

Server settings are taken from the server's config file; clients receive them together with the listings.

Data and security

  • The server keeps listings, mailboxes and bank balances in BepInEx/config/Marketplace/<world name>.dat. It saves after every change and keeps the previous version as .dat.bak. Each world has its own marketplace.
  • Every operation is appended to BepInEx/config/Marketplace/<world name>.log: listing, purchase, cancellation, expiry, deposit, withdrawal, with the balance after the operation.
  • Only the server changes balances. A withdrawal is checked against the server balance before any coins are sent.
  • Players are identified by the character ID from their in-world object, not by what the client claims.
  • Every rejected operation returns the item or coins.
  • As everywhere in Valheim, the inventory belongs to the client. A modified client could fake a deposit or a listed item, so an anti-cheat (e.g. AzuAntiCheat) is recommended.

Building from source

Windows with .NET Framework 4 is enough (the csc.exe compiler ships with the system):

powershell -ExecutionPolicy Bypass -File build.ps1

Languages

The window is in English by default. Polish is also included: set Language = Polish in BepInEx/config/adrian.valheim.marketplace.cfg. Each player picks their own language; server messages are translated on the client side.

CHANGELOG

Changelog

1.5.0

  • Jobs (formerly Bounties) have their own main tab, JOBS, instead of being hidden inside the order board. The tab shows how many reports wait for your confirmation, e.g. JOBS (1).
  • Buy orders have their own main tab, BUY ORDERS.
  • The BUY tab is now called MARKETPLACE.
  • Discord: the Northarun Discord link with its icon is in the top-left corner of the window, as in Guilds.
  • "Bounty" is renamed to "job" in all texts (English and Polish). Config keys keep their names, so existing configs keep working.
  • The window is wider (1180 px) to fit seven tabs; the list and details panels are wider too.

1.4.0

  • Price history: every trade between players (market purchases and deliveries to buy orders) is recorded per item. The details panel shows the market price — volume-weighted average, range and number of trades from the last 20 trades — when buying, listing and posting a buy order. The SELL list and the buy order item picker show the market average next to each item.
  • Market hints: a small ! badge next to the price field. Hover it for a tooltip, click it to jump there:
    • when listing an item that someone has a buy order for ("someone is buying this at 45"),
    • when posting a buy order for an item that is already on the market ("cheaper on the market"). The badge is highlighted when the other side is at least as good as your price.
  • Categories: filter listings and the buy order item picker by Weapons, Armor, Tools, Materials, Food, Potions or Other, based on the game's own item types. In the picker, a category alone is enough to browse (no need to type a name).
  • Save data from 1.3.0 is migrated automatically (price history starts empty).

1.3.0

  • Public bank API (Marketplace.MarketplaceApi) for other mods. Used by Guilds: the founding fee can be paid from the bank, and members can move coins between their bank balance and the guild treasury.
  • Bank history shows payments to and payouts from guilds.

1.2.0

  • New ORDERS tab — the order board:
    • Buy orders: post "buying X× item at Y coins"; the coins are locked on the server right away. Anyone with the item can deliver (also partially) and is paid instantly; items go to the buyer's mailbox.
    • Bounties: post a task with a reward locked on the server. A contractor takes the job, reports it as done, and the poster confirms (pays) or rejects. Admins can pay out or cancel any bounty to settle disputes.
  • New config section [3 - Order Board]: MaxBuyOrdersPerPlayer, MaxBountiesPerPlayer, BountyClaimTimeoutHours.
  • FeePercent now applies to all payouts: sales, buy order deliveries and bounty rewards.
  • Bank history shows buy order and bounty transactions.
  • The window is wider (1100 px) to fit six tabs.
  • Save data from 1.1.0 is migrated automatically.

1.1.0

  • English is now the default language. Polish is available via Language = Polish in the config (it can be switched while in game).
  • New BANK tab: deposit and withdraw coins, transaction history (last 50 entries). The balance is stored on the server — it cannot be lost on death.
  • Sale income goes straight to the bank balance. Purchases are paid from the balance first; if it is too low, the rest is taken from the inventory.
  • Withdrawals check inventory space before coins are sent.
  • Server transaction log for admins: BepInEx/config/Marketplace/<world>.log.
  • Fixed: list rows were shifted left, outside the window, cutting off item names and icons.
  • Fixed: white square behind the item icon in the details panel.
  • Config keys renamed to English ([1 - Client], [2 - Server]) — set your server values again after updating.
  • Save data from 1.0.0 is migrated automatically; coins waiting in the mailbox move to the bank balance.

1.0.0

  • First release: BUY, SELL, MY LISTINGS and MAILBOX tabs, partial stack purchases, search and sorting, server settings (fee, listing limit, expiry, max price, blocked items).