- Joined
- Jul 4, 2014
- Messages
- 2,162
- Reaction score
- 822
- First Language
- Hungarian
- Primarily Uses
- RMVXA
Code:
#===============================================================================
# * [ACE] Control Configuration System - Manual And Install Notes
#===============================================================================
# * Made by: Sixth (www.rpgmakervxace.net, www.forums.rpgmakerweb.com)
# * Version: 1.5
# * Updated: 04/07/2017
# * Requires: Neon Black's Keyboard Input (or another keyboard script)
# /--> Shaz's Super Simple Mouse - modified (or another mouse script)
# \----- Only if you want to enable mouse usage!
#-------------------------------------------------------------------------------
# * < Change Log >
#-------------------------------------------------------------------------------
# * Version 1.0 (03/11/2016)
# - Initial release.
# * Version 1.1 (04/11/2016)
# - If you click on an event while you are directly beside it, you expect it
# to be triggered, right? It didn't before, but that should be fixed.
# This update is only useful for mouse users.
# Only the Main Settings and Main Functions scripts were updated.
# * Version 1.2 (14/11/2016)
# - Now you can save the current key-bind settings from the running game into
# a file in your project's folder with a single key press.
# This allows you to set up your new key-bind settings in the game instead
# of in the script. Once you saved the new settings you made in the game
# into this file, you can open the file and copy/paste it directly into
# the Main Settings script of this system.
# The saved file will be formatted properly, so it is really just a simple
# copy/paste job to install the new default control settings from it.
# This feature only works in play-test mode!
# * Version 1.3 (19/11/2016)
# - Fixed a bug with the popup window. Now it should open and close properly
# in every situation.
# * Version 1.4 (22/06/2017)
# - Fixed some font options.
# - Fixed an aliased method which could cause crashes in some rare cases.
# - Fixed the direction key update methods. Turns out, it only worked when
# using Shaz's Super Simple Mouse System script.
# * Version 1.5 (04/07/2017)
# - Fixed a bug with the clearing of key binds in the menu.
# - Fixed a bug with setting key binds in the menu (button rules related).
# - Separated some parts of the code into patches instead to allow for easier
# compatibility with other input scripts.
#-------------------------------------------------------------------------------
# * < Description >
#-------------------------------------------------------------------------------
# * The most important note about this script is that this is NOT a
# plug and play script at all! It is more like a developer's tool.
# While I did change the default input checks, tons of scripts out there uses
# those input checks still, and if you want this script to function with them,
# you will need to change the input checks in those scripts as well!
# Basic scripting knowledge is a must for using this script!
# Now, onto the features...
# * This script will add a control configuration menu for your game, so that
# the players can set their own key-binds to what they want to, instead of
# using some predefined key-binds the game developer forces on them.
# Nothing is worse than an awful keyboard control in a game, right? :P
# * Ability to:
# ~ Make expandable settings. You can make as many key-binds as you want!
# Well, not really, since there is a limit on the number of keys on a
# keyboard, but you get the idea, right? :D
# ~ Set which keys are usable on the keyboard for your game.
# ~ Set more than 1 key for a function.
# Primary, secondary, tertiary key-binds, and so on, it can be done.
# ~ Lock specific key-binds to specific functions. These key-binds can not
# be removed or changed ever by the player.
# ~ Disable the removal of specific key-binds on specific functions. This
# means that at least one key-bind must always be set for the function.
# ~ Set up share-able key-binds to your functions, so that one function can
# share the same key with other functions (such as "Menu Cursor Up" and
# "Move Up", for example).
# ~ Make any kind of structure for your settings. You can nest as many hashes
# as you want in your settings, categorize them however you want.
# ~ Set separate key-bind settings for the menu and for the map functions.
# For example, the "Cursor Up" function does not have to share the key(s)
# with the "Move Up" function (but it can still be set up that way).
# ~ Make the settings dependent on the currently logged in Windows user
# (locally), or make them global for all players.
# ~ Check the last pressed key manually. Might be useful for some eventing.
# ~ Display the correct keys for your functions in message boxes in 3
# different ways (text, icon or custom image).
# ~ Display your function names in message boxes.
# ~ Add a command button for the control configuration menu in your main menu.
# ~ Please your players! :P
# * New things added for Neon Black's Keyboard Input script (requires my patch):
# ~ A "key released?" check method.
# ~ Mapped all of the keys found on a regular keyboard.
# * New things added for Shaz's Super Simple Mouse script (requires my patch):
# ~ A "mouse key pressed?" check method.
# ~ A "mouse key released?" check method.
# ~ Changed the "mouse key repeat?" check method to match the timings from
# Neon Black's Keyboard Input script. Needed for synchronization.
# ~ Added mouse processing for the number input window.
# ~ Mouse processing on the save and load scenes has been changed.
# ~ Triggering an event right next to the player is possible now with the
# mouse movement function (named as :f_move in the key-bind settings).
# ~ Added an event command for using custom mouse offsets for event icons
# and texts.
# ~ Centered the icon and text vertically for custom event icons and texts.
# ~ Changed the positioning of event icons/texts when they are too close to
# the right side of the screen.
# ~ Fixed the compatibility issues with Zeus81's Fullscreen++ script.
# The mouse will now correctly track the game window's size, be it in
# windowed or full-screen mode, and be it in any scale ratios.
# The mouse will be automatically centered when changing screen and scale
# modes, as well as when changing scenes with Fullscreen++.
# ~ Fixed the compatibility issue that happens when using Source's
# Parallel Process Events Execution Bug Fix script. The mouse movement
# was forever disabled after triggering an event with that script installed.
# ~ Certain selectable windows could cause crashes if they are disposed while
# the mouse is active. Added a safe-check to prevent this.
# ~ Changed the Mouse_to_Input_Triggers constant in the Mouse module to work
# with this control configuration system, it is now an instance variable
# which updates itself when the player swaps the mouse buttons on the PC
# during the game.
# ~ Removed the begin/rescue call from a constantly updated method.
# This might increase performance a little (very little, but still :P).
# ~ Added compatibility for projects which disable the tilemap drawing
# completely.
# ~ Added some settings to enable/disable the mouse cursor on all or on
# specific scenes. These settings are in the Main Settings script of my
# Control Configuration System.
# ~ Added an option to forcibly show the system cursor (of Windows) when the
# in-game mouse cursor is invisible (when it's disabled with the above
# mentioned features).
# ~ Added an option to lock the mouse cursor inside the game's window.
# This works even in different scale ratios (Fullscreen++ compatibility).
# You can also set it to lock in full-screen or windowed mode only if you
# need the mouse locked only in one mode.
# ~ The in-game mouse button trigger checks will now detect if the mouse
# buttons are inverted on your PC or not. So, the left and right mouse click
# functions will also be inverted in the game. The displayed key-binds will
# also reflect this information.
# * Extra features (which might not be desireable, but ohh well...):
# ~ Changed the dash button's function, so that it simply toggles between
# dash and walk modes instead of always needing to press the button for it.
# ~ Did the same for the debug through feature. Instead of holding down the
# button for it to activate it, now you can simply toggle between normal
# collision and debug through modes.
# * Features disabled by this script:
# ~ Old input checks. This leads us to...
# ~ Gamepad control. I know. I will try to implement a control mode switch in
# the future which will use LoneWolf's Gamepad Extender script, but due to
# lack of compatible (any) gamepad, I can't test anything, so this will have
# to wait. Adjustable full keyboard control "only" is still better than the
# default gamepad control + the very limited amount of keys provided, in my
# opinion, so take it with a grain of salt (not sure if I used this
# expression in the right sense here :P).
#-------------------------------------------------------------------------------
# * < Instructions >
#-------------------------------------------------------------------------------
# * Refer to the script's header for usage instructions!
#-------------------------------------------------------------------------------
# * < Installation >
#-------------------------------------------------------------------------------
# * IMPORTANT: Backup your project before attempting to install this system!
# * Follow the notes below carefully to install this system! Failing to do that
# can result in undesirable effects!
# * All scripts of this system go below the Materials section but above Main!
# * The relevant scripts should go in this order:
# - Zeus81's Fullscreen++ (if used)
# - Yanfly's Core Engine (if used)
# - Sixth's Control Configuration System - Main Settings
# - Neon Black's Keyboard Input System
# - Shaz's Super Simple Mouse Script (if used)
# - Sixth's Control Configuration System - Vocab Settings
# - Sixth's Control Configuration System - Menu Settings
# - Sixth's Control Configuration System - Default Input Check Methods
# - Sixth's Control Configuration System - Main Functions
# - Sixth's Control Configuration System - Menu Code
# * The rest of the scripts used by this system can go anywhere on your list.
# * Depending on what other scripts you use, you might need to change the order
# of your scripts for this system! I haven't tested this with many scripts,
# so I can't know for sure. Let me know if you find any other mandatory
# script placement order for other scripts!
# * Yanfly's Message System should go above these scripts if used!
#-------------------------------------------------------------------------------
# * < Compatibility Info >
#-------------------------------------------------------------------------------
# * Added compatibility for Cidiomar's Input System with the v1.5 update.
# Now you can use that keyboard script too if you want.
# Note that Cidiomar's Input System allows mouse clicks to be used without a
# separate mouse script (you will still need a mouse script if you want to
# use the mouse cursor itself though).
# * As mentioned above, this system is using Neon Black's Keyboard Input script
# currently. It is possible to use it with other keyboard scripts, but
# there is a high chance that extensive modifications would need to be done
# in the scripts of this system. If the keyboard script you want to use uses
# symbols for the key identifiers (like Neon Black's), than it can be used
# without much modification in the real code (although you will still need to
# change tons of things in the setting area). If it uses some other type of
# identifiers (such as strings or integers), the real code (non-configuration
# part) of this system must be changed to match the things from the keyboard
# script you use.
# Similarly, if the keyboard script you want to use did not patch it's key
# press checks into the default input check methods, it will not work with
# this system!
# * The same applies to the mouse script used for this system as the above
# mentioned rules for the keyboard script you might use.
# Although mouse systems are a bit more complicated and each of them might
# be very different from the other, so regardless of what other mouse script
# you may want to use (aside from Shaz's), it will need to be edited to work
# with this control configuration system for sure.
# * Gamepads are disabled for now! Notes about this can be found in the
# description section a little bit above.
# * Any scripts overwriting the overwritten methods found in the
# Default Input Check Methods script may or may not be incompatible!
# The mentioned script must be placed below those scripts, or else this system
# will not function properly!
#-------------------------------------------------------------------------------
# * < Known Issues >
#-------------------------------------------------------------------------------
# * No known issues.
#-------------------------------------------------------------------------------
# * < Terms of Use >
#-------------------------------------------------------------------------------
# * Free to use for whatever purposes you want.
# * Credit me (Sixth) in your game, pretty please! :p
# * Posting modified versions of this script is allowed as long as you notice me
# about it with a link to it!
# * The other scripts (not written by me) used in this demo retain their
# original terms of use stated by their authors!
#===============================================================================
This system has many scripts, so instead of uploading all of them, lookie below for a handy demo.
- Demo:
Linky: https://drive.google.com/open?id=0B7RAWk4I_tQ3NDJxQlgtdFJDSTA
- Addons:
Title Command Addon:
The key images found in the "Graphics/Key Images/" folder are made by me. Some keys are not included there (like the mouse buttons, for example)!
Those are just examples and are not meant to be used in any projects! Kindly make your own to use in your project(s), thanks!
The default cursor icon is made by me. You can use that if you wish, although it's nothing special, really.
- Screenshots:
NOTE:
Some functions you see on these screenshots are not really implemented!
They are just examples for adding new functions/key-bind settings for your project.
- Author's Notes:
Whenever I see a game with bad default key-binds and without any way of changing them, I think...
"Why didn't they make a control configuration system? It's the 21st century, right? >.>"
I can't say it was easy to make this system, but I finally finished it, and if I can, certainly those developers with much more resources than I have can too.
Yet they don't. And I am mad at them! -.-
In any case, this system will surely cheer your players up, regardless if you got a good default key-bind configuration or not.
Except if you plan to have gamepad usage in your game. That is not possible with this script, and I am not sure if I will add that in the future or not.
For now, this will stay as a keyboard + mouse control configuration system.
If you use this system, I recommend using a script to disable the built-in F1 "Options" key for obvious reasons.
There are multiple scripts floating out there for this, so finding one shouldn't be hard.
Read the instructions and setting details carefully in the scripts!
The first thing I wrote in the script's header is that this is NOT a plug-and-play system!
Unless you plan to use the default menus and functions only, in which case, you are good to go if you are satisfied with my settings in the script.
Otherwise, you will have to edit the settings to fit your project's need.
Scripting knowledge is a must for making this compatible with non-default RPG Maker projects!
In case you need help in this regard, you can ask me, although I can't promise that I can do the changes for you for free (kinda busy with commissions, sorry).
Okay, tea time! *-*
Last edited:


