Great games tell great stories through quests. But building a quest system from scratch? That means coding state machines, tracking progress across sessions, updating UI in real-time, managing prerequisite graphs, handling edge cases when players do things out of order, and debugging why "collect 10 wolf pelts" counted 11 but the quest didn't complete.
Great games tell great stories through quests. But building a quest system from scratch? That means coding state machines, tracking progress across sessions, updating UI in real-time, managing prerequisite graphs, handling edge cases when players do things out of order, and debugging why "collect 10 wolf pelts" counted 11 but the quest didn't complete.
Professional studios spend months on quest infrastructure. Indie developers often simplify their vision just to avoid the headache.
CraftMyGame gives you that AAA quest infrastructure out of the box. Design your narrative visually. Pick objectives from a menu. Define prerequisites, rewards, and branches. The engine handles state tracking, persistence, and UI updates automatically. Your branching storyline stays readable, not buried in spaghetti code.
No state machines to debug. No event wiring to maintain. Just your story, playable.
Why it matters: Different quests require different win conditions. Coding each type from scratch means building separate tracking logic, edge case handling, and completion detection. CraftMyGame provides battle-tested objective types that just work.
Collect — "Gather 10 wolf pelts" or "find 5 ancient artifacts." The system tracks item pickups automatically, filtering by item ID, category, or tag. No manual inventory checking required.
Craft — "Create a healing potion" or "forge a legendary sword." Monitors your crafting system and counts recipe completions. Works with any crafting configuration.
Defeat — "Kill 20 goblins" or "slay the dragon boss." Tracks combat kills filtered by entity ID, category, or tag. Boss fights and mob grinds handled identically.
Visit — "Reach the ancient ruins" or "enter the forbidden zone." Location-based triggers that fire when players enter designated areas. Perfect for exploration quests.
Interact — "Talk to the village elder" or "activate the shrine." Tracks entity interactions so you can build dialogue trees and puzzle quests.
Survive — "Stay alive for 5 minutes" or "complete the gauntlet without dying." Time-based challenges that track player survival automatically.
Gather Resources — "Accumulate 1,000 gold" or "reach 50 mana." Watches resource thresholds so players can grind toward goals.
Custom — Any condition you can define using the condition system. If you can express it as a game state check, it can be an objective.
Select your objective type, set the target number, mark it required or optional. Progress tracking happens automatically in the background.
Why it matters: Players shouldn't stumble into endgame content at level 1. But manually checking "has the player done X, Y, and Z?" before offering each quest creates brittle code that breaks when you add new content. CraftMyGame handles prerequisite validation automatically.
Completed Quests — "Finish Chapter 1 to unlock Chapter 2." Chain your narrative so players experience story beats in order.
Player Level — "Reach level 10 for endgame content." Gate challenging content behind progression so players are ready for it.
Required Items — "Need the ancient key to access the tomb." Create lock-and-key puzzles where finding items unlocks new storylines.
Resource Thresholds — "Gather 1,000 gold to fund the expedition." Gate content behind economic goals to encourage gameplay loops.
Custom Conditions — Any game state you can define. Check equipment, check faction reputation, check time of day. If you can express it, you can gate on it.
The quest system checks prerequisites automatically. Quests only appear when players qualify. No manual validation code to maintain.
Why it matters: The best RPG stories unfold across multiple quests, each building on the last. Coding quest chains manually means tracking which quests unlock which, handling completion order, and preventing sequence breaks. CraftMyGame turns quest chains into simple configuration.
Example: The innkeeper asks you to clear rats from the cellar (Defeat 5 rats). Complete it to unlock the follow-up: investigate where they came from (Visit the hidden tunnel). That quest unlocks the full dungeon questline.
Each quest specifies its prerequisites. The system handles the rest. Add quests to your chain without rewriting completion logic. Rearrange story order by updating prerequisites, not code.
Players progress through your story in the order you design. The engine prevents them from skipping ahead or breaking sequences.
Why it matters: Quests shouldn't exist in isolation. When a player accepts "defend the village," enemies should spawn. When they complete it, the celebration should start. Wiring these events manually creates fragile connections that break when quests change. CraftMyGame connects quests to your world through clean configuration.
On Start — Spawn enemies, open doors, play dialogue, start music, begin timers. The world reacts when players accept a quest.
On Complete — Trigger cutscenes, unlock areas, update world state, spawn rewards, change NPC dialogue. Completion feels impactful.
On Fail — Despawn quest items, reset triggers, show failure narrative, restore world state. Failed quests clean up after themselves.
Connect any action from the trigger system. Quests become living parts of your world, not isolated checklist items.
Why it matters: Players complete quests for the reward. But distributing rewards correctly means checking inventory space, handling full inventories gracefully, updating multiple systems, and persisting changes. CraftMyGame handles reward distribution automatically.
Items — Equipment, consumables, crafting materials. Goes straight to inventory with overflow handling.
Resources — Gold, experience points, reputation, custom currencies. Updates all relevant systems instantly.
Experience — Level progression and skill points. Integrates with your character progression system.
Unlocks — New recipes, areas, features, achievements, cosmetics. Permanent progression players can show off.
Actions — Trigger any game event as a reward. Play a fanfare, spawn a treasure chest, start a celebration.
Configure rewards once per quest. On completion, players receive everything automatically. No distribution code to write or maintain.
Why it matters: Different games need different quest UX. A story-driven RPG wants persistent tracking. A roguelike wants fresh starts. Coding these variations manually means building parallel systems. CraftMyGame makes them configuration options.
Quest Log Hotkey — Let players check progress with a keypress. Configure which key opens the quest interface.
Auto-Track — Automatically track new quests on the HUD so players always see current objectives.
Max Active Quests — Limit how many quests players can pursue at once. Focus gameplay or allow juggling.
Progress Persistence — Save quest progress between sessions automatically. Players pick up where they left off.
Notifications — Show quest start, progress, and completion alerts. Keep players informed without manual UI updates.
Time Limits — Add urgency with timed quests that fail if not completed. The countdown handles itself.
Abandonable — Let players drop quests they don't want. Abandoned quests clean up properly.
Auto-Start — Begin quests automatically when prerequisites are met. Streamline discovery for linear experiences.
Why it matters: Modern players expect daily and weekly engagement hooks. But implementing repeatability means tracking completion counts, managing cooldown timers, resetting state correctly, and handling timezone edge cases. CraftMyGame handles all of it.
Repeatable Quests — Mark any quest as repeatable after completion. Players can run it again for rewards.
Cooldown Timers — Set wait periods between repeat attempts. Prevents farming while encouraging return visits.
Daily Challenges — Configure 24-hour cooldowns for daily engagement. Players log in each day for fresh content.
Weekly Goals — Use longer cooldowns for weekly challenges with better rewards. Bigger goals, bigger payoffs.
Set a cooldown in seconds: 86400 for daily, 604800 for weekly. The system tracks per-player cooldowns, handles server restarts, and resets quests when ready.
Why it matters: Games with 50+ quests become overwhelming without organization. But building quest categorization, sorting, and filtering means more UI code to maintain. CraftMyGame includes quest organization out of the box.
Categories — Group quests into Main Story, Side Quests, Bounties, Daily Challenges, or any custom category you define.
Priority — Control display order in the quest log. Important quests appear first.
Optional Quests — Mark quests that aren't required for progression. Players know what's critical versus bonus content.
Large quest lists stay navigable. Players find what matters without scrolling through everything.
Why it matters: Achievements give players long-term goals beyond individual sessions. But tracking "Defeat 1,000 enemies" across saves, sessions, and potentially accounts requires persistent storage, efficient tracking, and careful state management. CraftMyGame handles lifetime tracking automatically.
Progress Tracking — "Defeat 1,000 enemies" fills across all sessions. Progress never resets, even across saves.
Hidden Achievements — Surprise players with secret unlocks. Show them only after completion for discovery moments.
Rarity Tiers — Common, Uncommon, Rare, Epic, Legendary classifications. Players know which achievements are impressive.
Achievement Rewards — Give items, resources, or trigger actions on unlock. Achievements become meaningful milestones.
Custom Icons — Visual badges for each achievement. Players build a trophy collection they can see.
Categories — Combat, Exploration, Collection, Social, or custom groupings. Organize achievements logically.
Define the condition, set the reward. The system tracks progress invisibly, notifies players on milestones, and celebrates completion. Players feel accomplished without you writing tracking code.