Event Chain Reactions VisuStella MZ

From Yanfly.moe Wiki
Jump to navigation Jump to search

Welcome to the wiki! This is where you can find resources from Yanfly.moe, Ækashics.moe,
VisuStella, Caz Wolf, Fallen Angel Olivia, Atelier Irina, and other affiliated content creators.



Download

System

This is a plugin created for RPG Maker MZ.

InstallPluginsMz.png

UpdatePlugins.png

Troubleshooting.jpg

Click here for help on how to install plugins and an explanation on the Tier Hierarchy System.

Click here to learn how to update plugins.

Click here for how to troubleshoot plugins if you get an error.


Masterarbeit Writer


EventChainReact PressurePlate.gif

EventChainReact Conduct.gif

EventChainReact Decay.gif

EventChainReact Submerge.gif


VisuStella MZ

This plugin is a part of the VisuStella MZ Plugin Library.

Click here if you want to help support VisuStella on Patreon.

Introduction

VisuMZ.113.jpg

Making events react to anything but the player requires so much work in RPG Maker MZ. This plugin will change that by adding in many different ways to cause event changes to take place. This includes streamlined forms of push and pull, catalysts that cause reactions, pressure plates and heavy objects, chargers and conductors, a form of timed decay, and objects that submerge when moved into the water.

Features include all (but not limited to) the following:

  • Plugin Command added to let you push events with more efficiency and less headache, allowing them to only move and play sound effects when possible.
  • The ability to pull objects, an absolute headache to event, is now also added through the form of a Plugin Command for ease of use.
  • Events can react to calaytic events that spread energy outward. When reacting, the target event(s) can turn on/off switches and self switches.
  • Plugin Commands added to help you create catalysts at specific coordinates so you can fire off your own chain reactions.
  • Objects can be assigned as a heavy weight and placed on top of pressure plate events to turn on switches when there's a heavy object on top or turn off switches when there isn't one.
  • Events can produce charges and others can conduct them. When events have a conduction current running through them, they can become powered up and turn on switches. When they don't, those switches are turned off.
  • Events can decay over time. When the decay timer runs out, switches can be turned on or off.
  • Events can submerge into the water if pushed into it. When done, they can become bridges for the player or other events to walk over.

Requirements

This plugin is made for RPG Maker MZ. This will not work in other iterations of RPG Maker.

Required Plugin List

This plugin requires the above listed plugins to be installed inside your game's Plugin Manager list in order to work. You cannot start your game with this plugin enabled without the listed plugins.


Tier 3

This plugin is a Tier 3 plugin. Place it under other plugins of lower tier value on your Plugin Manager list (ie: 0, 1, 2, 3, 4, 5).

This is to ensure that your plugins will have the best compatibility with the rest of the VisuStella MZ Plugin library.


Event Mechanics

Pushing and Pulling

EventChainReact PushPull.gif

While push and pull mechanics can be achieved through common event systems, sometimes, hiccups can occur that makes life a little bit more difficult, such as determining if an event has successfully moved in order to decide if a sound effect should be played or not.

This plugin streamlines the push and pull mechanics by incorporating them into simplistic Plugin Commands for you to use as you wish.

---

Push

Pushing an event requires the player to be located adjacent to the event (meaning next to the event and not diagonally). The direction the player is facing will determine the direction the event will go. If there is a viable tile for the event to move, the event will be "pushed" in that direction. Pushing can only travel in the down, left, right, up directions.

Through the push-related Plugin Commands, you can decide if you want the player to move forward alongside the event. If you do, both the player's and the event's speeds will become synchronized to whoever has the lower move speed. Otherwise, if the player does not move with the event, then the speed at which the event is pushed will be its own.

The player cannot push an event onto a ladder tile nor can the player push while on a ladder tile.

Pushing an event can have a sound effect. This sound effect will only play if the event is pushed successfully.

---

Pull

Pulling an event requires the player to be located adjacent to the event (meaning next to the event and not diagonally). There must be an empty tile behind the player for the player to back into. If there is a viable tile for the player to move to, the player will move backwards into that tile while "pulling" the event into the player's previous position. Pulling can only travel in the down, left, right, up directions.

Unlike the push-related Plugin Commands, the pull-related Plugin Commands do not have an option to determine if the player can or cannot move. The player character will always move backwards while pulling the event backwards. Both the player's and event's move speeds will be synchronized to whoever has the lower move speed.

Pulling an event can have a sound effect. This sound effect will only play if the event is pulled successfully.

---

Tidbit

Pushing and pulling event objects do not inherently have chain reaction effects. However, there's a lot of position-based chain reactions for events meaning that being able to push or pull the events into position will cause a potential chain reaction to occur.


Catalysts and Reactors

EventChainReact Catalyst.gif

A new type of event interaction added through this plugin comes in the form of catalysts and reactors. These are things like events that are sources of fire that when put near flammable events will make those flammable events burst aflame.

---

Catalysts

A catalyst event is one that spreads a reactionary source like a "flame". The flame's spread direction can be determined through notetags. If there are any nearby events that would react to the catalyst, those events will change switches and/or self switches as instructed, allowing a chain reaction to occur.

For example, a torch is considered a "flame" source and therefore serves as a catalyst for the "flame" reactor type. If placed near flammable objects like dried plants, those dried plants can react to it by burning up.

A catalyst event will spread this reactionary source in timed intervals. The reason why they're not immediate or instant is to prevent lag as well as some catalysts work slower than others, even in real life scenarios. This is to mimic the nature of how catalysts work in ways that are familiar to players experience the chain reactions.

