📝

Notetags

❤️ HP System for Events

<hp: value>

Setup a hp bar to an event

Value: Can be A number, Min number - Max number, Enemy Name from Database, actor, actor id, minion, actor id, v[X]
<hp: Ghost> (or name your event as Ghost) - Make this event becomes "Ghost" enemy from database
<hp: actor, 1> - Make this event becomes actor id 1 from database
<hp: minion, 1> - Use actor 1 data but have separate hp value from other minion.
<hp: v[5]> - Set this event's HP to the value of Game Variable 5

HP Bar Customization

Notetag Description
<hpy: x>
Adjust offset y of the event hp bar
<hpColor: #00000>
Change HP bar color for event
<hpScale: x>
Scale the size of HP bar up. Default is 1.0
<radius: x>
Adjust the radius that will show event hp bar when player is near
<hideHP>
Hide hp bar from the event, visually

⚔️ Damage System

<dmg: value>

The damage this event will deal to others. This only assign damage value to the event. To calculate damage, you need to use plugin command "Increase/Decrease Character HP"

Value: Can be A number, Min number - Max Number, v[variable id], A Skill Name from Database, weapon, 2nd weapon
<dmg: Fireball> - Deal damage from a skill in databases called Fireball, using its formula and traits
<dmg: v[2]> - Deal damage using value from variable id 2
<dmg: weapon> - Deal damage using the attacker's equipped weapon (slot 1), including its traits/states
<dmg: 2nd weapon> - Same, but using the weapon equipped in slot 2

Combat Timing

<cooldown: x>

