# Caethyril's MZ Plugins

#### caethyril

##### ^_^
Caethyril's RMMZ Plugins
Updated 2020-12-14: General - Cae_WindowMotion v1.3

Features
I've made some plugins for RPG Maker MZ! Here's a list of them with brief feature descriptions.
• The dates are when each plugin was last updated.
• For plugins marked script, JavaScript knowledge is strongly recommended.
• "See also" lists similar and/or alternative plugins; these are not guaranteed to be compatible.
Plugins:
• General (19) – standalone plugins for various purposes.
• v1.1 Cae_AutoSwitchVars 2020-10-25
Automatically change switches/variables when certain things happen.
• v1.0 Cae_BattleMessages 2020-08-21
Customise battle-related messages e.g. emerge & state add/remove.
• v1.0 Cae_ChoiceShuffle 2020-08-24
Randomly reorder Show Choices when shuffle mode is on.
• v1.1 Cae_CustomTextCodes 2020-08-30 script
Script your own text codes like \V[x] or \$. Includes premade examples. See also: VisuStella Message Core • v1.0 Cae_DashOpts 2020-09-13 Dash options: change speed, frame-skip, dashing events. See also: ? • v1.1 Cae_FaceOnRight 2020-08-22 Display the Show Text face on the left/right and/or mirror it horizontally. See also: Galv's Message Busts MZ • v1.1 Cae_InstantMove 2020-08-30 Characters move instantly from tile to tile; can toggle mid-game. See also: ? • v1.1 Cae_Jump 2020-09-09 Options for map character jumps: jump to, adjust speed/height/passability, etc. See also: VisuStella Events and Movement Core • v1.0 Cae_KeyboardInputs 2020-08-27 Bind common events to keys and define new key inputs. See also: Mano_InputConfig, DK_Full_Input • v1.0 Cae_MapEvents 2020-09-20 Event interaction options: disable/freeze, fast-forward, save events, etc. See also: ? • v1.3 Cae_MenuDisplayOpts 2020-09-07 Lots of menu-related options: cursor stuff, colours, help text, and more~ See also: ? • v1.3 Cae_OnUseEffects 2020-10-27 script On-use effects: subskills, action formulae, hide/disable/consume conditions, etc. See also: VisuStella Skills and States Core & Battle Core • v1.5 Cae_PictureTouch 2020-10-08 Run events or scripts via touch triggers, e.g. hover or click; click through transparency! See also: Button Picture (in new MZ projects) • v1.1 Cae_SelectItemFilter 2020-08-26 Filter items seen in Select Item commands, using notetags on items. See also: ? • v1.1 Cae_SlopeMove 2020-08-22 Mark diagonal slopes with regions => left/right moves go diagonally up/down the slope. See also: some stair tiles by Avery (remember to check Avery's terms of use) • v1.2 Cae_TileAnimExt 2020-09-07 Set the frame rate and sequence of animated map tiles; includes on/off option. See also: ? • v1.0 Cae_TimeStopBattlers 2020-09-13 Freeze visual motion updates of battlers affected by specific states. See also: ? • v1.1 Cae_TitleMenu 2020-09-26 Customise title command layout, add custom New Game commands. See also: Himeworks Pre-Title Events MZ, Visustella Core Engine • v1.3 Cae_WindowMotion 2020-12-14 script Specify scripted passive/active move formulae for any window; examples included! See also: ? • Extensions (0) – plugins that add features to other people's plugins. Nothing here yet! • Fix/Patch (1) – patches for unexpected behaviour seen in code by other authors. • v1.0 CaeF_RestoreRouteFix 2020-08-21 - patches oversight in core scripts (details here) When an auto move route is restored, one command will no longer be skipped. All of the above can be viewed and downloaded here: Suggestions for improvements or additional features are welcome! How to Use 1. Download the plugin file (e.g. Cae_BattleMessages.js). Google Drive has a download button in the top-right (arrow pointing down into an open box). 2. Place it in your project's folder, under js/plugins. 3. Open your project in RPG Maker MZ. 4. Go to Tools > Plugin Manager. 5. Double-click an empty line to add a new plugin. 6. Select the plugin from the Name list. To edit the values of any of the parameters displayed to the right of the drop-down, double-click them in the list. The more complicated plugins have details for use in their help description; you can view this help via the Plugin Manager. Additional notes: • Avoid renaming my plugins. (Renamed plugins won't see their plugin parameters.) • Save your project after making changes in the Plugin Manager. (Plugin changes are only applied to the game after saving.) Troubleshooting If you experience problems with any of these plugins that you want to report, please post in this thread! Information that can be helpful: • Instructions stating how to reproduce the problem in a new project. (If I can't reproduce the problem, I probably can't help you.) • A screenshot of the console when the unexpected behaviour occurs. (You can open the console by pressing F8 during test-play.) Alternatively, you can make a thread in JavaScript/Plugin Support. Terms of Use These plugins are all free to use, modify, and redistribute! For the standalone plugins ("General" category), these conditions apply: 1. None of the original plugin header may be removed. 2. Credit should be given to Caethyril for the original work. Happy RPG Making~! Last edited: #### Milennin ##### "With a bang and a boom!" Thanks, might try out some of these. By the way, the WindowMotion link plugin has no url attached to it. #### caethyril ##### ^_^ @Milennin thanks for pointing that out! Fixed. #### wrigty12 ##### Just a QAer playing with Javascript Can I make a request? This might tie your WindowMotion and FaceOnRight plugins together, but can either: 1) The FaceOnRight plugin also allow you to move the NameBox to the same side as the Face? 2) The WindowMotion have an option to specifically move a window to alight to a specific edge of the screen, like the right edge or top edge? Also I checked and your FaceOnRight plugin looks to be compatible with at least the VisuStella Message Core, so it looks promising it'll be compatible with others! #### caethyril ##### ^_^ WindowMotion lets you specify a JS formula for the target position, so it's possible to specify window positions relative to the screen edges using some scripting: • Left: 0 • Right: Graphics.boxWidth - this.width • Top: 0 • Bottom: Graphics.boxHeight - this.height You can tell I developed it for myself rather than for a request, haha. It's very versatile if you are familiar with scripting, though! The FaceOnRight name box idea is great! I've included a new plugin parameter in v1.1 to sync the name box position with the face position. Also fixed a small bug with mirroring not happening sometimes~ Also good to hear my stuff is playing nicely with other plugins! I downloaded the VisuStella demo today but haven't tried it out yet. #### wrigty12 ##### Just a QAer playing with Javascript Thanks for updating! The FaceOnRight now throws an error. I have the parameter set to Never, but it looks like setting it to any value doesn't change it. I turned off all other plugins and I still see it happening.: Code: js/plugins/Cae_FaceOnRight.js:207 Cae_FaceOnRight.js unrecognised face mirror rule "". #### caethyril ##### ^_^ Whoops, yea, I accidentally put two lines the wrong way round. The error was harmless, I think, but it's gone now (still v1.1, same link)~ Also pushed an update for PictureTouch: scripted binds now save/load correctly and picture clicks should no longer count as "move here" map clicks. Edit: ...and updates for TileAnimExt & SlopeMove to fix problems with loading data. Last edited: #### RK DracoRoy ##### Fire Emblem RPG Gamer @caethyril Are the rest of your plugins from MV coming over someday? I had found great use for your Cae_ConsumeEval plugin, which made things really convenient with item conditions. #### caethyril ##### ^_^ @RK DracoRoy yep, sorry, got distracted with some other things. Just released an MZ port of ConsumeEval; I did a couple of basic tests, seems it didn't need much tweaking. Let me know if it bugs out, though! If you (or anyone else) have any more specific requests I'd be happy to focus on those first, otherwise I'll look into trying to merge/extend stuff like I've done with AutoSwitchVars~ #### chocopanda ##### Veteran A Quest Plugin is what I look for everywhere T.T PS: I can't afford Visustella's plugins #### caethyril ##### ^_^ @chocopanda yea, quest logs are generally a lot of work, since it's an entirely new scene and (usually) a bunch of new windows, too. I'll consider it, but don't expect a quest log from me any time soon. You can achieve a basic quest log using the Select Item command, e.g. • Make one "Hidden Item A" type item (or B if you're already using A) per logged quest. • Make an item called "Journal" or something, for the player to access the quest info. • Make the journal call a common event like this: Code: ◆Comment：Player selects quest from inventory. ： ：(It's set to zero if they cancel.) ◆Select Item：quest, Hidden Item A ◆Comment：What did they pick? ◆If：quest = 4 ◆Comment：Selected item ID 4! Quest = rat slayer! ： ：Now check quest progress and show appropriate info~ ◆If：dead rats < 5 ◆Text：None, None, Window, Bottom ： ：Bob wants me to kill 5 rats. ： ：I've killed \v[11] so far. ◆ ：Else ◆Text：None, None, Window, Bottom ： ：I've killed 5 rats! ： ：I should go back and let Bob know. ◆ ：End ◆ ：End ◆If：quest = 15 ◆Comment：Selected item ID 15! ： ：etc... ◆ ：End • Then add/remove the hidden items from the player when they start/finish each quest~ Not as fancy as a special quest log plugin, but it gets the message across! #### Tentacurls ##### Villager For the keyboard inputs plugin, I wanted to map w a s d to up left right down. I changed the 'name' of the respective codes to the respective direction, and all the keys work except for W. Do you happen to know why? Or do you need more info? #### Jhin ##### Veteran Hi, First off, thank you for your awesome plugins. I'm amazed with this plugin. Very useful and I thind it should deserve a lot of love. • v1.1 Cae_CustomTextCodes 2020-08-30 script Script your own text codes like \V[x] or \$. Includes premade examples.
Could you please provide an example to make an /item[x] code work to show item icon and item name?

I'm trying to use but this code does not work.

Code:
const itemId = parseInt(args[1], 10);
return this.drawItemName($dataItems[itemId].iconIndex, 20, 20) Thanks. #### RK DracoRoy ##### Fire Emblem RPG Gamer @caethyril I do have an additional request for MZ. This idea is ExtendedSkills where if I select a skill in battle, a window will come up around the center (location and size (for the sake of text) can be adjusted) showing this set of skills based on the skill notetag. Code: <Extended Skill: x, x, x> MZ allows replacing the Attack command with a skill through a trait "Attack Skill". The extended skill window can come from both the Actor command window and the Skill window. #### caethyril ##### ^_^ @Tentacurls: by default W is mapped to "pagedown", that's the reason for the difference. KeyboardInputs has a safety parameter called Preserve Original Keys: if you set that to false in the Plugin Manager, it should allow you to remap W to "up" like you've described. In that case I'd recommend removing any keys you're not using from the parameter list, if you haven't already...otherwise other things (like Z for "ok", or X for "escape") may also be overwritten. @Jhin: glad you like it! Try this code instead: JavaScript: const itemId = parseInt(args[1], 10); const item =$dataItems[itemId];
if (!item) return '';
return '\x1bI[' + item.iconIndex + '] ' + item.name;
I.e. get the item, then return "\I[x] item name" as the replacement text. (It has to be \x1b here rather than a simple \ because backslashes get converted just before processing the text.)

[Edit: also, it should be used like \item[12], i.e. a \backslash, not a /forward slash. ]

@RK DracoRoy: nice idea, I'll stick it on my list~

Last edited:

#### Jhin

##### Veteran
Thank you for the help @caethyril

It is very nice the way you provide support and you help other people.

Thank you again.

#### Raith

##### Squire
Hey, thank you for the great plugin!

For the Cae_PictureTouch I'd like to report this "bug" (well, i'd like to call it expected behavior rather than a bug, anyway):

