Requirements
A Requirement is a condition that must be met before something can happen. "Player must be level 10", "Player must have 5 iron ore", "Player must have the Blacksmithing profession", and "Player's health must be above 50%" are all examples of requirements.
Requirements appear alongside triggers in many places throughout Spark. For example, a quest might require the player to be a certain level before they can accept it. An NPC interaction might only be available if the player has a specific item. A crafting recipe might require certain materials in the inventory.
Requirement Entries
In the Spark Editor under the Requirements tab, each requirement entry has:
requirementType
Which type of condition to check
requirementTypeData
Configuration specific to that requirement type
failureMessage
Message shown to the player when the check fails
Requirement Groups
Requirements are organized into Requirement Groups that define how multiple checks combine:
And
All requirements must pass
Or
At least one must pass
Nand
At least one must fail
Nor
All must fail
Xor
Exactly one must pass
Threshold
At least N must pass (configurable)
Each check within a group can also be inverted, which negates its result.
All Requirement Types
Core Requirements
RuleValueRequirementType
Rules
Checks if a rule on the entity has a specific value (true or false)
DistanceToCoordinatesRequirementType
Playables
Checks if the entity is within a certain distance of coordinates
Plugin Requirements
HasClassRequirementType
Classes
Checks if the entity has a specific class (main or secondary)
HasSecondaryClassRequirementType
Classes
Checks if the entity has a specific secondary class
MainClassRequirementType
Classes
Checks if the entity's main class matches
HasStatusRequirementType
Combat
Checks if the entity has a specific status effect
ResourceStatRequirementType
Combat
Checks a resource stat value (e.g., health, mana) against a threshold
ValueStatRequirementType
Combat
Checks a value stat (e.g., strength, agility) against a threshold
HasCraftingRecipeRequirementType
Crafting
Checks if a crafting recipe is unlocked
CurrencyAmountRequirementType
Currency
Checks if the entity has enough of a currency
HasEmptyInventorySlotRequirementType
Items
Checks if the inventory has at least one empty slot
HasEquipmentSlotEquippedRequirementType
Items
Checks if a specific equipment slot has an item equipped
HasItemEquippedRequirementType
Items
Checks if a specific item is equipped
HasItemInInventoryRequirementType
Items
Checks if a specific item is in the inventory
HasWeaponTypeEquippedRequirementType
Items
Checks if a weapon of a specific type is equipped
ProgressionLevelRequirementType
Progression
Checks if the entity has reached a specific level
QuestStatusRequirementType
Quests
Checks the status of a quest (active, completed, etc.)
Where Requirements Are Used
Requirements appear in many places across Spark:
Quest acceptance: Conditions the player must meet to accept a quest
NPC interactions: Conditions for an interaction option to be available
Interactable objects: Conditions for allowing interaction
Ability usage: Conditions for casting an ability (e.g., enough mana, correct weapon type)
Crafting: Conditions beyond just having materials
Spellbook auto-add: Conditions for abilities to appear on the ability bar
Last updated
Was this helpful?
