An open library of RPG Maker MV plugins, powered by the community.

PGMV - The Community-Driven Plugin Library for RPG Maker MV

MV plugins

FTKR Ex Message Window2 - FTKR_ExMessageWindow2.js

Plugin desc : v2.4.0 Plugin that displays multiple message windows at once

License : MIT License

Author : Futokoro

Desc page : https://github.com/munokura/futokoro-MV-plugins/tree/master

Download Page : https://raw.githubusercontent.com/munokura/futokoro-MV-plugins/refs/heads/master/FTKR_ExMessageWindow2.js

File name : FTKR_ExMessageWindow2.js

Help of plugin :

@plugindesc v2.4.0 Plugin that displays multiple message windows at once
@author Futokoro
@license MIT License

@help
English Help Translator: munokura
This is an unofficial English translation of the plugin help,
created to support global RPG Maker users.
Feedback is welcome to improve translation quality
(see: https://github.com/munokura/futokoro-MV-plugins ).
Original plugin by Futokoro.
Please check the URL below for the latest version of the plugin.
URL https://github.com/futokoro/RPGMaker
-----

-----------------------------------------------------------------------------
Overview
-----------------------------------------------------------------------------
This plugin enables the following actions during text display events.

1. Multiple message windows can be displayed on screen.

2. Player actions can be allowed while a message is displayed.
(Only when the event execution trigger is "Automatic Execution" or "Parallel Processing")

3. A message window can be forced to close.

This plugin is for Maker MV core script v1.5.0 and later.
It does not work with core script versions prior to v1.5.0.

-----------------------------------------------------------------------------
Setup
-----------------------------------------------------------------------------
1. Add this plugin to the "Plugin Manager."

2. When using with YEP_MessageCore.js, place this plugin below YEP_MessageCore.js.

3. This plugin cannot be used in combination with FTKR_ExMessageWindow.js (v1.x.x).

-----------------------------------------------------------------------------
About Extended Message Windows and Message Window IDs
-----------------------------------------------------------------------------
When this plugin is enabled, the Event¥s Contents" "Show Text" uses an extended message window other than the MV default message window.

Extended message windows have a message window ID, and by changing this ID, you can display multiple windows at once.

The plugin defaults to ID0 as the message window ID.
ID0 - MV Default Message Window

<Window ID Display Order>
When multiple extended message windows overlap, the one with the higher window ID is displayed in the foreground.
However, ID0 is always displayed in the foreground.

<Number of Usable Window IDs>
The maximum number of window IDs that can be used depends on the following settings:
1. The setting of the plugin parameter <Create ExWindow Number>
2. The x value of the tag <EMW_Number: x> or <EMW_NUMBER: x> in the map's Note field.

The map data Note field setting takes precedence.
If the setting is 2, IDs 0 through 2 can be used.

! ! Caution!

Window data is generated when a scene starts.

If too many window IDs are generated (*1), scene changes may take several seconds.

(*1) This varies depending on the PC specifications, map size, number of events on the map, etc.

! ! Note 2!

This plugin's extended message window (window ID 1 and above) uses dedicated processing separate from regular message windows.

Therefore, you cannot use the functions of other message window plugins.

If you want to use the functions of other message window plugins,
use window ID 0.

However, the following plugins are compatible with extended message windows.
YEP_MessageCore.js
MessageWindowPopup.js

-----------------------------------------------------------------------------
How to Show Text using extended message windows
-----------------------------------------------------------------------------
An example event is shown below.

◆Plugin Command: EMW_MESSAGEWINDOW_SET windowID CANMOVE 1
◆Text: None, Window, Bottom
: : You can use control characters that allow you to act during conversations!
: : Cool, right?
◆Plugin Command: EMW_MESSAGEWINDOW_SET windowID CANMOVE 2
◆Text: None, Window, Top
: : Nice!

Use the plugin command "EMW_MESSAGEWINDOW_SET windowID CANMOVE x" to specify the window ID to display.

In the above example, the first message is displayed in message window ID 1,
and the second message is displayed in message window ID 2.
As shown, the plugin command is set before the text event is executed.

However, in this state, message window ID 1 and message window ID 2 will not be displayed simultaneously.
Message window ID 2 will appear after message window ID 1 disappears.

-----------------------------------------------------------------------------
How to Display Multiple Message Windows Using Extended Message Windows
-----------------------------------------------------------------------------
To display message window ID 2 while keeping message window ID 1 displayed,
the following event configuration is required.

◆Plugin Command: EMW_MESSAGEWINDOW_SET windowID CANMOVE 1 NOEND
◆Text: None, Window, Bottom
: : You can use control characters that allow you to act during a conversation!
: : Isn't that great? ¥^
◆Plugin Command: EMW_MESSAGEWINDOW_SET windowID CANMOVE 2 NOEND
◆Text: None, Window, Top
: : Nice!
◆Plugin Command: EMW_MESSAGEWINDOW_SET windowID CANMOVE 1
◆Text: None, Window, Bottom
: : Right?
◆Plugin Command: EMW_MESSAGEWINDOW_SET windowID CANMOVE 2 CANCLOSE
◆Text: None, Window, Top
: : I'll try it too!
◆Plugin Command: EMW_MessageWindowForceQuit 1

This time, the two characters alternate between conversations twice.
Unlike the previous example, the plugin command argument has changed.

By adding 'NOEND' to the window specification command,
you can prevent the specified window from closing.

The 'Allow Exit' plugin command before the final text will close window ID2 after the text is displayed.

The final command will also force window ID1 to close.

This allows multiple message windows to be displayed.

You can then create longer dialogue events by adding plugin commands and text between the second and third text.

-----------------------------------------------------------------------------
How to Set Action Permissions
----------------------------------------------------------------------------
1. Setting with Plugin Commands
Use the following plugin commands to allow the player to perform certain actions while the specified window ID is displayed.

EMW_MESSAGEWINDOW_CANMOVE windowID

or

EMW_MESSAGEWINDOW_SET windowID CANMOVE

2. Setting with Control Characters
By entering the following control characters within the text, you can allow or deny the player to perform certain actions while the message is displayed.

¥EMP - Allow Action
¥DMP - Prohibit Action

!! Note 1!!
The Allow Action setting is enabled when the event trigger is "Automatic Execution" or "Parallel Processing."
The Allow Action setting is disabled for events triggered by the "Confirm Button" or "Contact from XX."

!! Note 2!!
The Allow Action setting is common to all scenes.
Therefore, if you enable Allow Action, the target window ID will remain enabled even if you move locations.
If you want to disable Action, be sure to execute a Prohibit Action command or control character. (The Force Quit command does not disable Action.)

----------------------------------------------------------------------------
Displaying Text While Allowing Action
-----------------------------------------------------------------------------
If you allow the player to act while an event text is being displayed,
it is possible to trigger a conversation event with another event.

In this case, the message window ID must be different from the one currently displaying the text.

Execute a command specifying the window ID before the text display Event¥s Contents".

Please note that if you want to allow an action while multiple message windows are displayed,
you must grant permission for all displayed window IDs.

-----------------------------------------------------------------------------
If you want to talk to an event displaying text:
-----------------------------------------------------------------------------
If you want to interact with an event that displays text, you can create the following event.

1. Create an Automatic Text Display Event
Enter the following script into the route settings for the "Custom" type of "Autonomous Movement" to Show Text.

Script
$gameMessageEx.window(1).add('¥¥EMPText¥¥|¥¥^')

window(1) specifies the window ID number where the text will be displayed.
Here, we will use ID1 as an example.

Enter the text to be displayed within add().
The control character "¥¥EMP" allows the player to take action,
and the control character "¥¥|" displays the window for one second.
The control character "¥¥^" disables waiting for player input.

2. Create an Interactive Text Display Event
Create the following event in the action content of the same page as above. (This is an example.)

The trigger is the "Confirm Button."

Execution Details
◆Plugin Command: EMW_MessageWindowForceQuit 1
◆Plugin Command: EMW_MessageWindowSpecify 2
◆Text: None, Window, Bottom
: Don't talk to me!

The command on the first line will hide the automatically displayed window.
The number you specify here should match the window ID used in the script.

Specify a different window ID on the second line, and display the text on the third line.

-----------------------------------------------------------------------------
Scene Change Behavior
-----------------------------------------------------------------------------
Scene change behavior is as follows:

1. Location Change
When changing locations, all window IDs are forced to close.

2. Battle
When battle begins, all window IDs are forced to close.

3. Menu
All window IDs are temporarily closed.
The processing after closing the menu depends on the setting of the plugin parameter
<Scene Start Terminate>.

<If Enabled>
All window IDs are forced to close.

<If disabled>
The window will reopen.

!! Caution!!

If you are repeatedly displaying text in another parallel processing event, depending on the timing of the scene change, the text display command may be executed between the forced termination and the scene change process.

In this case, the document will be displayed after the scene change.

To avoid this, there are several ways to do this:

1. Enable the <Scene Start Terminate> plugin parameter.

2. Configure an event to stop the parallel processing event immediately before the scene change.

-----------------------------------------------------------------------------
Plugin Command
-----------------------------------------------------------------------------
1. Force termination of text display

EMW_MESSAGEWINDOW_CLOSE ALL
EMW_MESSAGEWINDOW_CLOSE Id

Forcefully closes all currently displayed message windows.
This disables the prohibition on closing.

All - Forcefully closes all currently displayed window IDs.
Id - Forcefully closes the specified window ID.
If not specified, window ID 0 will be closed.

2. Specify the window to display the text.

EMW_MessageWindow_Set Id (No End/Allow End) (Allow Move/No Move) (Width x) (Lines y) (Left/Center/Right) (Text Update)
EMW_MESSAGEWINDOW_SET Id (NOEND/CANCLOSE) (CANMOVE/NOTMOVE) (WIDTH x) (LINES y) (LEFT/CENTER/RIGTH) (UPDATE_TEXT)

Specifies the message window ID of the extended window to use when displaying text after this command.

By adding 'No End' or 'Allow End', you can specify whether the window should open or close, along with the ID.

By adding 'Allow Move' or 'No Move', you can specify whether the window should move, along with the ID.

Adding 'width x' sets the window width to x pixels, along with the ID.

Adding 'rows y' sets the window height to y lines, along with the ID.

Adding 'left', 'center', or 'right' sets the window's X-coordinate position, along with the ID.

Adding 'text update' overrides the display content with the text display command, ignoring any wait or cursor wait time set with control characters.

3. Reset the window in which the text will be displayed.

EMW_MessageWindowReset
EMW_MESSAGEWINDOW_RESET

Resets the message window ID of the extended window used to Show Text after this command. (It will become ID 0.)

4. Prevent the message window from closing (the window will not close).

EMW_MESSAGEWINDOW_NOENDId

The window with the specified ID will not close after displaying the message.
To close a prohibited window, you must perform the following actions:

a. Close it with a force quit command.
b. Enable the quit setting and then display a new message.

5. Allow Message Window Closure (Window Closure)

EMW_MESSAGEWINDOW_CANCLOSEId

The window with the specified ID will close after displaying a message.

6. Set Message Window Size (*1)

EMW_MESSAGEWINDOW_SETSIZEId WIDTH x LINES y

Sets the size of the window with the specified ID.

Specify width - width x in pixels.

Specify lines - height y in lines.

(*1) This setting will be reset once the window is closed.

7. Message Window Display Position Setting (X Coordinate)

EMW_MESSAGEWINDOW_SETPOSITION_ID_position

Sets the X coordinate display position (position) of the window with the specified ID.

Specify the following characters to match the desired display position:

Left (left) - Left-justified

Center (center) - Centered

Right (right) - Right-justified
If not specified, the window will be displayed left-justified.

Example)
EMW_MessageWindow_SetPosition_1_Right
EMW_MESSAGEWINDOW_SETPOSITION_1_Right

