"TSBind" is a 'CC (console command)' mod which adds new commands that allow the user to bind and unbind commands to/from keybinds, a very simple--entirely CC--alternative system to the "SimpleMacros" mod.
TSBind both has its own internal keybind system and interacts directly with 'rewired', the in-built keybind system RoR2 uses, allowing the mod to reliably only bind already unbound keys. The system also has a check in place which will unbind all binds if bindings somehow desync (too many keybinds with too few commands or vice versa).
The mod is intended to be mainly used directly through the command console, however the mod uses CCs intentionally so that outside mods can easily--directly--interface with the mod without having to check if the mod is installed.
A user can bind a key by doing COSimulBind [key] [command]
in the console then press the key when the console is closed and the CC will automatically be sent.
If the command is run multiple times with the same key, all commands defined when binding will run one after the other - all at once.
You can also use CObind [key] [command]
--similarly to COSimulBind
when used multiple times--to preform the same action but each press will switch between calling one command then the next in the order of when it was bound, for example running CObind p 'timescale 0'
then CObind p 'timescale 1'
will set the timescale of the game to 0 when the p key is pressed then back to 1 when it is pressed again - looping back to 0 when pressed again.
You can unbind the latest bind of the respective type by calling the command with no second parameter, for example: running COBind P
will attempt to unbind the latest command bound to the p key.
Alternatively you can use the COUnbind
command with at least one argument to unbind a keybind at a specific index of the 'toggle' bind type, 2 arguments to unbind at an index of the specified bind type ('toggle' or 'simul') or 3 arguments (with the first argument being ignored) which will let you unbind the first found keybind defined in the 3rd argument.
After cloning the repository and ensuring you have any version of VS 2017/2019 installed, you should be able to simply open the .snl
file to open the project in VS.
Before posting a merge request, please ensure you've:
- Adequately checked for 'top level' bugs
- Provided enough commenting/sudo-code for other contributers to quickly understand the process (if necessary)
For the sake of documenting bugfixes, when posting a merge request, please ensure you detail any changes by:
- Describing what was changed (in the head)
- How the changes where made (in the 'extended description')
- If the merge request only adds new code and does not edit any pre-existing code, feel free to only fill the head.
There are no special steps to building and compiling the code, simply press 'run' in VS.
If you do not have the export helper installed; simply press 'Ok' if an error appears saying "A project with an Output Type of Class Library cannot be started directly". Visual Studio will have the .dll
file you need generated in bin>Debug
for VS 2017 or bin>Debug>netstandard2.0
for VS 2019, simply copy the .dll
file into the BepInEx plugins
folder and start RoR2.
If you have the exporter helper tool setup correctly; after pressing 'run' in VS, simply start RoR2.
Simply install the mod/modpack from the modpacks main page and play. If you encounter any issues make sure to log it and provide as much relevant detail as possible in the relevant mods' issue
page--or the main page if you don't know which mod is the problem--after checking if the same issue has not already been encountered, you can use the formatting guide to help with this.
Don't worry about if you predict the wrong mod as the cause, it's more important to just have the report out there.
V1.0.0 (unreleased):
- none yet!