Addon ID

  • salmanshh_simple_quests

Info

Statistics

  • Download count58 total downloads
  • Latest download count 58 downloads of latest version
  • Average download count1 downloads per day average

Owners

A list of all Actions, Conditions and Expressions supported in this addon.

Objectives

  • Actions

    Add counter objective {1} to quest {0}: {2} (target: {3})

    Adds a count-up goal to a quest. The objective completes automatically when the player hits the target. Use Add to Counter each time progress is made. Example: 'Kill 10 enemies' with a target of 10.

    Add task objective {1} to quest {0}: {2}

    Adds a simple check-off task to a quest. Call Complete Objective when the player finishes it. Good for one-time actions like talking to an NPC, picking up a key, or reaching a room.

    Add timed objective {1} to quest {0}: {2}

    Adds a time-limited challenge to a quest. Call Start Objective Timer when the countdown should begin. If time runs out, On Timed Objective Expired fires. Example: 'Escape the dungeon' with a 30-second limit.

    Add {2} to counter on {1} (quest {0})

    Increases a counter objective's progress by the given amount. If the total reaches the target, the objective completes automatically. Call this whenever the relevant thing happens — like when the player kills an enemy.

    Complete objective {1} on quest {0}

    Manually marks a task or timed objective as done. Use this when the player finishes a task — for example, when they collide with an NPC or step on a pressure plate.

    Fail objective {1} on quest {0}

    Manually marks an objective as failed. If it's the last required objective, the quest will auto-fail too. Use this when the player misses a condition — like destroying something they needed to protect.

    Set counter on {1} (quest {0}) to {2}

    Sets a counter objective to a specific value, overwriting the current progress. Useful if you're syncing the quest counter to an existing game variable rather than incrementing step by step.

    Start timer on objective {1} (quest {0}) for {2} seconds

    Starts the countdown on a timed objective. Place this action when the challenge actually begins — not when you add the objective. When time runs out, On Timed Objective Expired fires.

  • Conditions

    All objectives on quest {0} are complete

    True if every required objective on the quest is done. Note: the quest does NOT auto-complete — call Complete Quest yourself when this is true, giving you full control over timing and rewards.

    Objective {1} on quest {0} is complete

    True if the specific objective is done. Use this to decide whether to give partial rewards, update an NPC's dialogue, or show a checkmark in your UI.

    On counter updated (quest: {0})

    Runs every time a counter objective's value changes. Enter a Quest ID to only fire for counters on that quest — leave blank to fire for any quest. Use TriggerCounterValue() to get the new number.

    On objective completed (quest: {0})

    Runs when an objective is marked complete. Enter a Quest ID to only fire for objectives on that quest — leave blank to fire for any quest. Use TriggerObjectiveID() to know which objective finished.

    On objective failed (quest: {0})

    Runs when an objective fails. Enter a Quest ID to only fire for objectives on that quest — leave blank to fire for any quest. Use TriggerObjectiveID() to see which objective failed.

    On timed objective expired (quest: {0})

    Runs when a timed objective's countdown reaches zero. Enter a Quest ID to only fire for timers on that quest — leave blank to fire for any quest. Use TriggerObjectiveID() to know which timer ran out.

  • Expressions

    CompletedObjectiveCount

    Returns how many required objectives are done. Pair with ObjectiveCount() to show progress like '2 of 3 objectives complete'.

    CounterProgress

    Gets the current counter value for a counter objective. Use this to show progress like '6 / 10 enemies killed'.

    CounterProgressPercent

    Returns counter completion as a number from 0 to 100. Set a progress bar's width to CounterProgressPercent() / 100 multiplied by the bar's max width. Example: 60 means 60% done.

    CounterTarget

    Gets the target count for a counter objective. Use this alongside CounterProgress() to display progress like '6 / 10 enemies killed'.

    ObjectiveCount

    Returns the total number of objectives on a quest. Use this to show '3 objectives' in a quest details panel, or to loop through all objectives to build a list.

    ObjectiveText

    Gets the display text of an objective. Use this to fill in rows in a quest log list — show the text next to a checkbox or bullet point.

    TimerRemaining

    Returns the seconds left on a timed objective's countdown. Update a timer label every tick using this expression. Returns 0 when expired.

    TriggerCounterValue

    Inside On Counter Updated, returns the counter's new value at the moment it changed. Use this to update a live progress display without calling ObjectiveProgress() separately.

    TriggerObjectiveID

    Inside an objective trigger, returns the ID of the objective that caused the event. Use this to look up the objective's text or progress. Do not use this outside of an objective trigger.