8. Action Permissions While a Message Window is Displayed

EMW_MESSAGEWINDOW_CANMOVE_ID_position

Allows the player to perform actions while the window with the specified ID is displayed.

9. Prohibit Actions While a Message Window is Displayed

EMW_MESSAGEWINDOW_NOTMOVEId

Prohibits the player from taking any action while the window with the specified ID is displayed.

10. Update Message Window Display Content

EMW_MESSAGEWINDOW_UPDATE_TEXTId

Overwrites the window display content of the specified ID with a text display command, ignoring any wait or cursor wait time set with control characters.

-----------------------------------------------------------------------------
Script
-----------------------------------------------------------------------------
The game data for the extended message window can be referenced using the following script:
$gameMessageEx.window(windowID)

The functions and variables available for the game data of the extended message window are the same as those for the default message window ($gameMessage).

An example script is shown below.

1. Show Text
$gameMessageEx.window(windowID).disp('Text')
: Initializes the display settings for the window ID and then displays 'Text'.
: You can use control characters in 'text', but note that you need to use two '¥' characters, like '¥¥v[1]'.
: Adding '¥n' to the text will create a new line at that point. (There is only one '¥'.)

$gameMessageEx.window(windowID).add('text')
: Adds 'text' to the window ID.
: You can display multiple lines of text by using this script multiple times in succession.