Catalysts don't have to come from events. They can be manually started with Plugin Commands at specific coordinates.

---

Reactors

A reactor event is one that, upon exposure to a specific type of catalyst, like a "flame", will react a certain way, by either turning ON or OFF a switch, multiple switches, or self switches.

For example, dried plants will react to a "flame" type catalyst. When they are near a "flame" source like a torch, the dried plant event will turn on a self switch to change it into a burning flame sprite, indicating that it's been set on fire.

Reactor events can also trigger from non-event catalysts through Plugin Commands, assuming that the Plugin Command catalyst aims at the reactor event with a matching catalyst type.

---

Types

An event chain reaction is based off a "type". The catalyst will have a type that it spreads while the target event will have a type that it reacts to. These catalyst types can be named to your needs as the game developer.

Catalyst events can generate multiple types and reactor events can react to multiple types as well. Some events can spread one type as a catalyst while reacting to another type. Mix and match them as needed.

---

Knowing how to utilize catalysts and reactors will allow you to create a very interactable environment in your game. Dried plants can be set aflame and spread to other nearby dried plants. When on fire, they can be doused with water creating puddles. The puddles can conduct electricity and more.


Pressure Plates and Heavy Objects

EventChainReact PressurePlate.gif

A common mechanic you see in RPG puzzles is the pressure plate. When a heavy object is on top of it, something will turn on or open. When there is no heavy object on top, something will turn off or close. The pressure plate chain reaction works similarly here.

---

Pressure Plates

Pressure plate events are events that will trigger a switch or self switch to the ON position if there is a heavy object located on top of it. If there isn't, then the linked switch or self switches will be set to OFF.

Once an event is declared a pressure plate, it will automatically change its priority type to "Below characters", allowing the player and other events to travel on top of it.

A common example of a pressure plate event used would be a button on the floor linked to a normally closed gate. Both the pressure plate button and the gate are linked to a switch. If that switch is ON, then the gate opens allowing the player to pass through it. A common solution to this puzzle would be that the player needs to find a heavy object to hold down the pressure plate and pass through the gate.

---

Heavy Objects

Events marked as heavy objects are capable of activating pressure plates on the map. They just simply have to share the same coordinates as the pressure plates they're on top of to activate them.

When events are marked as heavy objects, their priority level becomes "Same as characters" in order to be able to register the connection between heavy objects and pressure plates.

The Plugin Parameters allow you to determine if the player and the player's followers are considered heavy objects. This means that the player is capable of activating pressure plates if he/she is considered heavy. However this can ruin certain types of games so there is an option to turn that off.

The Plugin Parameters also allow you to set events with "Same as Characters" priority level to automatically be heavy objects. This allows wandering NPC's to set on pressure plates and activate them as well. Events that are "Below characters" or "Above characters" will be exempt from this automatic assignment by default.

---

Switches and Self Switches

Unlike catalysts and reactors, decay, and submerging, the switches and self switches here will only turn ON and OFF under specific conditions. If a heavy object is on top of the pressure plate, the assigned switch(es) will turn ON. If there is no heavy object on top of the pressure plate, then the assigned switch(es) will turn OFF.

---

Heavy objects are the key to making pressure plates work. Therefore, it's important to be able to move around the heavy objects, too. Pushing and pulling can make this a reality. By assigning the ability to push or pull the heavy objects, pressure plate utility becomes very accessible.


Chargers and Conductors

EventChainReact Conduct.gif

Conduction is a new event mechanic added through this plugin. Some events can produce a type of current while another event conducts it. Conducting events will have a switch, multiple switches, and/or self switches that turn ON or OFF depending on the events' conduction state.

---

Chargers

Charger events can emit a "current" of a specific type like "electricity". This electricity is emitted in the specified direction as a current. Any nearby events that conduct this type of current will have their linked switch(es) turned ON or OFF.

An event charger is always emitting the current instantaneously. Therefore, anything that conducts the matching current type will also be set to the appropriate conduction state a frame or two later and remain that way.

Event chargers do not interact with reactors or catalysts inherently (though you can make them do so with catalyst and/or reactor notetags).

---

Conductors

Conductor events can receive a current and change its conduction state. They can take something like "electricity", conduct it, and pass it to other conductor events. Conductors will only conduct the specified current "type" marked by its notetag(s) and/or comment tag(s).

Once conducted, any linked switch(es) or self switch(es) to the conductor event will turn ON. If there is no matching current running through it, those linked switch(es) will turn OFF.

Event chargers do not interact with reactors or catalysts inherently (though you can make them do so with catalyst and/or reactor notetags).

---

Direction

Both chargers and conductors have a direction in which the current travels. By default, if no notetags or comment tags are used to control this, then the current will emit to adjacent conductor events. Otherwise, you can control the flow of a current to go left and right, up and down, etc.

The same notetag and comment tag is used for both chargers and conductors.

---

Types

Event chargers and conductors are based off a "type" of current. Conductors can only receive and pass on matching current types from chargers and/or other conductors. These current types can be named to your needs as the game developer.

Charger events can generate multiple types of currents and the conductor events can conduct to multiple types as well. Some events can charge on type of current while conducting another. Mix and match them as needed.

---

Switches and Self Switches

Unlike catalysts and reactors, decay, and submerging, the switches and self switches here will only turn ON and OFF under specific conditions. If a conductor has a current running through it, the assigned switch(es) will turn ON. If there is no current going through the conductor, then the assigned switch(es) will turn OFF.

---

Chargers and conductors allow you to create environmental interactions that differ from catalysts and reactions. Where catalysts and reactions typically have a one directional change, the chargers and conductors utilize the current and conduction system to produce a toggleable change capable of shifting back and forth.

