Skip to main content

Quest System Changelog

A summary of all notable changes, organized by version.


v1.7.0 — 2026-03-15

New Features

  • NPC Profile Editor — Edit NPC quest profiles directly in the admin panel with live preview
  • Stats Tracking — Server-wide and per-player quest statistics with aggregated completion rates
  • Economy Display — Full UI integration when using external currency mode; all labels, tooltips, and shop pages reflect the configured currency name
  • Gold Reroll — Quest rerolls can be paid with Gold as an alternative to quest tokens; admin control via rerollCostTokens and rerollCostGold
  • Per-Instance Tooltips — Item tooltips customized per-player using PacketAdapters for quest items with player-specific progress
  • Pending Reward Retry — Items that couldn't be granted due to full inventory are automatically retried on next login with player notification
  • MySQL Backend — Player quest data stored in MySQL for cross-server setups; automatic legacy file migration; table ks_quest_players
  • QuestAPI — Cross-mod integration API with event listeners (onQuestStarted, onQuestCompleted, onQuestAbandoned), query methods, and Facts API

Improvements

  • Per-Player Language — Players set their preferred language with /kslang; all quest UI, notifications, and NPC dialogs respect the setting
  • talk_to_npc Alias — New objective type alias for NPC interaction objectives
  • LevelingCore Integration — RPG XP rewards correctly granted via LevelingCore API
  • Proximity Toast Fixes — Better handling of HUD conflicts; diagnostic logging when MHUD is unavailable
  • Admin Console Permission Fix — Console operators can now use all admin commands without permission node requirements

2026-03-03

  • Per-Player Language Support — Players can now set their preferred language with /kslang. All quest UI, notifications and NPC dialogs respect the player's language setting. Supported: en-US, de-DE.
  • Memory Leak Fix — Player data is now properly cleaned up on disconnect across all mods. Prevents memory growth on long-running servers.

2026-02-25

  • Per-Instance Tooltips — Item tooltips can now be customized per-player using PacketAdapters. Virtual item IDs allow unique descriptions for the same base item (e.g. quest items with player-specific progress).
  • Packet Interception API — New PacketAdapters.registerOutbound/Inbound() for intercepting and modifying network packets. Used for dynamic item descriptions and command tracking.

2026-02-21

  • Economy Display — When rewardCurrency = "economy" is configured, the entire Quest UI shows the external currency (e.g. "Gold") instead of "Quest Tokens". Automatic conversion via tokenExchangeRate. New central CurrencyHelper singleton handles all display logic.
  • Pending Reward Retry — Items that couldn't be granted due to full inventory are now automatically retried on next login. Players are notified if delivery still fails.
  • MySQL Storage Backend — Player quest data can optionally be stored in MySQL for cross-server setups. Automatic legacy file migration on first load. Table: ks_quest_players.

2026-02-20

  • Gold Reroll — Quest rerolls can now be paid with Gold (external economy) as an alternative to quest tokens. Admin control via rerollCostTokens and rerollCostGold. Reroll popup dynamically shows 1 or 2 buttons based on configuration and economy availability.
  • RewardCurrency — New config economy.rewardCurrency: set to "economy" to grant external currency (e.g. Gold) instead of quest tokens for all quest rewards. Conversion via tokenExchangeRate. Fallback to tokens if external economy is unavailable.
  • Admin Save Fix — Base quests edited in the admin panel (objectives, rewards) now persist after server restart.
  • RPG XP Reward Fix — Quest reward type RPG_XP now grants XP correctly via RPGLevelingAPI.
  • Quest Selection Redesign — NPC quest selection dialog completely redesigned with DecoratedContainer for consistent styling.
  • WARN Spam Reduction — Hot-path warnings in InventoryChangeTrackerSystem and QuestProximityToastManager downgraded to FINE level.

2026-02-18

  • Auto-Complete Removed — The auto_complete / auto_reward fields were never functional (GSON snake_case/camelCase mismatch). Removed from code and all 168 quest JSONs. All quests now require manual turn-in via QuestBook or NPC.
  • Quest Audit — 8 bug fixes across quest data:
    • Missing tutorial_gateway complete dialog added to Guide Finn's profile
    • Duplicate title/achievement rewards removed from story_temple_revelation and story_final_sage
    • Lootbag ID corrected in story_temple_revelation
    • Block targets fixed in story_frost_cobalt (Armory) and story_frost_magic (Arcane)
    • daily_craft_food objective type corrected from items_collected to items_crafted
    • daily_zone_rare count increased from 1 to 2
  • Difficulty Field — Added difficulty (easy/medium/hard/legendary) to all 213 quests
  • Reward Balancing — Daily common tokens 2 -> 3; tutorial quest tokens increased; some side quest tokens reduced for balance
  • Config Version 5 — Automatic re-extraction of all base configs and NPC profiles when updating
  • NPC Profile Versioning_config_version field added to all 17 NPC profiles; version-aware extraction with backup on update
  • QuestAPI — New cross-mod integration API with event listeners (onQuestStarted, onQuestCompleted, onQuestAbandoned), query methods (getAllQuestIds, getQuestsByType), and Facts API (getPlayerFact, setPlayerFact, checkFactConditions)
  • Language Code FixgetForLanguage("de") now correctly resolves to "de-DE" translations; ~310 broken umlauts fixed; ~100 quest descriptions rewritten in proper German
  • QuestBook Crash Fixes — 3 server crashes from invalid UI selectors fixed (DecoratedContainer macro slots, Group.Text properties); all nested selectors converted to flat IDs
  • QuestBook i18n — Tooltip texts, main title, and HUD labels now use localization keys
  • Proximity Toast Diagnostics — Better logging when HUD conflicts prevent proximity toast display; warning when MHUD plugin is not available
  • Test NPC Cleanup — Removed citizen_3 and citizen_4 test profiles that referenced non-existent quests

