Console² Developer Console

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

  1. Get the main model from one of the sources below and insert it to your Roblox project.
  2. Ungroup every folder under their respective Data Models labeled on every folders name.
  3. 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.

5 Likes

What is the benefit of this over let’s say Conch and Cmdr?

Probably nothing much. This resource is for anyone interested in the source code of a basic developer console, or even might want to use it in their own projects.

3 Likes

Don’t know what the other guy is on about, this is a nice and quick way to set up commands. I like the source style, and will use this console for testing and debug. Thanks for the resource!

4 Likes

Hello @proturk_yt and @artembon,

I did not express any negative sentiment, nor mean any.

My question to @proturk_yt was simply whether there were any additional benefits with two other similar projects which create commands for developers to use and that could be considered for a use case in my projects (or perhaps someone else’s).

Even though there is none, this project looks well made and is enthusiastic to see.

It is always beneficial to observe Developers sharing their personal projects, as they often serve as platforms for lots of skill development and obviously boredom can turn into passion projects.

3 Likes