This can be used for a system where the player can choose which door to temporarily open or close depending on where the current goes based off the conductors on the map.


Decay

EventChainReact Decay.gif

Not all events need to interact with one another to produce a reaction. An event with decay mechanic will simply react to itself existing for a set amount of time on the map.

---

Decay Timing

A decaying event can be set to decay in a preset amount of frames or a custom amount of frames (your choice as the developer). Once the decay timer is set, it automatically starts counting down. Once it reaches 0, then any linked switch(es) or self switch(es) will turn ON or OFF.

The event does not necessarily have to remove itself once the decay timer has reached 0. It can if it wants to, but all the same, the event can remain in its current state if it doesn't.

If the event page changes while a decay countdown is happening, the countdown timer will reset to whatever is the newest countdown timer on the event page's comments. If an event notetag is used to encompass the global countdown timer, then it will reset to that timer each time the page changes forward.

---

This can be used for a number of things, ranging from bombs to ever so slightly transforming events. It removes the need to utilize a parallel process event to make a change.


Submerge

EventChainReact Submerge.gif

Events can now interact with water tiles by submerging into them. If an event is submerged, any linked switch(es) and/or self switch(es) will turn ON or OFF. These can be used to form temporary bridges and the like.

---

Submersive

When an object is submersive, it can be moved into a water tile. Immediate contact with the water tile will cause it to submerge and linked switch(es) and/or self switch(es) will be turned ON or OFF depending on the notetags and/or comment tags used.

Once an event is moved into the water and submerges, it can no longer be pushed or pulled.

---

Bridge

A common usage for submersive events is to change them into a temporary bridge that lets the player and other events to travel over what was otherwise intraversable waters. Though this normally could be done with events that use graphics from the tileset with passabilities, becoming a bridge was not available to events that used graphics from other sources.

The notetag/comment tag allows the event to become a bridge and allowing it to become passable no matter from which direction. This ignores the tileset graphic source requirement and binds it to a tag instead.

---

This feature is best used with the push/pull mechanics. Submersive objects forming temporary land bridges allows for a more interactable environment.

---

VisuStella MZ Compatibility

While this plugin is compatible with the majority of the VisuStella MZ plugin library, it is not compatible with specific plugins or specific features. This section will highlight the main plugins/features that will not be compatible with this plugin or put focus on how the make certain features compatible.

---

Core Engine VisuStella MZ

Due to the nature of this plugin, the VisuStella MZ Core Engine's plugin parameter "Smart Event Collision" will be automatically turned on in order for the features provided by this plugin to properly work.

---

Warning! RPG Maker MZ Version 1.5.0+ Water-Tile Bug!

Warning.jpg

It seems like there's a new bug that occurs if you create a tileset from scratch in RPG Maker MZ version 1.5.0+ and version 1.6.0+! What this bug does is it causes many tiles to become water tiles without intending to. You can find this out by turning off all the plugins in your project, putting a Ship or Boat on what are normally ground tiles, and then seeing the Ship or Boat traverse through it.

Naturally, this causes problems with the Event Chain Reactions plugin as the water tiles are important for submerging reactions.

There are two ways to fix this. We cannot fix it through code in this plugin as it's a problem that involves the tileset json data there are ways to work around it so that you can get the proper water-flags to go where they need to be at.

---

  1. Copy a working un-bugged tileset onto the currently bugged one and reapply the tile features like passability, terrain tags, etc. This will make sure the water-passability tiles get copied over correctly.
  2. If you're on RPG Maker MZ version 1.5.0 or above, select a working un-bugged tileset (usually a pre-existing tileset when a new project is made), click the "Copy Page" button, go to the bugged tileset and press "Paste Page". You'll have to reapply any different properties like passabilities and terrain tags, but the water tile flags should now be working properly.

---

Notetags

RPG Maker MZ's editor is unable to allow for custom traits/properties that a game dev may wish to associate with a database object, event, map, etc. Notetags are used to work around such limitations by allowing the game dev to tag certain traits/properties using specific Notetags declared by the related plugin.

Here is a list of Notetag(s) that you may use.

The following are notetags that have been added through this plugin. These notetags will not work with your game if this plugin is OFF or not present.

---

Positioning-Related Notetags

EventChainReact PushPull.gif

---

<Push>

- Used for: Event Notetags and Event Page Comment Tags
- Allows this event to be pushed when using the Plugin Command:
  "Positioning: Push Player Front".
- If this is placed inside a page's comment, the effect will only occur
  if that event page is currently active.

---

<Pull>

- Used for: Actor, Class, Skill, Item, Weapon, Armor, Enemy, State Notetags
- Allows this event to be pushed when using the Plugin Command:
  "Positioning: Pull Player Front".
- If this is placed inside a page's comment, the effect will only occur
  if that event page is currently active.

---

<Push Pull>
<Pull Push>

- Used for: Event Notetags and Event Page Comment Tags
- Allows this event to be pushed when using the Plugin Commands:
  "Positioning: Push Player Front" and "Positioning: Pull Player Front".
- The notetag variants do the same thing. Which you choose to use is
  entirely up to personal preference.
- If this is placed inside a page's comment, the effect will only occur
  if that event page is currently active.

---

Catalyst and Reactor-Related Notetags

EventChainReact Catalyst.gif

---

<type speed Catalyst: range>

- Used for: Event Notetags and Event Page Comment Tags
- Makes this event into a 'type' catalyst source that spreads at 'speed'
  intervals onto events within 'range'.
