0 of 0

File information

Last updated

Original upload

Created by

Skrip

Uploaded by

Skrip037

Virus scan

Safe to use

About this mod

SkToolbox is a framework used for quickly implementing a custom console with executable commands in Unity games. Typically used for creating plugins for use with existing projects. This project is expected to be injected via BepInEx. Commands are automatically converted to clickable buttons to provide for a complete user interface.

Requirements
Permissions and credits
Changelogs
Donations


SkToolbox is a framework used for improving the gameplay experience by implementing a dynamic custom console with executable commands in Unity games. Typically used for creating plugins for use with existing projects. This project is expected to be injected via BepInEx. Commands are automatically converted to clickable buttons to provide for a complete user interface. Upon placing this framework in the BepInEx plugins directory, the game will load an interactable console interface. When other mods use this framework and their plugin is also loaded via BepInEx, the commands found will automatically be loaded by the framework. SkToolbox is compatible with any non-IL2CPP Unity game.



Features
This console supports the following features:
  • Command auto-completion via tab. If the user has partially entered a command, they can use tab to cycle through the potential commands they
    might be entering.
  • Command chaining, in which multiple commands can be input on a single line, separated by a semi-colon. (Ex. cmd1; cmd2; cmd3; ...)
  • Previously entered command cycling via the up/down arrows. Unlimited commands will be remembered.
  • Command suggestions will be displayed as the user types.
  • Command parameters will be automatically suggested and highlighted as the user types.
  • Command aliasing allows the user to create custom chains of commands.
  • Command key binding allows users to run any number of commands via key press when outside of the console.
  • Automatically generate on-screen buttons based on registered commands. As buttons are added, this will become a scrollable menu.
  • Supports color theme changes on the fly! Set the theme to any color via command or config!
  • Many options and preferences are found in the configuration file.



How To Install
  • Download and extract BepInEx to your Unity game directory.
  • Extract the SkToolbox.dll from the release files and place it into the \game\BepInEx\plugins directory. (Note, this folder will be created after running the game the first time after installing BepInEx. If this folder does not appear, then you may have installed the wrong version of BepInEx for the specified game.)
  • Done. You can now press tilde [ ` ] in game to display the on-screen menu.
    Any plugins that are also placed in the plugins directory that contain commands will automatically be detected and added to the left side button panel and to the type-input.


How To Create Custom Commands
Head over to the official GitHub page for detailed instructions. It boils down to creating a .Net Framework class library as you would for any Unity mod or BepInEx pluigin, referencing the SkToolbox dll, then creating a class that will load your BepInEx plugin and defining the specific command you want to create.

Example: This is a simple plugin for Autonauts vs. Pirates, in which we create a dll with one command that enables the developer tool menu. In the color-changing screenshot above, this was the plugin that generated the EnableTools button. You can see in this screenshot the fully created command being shown by 'help' and the button on the left panel.

using BepInEx;
using SkToolbox;

/// <summary>
/// Plugin for SkToolbox, intended for running on Autonauts vs Pirates
/// </summary>
namespace SkToolboxAvPB
{
[BepInPlugin(GUID, MODNAME, VERSION)]
[BepInDependency("com.Skrip.SkToolbox")] // Set the dependency // Line optional
class SkBepInExLoader : BaseUnityPlugin
{
public const string // Declare plugin information
MODNAME = "SkToolboxAvPB",
AUTHOR = "Skrip",
GUID = "com." + AUTHOR + "." + MODNAME,
VERSION = "1.0.0.0";

[Command("EnableTools", "Enables the in-game tools menu.", "World")] // Declare the 'EnableTools' command
public static void EnableTools()
{
CheatManager.Instance.m_CheatsEnabled = true;
GameStateManager.Instance.SetState(GameStateManager.State.CreativeTools);
}
}
}


Fully functional plugins that use this framework