Skip to content
senritsu edited this page Sep 28, 2011 · 34 revisions

Use this for reference when creating/editing effects inside actives and passives

## Contents > - [General Information](#general) > - [Data Types](#data) > - [Special Nodes](#special) > - [Effects](#effects) > - [apply-buff](#apply-buff) > - [attack](#attack) _(not yet implemented)_ > - [boost](#boost) > - [change-blocks](#change-blocks) > - [damage-reduction](#damage-reduction) _(not yet implemented)_ > - [direct-damage](#direct-damage) > - [drop-change](#drop-change) > - [impulse](#impulse) > - [lightning](#lightning) > - [manipulate-item](#manipulate-item) > - [set-combat-state](#set-combat-state) > - [teleport](#teleport) _(not yet implemented)_ > - [transmute-item](#transmute-item) > - [trigger-active](#trigger-active) > - [Examples](#examples)

General Information

Effects are specified by a YML node named like the effect, and optionally postfixed with anything for uniqueness inside a single parent node. There are a variety of subnodes you can specify inside the effect definition, some are common to all effects, many more are specific to the effect. In this section the data types will be elaborated upon, after that all common nodes will be given with its data type and an example. Omitted nodes will use their default value.

Data Types

  • float can be any decimal number

  • int can be any signed integer

  • string can be any string

  • boolean can be true or false

  • string list or int list uses a yml list (opened and closed with [ and ] respectively) containing the given data type

  • material can be either of

    • material IDs (1 for stone, 262 for arrow)
    • bukkit material names, any capitalization (STONE for stone, IRON_SWORD or iron_sword for an iron sword)
  • material list is a list that can contain material entries, as well as the following material group shortcuts

    swords [WOOD_SWORD,STONE_SWORD,IRON_SWORD,DIAMOND_SWORD]
    axes [WOOD_AXE,STONE_AXE,IRON_AXE,DIAMOND_AXE]
    pickaxes,picks [WOOD_PICKAXE,STONE_PICKAXE,IRON_PICKAXE,DIAMOND_PICKAXE]
    shovels,spades [WOOD_SPADE,STONE_SPADE,IRON_SPADE,DIAMOND_SPADE]
    hoes [WOOD_HOE,STONE_HOE,IRON_HOE,DIAMOND_HOE]
    empty,fists,unarmed,barehanded [AIR]

    examples:
    [1,17,262,272] or [STONE,LOG,arrow,IRON_sword] or [1,LOg,ARROW,272] to refer to stone, log, arrow and iron sword [swords,picks] to refer to all swords and pickaxes
    [stone,17,ARROW,SWords] to refer to stone, log, arrow and all swords

back to top

Special Nodes

value
type: float or int
default: 0
notes: converted to proper type depending on the effect, affected by potency

chance
type: float between 0.0 and 1.0
default: 0
notes: probability of the effect activating

tools
type: material list
default: []
notes: If the list is not empty, the effect only works if the player has one of the specified items in his hand.

versus
type: material list
default: []
notes: If the list is not empty, the effect only works if the effect is either used on a block of one of the specified types, or if it is used on another player that holds one of the specified items in his hand

delay
type: int
default: 0
notes: delay until effect is activated, in serverticks (20 ticks = 1 second)

level-based
type: string list
default: []
notes: The specified subnodes in the effect are scaled depending on the joblevel of the one using it. The original subnode value is treated as the value at maximum level. So for example with level-based: [chance] and chance: 0.4 and a the effect would have a maximum chance of 0.4 (or 40%) at maxlevel, which would translate into 0.04 (or 4%) per level for use in a job with a maxlevel of 10, or 0.02 (or 2%) per level for a job with a maxlevel of 20.

conditions
type: string list
default: []
notes: Only activates the effect if one of the conditions specified is met. Possible conditions include:

  • attacking triggers in combat if you are attacking someone
  • defending triggers in combat if you are attacked
  • backstab-offensive triggers in combat if you attack someone from behind
  • backstab-defensive triggers in combat if you are attacked from behind
  • highground-offensive triggers in combat if you are attacking from at least 3 blocks higher than your target
  • highground-defensive triggers in combat if you are attacked from at least 3 blocks lower than your position
  • day triggers if the sun is up
  • night triggers if the sun is down
  • rain triggers when it is raining (not in desert or winter biomes)
  • snow triggers when it is snowing (not in desert or non-winter biomes)
  • clear triggers when it is not raining (or in desert biomes)

self
type: boolean
default: depends on the effect
notes: specifies if the effect acts on the user

target
type: boolean
default: depends on the effect
notes: specifies if the effect acts on the target (block or entity)

offset
type: int list
default: [0,0,0]
notes: if set and targeting a block, uses the block with the relative coordinates specified as the target block instead

format is [x,y,z]
+x direction is south or right (relative)
+z direction is east or back (relative)
+y direction is up

relative
type: boolean
default: false
notes: if true offsets, directions and other things are taken relative to player direction and not as absolute world coordinates

attributes
type: string list
default: []
notes: not used yet, will specify the damage attribute of some damage cause (elemental damage, magic damage, physical damage,...)

inherited
type: boolean
default: false
notes: If true the effect can be inherited (for more information see the inheritance section in the jobs page)

note that level-based,chance, conditions, tools and versus are available for every effect

back to top

Effects

The defaults for certain subnodes are enclosed in ()

### apply-buff _usable as:_ active

name
type: string
notes: refers to any defined passive

duration
type: int
notes: the duration of the effect in seconds, affected by potency

required: name, duration
optional: delay, self (true), target (false)

back to top

### attack _(not yet implemented)_