2. Setting the Face Image
$gameMessageEx.window(windowID).setFaceImage('Face Image Name', Face Number)
: Face Image Name - The file name of the face image to display. (Example: 'Actor1')
:Face Number - This number specifies the number of the face in the file. The top left is number 0.

3. Background Settings
$gameMessageEx.window(windowID).setBackground(backgroundNumber)
:Background Number - Choose from window (0), dark (1), or transparent (2).
: Specify the number of the background type you want to display.

4. Display Position (Y Coordinate) Settings
$gameMessageEx.window(windowID).setPositionType(positionNumber)
:Position Number - Choose from top (0), middle (1), or bottom (2).
: Specify the number of the desired position.

5. Display Content Reset
$gameMessageEx.window(windowID).clear()
: Resets settings such as the text and face image to be displayed.
: Note that this does not reset the prohibition on exiting or permission to perform actions.

6. Prevent Window Closure
$gameMessageEx.window(Window ID).prohibitClose()
: Prevents the specified window ID from being closed.

7. Allow Window Closure
$gameMessageEx.window(Window ID).permitClose()
: Allows the specified window ID from being closed.

8. Force Window Closure
$gameMessageEx.window(Window ID).terminate()
: Forces the specified window ID to be closed.

9. Set Window Size
$gameMessageEx.window(Window ID).setWindowSize(Width, Rows)
: Changes the size of the specified window ID.
: Width - Specify the width in pixels.
: Rows - Specify the height in rows.
: Specify 0 for each to use the default size.

