public

Rpg Maker Developers Group

Simple enough for a child, powerful enough for a developer

2 Followers

VXACEDoubleX RMVXA State Triggers

BMM Archive · July 15, 2026

Preserved forum archive. This topic stores the original first post and locally mirrored RPG Maker Web attachments when available. It is posted by the BMMPlay archive account, not by the original creator.

Original Source

  • Original title: DoubleX RMVXA State Triggers
  • Original author: DoubleX
  • Original date: April 11, 2015
  • Source thread: https://forums.rpgmakerweb.com/threads/doublex-rmvxa-state-triggers.38777/
  • Source forum path: Game Development Engines > Ruby Game System (RGSS) Scripts > RGSS3 Scripts (RMVX Ace)

Summary

Purpose Sets some states to trigger additional effects when conditions are met Games using this script None so far

Archived First Post

Purpose


Sets some states to trigger additional effects when conditions are met


Games using this script


None so far


Notetag

Spoiler




# * State Notetags: |
# 1. <timing state trigger: stcx, stax> |
# - Sets a state to trigger stax when timing and stcx are met |
# - timing can be add, turn, remove or custom timings set by you |
# - add means the state's just added |
# - turn means the state's remaining turn's just reduced by 1 |
# - remove means the state's just removed |
# - while means the stax effects are active as long as the state's active|
# - timing must only consist of alphanumeric characters |
# - stcx can be set in State Trigger Condition Notetag Values |
# - stax can be set in State Trigger Action Notetag Values |
Spoiler


Code:
    #--------------------------------------------------------------------------|
    #  State Trigger Condition Notetag Values                                  |
    #  - Setups stcx used by this script's notetags                            |
    #--------------------------------------------------------------------------|
    # stcx are read at:
    # 1. RPG::State
    #    - (@state_triggers[$1.downcase.to_sym] ||= []).push(
    #      [$2.downcase, $3.downcase]) in load_state_triggers_notes
    # stcx are used at:
    # 1. Game_BattlerBase
    #    - triggers.any? { |trigger| st.send(trigger[0], self, state) } in
    #      meet_any_state_trigger?
    #    - st.send(trigger[0], self, state) in state_trigger_features
    # 2. Game_Battler
    #    - st.send(trigger[1], self) if st.send(trigger[0], self) in
    #      exec_state_triggers
    # stcx are strings names of methods under DoubleX_RMVXA::State_Triggers
    # stcx names can only use alphanumeric characters and can't use uppercase
    # letters
    # battler is the battler calling the stcx
    # state is the state using the stcx
    # The below stcx are examples added to help you set your stcx
    # You can freely use, rewrite and/or delete these examples

    # Sets the state trigger condition as always true
    def self.stc1(battler, state)
      true
    end

    # Sets the state trigger condition as always false
    def self.stc2(battler, state)
      false
    end

    # Sets the state trigger condition as needing switch with id x to be on
    def self.stc3(battler, state)
      $game_switches[x]
    end

    # Sets the state trigger condition as needing the state using this stcx to
    # have its number of remaining turns greater than x
    def self.stc4(battler, state)
      battler.instance_exec { @state_turns[state_id] > x }
    end

    # Adds new stcx here
    

    #--------------------------------------------------------------------------|
    #  State Trigger Action Notetag Values                                     |
    #  - Setups stax used by this script's notetags                            |
    #--------------------------------------------------------------------------| 
    # stax are read at:
    # 1. RPG::State
    #    - (@state_triggers[$1.downcase.to_sym] ||= []).push(
    #      [$2.downcase, $3.downcase]) in load_state_triggers_notes
    # stax are used at:
    # 1. Game_BattlerBase
    #    - }.collect! { |trigger| st.send(trigger[1], self, state) }.flatten! in
    #      state_trigger_features
    # 2. Game_Battler
    #    - st.send(trigger[1], self) if st.send(trigger[0], self) in
    #      exec_state_triggers
    # stax are strings of names of methods under DoubleX_RMVXA::State_Triggers
    # stax names can only use alphanumeric characters and can't use uppercase
    # letters
    # battler is the battler calling the stax
    # state is the state using the stax
    # If the timing using the stax is while, the stax must return an array of
    # RPG::BaseItem::Feature
    # You can refer to Game_BattlerBase and RPG::BaseItem::Feature for more info
    # The below stax are examples added to help you set your stax
    # You can freely use, rewrite and/or delete these examples

    # Sets the state trigger action as what Special Effect Escape does
    # This stax's not supposed to work with the timing while as it doesn't
    # return an array of RPG::BaseItem::Feature
    def self.sta1(battler, state)
      battler.hide
    end

    # Sets the state trigger action as calling common event with id
    # common_event_id
    # This stax's not supposed to work with the timing while as it doesn't
    # return an array of RPG::BaseItem::Feature
    def self.sta2(battler, state)
      $game_temp.reserve_common_event(common_event_id)
    end

    # Sets the state trigger action as executing damage equal to the value of
    # game variable with id x to self with type equal to that of skill with id
    # equal to y
    # This stax's not supposed to work with the timing while as it doesn't
    # return an array of RPG::BaseItem::Feature
    def self.sta3(battler, state)
      battler.result.clear
      battler.result.make_damage($game_variables[x], $data_skills[y])
      battler.execute_damage(battler)
    end

    # Sets the state trigger action as multiplying the battler's atk by x * 100%
    # This stax's supposed to work with the timing while as it returns an array
    # of RPG::BaseItem::Feature
    def self.sta4(battler, state)
      [RPG::BaseItem::Feature.new(21, 2, x)]
    end

    # Adds new stax here