- Replace 'type' with a string representing the reaction type to be spread
  to other event reactors of the same 'type'.
  - This is NOT case sensitive.
- Replace 'speed' with any of the following text to represent the repeating
  interval at which the catalyst event spreads:
  - 'tick', 'fast', 'quick', 'short', 'average', 'slow', 'long', 'late'
  - Do NOT include the quotes.
  - Faster speeds can potentially cause lag, so use slower speeds to ensure
    FPS stability.
- Replace 'range' with any of the following to determine the range:
  - 'exact' - Coordinates must equal the catalyst event's X, Y position.
  - 'front' - Coordinates equal the tile in front of the catalyst.
  - 'back' - Coordinates equal the tile behind the catalyst.
  - 'cw' - Coordinates equal the tile clockwise from catalyst.
  - 'ccw' - Coordinates equal the tile counterclockwise from catalyst.
  - 'adjacent' - Any of the 4 tiles surrounding the catalyst.
  - 'near' - Any of the 8 tiles surrounding the catalyst.
  - 'down' - Coordinates equal the tile below the catalyst on the map.
  - 'left' - Coordinates equal the tile left of the catalyst on the map.
  - 'right' - Coordinates equal the tile right of the catalyst on the map.
  - 'up' - Coordinates equal the tile above the catalyst on the map.
  - 'lower left' - Coordinates equal the tile to catalyst's lower left.
  - 'lower right' - Coordinates equal the tile to catalyst's lower right.
  - 'upper left' - Coordinates equal the tile to catalyst's upper left.
  - 'upper right' - Coordinates equal the tile to catalyst's upper right.
  - Do NOT include the quotes.
- If this is placed inside a page's comment, the effect will only occur
  if that event page is currently active.

---

<type x Frames Catalyst: range>

- Used for: Event Notetags and Event Page Comment Tags
- Makes this event into a 'type' catalyst source that spreads at 'x' frame
  intervals onto events within 'range'.
- Replace 'type' with a string representing the reaction type to be spread
  to other event reactors of the same 'type'.
  - This is NOT case sensitive.
- Replace 'x' with a number representing the number of frames that determine
  the ongoing intervals the catalysts cycle through.
  - Faster speeds can potentially cause lag, so use slower speeds to ensure
    FPS stability.
- Replace 'range' with any of the following to determine the range:
  - 'exact' - Coordinates must equal the catalyst event's X, Y position.
  - 'front' - Coordinates equal the tile in front of the catalyst.
  - 'back' - Coordinates equal the tile behind the catalyst.
  - 'cw' - Coordinates equal the tile clockwise from catalyst.
  - 'ccw' - Coordinates equal the tile counterclockwise from catalyst.
  - 'adjacent' - Any of the 4 tiles surrounding the catalyst.
  - 'near' - Any of the 8 tiles surrounding the catalyst.
  - 'down' - Coordinates equal the tile below the catalyst on the map.
  - 'left' - Coordinates equal the tile left of the catalyst on the map.
  - 'right' - Coordinates equal the tile right of the catalyst on the map.
  - 'up' - Coordinates equal the tile above the catalyst on the map.
  - 'lower left' - Coordinates equal the tile to catalyst's lower left.
  - 'lower right' - Coordinates equal the tile to catalyst's lower right.
  - 'upper left' - Coordinates equal the tile to catalyst's upper left.
  - 'upper right' - Coordinates equal the tile to catalyst's upper right.
  - Do NOT include the quotes.
- If this is placed inside a page's comment, the effect will only occur
  if that event page is currently active.

---

<type Reactor Switch On: x>
<type Reactor Switches On: x, x, x>

<type Reactor Switch Off: x>
<type Reactor Switches Off: x, x, x>

- Used for: Event Notetags and Event Page Comment Tags
- Makes this event into a 'type' reactor that upon a catalyst creating a
  reaction will turn any linked switch(es) or self switch(es) ON or OFF.
  - The ON variant will turn the linked switch ON when a reaction occurs.
  - The OFF variant will turn the linked switch OFF when a reaction occurs.
- Replace 'type' with a string representing the reaction type to be react
  to from catalysts of the same 'type'.
- Replace 'x' with either a number to represent a numeric global switch or
  a letter to represent a native RPG Maker MZ self switch.
  - If a numeric switch value happens to be a self switch or map switch due
    to VisuMZ_1_EventsMoveCore, then it will be treated as such.
  - Insert multiple 'x' values to change multiple switches or self switches
    upon a successful reaction.
- If this is placed inside a page's comment, the effect will only occur
  if that event page is currently active.

---

Pressure Plate and Heavy Object-Related Notetags

EventChainReact PressurePlate.gif

---

<Pressure Plate Switch: x>
<Pressure Plate Switches: x, x, x>

- Used for: Event Notetags and Event Page Comment Tags
- Turns this event into a pressure plate that upon having a heavy object on
  it will trigger any linked switch(es) and self switch(es) to turn ON and
  upon stepping off will also turn them OFF.
- Using this notetag will set the event's priority to "Below characters".
- Replace 'x' with either a number to represent a numeric global switch or
  a letter to represent a native RPG Maker MZ self switch.
  - If a numeric switch value happens to be a self switch or map switch due
    to VisuMZ_1_EventsMoveCore, then it will be treated as such.
  - Insert multiple 'x' values to change multiple switches or self switches
    upon a successful activation.
- If this is placed inside a page's comment, the effect will only occur
  if that event page is currently active.

---

<Heavy>
<Heavy Object>

- Used for: Event Notetags and Event Page Comment Tags
- Marks this event as a heavy object that can stand on top of and activate
  pressure plate events.
