Introduction
First of all, thank you for reading this post. I created this project completely out of boredom and wanted to share it as open source with anyone who might be interested. This is not a professional project meant for public distribution to live experiences, as it may contain vulnerabilities, bugs, and glitches.
The Design
The design of Console² is largely inspired by the iconic developer console from the Source game engine.
Setup
- Get the main model from one of the sources below and insert it to your Roblox project.
- Ungroup every folder under their respective Data Models labeled on every folders name.
- Well it’s done.
Configuration
You can configure the console visually and auditory with the values on the path StarterGui.ConsoleSquared.Configuration:
Features
Custom Commands
You can add or remove your own and built-in, client and server-sided commands freely by going to the modules ConsoleSquaredServer(.Commands) in ServerScriptService and ConsoleSquaredClient(.Commands) in ReplicatedStorage. The built-in commands there would give you the rough idea of how you create a command.
Autocomplete
Every command you create will be autocompleteable and autofillable.
You can press Tab key to fill the selected autocompletion in the TextBox or press enter to directly submit it.

Command Privileges
Every server-sided commands can be assigned to a rank, so do people:
mycommand = {
func = function(plr:Player)
...
end,
requiredRank = 0 --> Here!
},
ConsoleSquaredServer.Ranks = {
-- Higher the rank, higher the privilege.
-- Any command with a rank of 0 can be used by anyone.
-- Users with a rank below 0 are restricted from using any server commands.
-- math.huge equals to infinite privileges.
-- [UserId] = Rank
}
Rich Text
Outputs are compatible with rich text, which means that you can achieve outputs like this:
Accessible Commands
Since the commands are stored in ModuleScripts, you can access and utilize them from any other script in your project, provided the script meets the necessary context level:
local ServerScriptService = game:GetService("ServerScriptService")
local ConsoleSquaredServer = require(ServerScriptService.ConsoleSquared:WaitForChild("ServerHandler"):WaitForChild("ConsoleSquaredServer"))
ConsoleSquaredServer.Commands.kick.func("Server", "troublemaker5000", "You are making a big mess!")
Get Console²
Latest Release on GitHub:
.rbxm File:
ConsoleSquared.rbxm (33.3 KB)
Testing Place
You can test Console² in this experience with the built-in commands.
The place is uncopylocked.