Script Call

Spoiler




# * Battler manipulations |
# 1. exec_state_triggers(state_id, timing) |
# - Executes all state triggers with timing timing of state with id |
# state_id |
# 2. meet_any_state_trigger?(state, timing) |
# - Checks if any stcx with timing timing of state state is met |
# 3. state_trigger_features(state, timing) |
# - Returns an array of features returned by all stax meeting stcx with |
# timing timing of state |
# - This script call's not supposed to work with timing add, turn nor |
# remove but supposed to work with timing while |



Prerequisites


Abilities:


1. Decent RGSS3 scripting proficiency to fully utilize this script


Terms Of Use


You shall keep this script's Script Info part's contents intact


You shalln't claim that this script is written by anyone other than DoubleX or his aliases


None of the above applies to DoubleX or his/her aliases


Instructions


Open the script editor and put this script into an open slot between Materials and Main. Save to take effect.


FAQ


None so far


Authors


DoubleX


Changelog

Spoiler




# v1.03b(GMT 1400 10-5-2016): |
# 1. timing while won't replace but will combine the state's existing |
# features with all stax meeting the corresponding stcx |
# v1.03a(GMT 1500 9-5-2016): |
# 1. adding the timing while to <timing state trigger: stcx, stax> |
# v1.02a(GMT 1300 26-2-2016): |
# 1. stcx and stax take the state calling them as an argument as well |
# v1.01b(GMT 0300 7-11-2015): |
# 1. Notetag values are now symbols of methods in the configuration regions |
# 2. This script doesn't need DoubleX RMVXA State Triggers Compatibility to |
# be compatible with all its addressed scripts |
# 3. Further improved this script's compatibility, efficiency and simplicity|
# v1.01a(GMT 1100 8-5-2015): |
# 1. Lets users use state triggers with timings set by them |
# v1.00g(GMT 1600 4-5-2015): |
# 1. Improved this script's efficiency |
# v1.00f(GMT 0300 25-4-2015): |
# 1. Improved this script's effectiveness |
# v1.00e(GMT 1400 21-4-2015): |
# 1. Further improved this script's robustness |
# v1.00d(GMT 1500 14-4-2015): |
# 1. Improved this script's robustness |
# v1.00c(GMT 0200 12-4-2015): |
# 1. Fixed triggering remove actions upon adding state resists bug |
# 2. Fixed not triggering remove actions upon death, escape and recovery bug|
# v1.00b(GMT 1400 11-4-2015): |
# 1. Fixed not supporting multiple notetags on the same state bug |
# v1.00a(GMT 1100 11-4-2015): |
# 1. 1st version of this script finished |



View attachment (DoubleX)State Triggers v1.03b.rar

Downloads / Referenced Files

Log in to download

Log in, then follow the RPG Maker Developers Group to see these download links.

Log in to download

License / Terms Note

Terms Of Use You shall keep this script's Script Info part's contents intact You shalln't claim that this script is written by anyone other than DoubleX or his aliases None of the above applies to DoubleX or his/her aliases

Creator Claims / Removal

If you are the original creator and want this listing reassigned, edited, or removed, join BMMPlay and contact the moderators with proof that matches the original RPG Maker Web profile, linked GitHub, itch.io page, or another public creator identity.

#039#rgss3#script-archive

Replies (0)

No replies yet.

0 replies 1 view

Log in to reply.

User Avatar