RtDQuestForge
Server-synced quest system. JSON quest packs, vanilla-styled journal, kill/gather objectives, prereq chains, item/skill/EpicMMO rewards, multiplayer kill credit.
About this mod Author’s original text
Looking for a reliable server host with quality hardware, without the extra cost?
Go Checkout Survival Servers for top-tier performance that fits your budget!
RtDQuestForge
A server-synced quest system for Valheim. Drop quest packs into a config
folder as json files, and players get a vanilla-styled quest journal with
accept/abandon, live objective tracking, prerequisites, and rewards.
Built for dedicated servers first: the server's quest list is the single
source of truth, and kill credit works correctly in multiplayer regardless
of which machine owns the creature.
Features
- Quest Journal UI - Built from Valheim's own woodpanel sprites and
Norse font. Opens on L (rebindable). Active and Completed columns,
rarity-colored quest cards, mouse wheel scrolling.
- Accept / Abandon - Quests only progress once accepted. Abandoning a
quest wipes its progress, so re-accepting starts fresh.
- Kill and gather objectives - Any creature prefab, any item prefab,
any amounts, freely mixed in a single quest.
- Rewards - Item rewards (dropped at your feet if your inventory is
full), vanilla skill XP rewards, and optional EpicMMOSystem XP.
- Prerequisite chains - Lock quests behind other quests. Locked quests
show greyed out with the name of the quest that unlocks them.
- Multi-file quest packs - Every *.json in the config folder loads as
its own journal page. Ship quest packs per biome, per author, per
whatever - no merging into one giant file.
- Server sync - Clients receive the server's quest list on spawn.
Server admins edit quests in one place; local client files don't matter.
- Multiplayer kill credit - Kills are credited to the player who landed
the killing blow, routed over the network when the creature was owned by
another machine. No more lost credit when hunting in a group.
- JSON localization - All UI strings load from
config/RtDQuestForge/translations. Copy English.json, rename it to
your language, translate the values. Quest titles and goals also support
$tokens for fully localized quest packs.
Installation
- Install BepInEx,
Jotunn, and
Json.NET.
- Drop RtDQuestForge.dll into BepInEx/plugins.
- Launch once. Starter quest files and the translation template generate
in BepInEx/config/RtDQuestForge.
On dedicated servers, install the same way server-side. All players must
have the mod (enforced via Jotunn network compatibility).
Creating quests
Add any myquests.json to BepInEx/config/RtDQuestForge/ (server-side on
dedicated servers). Each file becomes a journal page. Example quest showing
every field:
{
"Quests": [
{
"ID": "example_quest",
"Title": "Seasoned Hunter",
"Goal": "Prove yourself against the boars.",
"Rarity": "Uncommon",
"PreReqID": "some_other_quest_id",
"KillReqs": [ { "Prefab": "Boar", "Amount": 5 } ],
"GatherReqs": [ { "Prefab": "LeatherScraps", "Amount": 5 } ],
"RewardItems": [ { "Prefab": "Coins", "Amount": 40 } ],
"SkillRewards": [ { "Skill": "Bows", "Amount": 10.0 } ],
"ExpReward": 150
}
]
}
- ID must be unique across all files. Duplicates are skipped and logged.
- Rarity colors the card border: Common, Uncommon, Rare, Epic, Legendary.
- PreReqID is optional - omit it for quests available from the start.
- Skill names match Valheim's skill enum: Swords, Bows, Run, Sneak, etc.
- ExpReward grants EpicMMOSystem XP and is ignored (and hidden in the
journal) when EpicMMOSystem is not installed.
- Progress is saved per character in progress_.json - don't edit
those, and they are ignored by the quest loader.
Configuration
BepInEx/config/soloredis.rtdquestforge.cfg:
- General / JournalHotkey - Key to open the journal (default L).
- Logging / Enable - Verbose diagnostic logging for kill credit routing.
Leave off unless you are debugging.
Support & Feedback
- Need some help? Found a bug? Want patch notes? Join RtD Discord.
- Want to support my work directly? Patreon.
- Need a good server? Check out Survival Servers - signing up through that link helps support my projects to
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file. In multiplayer, the host and every client need the same mods installed.
Install these first, or the mod will not work: