Skip to main content

<conditionSkill> & <beginCondition>

<conditionSkill> & <splashSkill>

These two nodes are used in skill xmls in xml\skill\ and additional effect xmls in xml\additionaleffect\. Their purpose is to tell a skill or effect to fire off a trigger under certain conditions. The exact conditions change depending on where they are located. <splashSkill>s are functionally the same as <conditionSkill>s except the splash field is always set to 1. When splash is set to 1 a <conditionSkill> will fire off a splash/region effect skill. When it is set to 0 it will attempt to activate a new additional effect on a target.

In skills, <conditionSkill> can appear in two different places: at the root of a <level> node or inside of <attack> nodes. For passives, <conditionSkill> nodes that appear in <level> will activate the moment they are specced into and/or when the player spawns. For activated skills, <conditionSkill> nodes that appear in <level> will activate at the same time the skill is activated. Each of these targets the player who owns the skill. <conditionSkill> nodes that are inside an <attack> node will activate on whatever target the skill hit.

In additional effects, <conditionSkill> can appear at the root of a <level> node. Most of these are activated whenever the effect ticks, but some have eventConditions in them that change them to fire off when certain game events trigger. eventCondition is only ever set in additional effects inside the <conditionSkill> nodes in a <level> node except for one special case. A specific striker skill has an eventCondition in the effect's <beginCondition> and it dictates when the whole effect ticks, not just that node.

<conditionSkill> attributes