- Using this notetag will set the event's priority to "Same as characters".
- If this is placed inside a page's comment, the effect will only occur
  if that event page is currently active.

---

<Not Heavy>
<Not Heavy Object>

- Used for: Event Notetags and Event Page Comment Tags
- Marks this event as an object not heavy enough to activate pressure
  plates events.
- This is used to offset the Plugin Parameter that sets "Same as characters"
  events as heavy objects.
- If this is placed inside a page's comment, the effect will only occur
  if that event page is currently active.

---

<All Pressure Plates Switch: x>
<All Pressure Plates Switches: x, x, x>

- Used for: Map Notetags
- If all native pressure plate events on the map has been stepped on, turn
  ON the switch(es). Otherwise, set the switch(es) to OFF.
- Erased and spawned pressure plate events do not count.
- Replace 'x' with a number to represent a numeric global switch.
  - If a numeric switch value happens to be a map switch or map self due to
    VisuMZ_1_EventsMoveCore, then it will be treated as such.

---

Charger and Conductor-Related Notetags

EventChainReact Conduct.gif

---

<type Charger>

- Used for: Event Notetags and Event Page Comment Tags
- Marks this event as a charger event that produces a 'type' current that
  can be received by same 'type' conductors.
- Replace 'type' with a string representing the current type released from
  this charger event to other conductor events of the same 'type'.
  - This is NOT case sensitive.
- If this is placed inside a page's comment, the effect will only occur
  if that event page is currently active.

---

<type Conductor Switch: x>
<type Conductor Switches: x, x, x>

- Used for: Event Notetags and Event Page Comment Tags
- Marks this event as a conductor event that receives a 'type' current and
  will turn on any linked switch(es) or self switch(es) based on its current
  conduction state.
- Conductor events will also transfer its current to other conductors of the
  same 'type'.
- Replace 'type' with a string representing the current type released from
  this charger event to other conductor events of the same 'type'.
  - This is NOT case sensitive.
- Replace 'x' with either a number to represent a numeric global switch or
  a letter to represent a native RPG Maker MZ self switch.
  - If a numeric switch value happens to be a self switch or map switch due
    to VisuMZ_1_EventsMoveCore, then it will be treated as such.
  - Insert multiple 'x' values to apply multiple switches or self switches
    based on the conduction state.
- If this is placed inside a page's comment, the effect will only occur
  if that event page is currently active.

---

<Current Direction: range>
<Charge Direction: range>
<Conduct Direction: range>

- Used for: Event Notetags and Event Page Comment Tags
- Used for charger events and conductor events to determine which direction
  the current will travel.
- The notetag variants do the same thing. Which you choose to use is
  entirely up to personal preference.
- Replace 'range' with any of the following to determine the range:
  - 'exact' - Coordinates must equal the catalyst event's X, Y position.
  - 'front' - Coordinates equal the tile in front of the catalyst.
  - 'back' - Coordinates equal the tile behind the catalyst.
  - 'cw' - Coordinates equal the tile clockwise from catalyst.
  - 'ccw' - Coordinates equal the tile counterclockwise from catalyst.
  - 'adjacent' - Any of the 4 tiles surrounding the catalyst.
  - 'near' - Any of the 8 tiles surrounding the catalyst.
  - 'down' - Coordinates equal the tile below the catalyst on the map.
  - 'left' - Coordinates equal the tile left of the catalyst on the map.
  - 'right' - Coordinates equal the tile right of the catalyst on the map.
  - 'up' - Coordinates equal the tile above the catalyst on the map.
  - 'lower left' - Coordinates equal the tile to catalyst's lower left.
  - 'lower right' - Coordinates equal the tile to catalyst's lower right.
  - 'upper left' - Coordinates equal the tile to catalyst's upper left.
  - 'upper right' - Coordinates equal the tile to catalyst's upper right.
  - Do NOT include the quotes.
- If this is placed inside a page's comment, the effect will only occur
  if that event page is currently active.

---

Decay-Related Notetags

EventChainReact Decay.gif

---

<speed Decay Switch On: x>
<speed Decay Switches On: x, x, x>

<speed Decay Switch Off: x>
<speed Decay Switches On: x, x, x>

- Used for: Event Notetags and Event Page Comment Tags
- Marks this event as one that upon availability, will start decaying and
  start a countdown timer, where upon reaching 0, any linked switch(es) and
  self switch(es) will have their values changed.
  - The ON variant will turn the linked switch ON when the decay occurs.
  - The OFF variant will turn the linked switch OFF when the decay occurs.
- Replace 'speed' with any of the following text to represent the duration
  time of the decay countdown:
  - 'tick', 'fast', 'quick', 'short', 'average', 'slow', 'long', 'late'
  - Do NOT include the quotes.
- Replace 'x' with either a number to represent a numeric global switch or
  a letter to represent a native RPG Maker MZ self switch.
  - If a numeric switch value happens to be a self switch or map switch due
    to VisuMZ_1_EventsMoveCore, then it will be treated as such.
  - Insert multiple 'x' values to change multiple switches or self switches
    upon the decay countdown reaching 0.
- If this is placed inside a page's comment, the effect will only occur
  if that event page is currently active.

---

<x Frames Decay Switch On: id>
<x Frames Decay Switches On: id, id, id>

<x Frames Decay Switch Off: id>
<x Frames Decay Switches Off: id, id, id>