back to top

### boost _usable as:_ passive

name
type: string
notes: stat name can be prefixed by anti- to work against the corresponding stat ( for example anti-crit-chance reduces the opponents crit chance). Possible stats include:
crit-chance, crit-multiplier, damage-modifier, evade-chance, evade-efficiency, parry-chance, parry-efficiency, roll-chance, roll-manual-window, roll-damage-reduction, fall-damage-modifier, durability-recovery-chance

required: name, value
optional: tools, versus, inherited, level-based

back to top

### change-blocks _usable as:_ active

change-to
type: material
default: AIR

whitelist
type: material-list
notes: if set, only changes the specified block types

blacklist
type: material-list
notes: if set, does not change the specified blocks, but whitelist has priority, not used yet

temporary
type: boolean default: false
notes: if true the block reverts back to its original state

duration
type: int
default: 0
notes: the duration in serverticks (20 ticks = 1 second) after which each block reverts to its original state

revert-mode
type: string
default: fifo
notes: the way in which the total structure reverts if a shape is selected

fifo reverts in the same order as the blocks were changed
lifo reverts in reverse order
lifo+ reverts in reverse order, faster than lifo
random reverts in reverse order with random speed
instant reverts all blocks at once after the set duration

protect
type: boolean
default: false
notes: if true the changed blocks cannot be destroyed/filled until they revert to their original state

shape
type: string
notes: if set, changes multiple blocks using the specified shape. Available shapes:

line,cross2D,cross3D,circle,sphere

event
type: boolean
default: false
notes: if true and used by a player, triggers either a BlockBreakEvent if change-to is set to AIR or a BlockPlaceEvent, therefore the changes are sent to other plugins as if the player had directly tried to break/place the given block, in this way WorldGuard for example can prevent the changes if used in a protected zone. Recommended for non-temporary changes.

cascade-blocks
type: boolean
default: false
notes: if true and a shape is selected, does not change all blocks at once, but one-by-one

block-delay
type: int
notes: if used in conjunction with cascade-blocks, this is the delay between each block change in serverticks

cascade-parts
type: boolean
default: false
notes: if true and a shape with multiple parts is selected, does not change all parts at once, but one after another

part-delay
type: int
notes: if used in conjunction with cascade-parts, this is the delay between each part change in serverticks

required:
optional: delay, change-to, whitelist, blacklist, temporary, duration, revert-mode, protect, shape, event, cascade-blocks, block-delay, cascade-parts, part-delay
see here for additional subnodes specific to shapes

back to top

### damage-reduction _(not yet implemented)_

back to top

### direct-damage _usable as:_ active, passive (buffs) _required:_ value _optional:_ delay, self, target, chance, attribute

back to top

### drop-change _usable as:_ passive

factor
type: float
default: 1
notes: meaning varies with mode, affected by potency

items
type: material list
default: []
notes: specifies the materials to drop

amounts
type: int list
default: []
notes: specifies the amount of each material entry in items

mode
type: string
default: multiply
notes: sets the mode in which the effect works

multiply multiplies the dropped amounts by factor (rounded)
add drops a stack of one or all of items in addition to normal drops
replace drops a stack of one or all of items instead of normal drops
the amount per stack for add and replace is taken from amounts (which needs to be the same length as items)
_the corresponding entry gets multiplied by factor

all
type: boolean
default: true
notes: if true drops all items, if false only drop one of them by random choice

required:
optional: mode, factor, items, amounts, all

back to top

### impulse

back to top

### lightning _usable as:_ active

damaging
type: boolean
default: false
notes: if true the lightning strike causes damage and fire

required:
optional: delay, offset, relative, damaging

back to top

### manipulate-item _usable as:_ active

action
type: string
notes: how to handle the item, can be:

drop, destroy, steal

location
type: string list
notes: where to manipulate items, can be:

hand, quickbar (includes hand), inventory, armor (all armor parts), boots, leggings, chestplate, helmet

all
type: boolean
default: false
notes: if false, one stack is chosen at random from all stacks inside the specified locations

amount
type: int
default: the whole stack
notes: how much of each stack is affected, if bigger than the stack size, the whole stack is affected

protected-for
type: int
default: 0
notes: how many seconds the item cannot be picked up by players if action is set to drop

whitelist
type: material list
default: []
notes: if a whitelist is specified, only stacks of the given materials are taken into account

blacklist
type: material list
default: []
notes: if a blacklist is specified, given materials are ignored. No effect if whitelist is specified.

required: action, location
optional: all, amount, protected-for, self (false), target (true)

back to top

### set-combat-state

back to top

### teleport _(not yet implemented)_

back to top

### transmute-item _usable as:_ active

from
type: material list
default: []

from-amounts
type: int list
default: []
notes: each entry corresponds to one entry of from

to
type: material list
default: []

to-amounts
type: int list
default: []
notes: each entry corresponds to one entry of to

consume-all
type: boolean
default: false
notes: if false, not all items in from are consumed, only the one held in hand, or if not applicable one chosen at random

random-result
type: boolean
default: false
notes: if true not all items in to are created, only one chosen at random

required: from, from-amounts, to, to-amounts
optional: consume-all, random-result

back to top

### trigger-active _usable as:_ passive

action
type: string
notes: can be the name of any active defined

on-movement
type: boolean
default: false
notes: if true, can trigger on a player moving from one block to another

from
type: material list
default: []
notes: for on-movement, specifies upon leaving which blocks the effect triggers, works like tools. To make the effect trigger upon arrival onto specific blocks, use versus

required: action
optional: on-movement, from, delay

back to top

## Examples