Caethyril's MZ Plugins

● ARCHIVED · READ-ONLY
Started by caethyril 20 posts View original ↗
  1. Caethyril's RMMZ Plugins​

    Updated 2026-01-20: Cae_Drawing v0.95
    Looking for my RPG Maker MV plugins? Click here!​

    Features :kaohi:

    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 some alternative/related plugins/resources you may want to investigate.
    Plugins:
    All of the above can be viewed and downloaded here:
    Suggestions for improvements or additional features are welcome!

    How to Use :kaopride:

    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 :kaoback:

    If you experience problems with any of these plugins that you want to report, you can get support:
    • By posting in this thread;
    • By posting a new thread on the JavaScript/Plugin Support board (link); or
    • By starting a private conversation with me (link).
    This information can help to fix the problem faster:
    • 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.)
    Note: this thread is for supporting use of my plugins. For support with plugins not written by me, including edits or patches of my plugins, please post in Plugin Support instead. (As usual, if you want to make sure I see your post, I can be notified by writing @caethyril.)

    Terms of Use :kaothx:

    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~! :kaoluv:

    Extras :kaosalute:

    I also have a big, standalone plugin called Cae_Tweaks here:
  2. Thanks, might try out some of these. By the way, the WindowMotion link plugin has no url attached to it.
  3. @Milennin thanks for pointing that out! Fixed. :)
  4. 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!
  5. 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! :kaojoy:

    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. :kaothx:
  6. 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 "".
  7. 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)~ :kaophew:

    Also pushed an update for PictureTouch: scripted binds now save/load correctly and picture clicks should no longer count as "move here" map clicks. :kaopride:

    Edit: ...and updates for TileAnimExt & SlopeMove to fix problems with loading data. :kaoswt:
  8. @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.
  9. @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! :kaothx:

    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~ :kaophew:
  10. A Quest Plugin is what I look for everywhere T.T
    PS: I can't afford Visustella's plugins
  11. @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. :kaoslp:

    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:
      Evented quest log example
      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~ :kaopride:
    Not as fancy as a special quest log plugin, but it gets the message across! :)
  12. 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?
  13. 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.

    caethyril said:
    • 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.
  14. @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.
  15. @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. :kaophew:

    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. :kaoswt:

    @Jhin: glad you like it! :kaopride: 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. :kaoslp:]

    @RK DracoRoy: nice idea, I'll stick it on my list~ :kaothx:
  16. Thank you for the help @caethyril

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

    Thank you again.
  17. 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
  18. 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.
  19. @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? :kaoswt:

    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~ :kaophew:

    @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! :kaothx:
  20. pluginlist.fw.png
    Here's my plugin list. Does not seem to work still.
    menu.png
    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.