Damage over time effects that will continue after x frames have passed. Only for conditional branch
checkCollide(source, target, cooldown (write as is)")

<cooldown: 15> Event will return true for collision checking every 15 frames instead of just once

Hitbox Configuration

<hitbox: width, height, offset x, offset y>

Hitbox of this event. Every event has the default hitbox is 1, 1, 0, 0 unless otherwise. (Units: width/height in tiles, offsets in pixels)

<hitbox: 2, 2> or <hitbox: 3, 5, 15, 30>

Assign Attacker in Formula

<attacker: x>

Optional notetag to manually assign the attacker in a skill’s formula box. If left blank, the plugin will auto-detect the attacker. Most of the time, you won't need to use this.

X: actor id, Enemy Name from Database
<attacker: actor 2> - If a skill formula is a.atk - b.def, a.atk will be actor 2.atk

🎨 Visual Customization

Color Effects

<hue: -180 to 180>

Hue the event, min -180, max 180, you can hue in Aseprite for preview

Position Adjustment

<sprite offset: x, y>

Offset the event's sprite. Only the sprite!

🎯 Movement & Interaction

Notetag Description
<ignore>
Only usable for movement route moveToClosest, which to not move to events with this notetag
<pass>
Player can step on any event with this notetag regardless of where they're being placed
<platform: size>
Transform the event into a platform. Characters stepping on platform will move along with it. Size is in pixel unit. If size isn't assigned (you only write <platform>) then size will be 48 pixel by default.
💬

Comments

🔄 Event Behavior

Passive Events

<passive: x, y, z, etc>

The common event ids/names that this event will call in parallel. It's like calling a common event in a parallel event but on another layer that isn't being affected by any commands inside that event.

<passive: 1, 2, 3, 4, 5> or <passive: Player Attack, Player Defend>

Animation Control

<stepping speed: x>

Adjust the walking animation speed of the event. The lower the number, the faster the animation plays.

<stepping speed: 8>

Event Sliding

<no sliding>

Stop the event from moving instead of sliding, when it moves toward an obstacle or screen boundary.

Rotation Sprite Lock

<lock rotation sprite>

Lock the sprite graphic when the event is rotating (via rotateTo). The event will still rotate normally (for collision/direction purposes), but its sprite image won't visually spin.

🏗️ Collision System

Collision Area

<collisionRect: width, height, offset X, offset Y>

Expand your event collision area (not hitbox). All in tile unit (still support decimal). Offset doesn't move the rect but move your player/event location. Rect when expand will expand with anchor top-left, which also is where the player/event is standing

<collisionRect: 3, 3, 0, 0> Expand by 3 tiles horizontally and vertically
<collisionRect: 3, 3, 1, 1> Same but also make event sprite to be at the center

Hitbox Collision Control

<skip collision>

The event will be ignored from conditional branch checkCollide on any page with this comment

👨‍👧‍👦 Parent-Child System

Child Events

<child of: x>

Make the event to be a child of another event/player. Child events are just regular events with attributes to move along with the player.

X:player, event id, event name, <event notetag>

Child Positioning

<child offset: x, y>

Adjust position of the child from the parent

<child offset: 50, 0> - Will move along with its parent but with offset x = 50

🖱️ Mouse Interaction

Clickable Events

<clickable: range>

Event with this comment can be activated via mouse click and only when the player is within range

<clickable> - Display outline and can be triggered if player is within 1 tiles
<clickable: 3> - Display outline and can be triggered if player is within 3 tiles
🔀

Conditional Branch

❤️ HP Monitoring

HP(eventId/'player')

Check the current HP of an event or player

HP(1) > 0 or HP(this._eventId) <= 0 or HP('player') > 0
maxHP(eventId/'player')

Check the MaxHP of an event or player

maxHP('player') >= 100 or HP(this._eventId) >= maxHP(this._eventId)
hpDecreased(eventId)

Check if the event just got its HP decreased

hpDecreased(this._eventId)
gotHit(eventId)

Check if the event just got collided by another event (result of condition checkCollide)

gotHit(this._eventId)

💥 Collision Checking

checkCollide(source, target, cooldown?)

Check collision between source and target ONCE (unless cooldown is assigned). The hitbox size/position is determined by notetag <hitbox: width, height, offset x, offset y> from both source of target (still work even if you don't assign that).

Argument Accepted Values Description
Source event Id, 'player', this._eventId The source event performing the check.
Target 'player', 'event name', '<event notetag>', ['<notetag>', 'name']
'impassable X' (X = tileset alphabet, e.g. 'impassable BCDE'. 'A' checks only A3+A4
'region X'
'map boundary' - target reached the edge of a non-looping map
'passable' - target's own hitbox is currently over a passable tile
The target event, region, tile, or map edge to collide with.
Cooldown a number or 'cooldown' Wait frames before triggering again. 'cooldown' reads from event's <cooldown: X> notetag.
checkCollide(this._eventId, 'Bullet') - Return true if this event collided an event named Bullet
checkCollide('player', 'Bullet') - Return true if player collided an event named Bullet
checkCollide('player', 'Bullet', 60) - Return true if player collided an event named Bullet and will return true again after 60 frames have passed
checkCollide('player', 'impassable BCDE') - Return true if player collided an impassable tile belong to tileset B, C, D or E
checkCollide('player', ['Bullet', 'Sword') - Return true if player collided an event named Bullet or Sword
checkCollide('player', 'map boundary') - Return true if player reached the edge of the map (map isn't set to loop)
checkCollide(this._eventId, 'passable') - Return true if this event's hitbox is currently over a passable tile

📡 Range Checking

checkRange(source, range, target, eye view?, block region ID, '<exception notetag>')

Check range from source to target, like a detection system. By default, it's a circle detection.

Argument Accepted Values Description
Source event Id, this._eventId, 'this', 'player', '<event notetag>', 'event name' The source event performing the check.
Target 'player', 'this', '<event notetag>', 'region X', 'passable' The target event, region, or tile to detect. 'this' checks range to the event running this conditional branch. 'passable' checks if any passable tile exists within range (not tied to a specific event).
Range A number (tile units) The maximum distance to check.
Eye View A degree number (e.g., 90, 360) Converts circle detection to a directional cone (flashlight view).
Block Region ID A Region ID Cone detection will be blocked by this region (target can take cover).
Exception Notetag '<notetag>' Targets with this notetag are ignored, UNLESS that target's current page has a comment containing <detectable> - in that case, the exception is overridden and the target is detected anyway.
checkRange(this._eventId, 7, 'player') - Return true if this event is within 7 tiles from player
checkRange('player', 7, '<enemy>') - Return true if player is within 7 tiles from an event with notetag <enemy>
checkRange(this._eventId, 7, '<enemy>', 90, 1) - Return true if this event is within 7 tiles + eye view of 90 degree from an event with notetag <enemy>. Return false if <enemy> is covered by region id 1

Sound Detection

checkSound(source, max volume, range)

Check if there's any sound playing from other events around source event within x range.

checkSound(this._eventId, 50, 6) - Any sound above 50 volume playing from other events within 6 tiles

🔍 Object in Front Checking

checkInFront(source, tile range, target)

Return true if target is found within a number of tiles directly in front of source, in the direction source is currently facing.

Source: event Id , this._eventId , 'player'
Tile Range: a number - How many tiles ahead to check, starting from the tile directly in front
Target: '<event notetag>', 'event name', 'event', 'impassable', 'impassable X' (X = tileset alphabet, e.g. 'impassable BCDE'), 'blocked'

'event'  - True if any event at all is standing on a checked tile, regardless of notetag/name
'impassable'  - True if a checked tile's terrain is impassable (regardless of tileset)
'impassable X'  - True if a checked tile is impassable specifically due to tileset layer X. 'A' checks only A3+A4
'blocked'  - True if a checked tile's terrain is impassable, or it has an event that you cannot walk through

checkInFront(this._eventId, 2, '<key>') - Return true if an event with notetag <key> is within 2 tiles directly in front of this event
checkInFront('player', 1, 'Door') - Return true if an event named Door is directly in front of player
checkInFront(this._eventId, 1, 'event') - Return true if any event is standing on the tile directly in front
checkInFront(this._eventId, 1, 'impassable') - Return true if the tile directly in front is impassable terrain
checkInFront(this._eventId, 1, 'impassable BCDE') - Return true if the tile directly in front is impassable and belongs to tileset B, C, D or E
checkInFront(this._eventId, 1, 'blocked') - Return true if the tile directly in front would actually block movement

📊 Local Variables

localVariable(eventId, var name)

Check local variable of an event

Var Name:If assigned, check local variable with this name. Otherwise, use default local variable name. This is similar to naming your variable to a custom name. If you don't name it then it'd still work. It'd be like localVariable(eventId, 'default')
localVariable(this._eventId) >= 5 - Return true if local var 'default' of this event is >= 5
localVariable(this._eventId, 'fire') >= 5 - Same but instead of 'default', it's 'fire'

Other Event Local Variables

Check local variable of another event that is nearby the source event

eventLocalVariable(source, var name, direction)
Source: event ID , 'player' , this._eventId
Direction: front , behind
The direction of the source that will use to look for nearby event. Either check for the front or the back. If not assigned, it'll check for the event underneath the source
eventLocalVariable(this._eventId) >= 5 - Return true if local var of event underneath this event is >+ 5
eventLocalVariable('player', 'fire', 'behind') == "haha" - Return true if local var named 'fire' of event behind player is haha

Percentage Checks

localPercentage(eventId, percentage)

Check local percentage of an event. It's similar to when you set a variable from range 1 ~ 50 and the result will be given randomly from 1 - 50.

localPercentage(this._eventId, 50) - 50% chance this condition will return true

⚔️ Equipment & Inventory Checks

Weapon Notetag Checks

equippedWeaponNotetag('<notetag>', slot)

Return the value from the notetag box of equipped weapon

equippedWeaponNotetag('capacity') >= 7 - Return true if notetag box of equipped weapon in slot 1 contains notetag <capacity: number> and number is >= 7
equippedWeaponNotetag('element', 2) == 'fire' - Return true if notetag box of equipped weapon in slot 2 has notetag <element: fire>

Weapon Property Checks

equippedWpn('keyword', slot)

Return a property of the equipped weapon. If "slot" isn't assigned then it'll check the first weapon slot. Compare the result yourself with ==, >=, etc.

Keyword Returns Type
id
Weapon database ID Number
name
Weapon name String
element
Weapon's Attack Element trait name (from the weapon's Traits tab, not its Damage settings) String
type
Weapon type name String
hp
MaxHP bonus Number
mp
MaxMP bonus Number
atk
ATK value Number
def
DEF value Number
mat
MAT value Number
mdf
MDF value Number
agi
AGI value Number
luk
LUK value Number
equippedWpn('element') == 'Fire' - Return true if equipped weapon's Attack Element trait in slot 1 is Fire
equippedWpn('atk', 2) >= 10 - Return true if equipped weapon's ATK in slot 2 is 10 or higher

Shield Check

equippedShield()

Return true if party leader is equipping a shield

Armor Property Checks

equippedArm('keyword', slot)

Return a property of the equipped armor. If slot is not assigned, it scan all armor you're equipping. If slot is assigned, it'll only get property from the armor of that slot. Compare the result yourself with ==, >=, etc.

Keyword Returns Type
id
Armor database ID Number
name
Armor name String
type
Armor type name String
hp
MaxHP bonus Number
mp
MaxMP bonus Number
atk
ATK value Number
def
DEF value Number
mat
MAT value Number
mdf
MDF value Number
agi
AGI value Number
luk
LUK value Number
equippedArm('name').includes('Iron Shield') - No slot given, checks all equipped armor. Return true if any equipped armor piece is named Iron Shield
equippedArm('def', 3) >= 10 - Return true if equipped armor in slot 3's DEF is 10 or higher

Skill Checks

learnedSkill(actor Id/'actor name', skill iD/'skill name')

Return true if an actor has learned a certain skill

learnedSkill('player', 'Fireball') - Return true if player has learned Fireball
learnedSkill('David', 'Blizzard') - Return true if actor named "David" has learned Blizzard

Actor Property Checks

actor(actor id/'actor name', 'keyword')

Return a property of an actor. Actor id/name also supports 'player' for the party leader. Compare the result yourself with ==, >=, etc.

Keyword Returns Type
id
Actor database ID Number
name
Actor name String
hp
Current HP Number
mhp
or
maxhp
Max HP Number
mp
Current MP Number
mmp
or
maxmp
Max MP Number
tp
Current TP Number
maxtp
Max TP Number
atk
ATK value Number
def
DEF value Number
mat
or
magic
MAT value Number
mdf
or
mdef
MDF value Number
agi
or
spd
or
speed
AGI value Number
luk
or
luck
LUK value Number
level
or
lv
Actor level Number
exp
Total EXP Number
class
Current class name String
dead
True if actor is dead Boolean
alive
True if actor is alive Boolean
actor('player', 'hp') >= 50 - Return true if party leader's HP is 50 or higher
actor('David', 'level') >= 10 - Return true if actor named "David" is level 10 or higher

Inventory Quantity Checks

amount('type', id or 'name')

Return the amount of item/weapon/armor that the player possesses.

amount('item', 1) > 7 - Return true if player has more than 7 of item id 1
amount('armor', 'Heavy Armor') == 1 - Return true if player has 1 'Heavy Armor' in inventory
amount('weapon', 5) >= 4 - Return true if player has 5 weapon id 5 in inventory

🎮 Gamepad & Control Checks

checkGamepad()

Return true if a gamepad is connected

isRightStickPushed()

Return true if right stick of gamepad is being pushed

checkGamepadInput()

Return the raw {x, y} axis value of the right stick when pushed, or null if not pushed/no gamepad. Use this instead of isRightStickPushed() when you need the actual direction, not just a boolean

leftStickDegree()

Return the current degree (0 - 360) the left stick is being pushed to, or null if not pushed/no gamepad

isLeftStickDegree(value)

Return true if left stick is being pushed to this degree (0 - 360)

Input.isTriggered('key')

Return true if key is pressed and released once (Requires Hendrix Keyboard Gamepad plugin)

Input.isTriggered('n') - Return true if button N just pressed
Input.isTriggered('leftclick') - Return true if just Left Clicked
Input.isTriggered('rightclick') - Return true if just Right Clicked
Input.isPressed('key')

Return true if key is being pressed and hold (Requires Hendrix Keyboard Gamepad plugin)

🎯 Direction & Target Lock Checks

checkDirection(target, number)
Number: A number from trackpad
Number: 4 -> left, 6 -> right. Support 8 directions
checkDirection(this._eventId, 8) or checkDirection('player', 9)

Target Locking

isLockingATarget(source)

See if the source is target locking something. Support 'player' , this._eventId  or an event Id  

isBeingTargetLocked(target)

See if the target is being locked by something. Support 'player' , this._eventId  or an event Id  

🦸🏻 Game States Checks

checkLevelUp()

Return true when party leader has just leveled up

partyLeader(actor id or 'actor name')

Return true if party leader is id x or has a certain name

hasState(target, state id or 'state name')

Return true if target is affected by a certain state. Target supports event id , this._eventId or 'player'

hasState('player', 4) - Return true if player is affected by state id 4
hasState(this._eventId, 'Poison') - Return true if this event is affected by state named Poison

🔧 Advanced Conditions

Performance & Optimization

inViewport(eventId, extra buffer)

A useful conditional that is mostly used for performance optimization. It'll return true if events are on screen and will return false if it's offscreen.

inViewport(this._eventId) - Check with extra 5 pixels offscreen
inViewport(this._eventId, 48) - Check with extra 48 pixels offscreen

Notetag & Name Checks

notetag(eventId, '<notetag>') or notetag('<notetag>')

A versatile conditional branch that will either check if an event has a certain notetag or an event with a certain notetag exists on map.

notetag('<enemy>')True if there's an event with notetag <enemy> on map
notetag(this._eventId, '<enemy>')True if the current event has notetag <enemy>
notetag('<crop>', this._eventId)True if an event with notetag <crop> is at the same position of current event
checkName(eventId)

Check if eventId's name is something

checkName(this._eventId) == "Santa"
checkNameOnMap(name)

Check if there's an event with this name on current map

checkNameOnMap('Santa')

Hitbox Overlap Check

checkHitboxOverlap(event1, event2)

Check if two character's hitboxes are overlapping. Unlike checkCollide, this takes actual character objects (not id/name) and returns instantly with no cooldown, useful for custom collision logic in a script call.

checkHitboxOverlap($gameMap.event(this._eventId), $gamePlayer) - Return true if this event's hitbox overlaps player's hitbox

🕺 Platform & Jumping

Platform Checks

onPlatform(target)

Return true if target is standing on a platform event (event with notetag <platform>). Target supports an event Id  or 'player'

Tile ID Check

isOnTileId(target, tileId)

Return true if target is standing on a tile with this tile ID. Target supports an event Id  or 'player'

Jumping Checks

checkJump(target, 'state')

Return true if target is either started jumping, is jumping or landed

Target: event Id 'player'
Number: startedJump jumping landed
⚠️
This check is for plugin command "Jumping"
📜

Script Call

⚔️ Weapon Functions

Gun System (check database notes section) 

$gameSystem.gunAmmo(slot)

Return the current ammo loaded to equipped weapon from a certain slot

$gameSystem.gunCapacity(slot)

Return the capacity of equipped weapon from a certain slot

$gameSystem.gunAmmoInInventory(slot)

Return the amount of ammo item in inventory that belong to a weapon equipped from a certain slot

To use in Conditional Branches, you can write them in short:
gunAmmo(slot) gunCapacity(slot) gunAmmoInInventory(slot)

💥 Collision Damage

$gameMap.event(CollisionManager.lastSourceEventId).getDamageFromNoteTag()

Return the damage from notetag <dmg: x-y> of the event just collided

⚠️
Best to use with Control Variable. You'll almost never use this function, so ignore it

🦸🏻 Characters & Sprites

⚠️
The benefit of using these functions via a Script Call is they won't be affected by player movement, which is an issue of command Movement Route. But, unless you're making a complex mechanic, most of the time you won't use these.

Change Sprites

$gameMap.event(eventId).setImage('filename', character index) or $gamePlayer.setImage('filename', character index)
$gameMap.event(this._eventId).setImage('$haha', 0)
Change this event image to $haha.png. This is a single file so character index should always be 0
$gameMap.event(3).setImage('group', 1)
Change this event image to group.png and select index 1

Play Frames

$gameMap.event(eventId).playFrames(first frame, last frame, speed) or $gamePlayer.playFrames(first frame, last frame, speed)

Make event or player play frames from their spritesheet. Requires Hendrix Animation Solution plugin

$gamePlayer.playFrames(1, 6, 3)
Make player play from frame 1 to 6 by the speed of "wait 3" (just like Wait command) each frame

Set Frames

$gameMap.event(eventId).toFrame(frame index) or $gamePlayer.toFrame(frame index)

Make event or player set to a frame from their spritesheet. Requires Hendrix Animation Solution plugin

$gameMap.event(this._eventId).toFrame(3)
Change current event image to frame 3 of its spritesheet

🔧 Utility Functions

Vortex Effects

sucking(source, 'notetag', range, speedboost)

Suck events to the source. Source supports event id or 'player'  

sucking(this._eventId, '<enemy>', 8) Suck all events with notetag <enemy> within 8 tiles to current event
sucking(this._eventId, '<enemy>', 8, 7)Suck all events with notetag <enemy> within 8 tiles to current event whilst increasing the walking speed of those events to 7

Variable Access

localVar(event id, 'var name')

Return the value of the local variable of an event.

localVar(this._eventId) or localVar(this._eventId, 'fire')

Direction Info

getDirection(target)

Get target's current direction. Target supports event id or 'player'  

Rotation Info

checkDegree(target)

Get target's current rotation degree (0 - 360), for characters that were rotated via rotateTo or similar 360-degree movement. Target supports event id or 'player'

Count Event on Map

mapCount(target)

Return the amount of event currently on map. Target supports event name  or <notetag>   

mapCount("ball") or mapCount('<ball>')

Current Map Name

mapName()

Return the name of the current map.

mapName() == "Town01" - Return true if current map's name is exactly Town01
mapName().includes('Dungeon') - Return true if current map's name contains "Dungeon"

Set Self Switch (Any Event)

setSelfSwitch(eventId, letter, value)

Set a self switch (A, B, C, D, or a custom-named self switch) of any event by ID. Unlike selfSwitch() from Movement Route, this can be called from a Script Call to target any event, not just "this" character.

setSelfSwitch(3, 'A', true) - Turn ON self switch A of event id 3
setSelfSwitch(this._eventId, 'fire', false) - Turn OFF custom self switch named "fire" of this event
🏃

Movement Route

Call these script in a Set Movement Route command

🚶 Basic Movement

Self Switch Control

selfSwitch(letter, true/false)

Same as Control Self Switch but you can call this in Movement Route.

selfSwitch('A', true) or selfSwitch('B', false)

Movement

dash(distance)

Move the player to the direction he's moving. Why use this instead of Move Forward? Because this supports 360 degrees and in pixel so it's compatible with Joystick.

dash(3)
setMoveSpeed(number)

By default, RPG Maker only supports max speed of 6. With this, you can break that limit.

setMoveSpeed(8)

🎯 Target Lock

lockTarget(target, range (10), autoSwitch (true), faceWhenIdle (true), runFreely (true), targetImage, indicatorPosition ('above'), indicatorAnimation ('pulse')

Make the character lock to a target. He/she will always look at this target. You'll find this feature common in action games

lockTarget('player')Make the character locks to player
lockTarget('<enemy>')Make the character locks to a nearby event with notetag <enemy> within 10 tiles. Will auto switch to nearest target
lockTarget('<enemy>', 7, false)Make the character locks to a nearby event with notetag <enemy> within 7 tiles and will only lock to that event, ignoring nearer options

You can add more param to have more cases:
faceWhenIdle (true/false) - Character looks at locked target when not moving
runFreely (true/false) - Character looks at locked target when running/dashing (if character is player)
targetImage ('filename') - Display this image (indicator) on locked target (filename in picture folder without .png)
indicatorPosition ('above'/'middle'/'foot') - Position of indicator image on the locked target
indicatorAnimation ('pulse'/'static'/'updown') - Animation of indicator image

🧭 Directional Movement

Turn Toward Target

turnToward(target, force direction, max distance)

Turn the character direction to the target.

Target: event Id , '<event notetag>' , 'player' , 'mouse or gamepad' , 'playerLockedTarget' , 'eventLockedTarget' 
Force Direction: true/false
If assigned, lock or unlock the character to the current direction, similar to Directional Fix ON
Max Distance: a number
If assigned, character will only turn toward the target within this range (tile unit)

mouse or gamepad - Turn torward mouse/joystick position
playerLockedTarget - Turn character to the target that player is locking
eventLockedTarget - Turn character to the target that current event is locking

turnToward('<enemy>') - Turn toward a nearby event with notetag <enemy>
turnToward('<enemy>', false, 7)Same as above, but won't turn to events that are out of reach by 7 tiles
turnToward('mouse or gamepad', true) - Turn to mouse/joystick direction and turn on Directional Fix

360-Degree Rotation 

rotateTo(destination, search range, lerp frames)

Rotate the character (support 360 degrees) to a destinatino. Best for projectiles.

Destination: map cordination , a number (rotation degree) , '<event notetag>' , 'mouse or gamepad' , 'player moving direction' , 'playerLockedTarget' , 'eventLockedTarget'  
Search range: a number
If assigned, limit the search for destination up to this range (tile unit)
Lerp frames: a number
Every case of Destination supports this as the last param. If assigned, instead of snapping instantly, the character will smoothly rotate to the destination over this many frames

map cordination  - Written as x, y. Rotate character to this cordinate
a number  - A single number (no y) is treated as a rotation degree (0-360), not an event ID
mouse or gamepad - Rotate character  to the position of mouse/joystick
player moving direction  - Rotate character to the same direction player is moving
playerLockedTarget  - Rotate character to the target that player is locking
eventLockedTarget  - Rotate character to the target that current event is locking

rotateTo(15, 30) Rotate the character to map coordination x15 y30
rotateTo(90) Rotate the character to face 90 degrees
rotateTo('<enemy>')Rotate the character to nearby event with notetag <enemy>
rotateTo('<enemy>', 7) Rotate the character to any event with notetag <enemy> within 7 tiles distance
rotateTo('player', 20) Rotate the character to player, smoothly over 20 frames instead of snapping instantly

Direction Sharing

shareDirection(target)

Make the character to have the same direction as the target

Target:event id , '<event notetag>' , 'player' , 'playerLockedTarget' , 'eventLockedTarget'

playerLockedTarget - Share the same direction of the target that player is locking
eventLockedTarget - Share the same direction of the target that current event is locking

🦘 Jump & Teleport

Random Jumping

jumpToNearby(max distance, jump on another event)

Jump the character to nearby positions from its current position. I use it for loots dropping from monsters or from a chest.

jumpToNearby(3) - Jump to nearby tiles within 3 tiles distance, not on events
jumpToNearby(3, true) - Same but will jump on other events if they're in the way

Targeted Jumping

jumpTo(destination, range limit/jump by x tiles)

A versatile command that will jump the character to a target. In some cases, the param will act differently, please read examples carefully to further understand the feature.

Destination: map cordination , event id , 'player' , 'forward' , 'backward' , 'away' , 'cursor' , 'right stick' , '<enemy notetag>' , 'playerLockedTarget' , 'eventLockedTarget'
 Range Limit/Jump by X Tiles: a number
If assigned, jump up to this range or jump this many range, depending on what you used from X, Y (tile unit)

forward  - Jump forward from character's direction
backward  - Jump backward from character's direction
away  - Jump away from player
cursor  - Jump to mouse location
right stick  - Jump to gamepad's right stick degree
playerLockedTarget  - Jump to the target that player is locking
eventLockedTarget  - Jump to the target that current character is locking

jumpTo(15, 30) Jump the character to map coordination x15, y30
jumpTo('player')Jump the character to game player
jumpTo('player', 5)Jump the character to game player but limit up to 5 tiles
jumpTo('away', 3)Jump the character away from the game player by 3 tiles
jumpTo('right stick', 3)Jump to to right stick degree by 3 tiles
jumpTo('cursor') - Jump to cursor location
jumpTo('cursor', 3) - Jump to cursor location but up to 3 tiles

Teleportation

teleportTo(destination, min distance, max distance/exception)

A versatile command that will teleport the character to a target. In some cases, the param will act differently, please read examples carefully to further understand the feature.

Destination: map cordination, 'player', '<event notetag>', 'forward', 'playerLockedTarget', 'eventLockedTarget'
Min distance: a number
If assigned, teleport to destination with minimum distance by X range (tile unit). This param becomes 
Max search range/Exception: a number
If assigned, teleport to destination but only if this destination is within X range (tile unit). This param becomes Exception when used with forward  

forward  - Teleport character forward
playerLockedTarget - Teleport character to the target that player is locking
eventLockedTarget  - Teleport character to the target that this character is locking

teleportTo('player')Teleport the character to the player position
teleportTo('<enemy>')Teleport to nearby event with notetag <enemy>
teleportTo('<enemy>', 3)Teleport to nearby event with notetag <enemy> outside minimum distance of 3 tiles
teleportTo('<enemy>', 3, 7)Teleport to a random location around a nearby event with notetag <enemy>, between 3 and 7 tiles away from that event
teleportTo('forward', 5)Teleport forward by 5 tiles. Won't teleport to impassable tiles
teleportTo('forward', 5, 'A3 A4 B')Teleport forward by 5 tiles. Will teleport anywhere passable except impassable tiles from tileset A3, A4 and B.

👟 Advanced Movement

Pixel Movement (Requires DotMoveSystem)

moveToPosition(destination, y/rotate along path?)

A versatile command that will move the character to a target in pixel. In some cases, the params will act differently, please read examples carefully to further understand the feature.

Destination:map cordination, 'mouse or gamepad', 'forward', 'backward', 'player', '<event notetag>', 'comment: x', 'playerLockedTarget', 'eventLockedTarget', 'detected target', 'region X'

map cordination  - Written in format x, y
mouse or gamepad  - Move to mouse position or gamepad's joystick degree
comment: x  - Move to an event with comment "x"(green text) in its active page
playerLockedTarget  - Move to the target that player is locking
eventLockedTarget  - Move to the target that current character is locking
forward  - Move forward (only if it's a rotated event)
backward  - Move backward (only if it's a rotated event)
region X  - Move to the nearest tile belonging to region ID X

 detected target  - Move to the target that got detected by this event's checkRange conditional branch

moveToPosition('region 15')Move to the nearest tile belonging to region 15
moveToPosition(15, 7) Move to this map cordination
moveToPosition('mouse or gamepad') Move to cursor or right stick if gamepad is connected
moveToPosition('forward') - Move the character to wherever it's rotated to (support 360 degrees) by 1 pixel per call. Event needs to be rotated in order to use forward. Best for projectiles
moveToPosition('forward', 5) - Move the character to wherever it's rotated to (support 360 degrees) by 5 tiles. Event needs to be rotated in order to use forward. Best for projectiles
moveToPosition('backward') - Move the character backward, opposite of its current rotation (support 360 degrees), by 1 pixel per call. Best for projectiles that need to retreat
moveToPosition('backward', 5) - Move the character backward, opposite of its current rotation (support 360 degrees), by 5 tiles. Event needs to be rotated in order to use backward. Best for projectiles that need to retreat
moveToPosition('player') Move the character to game player position by 1 pixel unit per call
moveToPosition('player', 'player') Move the character to game player position till reached by one call
moveToPosition('player - 0.5', 'player + 6')Move to game player position with additional x - 0.5 tile and y + 6 tiles
moveToPosition('comment: crop')Move the character to an event that its page has comment "crop"
moveToPosition('cursor', true)Move to mouse location and also rotate the character along the path. Best for projectiles
moveToPosition('<enemy>') - Move to nearby event with notetag <enemy>

Grid-Based Pathfinding

moveToClosest(destination, perfect pathfinding?, wait till finish?, exception)

Move the character to a target grid-based, support pathfinding.

Destination: 'player', '<event notetag>', 'playerLockedTarget', 'eventLockedTarget', 'detected target', 'region X'
Perfect Pathfinding: true/false
Add path finding if true
Wait till finish: true/false
If true, one call of this movement route script will wait till character reached destination before processing the next command
Exception: If Exception is an event <notetag> and this event is the destination, moveToClosest will skip moving the event to this event.
Example: Move "this" event to notetag <destination>. There are 2 events with notetag <destination> on map. Event <destination> B has notetag <exception>. The result if "this" event will move to event <destination> A.

playerLockedTarget Move to the target that player is locking
eventLockedTarget Move to the target that current event is locking
detected target Move to the target that current event's conditional branch checkRange returned true

moveToClosest('<enemy>') - Move to event with notetag <enemy>
moveToClosest('<enemy>', true) - Move to event with notetag <enemy> with path finding
moveToClosest('<enemy>', true, true) Same, but will wait till character reached <enemy> before processing the next command
moveToClosest('<enemy>', true, true, '<friendly>')Same, but if the event <enemy> also has notetag <friendly> then character won't move toward it. If current page of <friendly> event has comment <ignore>, then exception rule won't apply on that page.

🦸🏻 Character Sprites

Make your character play animation with a spritesheet, unlimited frame. A very important feature to upper the quality of your game as characters animations are the soul of every game.

⚠️
These commands require Hendrix Animation Solution plugin
playFrames(first frame, last frame, speed)

Make character play its spritesheet from first frame to last frame with a certain speed

playFrames(1, 6, 3) - Play current spritesheet from frame 1 to 6, with the speed of 3 (like Wait 3 frames)
toFrame(frame index)

Make character set its current frame to a another frame from its spritesheet

toFrame(3) - Switch current frame to frame 3
📅

Database Notes

⚔️ Weapons

Setup a Gun

<capacity: x> - Make this gun max capacity is X
<starting ammo: x> - Make this gun when picked up to have X ammo
<ammo item: x> - Make this gun requires ammo item X to shoot. X can be item Id or item name
⚠️
X supports expression

☠️ States

Inflict a State

<state common event: x, y, z...>

Call this common event on the event that got hit. Can be multiple common events. Can use either common event name or their Ids

🔌

Plugin Commands

🌟 Event Spawning & Management

Spawn Event

Spawn an Event from the Template Map to the Current Map.

Event Id/Name: The ID or name of the event you want to spawn. It must match the ID or name of the event from the template map. Support expressions
X, Y Position: The location you want to spawn the event. If you put just one word then it'll be used for both X and Y
this/player - Spawn on position of current event/player
this front/player front - Spawn right in front of the current event/player, facing their direction
this front + 20/player front + 20 - Same, but pushed an extra 20 pixels further in front
region X - Spawn on all region X tiles
cursor - Spawn at mouse cursor position
random(a:b) - Generate random number, a is min, b is max
<notetag> near: this/player/eventId - Spawn at nearest event with notetag to a target
Initial Rotation Degree: When spawned, this event will be rotating to this degree
a number - Point to this degree (0-360)
mouse or gamepad - Rotate to mouse or gamepad if available
mouse or gamepad + 60 - Rotate to mouse/gamepad plus 60 degrees to the right
<notetag> - Point to an event with said notetag
this / player - Rotate to this event/player
Turn Toward: Make the spawned event turn toward a target as soon as it's spawned
player - Turn toward player
this - Turn toward the event that called this spawn command
event name - Turn toward an event with this name
<notetag> - Turn toward the nearest event with this notetag
1-8 - Turn toward a fixed numpad direction (2 = down, 4 = left, 6 = right, 8 = up, etc.)
Not Spawn On: Disallow event to be spawned on this destination
impassable A3 B C - Not spawn on impassable tiles belong to A3 B C
impassable events - Not spawn on events that block movement
Attach To: Make the spawned event a child of a target, so it moves along with it (uses the same system as comment <child of: x>)
none - Don't attach (default)
this - Attach to the event that called this spawn command
player - Attach to player
Grid-Based: Spawn in grid-based instead of pixel-based
Permanent Event: Save this event across game maps (make it act like a regular event)
⚠️
Spawn in pixel requires Dot Move System plugin

Destroy Event

Destroy the events you spawned from Template Map or a regular RPG Maker event

Event Target: The target to destroy
this - Destroy current event
event Id - Destroy event on map with this id
event name - Destroy any events with this name
<notetag> - Destroy any events with this notetag
Destroy Nearby Events: If assigned, destroy events that is near Event Target instead
event name - Destroy any events with this name near Event Target
<notetag> - Destroy any events with this notetag near Event Target
Destroy Permanently: If false, after destroying the event, if player returns to the map, the event will re-spawn. If true, the event destroyed from the game permanently.

Recover Destroyed Events

Recovers regular RPG Maker events that were permanently destroyed (Destroy Event with Destroy Permanently ON), matched by name, across every map in the game - not just the current one.

Event Name: Recover every permanently destroyed event with this name, on every map. If you're currently standing on a map where a match is recovered, it reappears immediately - no need to leave and come back.
⚠️
Only works for regular RPG Maker events destroyed via Destroy Event/destroyRegularEvent with Permanent ON. Spawned/Dynamic events use a different system and aren't tracked here.

Create Dynamic Event

Create an event that contains some properties that will only last an amount of time before it destroys itself. Best used to create hitboxes.

When your character swings a sword, create a hitbox at the sword.
Name: The name of this event. Defaults to "DynamicHitbox" if left empty
Notetag: The notetags this event will have
Comment: The comments this event will have
Destroy after: If assigned, destroy this event after X frame
X, Y Position: Supports the same cases as Spawn Event command, except region X - that case is only available in Spawn Event
Rotation Degree: When spawned, this event will be rotating to this degree. Support expressions
a number - Point to this degree (0-360)
mouse or gamepad - Rotate to mouse or gamepad if available
this/player - Rotate to match this event/player
mouse or gamepad + 60 - Rotate to mouse/gamepad plus 60 degrees to the right
<notetag> - Point to the nearest event with this notetag
Turn Toward: Make the spawned event turn toward a target as soon as it's spawned
player - Turn toward player
this - Turn toward the event that called this spawn command
event name - Turn toward an event with this name
<notetag> - Turn toward the nearest event with this notetag
1-8 - Turn toward a fixed numpad direction (2 = down, 4 = left, 6 = right, 8 = up, etc.)
Attach To: Make this dynamic event attach to a target
<notetag> - Attach to an event with this notetag
this/player - Attach to the current event or player

Destroy Dynamic Event

Destroy all events created dynamically

Notetag to match: Destroy all events with a certain notetag
<notetag> - Destroy all events with this notetag
<notetag> near: this/player/eventId - Destroy a dynamic event with this notetag that is near either this event/player/or an eventId

❤️ HP & Health Management

Increase / Decrease Character HP

Update HP characters. Will automatically detect whether it's an event enemy or an actor event

Target: The target to update HP
player
this - current event
all - any events with hp
event id  - an event with this id
HP Change:+ or - an amount of HP. Support expressions
a number
damage  - Use value from notetag <dmg: x> of event that just collided with Target event
player weapon  - Use player's ATK + equipped weapon's ATK
player 2nd weapon  - Use player's ATK + equipped weapon in shield slot's ATK
Exceed Max Health: Allow HP to exceed the initial maximum HP when gaining HP

HP Bar Visibility

Show/hide HP bar of an event (just visually)

Remove Event HP Bar

Remove an event's hp bar completely

🎨 Visual Effects & Display

Pop Text Value

Display a text onto an event, can be used to show damage dealt

Event Id Support this for current eventevent idplayer 
Value: The number/text that will display onto the event
damage  - Display value x from notetag <dmg: x> from event that just collided with Event Id
exp  / gold  - Display exp or gold from defeated enemy
player weapon  - Display player's ATK + equipped weapon's ATK
player 2nd weapon  - Display player's ATK + equipped weapon in shield slot's ATK
number text other expressions  
Animation Type: The animation for the text
Stick to map: Stick the text to map position, make it not moving along with camera

Break Character

Immediately break the event calling this command into pieces

Character Effects

Play certain sprites effect on character like spin, rotate, bounce, etc

Change Priority

Change priority of an event.

Display Weapon

Display a sprite at a character that point to mouse cursor / gamepad right stick.

Swing Weapon

Using a picture file as a weapon and swing it

Camera Update

Stop/Resume camera focusing on player

Freeze Time

Freeze all events and player for an amount of time

Pause Events

Pause all events (except the event calling this command) from moving or processing commands

🎮 Event Control & Behavior

Collision Status

When false, conditional branch checkCollide won't return true even if it collided with the event calling this command

Whatever you're doing, stop!

Immediately stop movement routes of the event calling this command

Child and Parent

Make an event to be a child of another event/player. The child will move along with its parent whilst still being able to do its own things

Change Event Hitbox

Change the hitbox of an event dynamically

Assign New Passive

Add or remove a common event from comment <passive: x, x, x> if it exists in the current event

Dynamic passable

Make an event to be passable (able to walk on it) even if it's an obstacle

knockback

Push a target away from another target

Who to knockback (target): this , player , event id , <event notetag>  
Knockback From: Target will be pushed away from this character. Support event id player <event notetag>  

add state

Inflict a state to a target

remove state

Remove a state from the target that has been inflicted by a state. Will remove state from event/player calling this command

Actor Use Skill

Makes this event use a skill, triggering that skill's database effects (e.g. its Common Event effect). Only works on actor events, set up via notetag <hp: actor, id>. Also pays the skill's MP/TP cost - does nothing if the actor can't afford it.

Use Skill: The skill to use. Ignored if Use Skill Randomly is ON
Use Skill Randomly: If ON, ignores Use Skill and picks a random skill from the actor's current skill set instead
Force Target: If ON, any plugin command arg or script call in the triggered skill's Common Event that targets 'player' is automatically changed to 'this' instead. This is good enough if you're lazy to make multiple versions of the same common event that the skill triggers.

🔄 Switches & Variables

Control Self Switch

Similar to RPG Maker default control self-switch but slightly more advanced. It can automatically find the right page to self-switch into. Support extra self switch set via naming Switches as "self switch [name]."

When your enemy dies, it'll self-switch into a page with comment <death>. You can leave that page A B C D whatever, it'll auto-find the right letter.

Control Local Variable

Create variables that belong to the event calling this command

Reset All Local Variables

Reset all local variables of events to 0

Quick Reset Switches & Variables

Reset all switches with a specific keyword in their name to false, Reset all variables with a specific keyword in their name to 0

Any switches and variables that have [reset] in their name will be reset to false and 0

Reset Event Pages

Undo all self switches and extra self switches from events with a certain name throughout the whole game.

🎮 Player Controls & Actions

Player Movement

Block player from moving

Change Player Hitbox

Change player hitbox dynamically

FAST WEAPON EQUIP

Immediately equip the next weapon available in inventory

JUMPING

Make a target jump!

Target Lock

Make player locks onto an event. Player will always look at this event. This is a common gameplay mechanic that you'll often see in action games

What do you want?: Enable, disable the locking feature or lock the next avaiable target
Look at Notetag: Lock to a nearby event with this notetag
Range: Only lock events inside this range (tile unit)
Auto Switch Target: Automatically switch to the most nearest target
Player Run Freely: When player dashing/running, player won't look at locked target
Indicator Image: Show this image on the locked target

Gun - armor & capacity control

Modify ammo/magazine capacity of equipped weapon that has note <capacity: x> and <ammo: item name>. A great command to create a ranged weapon like bow and gun

Gun - reload

Reload the weapon by decrease item name (<ammo: item name>)

Mount

Mount an event.

⚙️ Game System & Mechanics

Game Mode

Control the game mode settings.

Gain Item Randomly

Give the player a random item from the database.

Additional Features

🔄 Extended Self Switches

self switch X

If an event with a page has a switch named self switch X, that switch becomes a self-switch of that page. This feature is to break the limitation of having only 4 self switches A B C D

??
Tip: This allows you to have unlimited self switches beyond the default A, B, C, D limitation. Simply name any switch "self switch [name]" and it will function as a self switch for that event. To switch page to custom created self switch [name], use plugin command Control Self Switch and switch via a comment
RPG Maker Action Combat Plugin Documentation