Quests

  • Actions

    Complete quest {0}

    Marks the quest as successfully finished. Fires the On Quest Completed trigger — good for giving rewards, showing a completion screen, or unlocking the next quest.

    Create counter quest {0} ({1}), {2}, count {4} of {5} [obj: {3}]

    Creates and starts a quest with a single counter objective — all in one step. Great for simple quests like 'collect 10 coins'. Leave Objective ID blank to auto-name it as questID & "_obj".

    Create quest {0} titled {1} , {2}

    Sets up a new quest that hasn't started yet. Call Start Quest when you want the player to begin it. Tip: use short IDs with no spaces, like "deliver_package" or "quest_1".

    Create task quest {0} ({1}), {2}: {4} [obj: {3}]

    Creates and starts a quest with a single task objective — all in one step. Great for quests like 'talk to an NPC' or 'reach a location'. Call Complete Objective when the task is done. Leave Objective ID blank to auto-name it as questID & "_obj".

    Create timed quest {0} ({1}), {2}: {4} within {5}s [obj: {3}]

    Creates and starts a quest with a single timed objective — all in one step. Great for escape sequences or race challenges. Fires On Timed Objective Expired if time runs out. Access the objective later using the Objective ID param (or questID & "_obj" if left blank).

    Delete quest {0}

    Completely removes a quest and all its data. Good for cleaning up short one-off quests once they're done. This cannot be undone.

    Fail quest {0}

    Marks the quest as failed. Fires the On Quest Failed trigger — use it when the player misses a deadline, dies, or makes a choice that cancels the quest.

    Remove tag {1} from quest {0}

    Removes a label from a quest. Use this if a quest no longer belongs to a group, like removing a "daily" tag after the day resets.

    Reset quest {0} to inactive

    Sends the quest back to its starting state so it can be played again. Only works on completed or failed quests if 'Allow Replay' is turned on in the plugin properties.

    Tag quest {0} as {1}

    Adds a label to a quest so you can group and filter quests. For example, tag quests as "daily" or "main" to reset them together or check them as a group.

    Start quest {0}

    Makes the quest active so the player can work on it. Fires the On Quest Started trigger — use that to show a 'New Quest!' notification or play a fanfare sound.

    Set tracked quest to {0}

    Marks one quest as the 'active' quest shown in your HUD. Use TrackedQuestID() to get the ID and display its title and progress. Only one quest can be tracked at a time.

    Clear tracked quest

    Clears the tracked quest so nothing is highlighted in your HUD. Useful when the player closes the quest log or all quests are complete.

  • Conditions

    Has any active quests

    True if the player is currently working on at least one quest. Use this to show or hide the quest tracker HUD — hide it when nothing is active.

    Has any active quests with tag {0}

    True if any active quests share a specific label. For example, check if any 'daily' quests are still running before hiding the daily quest panel.

    On Quest {0} completed

    Runs when a quest is completed. Enter a Quest ID to only fire for that specific quest — leave blank to fire for any quest. Good for giving rewards, showing a completion animation, or unlocking the next quest.

    On Quest {0} failed

    Runs when a quest fails. Enter a Quest ID to only fire for that specific quest — leave blank to fire for any quest. Use this to play a sad sound, show a retry button, or lock off content.

    On Quest {0} started

    Runs when a quest becomes active. Enter a Quest ID to only fire for that specific quest — leave blank to fire for any quest. Use TriggerQuestID() to get the quest that started.

    On tracked quest changed to {0}

    Runs when the player's tracked quest changes or is cleared. Enter a Quest ID to only fire when that specific quest becomes the tracked one — leave blank to fire on any change. Use TriggerQuestID() to get the new tracked quest ID.

    Quest {0} exists

    True if a quest with this ID has been created. Use as a safety check before reading quest data, or to see if a quest has been given to the player yet.

    Quest {0} has tag {1}

    True if the quest has a specific label. Use this to show different icons for 'main' vs 'side' quests, or to check if a quest is part of a group before resetting it.

    Quest {0} is active

    True if the quest is currently in progress. Use this to show quest UI or decide what NPCs say while a quest is running.

    Quest {0} is completed

    True if the quest was successfully finished. Use this to unlock new areas, show completed checkmarks in a quest log, or prevent repeated dialogue.

    Quest {0} is failed

    True if the quest has failed. Use this to play a failure animation, disable a path, or offer the player a retry option.

    Quest {0} is tracked

    True if this is the quest currently shown in your HUD. Use this to highlight a quest in a list — if it's tracked, draw a marker or bold text next to it.

  • Expressions

    ActiveQuestCount

    Returns how many quests are currently active. Use this to show a badge like '3 active quests' on your quest log button, or to enforce a quest limit.

    CompletedQuestCount

    Returns how many quests have been completed. Use this for a progress counter like '4 / 10 quests completed' or to unlock an achievement.

    QuestDescription

    Gets the description text of a quest. Use this to fill in a quest details panel when the player selects a quest from the log.

    QuestsByTagAsJSON

    Returns a JSON array of quest IDs that share a tag, like ["quest_1","quest_2"]. Useful for listing all quests in a category. Parse it with Construct's JSON object to build a quest list UI.

    QuestState

    Returns the quest's current state as text: "inactive", "active", "completed", or "failed". Useful for displaying a status label or storing the state in a variable.

    QuestTitle

    Gets the display title of a quest. Use this to show the quest name in your HUD. Example: set a Text object's text to QuestTitle("my_quest").

    TrackedQuestID

    Returns the ID of the quest currently shown in your HUD. Use with QuestTitle() and other expressions to populate your tracker. Returns an empty string if no quest is tracked.

    TriggerQuestID

    Inside any quest, objective, or reward trigger, this returns the ID of the quest that caused the event. Use it to look up that quest's title or show the right info. Do not use this outside of a trigger.