2026-02-16

  • Quest Token Shop Custom Support — Override or add shop items via custom/custom_quest_token_shop.json
  • NPC Turn-In Fix — 24 NPC quests now correctly complete at the NPC instead of showing "Check your quest book"
  • HUD Fixes — Progress displays correctly after re-login; completed objectives show final count (e.g., "5/5"); fixed a rollback bug where placed/consumed crafted items reset progress
  • Item/Entity ID Validation — 96 corrections across all quest files after cross-checking against game data
  • @consumable Target — New "target": "@consumable" matches all consumable items instead of relying on Food_* prefix
  • Quest Book Objectives — Cards now show detailed per-objective status (completed, in-progress, locked)
  • HUD 5 Objectives — Tracker expanded from 3 to 5 objectives per tracked quest
Debug Mode

Toggle live tracking debug with /ksquestadmin debugmode to see all events in chat.


2026-02-15

  • Zone Discovery Dedup — Each zone counts only once per objective; new polling system detects zone changes every 2s
  • Tutorial Turn-In Fix — 7 tutorial quests now complete correctly at the guide NPC with unique dialogs
  • HUD Turn-In Indicator — Shows "Turn in at NPC-Name" or "Open Quest Book" when all objectives are done
  • Proximity Toast — Distance and compass direction displayed above NPC icons; lightweight 1s refresh
  • Quest Book Turn-In — Active quests show turn-in location with NPC name and coordinates
  • NPC Dialog i18n — 306 new localization keys; all 15 NPC profiles converted from hardcoded German to i18n keys with full English translations

2026-02-14

  • Content Pack — 213 quest definitions: 31 story (6 chapters), 14 side quests, 120 daily (10 pools x 4 tiers), 48 weekly (3 categories x 4 tiers)
  • Quest Token Shop — 17 items across 5 categories, purchasable with quest tokens
  • Toast Notifications — On-screen popups for quest start/ready/complete/available and chapter complete; login notifications for pending quests; proximity toasts with NPC skin icons
Daily/Weekly Pools

Quests are drawn from weighted random pools. Higher tiers (Rare, Epic, Legendary) give better rewards but appear less frequently.


2026-02-13

  • Chat Spam Fix — Repeated triggers no longer send duplicate completion notifications
  • NPC Dialog Fix — NPCs no longer show "all done" dialog when prerequisites are not yet met
  • Command Name Fix — Internal references updated to correct ks-prefixed command names
  • Localization Bump — Version increased to ensure deployed servers pick up new keys

2026-02-12

  • NPC Quest Profile System — One NPC can offer multiple quests with priority-based selection, quest chains via requires, and multi-NPC quest phases
  • Quest Selection Dialog — When 2+ quests are available, the NPC shows a selection UI with outline buttons
  • NPC Quest Markers — World map markers auto-update based on quest status (available, in-progress, turn-in)
  • Proximity Whisper — NPCs whisper chat messages to nearby players based on quest phase; configurable range and cooldown
  • Shop Migration — Quest Token Shop migrated to Core Shop system; 11 legacy files removed
  • Admin Panel — Full in-game admin with 8 tabs (General, Systems, Player, Economy, Content, Chapters, Shop, Stats), CRUD editors, search/filter, import/export, and dynamic language support
Custom Content

Place additional quest files in the custom/ folder. They are auto-loaded and merged with base content. Use disabled_base_ids to deactivate specific base quests.


2026-02-10

  • Core Tracking Migration — 7 ECS systems replaced by centralized Core TrackingService with anti-jitter and anti-teleport filtering
  • Admin Panel i18n — 150+ localized label keys (EN + DE); language changes propagate from Core Admin
  • Custom Icons — HUD, Quest Book buttons, pagination, and settings use custom icon textures with tooltips

2026-02-09

  • Quest Admin Panel — Initial release with vertical sidebar navigation, quest/chapter editor, and economy settings
  • Quest Book UI — 5 quest slots per page with pagination, tracking toggle, accept/drop/claim/reroll buttons, settings page, and Quest Token Shop access