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
rerollCostTokensandrerollCostGold - 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_npcAlias — 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 viatokenExchangeRate. New centralCurrencyHelpersingleton 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
rerollCostTokensandrerollCostGold. 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 viatokenExchangeRate. 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_XPnow 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_rewardfields 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_gatewaycomplete dialog added to Guide Finn's profile - Duplicate title/achievement rewards removed from
story_temple_revelationandstory_final_sage - Lootbag ID corrected in
story_temple_revelation - Block targets fixed in
story_frost_cobalt(Armory) andstory_frost_magic(Arcane) daily_craft_foodobjective type corrected fromitems_collectedtoitems_crafteddaily_zone_rarecount increased from 1 to 2
- Missing
- 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_versionfield 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 Fix —
getForLanguage("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_3andcitizen_4test 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 onFood_*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