NameValue
splashboolean - Fire off a region skill if 1. Activate an effect if 0. Always 1 in splash="1"
randomCastboolean, optional - Always 1. Only appears on esplash="0"
levelinteger - The level of the skill or effect to apply or fire
skillIDid - The id of the skill or effect to apply or fire
linkSkillIDid, optional
overlapCountinteger, optional - Only appears in xml\skill\. Only appears on splash="0"
skillTargetSkillTarget enum - Specifies what the skill or effect should attach to or fire at
skillOwnerSkillOwner enum - Specifies who or what should be credited for the trigger's effects
delayinteger - Specifies how long to wait before starting the effect in milliseconds
removeDelayinteger, optional - Specifies how long to wait before removing a region skill. *Only appears on splash="1"
intervalinteger - Specifies time between fires if multiple fires are required
immediateActiveboolean - Fire effect immediately if 1. Delay the effect an interval if 0
fireCountinteger - Fires the trigger the specified amount of times
nonTargetActiveboolean - Only used when splash="1". Fire the region skill on the selected target if 0. Fires the region skill where the parent was triggered if 1
useDirectionboolean - Don't align the region skills if 0. Align the region skills if 1
onlySensingActiveboolean - Activate on entities spawned from skills? (Wizard's Ice Cream Time or Heavy Gunner's poison trap). Always 0 in xml\additionaleffect\
dependOnCasterStateboolean - Stop firing if caster state changes. (Runeblade's Echoing Blade). Always 0 in xml\additionaleffect\
activeByIntervalTickboolean - Activates the spawned skill or effect regardless of its tick settings like immediateActive. Always 0 in xml\skill\
dependOnDamageCountboolean - Only activate if the attack doesn't roll a Miss! Always 0 in xml\additionaleffect\
chaininteger?, optional - Only appears in xml\additionaleffect\. Always 1
chainDistanceinteger, optional - Only appears in xml\additionaleffect\. Always 1
Independentboolean, optional - *The capitalization is not a typo. Only appears in xml\skill\. Always 1. Only appears once

SkillTarget Enum

NameValue
0SkillTarget - Target whatever was hit by the skill or effect that applied it
1Owner - Target the current parent of the trigger's source
2Target - Used in events. Target the target of the event that was fired
3Caster - Target the caster that is credited with the trigger
4PetOwner - Target the owner of the pet that fired the trigger

SkillOwner Enum

IndexValue
0Inherit - Credit to the current caster
1Owner - Credit to the parent of the trigger's source
2Target - Credit to the target of the trigger
3Caster - Credit to the caster
5Attacker - Credit to the caster that fired the event

<beginCondition>

This node is used to control skill activations, <conditionSkill> triggers, and additional effect ticks. When used in skills it determines whether a skill can be casted or not. When used in <condiitonSkill> triggers it determines whether the trigger can be fired or not. It is also used to configure event listeners. When used in additional effects it determines if an effect tick can be fired. It does not appear to determine the life time of an additional effect.

<beginCondition> attributes

NameValue
levelinteger
genderGender enum - Only fire when the target is a certain gender. 0 for male, 1 for female, 2 for either. 0 appears to never be used
targetboolean - Always 0 in xml\additionaleffect\
probabilityfloat - Probability to activate, on a scale of 0 to 1
invokeEffectFactorboolean - Always 0 in xml\additionaleffect\
cooldownTimefloat - How long should pass between activations in seconds. Always 0 in xml\additionaleffect\
defaultRechargingCooldownTimefloat, optional - Time length in seconds. Always 0 in xml\additionaleffect\
useCoolDownShowUIboolean - Always 0 in xml\additionaleffect\
allowDeadStateboolean - Always 0 in xml\skill\
requireDurationWithoutDamagefloat - Always 0
requireDurationWithoutMovefloat - Time length in seconds
useTargetCountFactorboolean - Limit the number of hit targets. Always 0 in xml\additionaleffect\. Always 0 on splash="0"
isShadowWorldboolean, optional - Always 0. Only appears in xml\skill\
glideOnGroundDisableboolean, optional - Always 0. Only appears in xml\skill\
onlyShadowWorldboolean
onlyFlyableMapboolean
applyPvPZoneTypeenum - Possible values: 0 - 2. Always 0 in xml\skill\
allowBattleRidingStateboolean
onlyBattleRidingStateboolean
allowMapleSurvivalboolean, optional - Always 1

<beginCondition> property nodes:

<owner>, <target>, <caster> condition node

NameValue
hasBuffID0, ID - ID of the buff to check for. If 0 then no buff is required
hasBuffLevelinteger - Level requirement of hasBuffID. If 0 then no specific level is required
hasBuffOwnerboolean - If 0 then don't require a buff check. If 1 then require a buff check
checkActivateBuffboolean, optional - Always 1. Only appears in xml\additionaleffect\
hasBuffCountinteger - Stack requirement of hasBuff. If 0 then no specific stack count required
hasBuffCountCompareComparison enum - Comparison function to use when checking hasBuffCount
eventConditionEventCondition enum - Event to listen for. Always 0 in xml\skill\
NpcRaceStringempty string
NpcIDs0, ID, optional
NpcRanksinteger, optional
hasSkillID0, ID - ID of the skill to check for. If 0 then no skill is required
ignoreOwnerEffectboolean, ID - If 0 then require eventEffectID or eventSkillID? If 1, don't require specific effect or skill. If ID then ignore events using that ID
hasNotBuffID0, ID, optional - ID of the effect to check for. If 0 then no effect is barred
eventSkillIDID[] - Array of skill IDs to check for in the event parameters
eventIgnoreSkillID0, ID, optional - Skill ID to check for events to ignore
eventEffectIDID[] - Array of effect IDs to check for in the event parameters
targetCheckRangeinteger, optional
targetCheckMinRangeinteger, optional
targetInRangeCountinteger, optional
targetFriendlyTargetFriendly enum, optional - <owner> only
targetCountSignComparison enum, optional
requireStatesStates enum[], optional
requireSubStatesSubStates enum[], optional
requireMasteryTypesMasteryType enum, optional
requireMasteryValuesinteget, optional

Comparison enum

NameValue
None
Equals
LessEquals
GreaterEquals
Less
Greater

EventCondition enum

Many of these events will have an ID argument for the skill or effect that is being used to trigger these events. The IDs are often consumed with eventEffectID, eventSkillID, eventIgnoreSkillID, and ignoreOwnerEffect.

IndexValue
0None - No event required. Fire during normal activation times. Always 0 in xml\skill\. Almost always 0 in xml\additionaleffect\ in <beginCondition> nodes in <level>, except for one Striker effect
1OnEvade - On effect parent evasion. In: <owner>
2OnBlock - On effect parent blocking. In: <owner>
4OnAttacked - On target attacked. In: <owner>, <target>
5OnOwnerAttackCrit - On effect parent attack crit. In: <owner>
6OnOwnerAttackHit - On effect parent attack hit. In: <owner>
7OnSkillCasted - On target skill cast. In: <owner>, <caster>
10OnBuffStacksReached - On target effect stacks gained when stacks > 1. In: <owner>, <caster>
11OnInvestigate - On effect parent investigating. Doesn't fire in homes. In: <owner>
13OnBuffTimeExpiring - On effect parent buff time expiring. In: <owner>
14OnSkillCastEnd - On effect parent skill cast end? In: <owner>
16OnEffectApplied - On effect parent effect applied. In: <owner>
17OnEffectRemoved - On effect parent effect removed. In: <owner>
18OnLifeSkillGather - On effect parent life skill gather. In: <owner>
19OnAttackMiss - On effect parent attack missed. In: <owner>
20UnknownKritiasPuzzleEvent - On Kritias puzzle condition reached. Poing puzzle? Color puzzles? In: <owner>
102UnknownWizardEvent - Some buff condition reached in Wizard's Hurricane skill. In: <owner>
103UnknownStrikerEvent - Some condition reached in Striker skill. In: <owner>

TargetFriendly enum

IndexValue
1Enemy
2Ally

States enum

NameValue
gosStun
gosEmotionIdle
gosPlayInstrument
gosCrawl

SubStates enum

NameValue
StatePlayInstrument_Playing_Score_Solo
StatePlayInstrument_Playing_Score_Ensemble

MasteryType enum

NameValue
Music

<stat> condition node

NameValue
hpinteger - Minimum HP. Only appears in xml\skill\
spinteger, optional - Minimum spirit. Only appears in xml\skill\

<requireSkillCodes> condition node

NameValue
codeID

<requireMapCodes> condition node

NameValue
codeID

<requireMapCategoryCodes> condition node

NameValue
codeinteger, empty - Possible values: 0, 1, 9 PvP

<requireRoomDungeonTypes> condition node

NameValue
codeDungeonType enum

DungeonType enum

NameValue
normal
raid
chaosRaid
darkStream
vip
event
guildRaid
fameChallenge
lapenta
colosseum

<job> condition node

NameValue
codeJobID enum

<item> condition node

NameValue
idID
countinteger
rankenum

<requireMapContinentCodes> condition node

NameValue
codeMapContinentCodes enum

MapContinentCodes enum

IndexValue
202

<weapon> condition node

NameValue
lhWeaponType enum
rhWeaponType enum