Skip to content

CastResult Result Codes

Previous: Message Copy Quick Reference · Next: Built-in Skills and Examples

CastResult is the final verdict of every skill cast. It surfaces in three places:

  1. The echo of /qs cast <skill>§6[QS] §7cast {id} §7→ §e{result};
  2. The castResult field of the QISkillUseEvent / corresponding event object (read by developers);
  3. Indirectly, through the %qinhskills_..% placeholders and the gate hints a player receives.

The enum has 14 values. The table below covers the meaning, what the player sees, and how to handle it.


📋 All result codes

Result codeMeaningPlayer textWhat to do
SUCCESSSkill cast successfully(skill effect / placeholder message)Normal ✅
SKILL_NOT_FOUNDSkill id does not exist§cUnknown skillCheck id spelling, whether /qs reload loaded it
INVALID_PAYLOADTrigger payload invalid / missing field— (usually an internal / command-bridge construction error)Check command-bridge arguments, whether the handler passes the payload correctly
NOT_UNLOCKEDSkill not unlocked§cSkill not unlocked/qs unlock or configure starter_skills / default_all
ON_COOLDOWNOn cooldown (incl. cooldown group / charges not full)§cSkill on cooldown §7{t} remaining / §cCharges {a}/{m}Wait out the cooldown; lower cooldown.base or add charges
INSUFFICIENT_RESOURCEInsufficient resource (placeholder resources like resource.mana)§cInsufficient resourceWait for resource regen; the resource pool will ultimately belong to QC — currently a temporary placeholder
CONFLICTHit a conflict group, same-group skills briefly mutually exclusive§cSkill conflictWait out the conflict window; check the conflict_groups config
CAST_MODE_BLOCKEDCannot cast under the current cast mode§cThe current cast mode is unavailableCheck cast_mode (toggle state / channel in progress)
CONDITION_FAILEDDeclarative conditions not fully met§cCast conditions not metCheck the skill's conditions: (level / health / target, etc.)
MYTHIC_FAILEDFailed when handed to MM for execution§cSkill cast failedMM same-named skill misconfigured / missing; /mm reload, check MM logs
SCRIPT_BLOCKEDpre_js script returned false and blocked— (script-defined hint)Check the script.pre_js logic
CHANNELINGCurrently channeling a cast bar, cannot start again— (channel progress bar in progress)Wait for the bar to finish / be interrupted, then cast
NO_TARGETTargeting required: true but no target locked§cNo usable targetAim at a target; loosen range / filter or set required: false
SILENCEDSilenced by /qs silence or the API§cSkill silenced, cannot castWait for the silence to end or release with /qs silence 0 player

⚠️ The 14 values in the table match the source CastResult.kt strictly, including order. The source is authoritative for the text — if a hint you see doesn't match here, first confirm the plugin version is 1.0.22.


🔍 Grouped by "who stopped it"

StageRelated result codes
Parse / inputSKILL_NOT_FOUND INVALID_PAYLOAD
GateNOT_UNLOCKED ON_COOLDOWN INSUFFICIENT_RESOURCE CONFLICT CAST_MODE_BLOCKED CONDITION_FAILED NO_TARGET SILENCED
Script exitSCRIPT_BLOCKED
Channel stateCHANNELING
Execution (MM)MYTHIC_FAILED
SuccessSUCCESS

Gates are validated one by one in a fixed order, returning the code of the first one that fails — so a single cast yields exactly one result code.


🧪 Self-testing with /qs cast

/qs cast is the most direct result-code probe: it skips items / keys, runs the full pipeline, and prints the result code back to chat.

bash
/qs cast fire_wave
# §6[QS] §7cast fire_wave §7→ §e SUCCESS         skill side all clear
# §6[QS] §7cast fire_wave §7→ §e NOT_UNLOCKED    not unlocked → /qs unlock
# §6[QS] §7cast fire_wave §7→ §e MYTHIC_FAILED   QS clear, error on the MM side

To see a finer per-stage trace (whether it's stuck at parse / route / gate / execution), enable debug: true on the skill. See Diagnostics and Troubleshooting.