- Used for: Event Notetags and Event Page Comment Tags
- Marks this event as one that upon availability, will start decaying and
  after x frames, any linked switch(es) and self switch(es) will have their
  values changed.
  - The ON variant will turn the linked switch ON when the decay occurs.
  - The OFF variant will turn the linked switch OFF when the decay occurs.
- Replace 'x' with a number representing the number of frames that determine
  the total frames before the decay occurs.
  - Faster speeds can potentially cause lag, so use slower speeds to ensure
    FPS stability.
- Replace 'id' with either a number to represent a numeric global switch or
  a letter to represent a native RPG Maker MZ self switch.
  - If a numeric switch value happens to be a self switch or map switch due
    to VisuMZ_1_EventsMoveCore, then it will be treated as such.
  - Insert multiple 'id' values to change multiple switches or self switches
    upon the decay countdown reaching 0.
- If this is placed inside a page's comment, the effect will only occur
  if that event page is currently active.

---

Submerge-Related Notetags

EventChainReact Submerge.gif

---

<Submerge Switch On: x>
<Submerge Switches On: x, x, x>

<Submerge Switch Off: x>
<Submerge Switches Off: x, x, x>

- Used for: Event Notetags and Event Page Comment Tags
- Marks this event as a submersive event, which upon being on top of a water
  tile, will instantly alter any linked switch(es) and self switch(es).
  - The ON variant will turn the linked switch ON when the decay occurs.
  - The OFF variant will turn the linked switch OFF when the decay occurs.
- This notetag variant will treat both shallow water and deep water tiles
  the same as one another.
- Replace 'x' with either a number to represent a numeric global switch or
  a letter to represent a native RPG Maker MZ self switch.
  - If a numeric switch value happens to be a self switch or map switch due
    to VisuMZ_1_EventsMoveCore, then it will be treated as such.
  - Insert multiple 'x' values to change multiple switches or self switches
    upon being submerged into water.
- If this is placed inside a page's comment, the effect will only occur
  if that event page is currently active.

---

<Shallow Submerge Switch On: x>
<Shallow Submerge Switches On: x, x, x>

<Shallow Submerge Switch Off: x>
<Shallow Submerge Switches Off: x, x, x>

- Used for: Event Notetags and Event Page Comment Tags
- Marks this event as a submersive event, which upon being on top of a water
  tile, will instantly alter any linked switch(es) and self switch(es).
  - The ON variant will turn the linked switch ON when the decay occurs.
  - The OFF variant will turn the linked switch OFF when the decay occurs.
- This notetag variant will only trigger on shallow water tiles and not
  deep water tiles.
- Replace 'x' with either a number to represent a numeric global switch or
  a letter to represent a native RPG Maker MZ self switch.
  - If a numeric switch value happens to be a self switch or map switch due
    to VisuMZ_1_EventsMoveCore, then it will be treated as such.
  - Insert multiple 'x' values to change multiple switches or self switches
    upon being submerged into shallow water.
- If this is placed inside a page's comment, the effect will only occur
  if that event page is currently active.

---

<Deep Submerge Switch On: x>
<Deep Submerge Switches On: x, x, x>

<Deep Submerge Switch Off: x>
<Deep Submerge Switches Off: x, x, x>

- Used for: Event Notetags and Event Page Comment Tags
- Marks this event as a submersive event, which upon being on top of a water
  tile, will instantly alter any linked switch(es) and self switch(es).
  - The ON variant will turn the linked switch ON when the decay occurs.
  - The OFF variant will turn the linked switch OFF when the decay occurs.
- This notetag variant will only trigger on deep water tiles and not
  shallow water tiles.
- Replace 'x' with either a number to represent a numeric global switch or
  a letter to represent a native RPG Maker MZ self switch.
  - If a numeric switch value happens to be a self switch or map switch due
    to VisuMZ_1_EventsMoveCore, then it will be treated as such.
  - Insert multiple 'x' values to change multiple switches or self switches
    upon being submerged into deep water.
- If this is placed inside a page's comment, the effect will only occur
  if that event page is currently active.

---

<Submerged Effect>

<Submerged Effect: x>

- Used for: Event Notetags and Event Page Comment Tags
- Adds a visual effect to the event, making it bob up and down like at the
  surface of the water.
- Use the <Submerged Effect: x> variant to visually submerge the event
  further, making it appear heavier and deeper in the water.
- Replace 'x' with a number representing how many pixels deep to submerge
  the event visually.
- If this is placed inside a page's comment, the effect will only occur
  if that event page is currently active.

---

<Bridge>

- Used for: Event Notetags and Event Page Comment Tags
- Marks the event as a bridge, allowing the player and other events to walk
  on top of it, even if it is over water.
- Using this notetag will set the event's priority to "Below characters".
- If this is placed inside a page's comment, the effect will only occur
  if that event page is currently active.

---

Useful-Related Notetags

---

<Exit Reset Self Data>

- Used for: Event Notetags ONLY
- When the player leaves the current map, all Self Switches and Self
  Variables related to this event will be reset.
- This notetag is a part of VisuMZ_1_EventsMoveCore but is recommended to be
  listed here with this plugin.

---

Plugin Commands

PluginCommandsMZ.png

Plugin Commands are event commands that are used to call upon functions added by a plugin that aren't inherently a part of RPG Maker MZ.

Here is a list of Plugin Command(s) that you may use:

---

The following are Plugin Commands that come with this plugin. They can be accessed through the Plugin Command event command.

---

Catalyst Plugin Commands

EventChainReact Catalyst.gif

---

EventChainReact Command1.png

