Ace Menu Engine

Last Updated: 2012.01.03
Download Link
Github Link

The menu system in RPG Maker VX Ace is great. However, it lacks the user customization that RPG Maker 2003 allowed. With this script, you can add, remove, and rearrange menu commands as you see fit. In addition to that, you can add in menu commands that lead to common events or even custom commands provided through other scripts.

This script also provides window appearance management such as setting almost all command windows to be center aligned or changing the position of the help window. You can also opt to show the TP Gauge in the main menu as well as in the skill menu.


Compatible Scripts

Adjust various visual aspects for your windows such as help window location, command window alignment, and more. The settings are adjusted within the script’s module.

Add, remove, and rearrange commands in the main menu to your liking. Include even common event or custom commands. Common Events and Custom Commands must be properly adjusted in the module to work. See below:

Common Events and Custom Commands are managed straight from the module and are integrated into the main menu with ease. Here, you can set what display name will show up for the command, whether or not it can be disabled (and if it can be, disabling will work through a Switch), and the Event ID or Handler Method used.

And that’s all, folks!

138 comments on “Ace Menu Engine

  1. sorry but why did you use eval?
    this solv your problem without eval:

    @command_window.set_handler(command, method(YEA::MENU::CUSTOM_COMMANDS[command][2]))

  2. Using this script, will I be able to unlock a menu command when a switch is turned on and vice-versa?
    For example, the player is awarded a Bestiary Diary upon completion of a hunting challenge and that diary becomes unlocked as a command in the Menu.

  3. This makes me curious about whether you will do a Status Menu Script. My favorite was the YEZ version cause it was so customizable. I used it as a character menu and eliminated equip and skill from the main menu because I don’t like a bulky main menu.

    • DRAW_MP_GAUGE = true # If true, draws MP in the main menu.
      DRAW_EXP_GAUGE = true # If true, draws EXP in the main menu.

      I was hoping for these two. :P Oh well!

      • I’m missing the second one :/ I hate to go yo a character status only to see how many monsters do I need to kill. I’m not using the victory aftermath.

  4. The TP bar is not being showed in my menu with this script..
    IT also does not appear in the battle (using the yanfly ace battle engine)
    Help please :S

  5. v1.06 – Compatibility Update: Kread-EX’s Synthesis
    – Compatibility Update: Kread-EX’s Grathnode Install
    – Compatibility Update: Yami’s Slot Battle

  6. Hi there.
    I was wondering, when you put a common event into the menu, is there a way to have the player select a character and save the Actor ID to some variable before it runs the common event?

    It’s so I can event in different things depending on which party member they choose.

  7. Hi, anyone pro can please teach me to set each window has it’s own style window frame ????
    (menu window, chatting window, and battle window…)
    Because as we know, all window design is depended on default design style….
    I wanna change it as each window has different style….
    Thanks in advance :)

  8. Hello, first of all, really good job with the scripts. I follow your job since I started using RPGMVX two years ago. Now I want to remodel the game I was doing into this new version, but I got a wonder. In “Camp” menu, I managed to enable and teleport to the map of camping, but now I wonder how I can do it to, when the party sleeps and stuff, they return to the exact point they were before. Like in Breath of Fire, they set up camp and after sleep they appear in the same spot than before. How could I do that using this script? Maybe I could do that using the Common Event? thanks for the help.

    • When you make the common event, before you teleport the player, set the player’s coordinates to variables. You will need 3. X, Y, and Map ID. When the player leaves the camp, teleport using the variables so that the player returns to those coordinates.

  9. Hey Yanfly!

    I found a small bug when using this with your Ace Battle Engine.

    I want to show TP in the menu, but if DRAW_TP_GAUGE = true, not only does it NOT show TP, but it prevents TP from showing in the main status window during battle! The first character shows fine, it is the rest that dont display correctly.

    I have tested this with only these two scripts active and have found this to be the problem.

    • Forgot to say it only shows MP if DRAW_TP_GAUGE = true for everyone except the first character, in menu and battle.

      • Pikakapi idk why it wont let me reply to you, but i know that. for some reason it wasnt working, even in a new game. i installed a clean version of the script though and now it seems to be working, but i cant say for sure until i reactivate all the other scripts i was using.

  10. Hey, Yanfly!
    I must say that I love your scripts, they are all very very awesome!
    Now, I must ask you something.
    Is there a way to remove the party window and only make it appear when the some option is chosen, like in the Melody Menu?
    The Main Menu Melody was absolutely great, that visual, it looked simple and clean, it was so great!
    Could it be something like a extension, or a option in the menu customisation section in the script? Something like “show party window on main menu? true/false”
    Thank you for the great scripts!!!

  11. Would there be any way to set it to display each characters sprite as well? It would look well under where the name and level are at.

    • It’s already built into the script. If you have a skill that uses mp and another skill that uses tp, or a skill that uses both, you should have all 3 lines appear. That’s the only way I found a way to get all lines to work

      • There is another way, if you used Ace Core Engine v1.00 here is the problem.
        find this line in Ace Core Engine.

        “# ■ Window_MenuStatus
        class Window_MenuStatus < Window_Selectable
        # new method: draw_actor_simple_status
        def draw_actor_simple_status(actor, dx, dy)
        draw_actor_name(actor, dx, dy)
        draw_actor_level(actor, dx, dy + line_height * 1)
        draw_actor_icons(actor, dx, dy + line_height * 2)
        draw_actor_class(actor, dx + 120, dy)
        dw = contents.width – dx – 124
        draw_actor_hp(actor, dx + 120, dy + line_height * 1, dw)
        draw_actor_mp(actor, dx + 120, dy + line_height * 2, dw)
        end # Window_MenuStatus"

        does not show anything about "tp"
        so, you need write something like

        "draw_actor_tp(actor, dx + 120, dy + line_height * 3, dw)"

        and the gauge will always keep visible…but has a problem the gauge don't fit in character screen, to solve this…

        "(701)dw = contents.width – dx – 124
        (702) draw_actor_hp(actor, dx + 120, dy + line_height * 1, dw)
        (703) draw_actor_mp(actor, dx + 120, dy + line_height * 2, dw)
        (704) draw_actor_tp(actor, dx + 120, dy + line_height * 3, dw)
        (705) end"


        "(701)dw = contents.width – dx – 124
        (702) draw_actor_hp(actor, dx + 120, dy + line_height * 1, dw)
        (703) draw_actor_tp(actor, dx + 100, dy + line_height * 2, dw/2 + 1)
        (704) draw_actor_mp(actor, dx + 120 + dw/2, dy + line_height * 2, dw/2)
        (705) end"

        and then HP,MP,TP gauges, becames visible all time, even if the character does not use either.
        PS: sorry my english is VERY VERY bad XD and i used google translator all time x.x''

  12. It draws all the bars for me, but the TP bar always lists as the members having 0 TP. (Just like in the bottom few screenshots you provided.)

  13. I’m not at home right now, will be a few hours, but check the scripts that came with RM. You should be able to spot it easily, if not, I’ll post exactly where it is when I get home for you.

  14. I found it, and it was the problem. Got to set each class to carry over TP from battle. It’s listed as a special trait/feature. Works like a charm now. Thanks. :)

  15. How would I make another choice? Strictly speaking, I have Modern Algebra’s Monster Catalogue installed. I would like it to still be able to be selected when using this script. There is an option to view it from the map, so I’m not completely screwed, but it would be more convenient to use the menu.

  16. Leech here. Your scripts allow me to do a lot of things that I never had the time to figure out how to do in 2K and 2K3, so I wanted to say thank you very much. Leech Shroud ENGAGE.

  17. Has anyone been able to make the appearance match the first screenshot Yanfly posted, where the 3 gauges are on separate lines, and it shows current and max values? Any help appreciated.

  18. Can ne1 tell me how do i add this to Ace? I’m not really good with scripting so i never messd with it. but i really want to use this engine.

  19. What is the purpose of ACE? Does it make the other Yanfly scripts function like the Adjust Limits? Are the scripts useless with out the ACE Core?

  20. Most scripts run with out the core many function on there own but there are still many combo scripts here. As for the purpose of ACE what do you mean as the program its self or the ACE scripts? The ACE program is more or less a advance version of VX with more features and a newer more easier scripting language.

  21. Does this script give me the ability to create menu groupings? when I define the menu item Equipment, instead of the equipment window showing it gives me dropdown like in valkrie and gives me more options under equipment.

    Main Menu:
    Info –
    Party –
    Encyclopedia –
    Music Box
    System –

    I really want to do that, instead of the cluttered menu where everything is displayed.

  22. Does anyone know how to get Yanfly’s Adjust Limits script to work. I have been trying to get it to work for 4 or 4 months now. Its the only script I really want.

    • Which part of that script doesn’t work? It’s working fine for me, perhaps you have an incompatible script. A little more detail about what isn’t working for you won’t kill you, and will help us to help you.

  23. Well. I have been trying to get this script to work for 4 to 5 months now. I copied and pasted the script between materials and main and set up the formulas in the noteboxes of each enemy. E.G. and it does not work. I even made a new project with no additional scripts in it and it still does not work for me. Here’s how I have been setting mine in there.

    VX ACE_SP1
    (Insert Here)

    Core Scripts
    Yanfly Adjust Limits
    Yanfly Enemy Levels





    Now, keep in mind that I also pasted the script all on its own on a new project and still no results. I also spoke to someone else who tried to help me and he suggested that I use the japanese version. I did and it still didn’t work than he asked me if it was pirated and I said no I fully paid for it. And I do have the full copy and obviously its working for everyone else but myself. Is there something that I am missing? It would make it much easier to see a demo and see how someone else was able to get it to work. Because, I have tried everything and I can upload a demo to show you how I am doing it and yet getting no results. I really, really need help with this one ONE script and if you can help me I will be in your eternal debt!

  24. How do you create another window for “Play Time” and “Steps”? I know the formula to add those.. just now how to add another window. I ended up sticking them into the same window as the gold, but the downside to that is when you go to buy something from a shop, they also appear… >.<!

  25. Hi Yanfly, your scripts are amazing and they’ve made my game much more enjoyable. Does anyone know how to have your JP display on this menu as well? I am using Yanfly’s JP Manager and Skill scripts. If the actor’s JP can’t be displayed on the main menu, what about the skills or status menu? I can’t seem to find the option in the scripts.

  26. So has anyone figured out for sure why some can get the TP meter to show up in the main menu just like Yanfly’s screenshot and why some can’t?

    Even in a fresh project, I cannot get 3 gauges to appear. Yes, I learned a MP and TP requiring skill on the character in question. I also tried Kahn’s fix, but that did absolutely nothing.

  27. Is there a way to make both the mp and tp show, like they do in the screenshot above? I know that tp/mp bars only show depending on the skills certain actors have, but I’d like to have both showing. I have the ‘show tp bar’ set to true, and i checked the ‘tp bar in battle’ box under the System tab in my database.

  28. How do you remove the different item commands? I only want the items to be displayed, I don’t have any armour or key items or anything. Any recommendations on how to go about that?

  29. Okay, so I got the script, but I want to add a simple command so that way the party can camp for the night and then regain their HP and MP. But when created the command it gave me an error. So I was just wondering if someone can post a video tutorial as to how to add these other menus.

  30. I’m trynig to make it so the default commands can be turned on and off via a switch. I tried to hide the Items menu and then re-setup it in the custom menu area… But when I turn the switch on, it doesn’t work.

    I’d like to be able to hide and enable the default commands just like I can the custom ones. How do I accomplish this? I thought I knew how, but it’s not working.

  31. Im not good at scripting. Can someone explain to me how to add another menu slot to the menu? Im using this and I want a XS’s Journal to be in the menu.

  32. Would anyone know how I can equip armors and weapons from this menue system. as of right now you have to go back into the vanilla equipment option. I would love to have the game just use this menue.

  33. ciao a tutti.
    Qualcuno può spiegarmi come devo impostare lo switch per far scomparire una voce dal menu ed aggiungerla successivamente?
    ho creato uno switch con il nome della voce ma non riesco D:

  34. Wrong language lol
    hello to all.
    Can someone explain to me how I have to set the switch to clear an item from the menu and add it later?
    I created a switch with the name of the item but I can not D:

  35. Can anyone tell me how to get the three bars shown at the top? I’m using the latest version of the script and it doesn’t seem to get the result that I want.

  36. Having a bit of trouble with this script. I’m using a few other scripts that each add in a new command to the menu, but I was going to use this script to reorganize them. I can’t figure out how to add custom commands for those scripts to the menu. I’m very new at scripting, so I know pretty much nothing so far, and everything I tried gave me an error. I know I’m probably asking a lot, but could someone please explain exactly how to add a custom command with this script?

  37. Hi guys I am wondering if anyone knows what I need to do to add a custom boarder to all windows? Like so I know with YANFLYS Menu system I can change the positions of each of these but can I replace the standard windows as well? If not can anyone point me to a script that does do this or a tutorial?


  38. Hello yanfly,
    i have a question pretty stupid probbebly but i was trying to add Yami`s materia system to the ace menu but i have no idea how to do that could u help me?

      • Actually I just figured it out…


        :materia, # Opens up the materia menu.

        inside the COMMANDS section of the script where you want it in the commands list.
        Mine looked like
        COMMANDS =[
        :item, # Opens up the item menu. Default menu item.
        :skill, # Opens up the skill menu. Default menu item.
        :equip, # Opens up the equip menu. Default menu item.
        :materia, # Opens up the materia menu.
        :class, # Requires YEA – Class System.
        :status, # Opens up the status menu. Default menu item.
        :formation, # Lets player manage party. Default menu item.
        # :event_1, # Launches Common Event 1. Common Event Command.
        # :event_2, # Launches Common Event 2. Common Event Command.
        # :debug, # Opens up debug menu. Custom Command.
        # :shop, # Opens up a shop to pawn items. Custom Command.
        :save, # Opens up the save menu. Default menu item.
        :game_end, # Opens up the shutdown menu. Default menu item.
        ] # Do not remove this.

        and then place

        :materia => [ “Slot Gems”, 0, 0, :command_personal],

        under CUSTOM COMMANDS section..

  39. Hey Yanfly!
    I’ve used this script for the Party-Sized menu, and I have a comparability note:
    This script or “Party Sized Menu” seems not to be compatible with Syvkal’s “Menu Bars VXAce”.
    Would you please (pretty please) fix that? Thank you!

  40. Hello there, I discovered your website by the use of Google while looking for a related subject, your web site came up, it seems good. I have bookmarked it in my google bookmarks. bakddkgfaacfkekd

  41. Hello,
    Great scripts, love them ^^

    Can someone tell me how I could make the MP to display as the TP, that is only when the actor has skills that require MP.

  42. If anyone’s still having the problem with the mp/tp bars being on the same line, here is the solution:

    find this:

    # overwrite method: draw_actor_simple_status
    def draw_actor_simple_status(actor, dx, dy)
    dy -= line_height / 2
    draw_actor_name(actor, dx, dy)
    draw_actor_level(actor, dx, dy + line_height * 1)
    draw_actor_icons(actor, dx, dy + line_height * 2)
    dw = contents.width – dx – 124
    draw_actor_class(actor, dx + 120, dy, dw)
    draw_actor_hp(actor, dx + 120, dy + line_height * 2, dw)
    if YEA::MENU::DRAW_TP_GAUGE && actor.draw_tp? && !actor.draw_mp?
    draw_actor_tp(actor, dx + 120, dy + line_height * 1, dw)
    elsif YEA::MENU::DRAW_TP_GAUGE && actor.draw_tp? && actor.draw_mp?
    if $imported[“YEA-BattleEngine”]
    draw_actor_tp(actor, dx + 120, dy + line_height * 1, dw/2 + 1)
    draw_actor_mp(actor, dx + 120 + dw/2, dy + line_height * 2, dw/2)
    draw_actor_mp(actor, dx + 120, dy + line_height * 1, dw/2 + 1)
    draw_actor_tp(actor, dx + 120 + dw/2, dy + line_height * 2, dw/2)
    elsif YEA::MENU::DRAW_TP_GAUGE && actor.draw_mp?
    draw_actor_mp(actor, dx + 120, dy + line_height * 1, dw)

    replace with:

    # overwrite method: draw_actor_simple_status
    def draw_actor_simple_status(actor, dx, dy)
    dy -= line_height / 2
    draw_actor_name(actor, dx, dy)
    draw_actor_level(actor, dx, dy + line_height * 1)
    draw_actor_icons(actor, dx, dy + line_height * 2)
    dw = contents.width – dx – 124
    draw_actor_class(actor, dx + 120, dy, dw)
    draw_actor_hp(actor, dx + 120, dy + line_height * 1, dw)
    if YEA::MENU::DRAW_TP_GAUGE && actor.draw_tp? && !actor.draw_mp?
    draw_actor_tp(actor, dx + 120, dy + line_height * 2, dw)
    elsif YEA::MENU::DRAW_TP_GAUGE && actor.draw_tp? && actor.draw_mp?
    if $imported[“YEA-BattleEngine”]
    draw_actor_tp(actor, dx + 120, dy + line_height * 3, dw)
    draw_actor_mp(actor, dx + 120, dy + line_height * 2, dw)
    draw_actor_mp(actor, dx + 120 + dw/2, dy + line_height * 2, dw)
    draw_actor_tp(actor, dx + 120 + dw/2, dy + line_height * 3, dw)
    draw_actor_mp(actor, dx + 120, dy + line_height * 2, dw)

  43. I’m getting an error on line 361 *~* it says:

    “Script ‘Ace Menu Engine’ line361: NameError occurred.
    uninitialized class variable @@last_command_oy in Window_MenuCommand”

    and the section that 361 is in is:

    # alias method: select_last
    alias window_menucommand_select_last_ame select_last
    def select_last
    self.oy = @@last_command_oy unless @@last_command_oy.nil?
    @@last_command_oy = nil
    end # Window_MenuCommand

    And I really just don’t even know lol
    If anyone can help me solve this, I’d really appreciate it (:

  44. Does anyone know if this can be used commercially? I know yanfly’s original scripts can be used commercially but if there’s other parties that were involved in it then you have to ask them. This script says it was modified by doogy, so can we still use it commercially? Becuase I cant find who this doogy individual is.

  45. Hey,
    Thanks for this amazing script!
    Quick question: when you call a common event for a custom menu option, how do you initiate the scene by first choosing characters? If, say, I want to use the Learn Skill Engine that way or perhaps Galv’s Magic Shard’s Script (or any other script/scene involving individual characters), I want to be able to scroll through my characters first before the scene fully opens, just like with a normal skill Menu.

    Right now, all the common event does is open up the scene pertaining to the first character. Now while I can use Q and W to scroll between characters, that’s clunky and awkward. I’m sure it’s just some simple little scripting flourish I have to do, but does anyone know how I can call a common event from the Menu Engine while being able to select the character before the scene opens? Thanks.

  46. Not entirely sure why this is happening, but for some reason the gauges in the main menu are all messed up.
    The HP bar is lower than it should be, when the character got a magic move, the MP bar appeared above the HP bar.

    When he got a TP move, the TP bar took the place of the MP bar, and the MP bar went on top of the HP bar but it moved slightly to the right.

    Here’s what I’m talking about:

    Here is a list of the scripts I have used:
    Yanfly Core
    Message System
    Adjust limits
    Battle Engine
    Element Popups
    Enemy HP bars
    Enemy Target Info
    Victory Aftermath
    JP Manager
    Learn Skill
    Item Menu
    Menu Engine
    Party Size Menu
    Save Engine
    New Game +

    Pretty much all yanfly scripts.

    The only change I’ve made to the base rpg maker script is adding this line draw_actor_jp(actor, rect.x + 50, rect.y + 10 + line_height * +2.2)
    to the Window_MenuStatus section so The JP is visible in the main menu (visible in the screenshot from earlier as “SP”.

    I have not edited beyond the “you must not edit beyond this point” in ANY of yanfly’s scripts.

    Can someone please tell me what is wrong? I have no idea which script is causing the problem.

      • I had the exact same problem as you, bars over lapping and whatnot. therpggamer’s post fix does help, but it needs to be properly formatted. I’d highly recommend formatting it properly using Notepad++. That worked for me at least.

      • So, you’re saying I need to get therpggamer’s fix…and I need to format it correctly via notepad++?

        Sorry if I sound like a noob, but…how exactly SHOULD it be formatted?

  47. So far the script is working perfectly, except any character’s mana bar is above the health bar. It applies in every other menu as well (Yanfly Status Menu, Yanfly Equip Menu, etc). Not entirely sure where I can alter the placement of these bars, or if the problem is elsewhere.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s