VCM_SkillBar
A downloadable tool
Introduction
This plugin can show a Skill Bar in Map and Battle. Skill Bar objects may be activated with a keypress, left-click or hover + ok button. Each actor has its own Skill Bar. In Map, the Party leader Skill Bar is shown. It requires a placeholder skill for empty objects. Map Skill Bar and Battle Skill Bar are separated entities: changes in one of them will not necessarily carry over to the other. Items may be included in Skill Bar. 'Attack' and 'Guard' skills will only be shown if player 'learns' them. If player is allowed to change object positions, it is necessary to right-click or hover + cancel button the desired object in order to show the Skill Swap Bar and do the same thing while hovering any of them to close it. Left-click or hover + ok button the desired object in Skill Swap Bar will perform the change. Doing these same things hovering anywhere else will be like usual. Skill Swap Bar has identical dimensions and appearance to the Skill Bar, except for the Skill Swap Bar y Offset. Its objects are placeholder skill, then all valid skills, then all valid items(if allowed). Both Skill Bar and Skill Swap Bar may be scrolled down if number of max items is higher than what can be shown by its proportions. Allowed Help windows will be shown when hovering over a Skill Bar or Skill Swap Bar object. Dimensions, appearance, Help windows, hotkeys and restrictions of Skill Bar are all configurable. Map Skill Bar's skills and items may only be used if its respective 'Occasion' is 'Always' or 'Menu Screen'. Only its respective 'Effects' and costs are performed. No longer supported by the author.
Version -> 1.04
This plugin was tested only on RPG Maker MV Version 1.6.2. I cannot guarantee it works on lower versions.
Terms of Use:
- Available for commercial and non-commercial use
- You may freely edit the code
- You are not allowed to redistribute this plugin. Instead, provide a link(https://vcm-plugins.itch.io/vcm-skillbar)
- Do not claim this plugin as your own
- Credit is not required. However, if you want to, credit me as 'VCM Plugins'
Parameters Explanation
Placeholder Skill
This parameter specifies id of skill to be used in empty slots of Skill Bar. If value doesn't matches any existent skill id, the plugin will not work. It's highly recommended that placeholder skill's 'Occasion' be 'Never' and that none of your actors learn it.
Show Skill Key
This parameter determines whether hotkeys for each position will be shown. If number of objects shown is higher than the number of hotkeys, some positions will not have hotkeys. Scrolling the Skill Bar will keep the visible sequence, provided that the max number of items is a multiple of the number of objects shown. For example, 10-20, 3-15, 8-80, 6-36...
Show Skill Cost
This parameter determines if skill costs will be shown to the player. If object is an item, it will show the number of items instead.
Skill Bar Font Size
This parameter sets the size of text inside the Skill Bar. If value is 0, no text will be shown. Values lower than 0 may cause inconsistencies. Non-number values may throw errors.
Item Quantity Text Color
This parameter specifies text color code when showing number of items in Skill Bar. Text color codes range from 0 to 31 by default. Any values out of that range may cause inconsistencies.
Skill Bar Help Window Wordwrapping
This parameter enables/disables the automatic line break whenever the Skill Bar Help Window text width is higher than the respective Skill Bar Help Window width. You can still break lines normally in the object's 'Description'. This will not break line in the middle of words. For example:
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"
will not activate the line break and if text width is higher than Skill Bar Help Window width, text will be cropped.
Show Skill Bar (Map)
This parameter determines whether Skill Bar will appear in Map.
Skill Bar Position (Map)
This parameter specifies Map Skill Bar x and y positions, as well as its width and height. The higher the x value, the farther it will be in the right. The higher the y value, the lower it will be. If the x or y values are higher than the game screen's width and height, respectively, it will not be visible. If x + Width <= 0 or y + Height <= 0 or Width <= 0 or Height <= 0, it will not appear. Same if any of the values is non-number. Map Skill Bar does not have padding, nor spacing.
Skill Bar Windowskin (Map)
This parameter specifies which Windowskin you will use for the Map Skill Bar Window. The image should be a png file located in the img\system folder. If setting the value textually, don't use extension. For example, Window or "Window", works fine, while Window.png or "Window.png", don't. If the value is invalid, it may throw errors. Using unsuitable files may have unexpected results. For example, using "Shadow 1" as Windowskin will probably show no Window for being too small.
Skill Bar Opacity (Map)
This parameter defines opacity of the Map Skill Bar. Value should be a number between 0 and 255. Any value lower than 0 will be converted to 0, and any value higher than 255 will become 255. Higher values means more opaque. With an opacity of 0, the window will become transparent, but text and icons will still be visible. Non-number values may throw errors.
Skill Bar Columns (Map)
This parameter specifies the number of objects that Map Skill Bar may have in a single row. If width of Map Skill Bar is higher than necessary, there will have unused space. If it is lower, less objects will be shown per row, and the last one may be cropped. If its height does not support a single row, no object will ever be shown. Same if this parameter's value is 0 or lower, or non-number.
Max Skills (Map)
This parameter specifies the max of objects that Map Skill Bar may have. No objects will ever be shown if value is 0 or lower, or non-number.
Items Allowed (Map)
This parameter defines whether Items may be added to Map Skill Bar.
Automatic Placing (Map)
This parameter defines if allowed objects will be added to Map Skill Bar automatically. Does not adds already included objects.
Repeat Skills (Map)
This parameter specifies whether objects may be repeated in Map Skill Bar. If player manually adds an already existing object, placeholder skill will replace its previous position.
Disabled Skills (Map)
This parameter specifies if objects whose 'Occasion' doesn't allows its use in Map Skill Bar may be added.
Change Skills (Map)
This parameter determines Map Skill Swap Bar existence. Setting this value to No(false) will prevent the player from changing its Map Skill Bar.
Skill Swap Bar y Offset (Map)
This parameter adds to the Skill Bar Position (Map) y parameter to determine Skill Swap Bar y position. A value of 0 means that Map Skill Swap Bar will overlap Map Skill Bar when called. Non-number values will prevent it from showing.
Skill Keys (Map)
This parameter specifies hotkeys for each visible object position. Avoid values that require more than one keypress to execute. It's highly recommended that the number of visible objects match the number of entries here and that Max Skills (Map) Parameter's value is a multiple of it to avoid inconsistencies. For example, 7-7-21.
Show Skill Bar (Battle)
This parameter determines whether Skill Bar will appear in Battle. If set to Yes(true), it will only appear when Actor Command Window is shown.
Skill Bar Position (Battle)
This parameter specifies Battle Skill Bar x and y positions, as well as its width and height. The higher the x value, the farther it will be in the right. The higher the y value, the lower it will be. If the x or y values are higher than the game screen's width and height, respectively, it will not be visible. If x + Width <= 0 or y + Height <= 0 or Width <= 0 or Height <= 0, it will not appear. Same if any of the values is non-number. Battle Skill Bar does not have padding, nor spacing.
Skill Bar Windowskin (Battle)
This parameter specifies which Windowskin you will use for the Battle Skill Bar Window. The image should be a png file located in the img\system folder. If setting the value textually, don't use extension. For example, Window or "Window", works fine, while Window.png or "Window.png", don't. If the value is invalid, it may throw errors. Using unsuitable files may have unexpected results. For example, using "Shadow 1" as Windowskin will probably show no Window for being too small.
Skill Bar Opacity (Battle)
This parameter defines opacity of the Battle Skill Bar. Value should be a number between 0 and 255. Any value lower than 0 will be converted to 0, and any value higher than 255 will become 255. Higher values means more opaque. With an opacity of 0, the window will become transparent, but text and icons will still be visible. Non-number values may throw errors.
Skill Bar Columns (Battle)
This parameter specifies the number of objects that Battle Skill Bar may have in a single row. If width of Battle Skill Bar is higher than necessary, there will have unused space. If it is lower, less objects will be shown per row, and the last one may be cropped. If its height does not support a single row, no object will ever be shown. Same if this parameter's value is 0 or lower, or non-number.
Max Skills (Battle)
This parameter specifies the max of objects that Battle Skill Bar may have. No objects will ever be shown if value is 0 or lower, or non-number.
Items Allowed (Battle)
This parameter defines whether Items may be added to Battle Skill Bar.
Automatic Placing (Battle)
This parameter defines if allowed objects will be added to Battle Skill Bar automatically. Does not adds already included objects.
Repeat Skills (Battle)
This parameter specifies whether objects may be repeated in Battle Skill Bar. If player manually adds an already existing object, placeholder skill will replace its previous position.
Disabled Skills (Battle)
This parameter specifies if objects whose 'Occasion' doesn't allows its use in Battle Skill Bar may be added.
Change Skills (Battle)
This parameter determines Battle Skill Swap Bar existence. Setting this value to No(false) will prevent the player from changing its Battle Skill Bar.
Skill Swap Bar y Offset (Battle)
This parameter adds to the Skill Bar Position (Battle) y parameter to determine Skill Swap Bar y position. A value of 0 means that Battle Skill Swap Bar will overlap Battle Skill Bar when called. Non-number values will prevent it from showing.
Skill Keys (Battle)
This parameter specifies hotkeys for each visible object position. Avoid values that require more than one keypress to execute. It's highly recommended that the number of visible objects match the number of entries here and that Max Skills (Battle) Parameter's value is a multiple of it to avoid inconsistencies. For example, 10-10-40.
Show Skill Bar Help Window (Map)
This parameter determines whether Skill Bar Help Window will appear in Map.
Skill Bar Help Window Position (Map)
This parameter determines the Map Skill Bar Help Window x and y positions, as well as its width and height. The higher the x value, the farther it will be in the right. The higher the y value, the lower it will be. If x or y values are higher than the game screen's width and height, respectively, it will not be visible. If x + Width <= 0 or y + Height <= 0 or Width <= 0 or Height <= 0, it will not appear.
Skill Bar Help Window Windowskin (Map)
This parameter specifies which Windowskin you will use for the Map Skill Bar Help Window. The image should be a png file located in the img\system folder. If setting the value textually, don't use extension. For example, Window or "Window", works fine, while Window.png or "Window.png", don't. If the value is invalid, it may throw errors. Using unsuitable files may have unexpected results. For example, using "Shadow 1" as Windowskin will probably show no Window for being too small.
Skill Bar Help Window Font (Map)
This parameter determines the Font Settings for the Map Skill Bar Help Window. Font specifies the Font Name. Even if it works on your machine without, remember to add the Font to your game if you distribute it. Font Size is a number. If its value is 0 or lower it will not appear. Non-number values may throw errors. Italic determines whether the font will be in Italic. Text Color specifies color of the text. You may use several ways to show color, such as Hex(#ffffff) or RGBA(rgba(217, 136, 74, 1)). Invalid values will make the Text Color black. Text Outline Color determines color of the text contour. The same rules of Text Color apply here. Text Outline Width specifies width of text contour. It is a number, and if equal to 0, it will be invisible. If lower than 0, it may cause inconsistencies. If it is too big, it may block the actual text.
Skill Bar Help Window Opacity (Map)
This parameter defines opacity of the Map Skill Bar Help Window. Value should be a number between 0 and 255. Any value lower than 0 will be converted to 0, and any value higher than 255 will become 255. Higher values means more opaque. With an opacity of 0, the window will become transparent, but text and icons will still be visible. Non-number values may throw errors.
Show Skill Bar Help Window (Battle)
This parameter determines whether Skill Bar Help Window will appear in Battle.
Skill Bar Help Window Position (Battle)
This parameter determines the Battle Skill Bar Help Window x and y positions, as well as its width and height. The higher the x value, the farther it will be in the right. The higher the y value, the lower it will be. If x or y values are higher than the game screen's width and height, respectively, it will not be visible. If x + Width <= 0 or y + Height <= 0 or Width <= 0 or Height <= 0, it will not appear.
Skill Bar Help Window Windowskin (Battle)
This parameter specifies which Windowskin you will use for the Battle Skill Bar Help Window. The image should be a png file located in the img\system folder. If setting the value textually, don't use extension. For example, Window or "Window", works fine, while Window.png or "Window.png", don't. If the value is invalid, it may throw errors. Using unsuitable files may have unexpected results. For example, using "Shadow 1" as Windowskin will probably show no Window for being too small.
Skill Bar Help Window Font (Battle)
This parameter determines the Font Settings for the Battle Skill Bar Help Window. Font specifies the Font Name. Even if it works on your machine without, remember to add the Font to your game if you distribute it. Font Size is a number. If its value is 0 or lower it will not appear. Non-number values may throw errors. Italic determines whether the font will be in Italic. Text Color specifies color of the text. You may use several ways to show color, such as Hex(#ffffff) or RGBA(rgba(217, 136, 74, 1)). Invalid values will make the Text Color black. Text Outline Color determines color of the text contour. The same rules of Text Color apply here. Text Outline Width specifies width of text contour. It is a number, and if equal to 0, it will be invisible. If lower than 0, it may cause inconsistencies. If it is too big, it may block the actual text.
Skill Bar Help Window Opacity (Battle)
This parameter defines opacity of the Battle Skill Bar Help Window. Value should be a number between 0 and 255. Any value lower than 0 will be converted to 0, and any value higher than 255 will become 255. Higher values means more opaque. With an opacity of 0, the window will become transparent, but text and icons will still be visible. Non-number values may throw errors.
Script Calls
If you want to change values of parameters mid-game, use the following syntax in Script Calls:
$gameSystem._skillBarSystem['Name of Parameter'] = value;
Examples:
$gameSystem._skillBarSystem['Show Skill Key'] = false;
$gameSystem._skillBarSystem['Show Skill Cost'] = false;
$gameSystem._skillBarSystem['Skill Bar Font Size'] = 20;
$gameSystem._skillBarSystem['Item Quantity Text Color'] = 0;
$gameSystem._skillBarSystem['Skill Bar Help Window Wordwrapping'] = false;
$gameSystem._skillBarSystem['Show Skill Bar (Map)'] = false;
$gameSystem._skillBarSystem['Skill Bar Columns (Map)'] = 4;
$gameSystem._skillBarSystem['Max Skills (Map)'] = 20;
$gameSystem._skillBarSystem['Items Allowed (Map)'] = false;
$gameSystem._skillBarSystem['Automatic Placing (Map)'] = false;
$gameSystem._skillBarSystem['Repeat Skills (Map)'] = true;
$gameSystem._skillBarSystem['Disabled Skills (Map)'] = true;
$gameSystem._skillBarSystem['Change Skills (Map)'] = false;
$gameSystem._skillBarSystem['Skill Keys (Map)'][0] = 'a'.toUpperCase();
$gameSystem._skillBarSystem['Show Skill Bar (Battle)'] = true;
$gameSystem._skillBarSystem['Skill Bar Columns (Battle)'] = 8;
$gameSystem._skillBarSystem['Max Skills (Battle)'] = 8;
$gameSystem._skillBarSystem['Items Allowed (Battle)'] = true;
$gameSystem._skillBarSystem['Automatic Placing (Battle)'] = true;
$gameSystem._skillBarSystem['Repeat Skills (Battle)'] = false;
$gameSystem._skillBarSystem['Disabled Skills (Battle)'] = false;
$gameSystem._skillBarSystem['Change Skills (Battle)'] = true;
$gameSystem._skillBarSystem['Skill Keys (Battle)'][3] = '.'.toUpperCase();
$gameSystem._skillBarSystem['Show Skill Bar Help Window (Map)'] = true;
$gameSystem._skillBarSystem['Skill Bar Help Window Font (Map)'].Font = 'Algerian'; $gameSystem._skillBarSystem['Skill Bar Help Window Font (Map)']['Font Size'] = 64; $gameSystem._skillBarSystem['Skill Bar Help Window Font (Map)'].Italic = true; $gameSystem._skillBarSystem['Skill Bar Help Window Font (Map)']['Text Color'] = 'rgba(200, 100, 0, 1)'; $gameSystem._skillBarSystem['Skill Bar Help Window Font (Map)']['Text Outline Color'] = '#ffffff'; $gameSystem._skillBarSystem['Skill Bar Help Window Font (Map)']['Text Outline Width'] = 16;
$gameSystem._skillBarSystem['Show Skill Bar Help Window (Battle)'] = false;
$gameSystem._skillBarSystem['Skill Bar Help Window Font (Battle)'].Font = 'Arial'; $gameSystem._skillBarSystem['Skill Bar Help Window Font (Battle)']['Font Size'] = 16; $gameSystem._skillBarSystem['Skill Bar Help Window Font (Battle)'].Italic = false; $gameSystem._skillBarSystem['Skill Bar Help Window Font (Battle)']['Text Color'] = 'rgba(0, 120, 200, 0.5)'; $gameSystem._skillBarSystem['Skill Bar Help Window Font (Battle)']['Text Outline Color'] = 'rgba(0, 0, 0, 1)'; $gameSystem._skillBarSystem['Skill Bar Help Window Font (Battle)']['Text Outline Width'] = 2;
Changing parameters that affect the current scene doesn't always have immediate results. Additional code may be needed to see immediate changes.
Examples:
for(var i = 0; i < $gameParty.allMembers().length; i++){ for(var j = 0; j < $gameParty.allMembers()[i]._mapBarSkills.length; j++){ if($gameParty.allMembers()[i]._mapBarSkills[j] === $gameSystem._skillBarSystem['Placeholder Skill']){ $gameParty.allMembers()[i]._mapBarSkills.splice(j, 1, $dataSkills[40]); }} for(var j = 0; j < $gameParty.allMembers()[i]._battleBarSkills.length; j++){ if($gameParty.allMembers()[i]._battleBarSkills[j] === $gameSystem._skillBarSystem['Placeholder Skill']){ $gameParty.allMembers()[i]._battleBarSkills.splice(j, 1, $dataSkills[40]); }}} $gameSystem._skillBarSystem['Placeholder Skill'] = 40; $gameSystem._skillBarSystem['Placeholder Skill'] = $dataSkills[$gameSystem._skillBarSystem['Placeholder Skill']];
$gameSystem._skillBarSystem['Skill Bar Position (Map)'].x = 4; SceneManager._scene._skillBar.x = 4; $gameSystem._skillBarSystem['Skill Bar Position (Map)'].y = 4; SceneManager._scene._skillBar.y = 4; $gameSystem._skillBarSystem['Skill Bar Position (Map)'].Width = 816; SceneManager._scene._skillBar.width = 816; SceneManager._scene._skillBar.contents.resize(SceneManager._scene._skillBar.contentsWidth(), SceneManager._scene._skillBar._helpWindow.contentsHeight()); $gameSystem._skillBarSystem['Skill Bar Position (Map)'].Height = 36; SceneManager._scene._skillBar.height = 36; SceneManager._scene._skillBar.contents.resize(SceneManager._scene._skillBar.contentsWidth(), SceneManager._scene._skillBar._helpWindow.contentsHeight());
$gameSystem._skillBarSystem['Skill Bar Windowskin (Map)'] = 'Window2'; SceneManager._scene._skillBar.windowskin = ImageManager.loadSystem('Window2');
$gameSystem._skillBarSystem['Skill Bar Opacity (Map)'] = 255; SceneManager._scene._skillBar.opacity = 255;
$gameSystem._skillBarSystem['Skill Swap Bar y Offset (Map)'] = 0; SceneManager._scene._skillSwap.y = $gameSystem._skillBarSystem['Skill Bar Position (Map)'].y + 0;
$gameSystem._skillBarSystem['Skill Bar Position (Battle)'].x = 600; SceneManager._scene._skillBar.x = 600; $gameSystem._skillBarSystem['Skill Bar Position (Battle)'].y = 300; SceneManager._scene._skillBar.y = 300; $gameSystem._skillBarSystem['Skill Bar Position (Battle)'].Width = 216; SceneManager._scene._skillBar.width = 216; SceneManager._scene._skillBar.contents.resize(SceneManager._scene._skillBar.contentsWidth(), SceneManager._scene._skillBar._helpWindow.contentsHeight()); $gameSystem._skillBarSystem['Skill Bar Position (Battle)'].Height = 68; SceneManager._scene._skillBar.height = 68; SceneManager._scene._skillBar.contents.resize(SceneManager._scene._skillBar.contentsWidth(), SceneManager._scene._skillBar._helpWindow.contentsHeight());
$gameSystem._skillBarSystem['Skill Bar Windowskin (Battle)'] = 'Window'; SceneManager._scene._skillBar.windowskin = ImageManager.loadSystem('Window');
$gameSystem._skillBarSystem['Skill Bar Opacity (Battle)'] = 100; SceneManager._scene._skillBar.opacity = 100;
$gameSystem._skillBarSystem['Skill Swap Bar y Offset (Battle)'] = -300; SceneManager._scene._skillSwap.y = $gameSystem._skillBarSystem['Skill Bar Position (Battle)'].y + (-300));
$gameSystem._skillBarSystem['Skill Bar Help Window Position (Map)'].x = 500; SceneManager._scene._skillBarHelpWindow.x = 500; $gameSystem._skillBarSystem['Skill Bar Help Window Position (Map)'].y = 400; SceneManager._scene._skillBarHelpWindow.y = 400; $gameSystem._skillBarSystem['Skill Bar Help Window Position (Map)'].Width = 300; SceneManager._scene._skillBarHelpWindow.width = 300; SceneManager._scene._skillBarHelpWindow.contents.resize(SceneManager._scene._skillBar.contentsWidth(), SceneManager._scene._skillBarHelpWindow._helpWindow.contentsHeight()); $gameSystem._skillBarSystem['Skill Bar Help Window Position (Map)'].Height = 140; SceneManager._scene._skillBarHelpWindow.height = 140; SceneManager._scene._skillBarHelpWindow.contents.resize(SceneManager._scene._skillBar.contentsWidth(), SceneManager._scene._skillBarHelpWindow._helpWindow.contentsHeight());
$gameSystem._skillBarSystem['Skill Bar Help Window Windowskin (Map)'] = 'Window_Help'; SceneManager._scene._skillBarHelpWindow.windowskin = ImageManager.loadSystem('Window_Help');
$gameSystem._skillBarSystem['Skill Bar Help Window Opacity (Map)'] = 0; SceneManager._scene._skillBarHelpWindow.opacity = 0;
$gameSystem._skillBarSystem['Skill Bar Help Window Position (Battle)'].x = -20; SceneManager._scene._skillBarHelpWindow.x = -20; $gameSystem._skillBarSystem['Skill Bar Help Window Position (Battle)'].y = -10; SceneManager._scene._skillBarHelpWindow.y = -10; $gameSystem._skillBarSystem['Skill Bar Help Window Position (Battle)'].Width = 1000; SceneManager._scene._skillBarHelpWindow.width = 1000; SceneManager._scene._skillBarHelpWindow.contents.resize(SceneManager._scene._skillBar.contentsWidth(), SceneManager._scene._skillBarHelpWindow._helpWindow.contentsHeight()); $gameSystem._skillBarSystem['Skill Bar Help Window Position (Battle)'].Height = 900; SceneManager._scene._skillBarHelpWindow.height = 900; SceneManager._scene._skillBarHelpWindow.contents.resize(SceneManager._scene._skillBar.contentsWidth(), SceneManager._scene._skillBarHelpWindow._helpWindow.contentsHeight());
$gameSystem._skillBarSystem['Skill Bar Help Window Windowskin (Battle)'] = 'Window_Help2'; SceneManager._scene._skillBarHelpWindow.windowskin = ImageManager.loadSystem('Window_Help2');
$gameSystem._skillBarSystem['Skill Bar Help Window Opacity (Battle)'] = 200; SceneManager._scene._skillBarHelpWindow.opacity = 200;
Compatibility
Plugin Manager line-up for maximum compatibility:
VCM_HelpWindow
VCM_PreviousTurn
VCM_BattleSave
VCM_Quicksave
VCM_MovementSpeeds
VCM_StateDescription
VCM_TermDescription
VCM_BattleMainMenu
VCM_EventHighlighting
VCM_SkillBar
VCM_MirroredSpriteset
VCM_ActionPoints
VCM_ActionOrder
VCM_EnemyGauges
VCM_MultipleGauges
VCM_ElementAffinity
VCM_AutoBattle
VCM_EnemyInfo
VCM_NumberBattlers
VCM_NoBattleLog
Versions
Version -> 1.00
Released Plugin.
Version -> 1.01
Fixed placeholder skill sometimes not appearing in Skill Swap Bar. Changes to parameters through script calls will now only be loaded in local savefiles. Updated documentation.
Version -> 1.02
Fixed sometimes removing an action when hiding the Skill Swap Bar. Updated Documentation.
Version -> 1.03
Fixed wrong description of Skill Bar and Skill Swap Bar in code. Updated Documentation.
Version -> 1.04
Updated documentation.