Troubleshooting
This page covers the most common issues server owners encounter with the quest system, along with their solutions.
Quests Not Appearing
Symptoms: The quest book is empty or a quest you added does not show up.
Possible causes:
- Custom content disabled -- Check that
config.jsonhas"useCustomContent": true - File not in the right folder -- Custom quest files must be in
custom/, notconfigs/ - Additional file starts with
custom_-- Files starting withcustom_are reserved for the standard merge. Rename your pack (e.g.my_pack.json) - JSON syntax error -- Check the server log for parse errors
- Quest ID collision -- If two quests share the same ID, only the last-loaded one survives
Fix: Run /ksquestadmin reload and check the server console for loading messages like:
[INFO] Loaded 42 quest definitions (35 base)
[INFO] Merged 7 custom quests
Objectives Not Tracking
Symptoms: A quest is active but progress stays at 0.
Possible causes:
- Wrong target name -- Item, block and entity IDs must match the game's internal names exactly. Use debug mode to verify what the server sees
- Wrong objective type -- Make sure the
typematches the action (e.g.blocks_minedfor mining,entities_killedfor combat,items_collectedfor pickup) - Placed block protection -- The anti-exploit system ignores blocks the player placed themselves. Blocks become "natural" again after 30 minutes by default (configurable via
placedBlockTracker.expiryMinutes) - Quest not started -- The player must accept the quest first; just having it visible is not enough
Fix: Enable debug mode to see tracking events in real time:
/ksquestadmin debugmode
This logs every tracking event to the server console, showing which items, blocks and entities are being detected and whether they match any active objectives.
NPC Dialog Not Showing
Symptoms: Talking to a quest NPC shows no dialog or the wrong dialog.
Causes: NPC profile citizenId does not match citizens.json, dialog conditions (facts, quest status) not met, or profile JSON missing from quest_npc_profiles/.
Fix: Run /ksquestadmin debug to check the player's facts and quest status.
Daily/Weekly Quests Not Resetting
Symptoms: Players keep the same daily or weekly quests after the reset time.
Possible causes:
- Reset time not reached -- Daily reset defaults to 04:00 in the configured timezone. Check
config.json:{
"dailyResetTime": "04:00",
"weeklyResetDay": "MONDAY",
"timezone": "Europe/Berlin"
} - Empty quest pool -- If the pool has fewer quests than
dailyQuestCount(default: 3) orweeklyQuestCount(default: 5), the system cannot rotate properly - Pool entries reference non-existent quest IDs -- Check the server log for warnings like
Daily pool contains unknown quest: some_id
Fix: Verify your pools have enough valid entries. The server log reports pool sizes on startup:
[INFO] Loaded 12 quests in daily pool (10 base)
Localization Not Updating
Symptoms: You added new translation keys but they show as raw key names (e.g. quest.my_quest.name) instead of translated text.
The localization system uses a file-first pattern with version checking. If the file on disk has the same or higher version than the mod, it is not replaced.
Fix:
- If you are developing the mod: bump
_localization_versionin bothen-US.jsonandde-DE.jsonsource files and in theCURRENT_LOCALIZATION_VERSIONconstant inQuestI18n.java - If you are a server owner adding custom keys: put them in
custom_en-US.json/custom_de-DE.json(no version bump needed for custom files) - Run
/ksquestadmin reloadto pick up file changes
Quest Book Is Empty
Symptoms: Opening the quest book shows no quests at all.
Causes: Config files not extracted yet (restart the server), config loading failed (check logs), or corrupted player data in players/{uuid}.json.
Fix: Run /ksquestadmin reload and verify the console shows lines like Loaded 35 quest definitions (30 base) and Config validation passed.
Rewards Not Granting
Symptoms: Player completes a quest but does not receive rewards.
Possible causes:
- Inventory full -- Item rewards require inventory space. If the inventory is full, the reward may be queued as a pending reward
- Invalid item ID -- The
itemIdin the reward definition must match a valid game item. Check server logs for warnings - Turn-in required -- Some quests require turning in at an NPC before rewards are granted. Check if the quest has a
turn_inconfiguration
Fix: Check the quest definition's reward block:
"rewards": [
{ "type": "item", "itemId": "Ore_Iron", "amount": 5 },
{ "type": "quest_tokens", "amount": 10 }
]
Valid reward types: item, quest_tokens, experience, lootbag, command.
Debug Tools Reference
| Command | What it does |
|---|---|
/ksquestadmin debug | Shows your active quests, completed quests, facts, chapters, streak |
/ksquestadmin debugmode | Toggles live tracking event logging in server console |
/ksquestadmin testzone <name> | Simulates entering a zone (for testing zone_entered objectives) |
/ksquestadmin testnpc <id> | Simulates interacting with an NPC |
/ksquestadmin reload | Reloads all configuration and translation files |
When something is not working, the best first step is always:
- Run
/ksquestadmin debugto check the player's current state - Enable
/ksquestadmin debugmodeand perform the action to see what the server detects - Check the server console log for warnings and errors during config loading
Config Debug Mode
For persistent debug logging, enable debug mode in config.json:
{
"debug": true
}
This enables additional logging for story quest prerequisites, trigger evaluation, and index building. Useful for diagnosing why story quests are not unlocking or triggers are not firing.