The picture respond nicely to the supposed input and execute the following bound script/common event. However, when you click-spam or press-spam on the picture while the bound common even is still running, the bound common event/script will be executed again and again after the the first execution is done. The common event/script will loop and loop and loop until you stop clicking on the picture. This has more devastating effect on the "press" option, rendering the game unplayable.

My current workaround is by reducing picture opacity to zero before the main sequence of script/common event and finally increase it again in the end of the common event. However, this method also make the click-based movement being triggered, resulting player running into the clicked tile coordinate.

EDIT: edited for grammatical error

Last edited:

#### SimProse

##### Veteran
I'm trying your custom title screen plugin, adding a Quit Game command using another plugin. I put in 4 commands without scrolling, and it seems to ignore it, and still only displays 3 commands in the box at once and needing to scroll. Using LunaTechs Quit2Desktop plugin if that matters.

#### caethyril

##### ^_^
@Raith: oh, yep. Not sure what the best way around that would be...maybe unbind the event at the start of its common event, then rebind it at the end?

I'll look into a more elegant solution! Maybe a "disable bind" plugin command and/or an option to suppress a picture bind if it's still processing that picture's bind~

@SimProse: have you tried loading my plugin after LunaTechs Quit2Desktop? (Click and drag to rearrange plugins in the Plugin Manager.) Seems to work OK for me!

#### SimProse

##### Veteran

Here's my plugin list. Does not seem to work still.

Hmm...once I turn off the VisuStella Core plugin, it works fine. That's something many people will use, so you might want to check on that.

### Latest Profile Posts

RPG Maker Games Critique with Studio Blue: Dark and Bright starts now! Hit the link and join us in chat as Studio Blue plays this unique looking commercial RPG Maker game from Rinober!

I like new party members. Unfortunately, that also means a whole new set of SV for them

Those can be tedious to draw
I am ass at rpg maker!
"Minus 1 fixes everything" ~ @Tea's Jams

lol, it's true
My game is a puzzle-RPG fusion about non-euclidian geometry, with the main combat system being running through mazes created by the bosses before time runs out, and most of the enemy names and designs are math puns... Is this original enough or need I go on?