A downloadable RPG Maker MV plugin

Buy Now$10.00 USD or more

For your prose-specific interposition needs. In other words:

This plugin lets you interject with most other Commands into Show Text messages which will wait for the injected Commands to complete before continuing to reveal the rest of the text.

What you can do with this

A few examples of what's easy to make with this plugin:

  • Add sound effects and screen flashes to your dialogue (sparingly please).
    • Note that the Play SE Command is not blocking, so text display will continue immediately.
  • Display (and optionally wait for) animations during dialogue.
  • Easily insert waits with custom duration.
  • Wait for something else to happen before advancing text, using flow control and Wait.
  • Avoid the dialogue box closing if there is a command with a short delay in your scene, like Show Balloon Icon.

Commands (configurable)

Interproser provides only a single plugin command, which completes instantly and must precede a Show Text command:

  • Interprose:
    [Including the colon.]
    Queues up following commands for interposition, until Show Text is reached.

Parameters

Plugin Settings

Four parameters are adjustable: "Interprose: command", "Escape code", "Plugin Command prefix" and "JavaScript prefix"

Interproser works from the get-go without configuration, but its Plugin Command and escape code and can be renamed to avoid collisions. The prefixes for inline commands are also adjustable, for convenience.

Any parameter set to 0 or the empty string is inactive.

Usage

This explanation assumes the plugin parameters are set to their default values.

Event Editor - Slime A

Example of using Play SE and Wait as part a Show Text message. Note that comments are also "Commands" that must be accounted for when deciding how many lines to inject at once.

To use this plugin, create an Event listing that first runs the "Interprose:" Plugin Command, followed by any number of commands to run as part of the message, and then a Show Text command at the same level of indentation as the "Interprose:" command. It is possible to queue up commands with greater or equal indentation (see Limitations -> Limited Control Flow).

Inside the Show Text command's message, use \CMD[] to run one queued line, \CMD[n] to run n queued lines (where n is an integer >= 0), and \CMD[pc:…] or \CMD[js:…] to run only a plugin or script command without declaring it ahead of time.

If there are left-over queued Commands when the end of a message is reached, these will run just before text display finishes, POSSIBLY as part of the last explicit command injection placed at the very end of the message.

The message text will wait for the injected commands to complete, as if calling a blocking Common Event at that location.

All queued commands are cancelled when the Game Over or Title screens start.

JavaScript API

This plugin does not expose a JavaScript API.

Limitations

No Recursive Messages

If you try to queue up a Show Text or Show Scrolling Text command for interposition, Interproser will (in simple cases) throw an error, as doing so would cause the message to wait forever, "freezing" the game.

The same applies to the Show Choices, Input Number, Select Item, Transfer Player, Fadeout Screen, Fadein Screen and Play Movie commands, as well as the "Interprose:" plugin command itself, as these commands wait for message display to resolve before they can execute.

Interproser cannot detect these commands within queued Common Event calls, so please take care when using these more complex interpositions.

(You may be able to terminate the outer message through JavaScript, but this is likely to mess up interpositions for the next message somewhat.)

Limited Control Flow

Control Flow statements can be used, but must be injected "in one go" by specifying the number of script lines to inject. (Remaining queued commands at the end of a message are executed "in one go".)

The Exit Event Processing command, when injected into a message, will exit only the current interposition, not the event it was originally taken from.

Compatibility Notes

This plugin was tested on RPG Maker MV 1.6.2, uses only the public RPG Maker API as far as possible, and does not use any platform-specific APIs.

This plugin should be compatible with any deployment target available for RPG Maker MV, including web and most custom ones.*

This plugin does not use save file persistence.

It's possible to use this plugin multiple times in the same game, but only if both the "Interprose: command" and "Escape code" parameters are distinct or empty.

Interproser is mindful of other plugins and should, regardless of load order, work as intended. If this is not the case, prefer to load it late to take priority over interfering plugins, but before any plugins you would like to use to adjust the behaviour of Interproser specifically.

* If you develop on Windows and deploy for Linux, you must first update the NW.js runtime in the nwjs-lnx folder to at least version 0.29.4 (to match other targets, but ideally use the newest stable version)! You can find more information and a tutorial for this here. It's fast, easy, and also fixes many other problems for your players.

Purchase

Buy Now$10.00 USD or more

In order to download this RPG Maker MV plugin you must purchase it at or above the minimum price of $10 USD. You will get access to the following files:

TS_Interproser.js 13 kB
Version 1.0.1

Comments

Log in with itch.io to leave a comment.

As a side-note: I created this plugin mainly to have the text wait on Commands/loops, and there is always at least 1 frame of delay due to this when encountering \CMD[].

If you don’t want or don’t need to wait for the Commands to complete, like when setting variables or switched or starting a parallel process, then Hakuen Studio Message Actions for RPG Maker MV MZ may be a less expensive alternative.
(Its base price is free, but please donate there if it turns out useful to you, if you can. I had a quick look after publishing this one and it’s very well-made.)