Catalyst: Create Catalyst at Event Location
- Creates a catalyst for a spreadable event chain reaction at a target
  event's relative coordinates.

  Event ID:
  - The ID of the event to start catalyst from.
  - Use 0 for current event.
  - You may use JavaScript code.

  Reaction Type:
  - What is the reaction type's string?
  - Case does not matter.

  Relative Location:
  - What is the location of the reaction relative to the event?

---

EventChainReact Command2.png

Catalyst: Create Catalyst at Player Location
- Creates a catalyst for a spreadable event chain reaction at the player's
  relative coordinates.

  Reaction Type:
  - What is the reaction type's string?
  - Case does not matter.

  Relative Location:
  - What is the location of the reaction relative to the player?

---

EventChainReact Command3.png

Catalyst: Create Catalyst at X, Y
- Creates a catalyst for a spreadable event chain reaction at
  X, Y coordinates.

  Reaction Type:
  - What is the reaction type's string?
  - Case does not matter.

  X Coordinate:
  Y Coordinate:
  - Target X/Y coordinate to create catalyst at.
  - You may use JavaScript code.

---

Positioning Plugin Commands

EventChainReact PushPull.gif

---

EventChainReact Command4.png

Positioning: Pull Player Front
- If an event in front the player can be pulled, do so.
- Event requires <Pull> or <Pull Push> notetag.

  Check Touch Triggers?:
  - Check triggers after moving and pulling?

  Sound Effect:
  - Play this sound effect if the event can be pulled.

---

EventChainReact Command5.png

Positioning: Pull This Event
- Pulls this event backward by one tile if possible.
- Requires the player to align up adjacently.

  Check Touch Triggers?:
  - Check triggers after moving and pulling?

  Sound Effect:
  - Play this sound effect if the event can be pulled.

---

EventChainReact Command6.png

Positioning: Push Player Front
- If an event in front the player can be pushed, do so.
- Event requires <Push> or <Push Pull> notetag.

  Move Player Forward?:
  - Move player forward while pushing the event?

    Check Touch Triggers?:
    - Check triggers after moving and pushing?

  Sound Effect:
  - Play this sound effect if the event can be pushed.

---

EventChainReact Command7.png

Positioning: Push This Event
- Pushes this event forward by one tile if possible.
- Requires the player to align up adjacently.

  Move Player Forward?:
  - Move player forward while pushing the event?

    Check Touch Triggers?:
    - Check triggers after moving and pushing?

  Sound Effect:
  - Play this sound effect if the event can be pushed.

---

Plugin Parameters

Pressure Plate Settings

EventChainReact PressurePlate.gif

EventChainReact Param1.png

Pressure Plate-related settings used by this plugin.

---

Settings

 Heavy Player?:
 - Make the player character a "heavy object" capable of activating
   pressure plates?
 Heavy Followers?:
 - Make the player followers "heavy objects" capable of activating
   pressure plates?
 Heavy "Same" Events?:
 - Make events with "Same as Characters" priority capable of
   activating pressure plates?

---

Speed Settings

EventChainReact Decay.gif

EventChainReact Param2.png

Speed-related settings for specific notetags used by this plugin.

---

Settings

 Tick:
 Fast:
 Quick:
 Short:
 Average:
 Slow:
 Long:
 Late:
 - How many frames to pass when using this speed for an Event Chain
   Reaction notetag?

---

Submerge Settings

EventChainReact Submerge.gif

EventChainReact Param3.png

Settings related to the submerge function for this plugin.

---

Sound Effect

 Filename:
 - Filename of the sound effect played.
 Volume:
 - Volume of the sound effect played.
 Pitch:
 - Pitch of the sound effect played.
 Pan:
 - Pan of the sound effect played.

---

Visual

 Submerge Speed:
 - What speed should objects submerge at?
 - Lower numbers are faster.
 - Higher numbers are slower.
 Oscillation Distance:
 - What is the maximum oscillation distance?
 - Lower numbers are closer.
 - Higher numbers are further.
 Submerge Rate:
 - What rate should objects oscillate at?
 - Lower numbers are slower.
 - Higher numbers are faster.

---


Terms of Use

1. These plugins may be used in free or commercial games provided that they have been acquired through legitimate means at VisuStella.com and/or any other official approved VisuStella sources. Exceptions and special circumstances that may prohibit usage will be listed on VisuStella.com.

2. All of the listed coders found in the Credits section of this plugin must be given credit in your games or credited as a collective under the name: "VisuStella".

3. You may edit the source code to suit your needs, so long as you do not claim the source code belongs to you. VisuStella also does not take responsibility for the plugin if any changes have been made to the plugin's code, nor does VisuStella take responsibility for user-provided custom code used for custom control effects including advanced JavaScript notetags and/or plugin parameters that allow custom JavaScript code.

4. You may NOT redistribute these plugins nor take code from this plugin to use as your own. These plugins and their code are only to be downloaded from VisuStella.com and other official/approved VisuStella sources. A list of official/approved sources can also be found on VisuStella.com.

5. VisuStella is not responsible for problems found in your game due to unintended usage, incompatibility problems with plugins outside of the VisuStella MZ library, plugin versions that aren't up to date, nor responsible for the proper working of compatibility patches made by any third parties. VisuStella is not responsible for errors caused by any user-provided custom code used for custom control effects including advanced JavaScript notetags and/or plugin parameters that allow JavaScript code.

6. If a compatibility patch needs to be made through a third party that is unaffiliated with VisuStella that involves using code from the VisuStella MZ library, contact must be made with a member from VisuStella and have it approved. The patch would be placed on VisuStella.com as a free download to the public. Such patches cannot be sold for monetary gain, including commissions, crowdfunding, and/or donations.

