YEP.165 – Options Core – RPG Maker MV

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

Support Team Yanfly on Patreon

The Options Menu can be the one thing that can change how comfortable a player is with your game. Within the Options Menu, the player can alter any given settings to their liking adjusting to their playstyle. By default, settings like ‘Always Dash’ and ‘Command Remember’ are included in RPG Maker MV and other plugins made for RPG Maker MV may also add in newer options to the list. However, the menus themselves were always a bit iffy to look at and/or adjust. This plugin gives the Options Menu a visual makeover and full control over what options can be added to the menu to befit your players!

Also as of this release, these plugins have been updated for compatibility with YEP_OptionsCore.js. Be sure to download and update them in your game project(s).
– GamepadConfig.js
– YEP_AnimateTilesOption.js
– YEP_BattleAniSpeedOpt.js
– YEP_FpsSynchOption.js
– YEP_KeyboardConfig.js
– YEP_X_ActSeqPack3.js
– YEP_X_BattleSysATB.js
– YEP_X_DifficultySlider.js


Introduction


WARNING: This plugin is to be used with RPG Maker MV 1.5.0 or above! This is because the MV 1.5.0+ editor allows for this plugin to be made in an orderly and efficient manner. Please make sure your RPG Maker MV software is up to date before using this plugin.

The Options Menu can be the one thing that can change how comfortable a player is with your game. Within the Options Menu, the player can alter any given settings to their liking adjusting to their playstyle. By default, settings like ‘Always Dash’ and ‘Command Remember’ are included in RPG Maker MV and other plugins made for RPG Maker MV may also add in newer options to the list. However, the menus themselves were always a bit iffy to look at and/or adjust. This plugin gives the Options Menu a visual makeover and full control over what options can be added to the menu to befit your players!

This plugin supports the following plugins:
– GamepadConfig.js
– YEP_AnimateTilesOption.js
– YEP_BattleAniSpeedOpt.js
– YEP_FpsSynchOption.js
– YEP_KeyboardConfig.js
– YEP_X_ActSeqPack3.js
– YEP_X_BattleSysATB.js
– YEP_X_DifficultySlider.js

Please update them to the latest versions, too, in order to have compatibility with the Options Core.


Instructions – Option Categories Plugin Parameters


This plugin adds in ‘Option Categories’ into the Options Menu. Aside from the ‘All’ and ‘Exit’ categories, all of the categories are customizable from the way they appear in the menu to the way they behave.

Here is how each parameter behaves:

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Name:
– Determines the way the Category name appears. Name or rename categories as you see fit. You can use text codes with this parameter, allowing you to add icons (\i[x]) or change the text color (\c[x]) of the category.
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Help Description:
– This is the text shown in the help window at the top of the Options Menu whenever this category is highlighted. Use it to describe what types of options will appear in this category and how they will affect the game. You may also use text codes with this parameter.

Options List:
– This is the list of options that appear on the right side of the Options Menu when this category is highlighted or selected. You can add, edit, move around, or delete options from this list as you see fit. For details on how the plugin parameters for the Options List work, look in the next section below:
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –


Instructions – Option List Plugin Parameters


This section explains how the plugin parameters for the Options List operate and how they interact with the rest of the plugin.
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Name:
– Determines the way the Options name appears. Name or rename the option as you see fit. This does not use the command names provided by other plugins by default. You can use text codes with this parameter, allowing you to add icons (\i[x]) or change the text color (\c[x]) of the option.

* If you name this as ‘EVAL: code’ without the ‘quotes’, the name of this option will be whatever string that the code outputs.
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Help Description:
– This is the text shown in the help window at the top of the Options Menu whenever this option is highlighted. Use it to describe what this option changes for the game.

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

Show/Hide:
– This is the code used to determine if this option will be visible on the list of options within this category.

To make sure it always shows, use the following code:
show = true;

Enable:
– This is the code used to determine if this option will be enabled. It is recommended that you leave all options as enabled as to not lock away options from the player.

To make sure it is always enabled, use the following code:
enabled = true;

Ext:
– Stands for extension. This serves as a secondary symbol for the option and it can be used for pretty much anything. It has no direct impact on the option unless the option’s effect is related to the extension value. The majority of options do not need to make use of the Ext value so it is best to just leave this alone.

To leave it alone the following code:
ext = 0;
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
The following section is best left untouched if you do not know any JS programming and don’t have instructions on how to set it up. This is because all of the behaviors related to the options can be controlled from here and a mistake can crash the game.

Make Command Code:
– This is the code used to add the option command to the list of options. Use this to modify the name, symbol, if it is enabled, or change the ext value before finally adding it to the list.

The default code:
this.addCommand(name, symbol, enabled, ext);


Draw Option Code:
– This is how the option is ‘drawn’ onto the Options window and seen by your players. Everything here controls the way the option looks from the way it is named to the position of the text. The majority of the variables defined towards the beginning of the default code is placed there for the sake of convenience.

The default code:
var rect = this.itemRectForText(index);
var statusWidth = this.statusWidth();
var titleWidth = rect.width – statusWidth;
this.resetTextColor();
this.changePaintOpacity(this.isCommandEnabled(index));
this.drawOptionsName(index);
this.drawOptionsOnOff(index);

Process OK Code:
– This is the code that runs when the player presses any kind of confirm button (Z, Enter, Left Click) on this option. For most options, this will switch between an ON/OFF option. For others, this will make the value of the option scale upwards until it loops back.

The default code:
var index = this.index();
var symbol = this.commandSymbol(index);
var value = this.getConfigValue(symbol);
this.changeValue(symbol, !value);


Cursor Right Code:
– This is the code that runs when the player presses the RIGHT button. Usually, this will move most options into an ON position. For others, this will scale the value of the option upward.

The default code:
var index = this.index();
var symbol = this.commandSymbol(index);
var value = this.getConfigValue(symbol);
this.changeValue(symbol, true);


Cursor Left Code:
– This is the code that runs when the player presses the LEFT button. Usually, this will move most options into an OFF position. For others, this will scale the value of the option downward.

The default code:
var index = this.index();
var symbol = this.commandSymbol(index);
var value = this.getConfigValue(symbol);
this.changeValue(symbol, false);


Default Config Code:
– When creating new options, this determines the default value of the option. For most options, this starts in an OFF position, which is usually represented by a ‘false’ boolean.

The default code:
ConfigManager[symbol] = false;


Save Config Code:
– This determines how saving the Options Settings is done through code. Normally, this takes on the value as it is for the ConfigManager.

The default code:
config[symbol] = ConfigManager[symbol];


Load Config Code:
– This determines how the ConfigManager loads the saved Options Settings upon the loading of the game. Normally, this takes on whatever settings stored within the config file and plants it straight into the ConfigManager directly.

The default code:
ConfigManager[symbol] = !!config[symbol];


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, Plugins, and Lunatic Pack 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!