Rewards

  • Actions

    Add reward {1} to quest {0} - {2} × {3} ({4})

    Attaches a reward to a quest so it can be given when the quest completes. Choose a type to help your game know what to grant. Call Claim Rewards to actually hand out the rewards.

    Claim rewards for quest {0}

    Fires On Reward Claimed once for each unclaimed reward, then marks them as claimed so they can't be given again. Call this after the player dismisses the completion screen.

  • Conditions

    Quest {0} has unclaimed rewards

    True if the quest has rewards waiting to be claimed. Use this to show a '!' badge on a quest, or to decide whether to show the rewards screen after completion.

    On reward claimed (quest: {0})

    Runs once for each reward when Claim Rewards is called. Enter a Quest ID to only fire for rewards from that quest — leave blank to fire for any quest. Use TriggerRewardName(), TriggerRewardType(), and TriggerRewardQuantity() to apply the reward.

    On rewards ready (quest: {0})

    Runs when a quest completes and has unclaimed rewards. Enter a Quest ID to only fire for that specific quest — leave blank to fire for any quest. This is a good place to show a rewards popup before calling Claim Rewards.

  • Expressions

    RewardName

    Gets the display name of a specific reward on a quest. Use this to list rewards in a quest preview screen before the player accepts the quest.

    RewardQuantity

    Gets the quantity of a specific reward. Use this alongside RewardName() to display '× 100 Gold' in a rewards preview.

    RewardType

    Gets the type of a specific reward ("item", "currency", "xp", etc.). Use this to decide what icon to show next to a reward name in your UI.

    TriggerRewardName

    Inside On Reward Claimed, returns the name of the reward being claimed right now. Use this to display a message like 'You received: Gold Coins!' or add it to an inventory list.

    TriggerRewardQuantity

    Inside On Reward Claimed, returns the quantity of the reward being claimed. Use this with TriggerRewardType() to give the right amount — like adding TriggerRewardQuantity() to the player's gold variable.

    TriggerRewardType

    Inside On Reward Claimed, returns the type of the reward being claimed. Use this to branch your logic — add XP to a level-up system, add items to an inventory, or add currency to a wallet.

Save & Load

  • Actions

    Delete all quests tagged {0}

    Permanently removes all quests with a given label. Use this for roguelike-style games where each run creates new quests with a "run" tag — delete them all when the run ends to start fresh.

    Load quest state from JSON: {0}

    Restores all quest data from a JSON string you previously saved. Call this when your game loads — pass in the string from Construct's save system or a storage variable. All quests, objectives, and rewards are restored exactly as they were.

    Reset all quests tagged {0} to inactive

    Resets all quests with a given label back to inactive in one action. Useful for daily quest systems — tag all daily quests as "daily", then call this at midnight to reset them all at once.