7. If this VisuStella MZ plugin is a paid product, all project team members must purchase their own individual copies of the paid product if they are to use it. Usage includes working on related game mechanics, managing related code, and/or using related Plugin Commands and features. Redistribution of the plugin and/or its code to other members of the team is NOT allowed unless they own the plugin itself as that conflicts with Article 4.

8. Any extensions and/or addendums made to this plugin's Terms of Use can be found on VisuStella.com and must be followed.

Terms of Use: Japanese


『VisuStella MZ』利用規約

1. これらのプラグインは、VisuStella.comおよび/または公式に承認されたVisuStellaのソースから合法的な手段で入手したものである限り、フリーゲームや商用ゲームに使用することができます。例外的に使用が禁止される場合については、VisuStella.comの記載をご確認ください。

2. 本プラグインの「クレジット」部分に記載されているすべてのコーダーの名前は、ゲーム内にクレジット表記を行うか、もしくは「VisuStella」という名前の下にまとめて表記する必要があります。

3. ソースコードを自分のものだと主張しない限りは、必要に応じて編集することが可能です。ただしプラグインのコードに変更が加えられた場合、VisuStellaはそのプラグインに対して一切の責任を負いません。高度なJavaScriptのノートタグやJavaScriptコードを許可するプラグインのパラメータを含む、カスタムコントロールエフェクトに使用される、ユーザー提供のカスタムコードについても、VisuStellaは一切の責任を負いません。

4. これらのプラグインやプラグイン内のコードを、「自分のもの」として再配布したり使用したりすることはできません。これらのプラグインとそのコードは、VisuStella.comおよび、その他の公式/承認済みVisuStellaソースからのみダウンロードすることができます。公式/承認済みのソースのリストは、VisuStella.comでご確認いただけます。

5. VisuStellaは、意図しない使用方法による問題、VisuStella MZライブラリ以外のプラグインとの非互換性の問題、プラグインのバージョンが最新でないことによる問題、第三者による互換性パッチが適切に動作していないことなどが原因でゲーム内で発生した問題については、一切の責任を負いません。VisuStellaは、高度なJavaScriptのノートタグやJavaScriptコードを許可するプラグインのパラメータを含む、カスタムコントロールエフェクトに使用される、ユーザー提供のカスタムコードに起因するエラーについても、一切の責任を負いません。

6. VisuStella MZライブラリのコードを使用した互換性パッチをVisuStellaとは関係のない第三者を通じて作成する必要がある場合は、まずVisuStellaのメンバーと連絡を取り、承認を得る必要があります。パッチはVisuStella.comに公開され、誰でも無料でダウンロードすることができるようになります。このようなパッチを、制作発注やクラウドファンディングの対象にしたり、寄付などの金銭的な利益を得るために販売することはできません。

7. このVisuStella MZプラグインが商用製品である場合、プロジェクトチームのすべてのメンバーは、それを使用するため、それぞれ製品を購入しなければなりません。使用方法には、関連するゲームメカニクスの作業、関連するコードの管理、および/または関連するプラグインコマンドや機能の使用、が含まれます。プラグインそのものやそのコードをチームの他のメンバーに再配布することは第4項に抵触するため、そのメンバーがプラグインそのものを所有していない限りは許可されません。

8. このプラグインの利用規約の追加項目や補足については、VisuStella.comに掲載されていますので、それを参照し従ってください。

Credits

If you are using this plugin, credit the following people in your game:

Team VisuStella

Changelog

Version 1.04: October 12, 2023

  • Documentation Update!
    • It appears we've left out some notetags/comment tags that could be used:
      • <x Frames Decay Switch On: id>
      • <x Frames Decay Switches On: id, id, id>
      • <x Frames Decay Switch Off: id>
      • <x Frames Decay Switches Off: id, id, id>
    • These should now appear in the help file.


Version 1.03: August 17, 2023

  • Bug Fixes!
    • Fixed an error that would cause a crash upon using the "Return to Title Screen" event command with the "Event Title Screen" plugin installed. Fix made by Irina.


Version 1.02: February 16, 2023

  • Bug Fixes!
    • Fixed a bug that would cause certain notetags to not work properly when they have another notetag in front of them. Fix made by Arisu.


Version 1.01: December 15, 2022

  • Documentation Update!
    • Added new section: "Warning! RPG Maker MZ Version 1.5.0+ Water-Tile Bug!"
      • It seems like there's a new bug that occurs if you create a tileset from scratch in RPG Maker MZ version 1.5.0+ and version 1.6.0+! What this bug does is it causes many tiles to become water tiles without intending to. You can find this out by turning off all the plugins in your project, putting a Ship or Boat on what are normally ground tiles, and then seeing the Ship or Boat traverse through it.
      • Naturally, this causes problems with the Event Chain Reactions plugin as the water tiles are important for submerging reactions.
      • There are two ways to fix this. We cannot fix it through code in this plugin as it's a problem that involves the tileset json data there are ways to work around it so that you can get the proper water-flags to go where they need to be at.
        • 1. Copy a working un-bugged tileset onto the currently bugged one and reapply the tile features like passability, terrain tags, etc. This will make sure the water-passability tiles get copied over correctly.
        • 2. If you're on RPG Maker MZ version 1.5.0 or above, select a working un-bugged tileset (usually a pre-existing tileset when a new project is made), click the "Copy Page" button, go to the bugged tileset and press "Paste Page". You'll have to reapply any different properties like passabilities and terrain tags, but the water tile flags should now be working properly.


Version 1.00 Official Release Date: January 4, 2023

  • Finished Plugin!

See Also


End of File