10. Set Display Position (X Coordinate)
$gameMessageEx.window(Window ID).setWindowX(Position Number)
: Changes the X coordinate of the specified window ID.
: Position number - Choose from left (0), center (1), or right (2).
: Specify the number of the desired position.

11. Allow actions when window is displayed
$gameMessageEx.window(windowID).enabledCanMovePlayer()
: Allows the player to perform actions while the specified window ID is displayed.

12. Disable actions when window is displayed
$gameMessageEx.window(windowID).disabledCanMovePlayer()
: Disables the player to perform actions while the specified window ID is displayed.

-----------------------------------------------------------------------------
License for this plugin
-----------------------------------------------------------------------------
This plugin is released under the MIT License.

Copyright (c) 2017 Futokoro
http://opensource.org/licenses/mit-license.php

----------------------------------------------------------------------------
Change History
----------------------------------------------------------------------------

v2.4.0 - 2017/08/21: Added Traits
1. Supports the battle screen.

v2.3.1 - 2017/07/06: Fixed bugs
1. Fixed a bug in v2.3.0 (error at the start of battle).

v2.3.0 - 2017/06/25: Added Traits
1. Added a function to force refresh the displayed text.

v2.2.0 - June 9, 2017: Compatible with Core Script v1.5.0

v2.1.2 - May 31, 2017: Bug Fixes
1. Fixed an issue where windows waiting for the Confirm button to be pressed could not be force-quit properly.

v2.1.1 - May 25, 2017: Bug Fixes
1. Fixed an issue where the window force-quit function did not work properly.

v2.1.0 - May 24, 2017: Specification revisions, Traits additions, and help revisions
1. Changed so that actions are not canceled even when the window is closed.
2. Revised the execution determination for the display command for text when actions are allowed.
3. Added a function to reset the window ID when an event ends.
4. Added a window ID action prohibition command to the plugin commands.

v2.0.13 - May 14, 2017: Fixed conflicts with other plugins.
1. Revised the reset function when closing a window.

v2.0.12 - May 14, 2017: Bug Fixes
1. Fixed an issue where an error occurred when closing the default window.

v2.0.11 - May 14, 2017: Bug Fixes
1. Fixed an issue where the display content could not be updated after the window was disabled for closing.
2. Fixed an issue where the window position and size settings would not be restored even after closing the window.

v2.0.10 - May 8, 2017: Added and revised plugin commands.

v2.0.9 - May 7, 2017: Bug Fixes
1. Fixed an issue where the "Action Permission/Prohibition" function did not work correctly for sentence commands executed automatically or in parallel.
2. Changed to force-terminate all window IDs when a battle begins.

v2.0.8 - 2017/05/06: Traits Added
1. Added a Traits to set window behavior when a scene begins.

v2.0.7 - 2017/05/04: Bug Fixes
1. Fixed an issue where window ID 0 was not functioning correctly.

v2.0.6 - 2017/05/04: Traits Added
1. Added a Traits to force-terminate window IDs when moving between locations.
2. Revised the window X coordinate position and size setting function.

v2.0.5 - May 4, 2017: Added plugin commands and scripts
1. Added a script for displaying text
2. Added a command to specify the window's X coordinate position and size

v2.0.4 - May 2, 2017: Added Traits and scripts
1. Added a tag to set the number of window IDs generated in the map Note field

v2.0.3 - May 1, 2017: Fixed a bug in plugin parameters
1. Removed the functionality for setting the <Create ExWindow Number> value to 0
v2.0.2 - May 1, 2017: Fixed a bug

v2.0.1 - May 1, 2017: Added Traits and revised help
1. Added the Param to specify the IDs of all currently displayed windows to the force quit command
v2.0.0 - April 24, 2017: Completely revised specifications from v1

-----------------------------------------------------------------------------

@param --初期設定--
@text --Initial settings--

@param Create ExWindow Number
@desc Sets the number of expansion windows to generate.
@default 1

@param --シーン開始時--
@text --Scene start--

@param Scene Start Terminate
@desc Kill all window IDs at scene start. 1 - enable, 0 - disable
@default 1

@param --イベント終了時--
@text --At the end of the event--

@param Reset Window Id
@desc Reset window ID at event end. 1 - enable, 0 - disable
@default 0

スポンサードリンク

-MV plugins

Copyright© PGMV - The Community-Driven Plugin Library for RPG Maker MV , 2026 All Rights Reserved.