YEP.14 – Main Menu Manager

Yanfly Engine Plugins is a plugin library made for RPG Maker MV, a wonderful piece of software to help you make that role playing game of your dreams. You can find out more about RPG Maker MV here.

You can grab the plugin here:
English Dropbox
English Mirror

Portuguese Dropbox
Portuguese Mirror

Spanish Translation

Have more control over your main menu straight from the Plugin Manager. Add, remove, hide, show, enable, disable commands from your main menu altogether!


Introduction


For those who wish to alter the various aspects of the main menu commands without needing to touch the source code can use this plugin to do so. Although this plugin mostly ports the menu creation process to the Plugin Manager parameters, it allows for a cleaner way to handle the menu command management process.


How to Use This Plugin


Each section in the parameters is divided up into various parts. Each of these parts play a role in how the menu command functions. Here’s what each part does:

Name
– This is how the command will appear visually in the main menu. This is an eval, which means, it’s code driven. If you want the command to appear just as it is, use ‘quotes’ around it.

Symbol
– This is the identifier for the command. Each command should have a unique symbol, so much as to not cause conflicts with each command. However, shared symbols are perfectly fine as long as you’re fine with them performing the same function when selected.

Show
– This is an eval condition for whether or not the command shows up in the main menu. If you wish for this to always show up, simply use ‘true’ without the quotes.

Enabled
– This is an eval condition for whether or not the command is enabled. The difference between showing a command and enabling a command is that a command can show, but it can’t be selected because it isn’t enabled. If you wish for this command to always be enabled, use ‘true’ without the quotes.

Ext
– Stands for extension. This serves as a secondary symbol for the command and it can be used for pretty much anything. It has no direct impact on the command unless the command’s objective is related to the extension value. The majority of commands do not need to make use of the Ext value.

Main Bind
– This is an eval function that is to be ran when this command is selected straight from the main menu. The function that is to be bound to this command needs to be accessible from Scene_Menu is some way or another. For commands that are meant to select an actor first, use ‘this.commandItem.bind(this)’ without the quotes.

Actor Bind
– This is an eval function that is to be ran when an actor is selected after choosing this command, usually to push a scene. This function isn’t needed for any menu commands that don’t require selecting an actor.


Examples


The following are some examples to help you add/alter/change the way commands appear for your main menu.


Name: TextManager.item
Symbol: item
Show: this.needsCommand(‘item’)
Enabled: this.areMainCommandsEnabled()
Ext:
Main Bind: this.commandItem.bind(this)
Actor Bind:

The item command is made using the above example. ‘TextManager.item’ is how the command name will appear. It draws the name information from the database Text Manager entry for ‘Item’ and uses whatever you put into the database in here. The symbol ‘item’ is used to make the item command’s unique identifier. In order for the command to show, it will run a ‘needsCommand’ function to check if it will appear. This ‘needsCommand’ function is related to your database on whether or not you want the item to appear there. In order for this command to be enabled, it will check for whether or not the main commands are enabled, which is related to whether or not there are actors in the current party. And finally, the line of code ‘this.commandItem.bind(this)’ is the command that will run once the item entry is selected.


Name: TextManager.skill
Symbol: skill
Show: this.needsCommand(‘skill’)
Enabled: this.areMainCommandsEnabled()
Ext:
Main Bind: this.commandPersonal.bind(this)
Actor Bind: SceneManager.push(Scene_Skill)

The skill command is made using the above example. ‘TextManager.skill’ is how the command name will appear. It draws the name information from the database Text Manager entry for ‘Skill’ and uses whatever you put into the database in here. The symbol ‘skill’ is used to make the skill command’s unique identifier. In order for the command to show, it will run a line code ‘needsCommand’ function to check if it will appear. This ‘needsCommand’ function is related to your database on whether or not you want the skill option to appear there. In order for this command to be enabled, it will check for whether or not the main commands are enabled, which is related to whether or not there are actors in the current party. This time, the main bind command is to send the player to the actor selection process using ‘this.commandPersonal.bind(this)’ instead. Once the player selects an actor, ‘SceneManager.push(Scene_Skill)’ is then ran to send the player to Scene_Skill to manage the actor’s skills.


Name: ‘Common Event 1’
Symbol: common event
Show: false
Enabled: true
Ext: 1
Main Bind: this.callCommonEvent.bind(this)
Actor Bind:

This is a customized command that is included by default with the plugin. This command’s name is ‘Common Event 1’, but it can be changed to whatever you want by simply changing what’s in between the ‘quotes’ in the parameter settings. The symbol is the identifier for all common events. However, by default, this common event item does not show in the main menu. If you want it to appear, set the Show option to ‘true’ without the quotes and it will appear. Because the Enabled option is ‘true’, the command can always be selected by the player. The Ext actually has a role with this command. The Ext determines which common event is to be played. In this example, the Ext value is 1, which means common event 1 will be ran when this command is selected. Should the Ext value equal to 25, it will be common event 25 that will run once this command is selected. The reason is because the Main Bind for this command option is ‘this.callCommonEvent.bind(this)’, which is a function included in this plugin to allow for common events to be ran.


Happy RPG Making!


Happy RPG Making!


These plugins and Tips & Tricks ideas are made possible thanks to our creative patrons on Patreon! The majority of our Tips & Tricks ideas are placed within the Patreon-exclusive Sample Project for quick and easy access! If you'd like to make a Plugin Suggestion, Yanfly's Patreon-based Suggestion Box a visit here:


If you have any bugs to report, visit the following link:


If you have any questions about Action Sequences, visit the following link:



Thank you!