Minimal - Easy to use admin module [OUTDATED]

Minimal is outdated - please use Solar instead :slight_smile:



Almost all admin modules are complicated and hard to setup or add things to. Minimal avoids doing this and tries to make it as easy as possible for developers to configure and mess around with.

View on GitHub

Features

  • Simple & easy to use UI
  • Easy to setup
  • Pre-made commands
  • and more!

Minimal’s UI is very simple, you don’t need to worry about clicking tons of buttons, with Minimal, you only need to press a single key to execute a command.

Setup

Setting up Minimal is quite easy, first get the model or download it

Current Version: 0.7

Once you’ve got it, insert it into your game and follow the steps below:

  1. Drag the “Minimal” folder into ReplicatedStorage
  2. Drag the “Minimal” GUI into StarterGui
  3. Drag the “Minimal” script into ServerScriptStorage

and you’re done!

Configuring

After you have setup Minimal, you need to configure it. To do so, follow the steps below.

  1. Open the “Configuration” module
  2. Replace the numbers with your User ID
    image
  3. Read through the configuration module to see how to set the rest up

Custom Commands

Custom Commands are our core feature, they allow you to easily program in whatever commands you’d like!

To program a custom command, open the “Commands” folder and duplicate the Test moduleimage

Once you’ve duplicated it, open it and you should see this:

You will need to configure all of these or it will break the command.

Command: The name of your command and the main command players will type to execute it
Aliases: Shorter names for your command which players can type to execute your command easier
Description: A short description of what your command does
Usage: How to use the command
Permission Level: The permission level a player needs to have to execute the command

Once you have filled all that out, you can move onto the scripting part!

The testing command should already have a script which will print all the arguments in the command
image

You can replace this script with the command you want to have

Once you’ve scripted your script, enter your game and press ; (or the keybind you set) then type in your command!

API

To make Minimal easier to use, I’ve made an API for you to use to make scripting commands a bit easier.

To use it, simply require the API at the top of your scripts.

Minimal:FindCommand()
This function will check to see if a string is a command, it’s useful for when you want to make a custom UI

local API = require(path.to.MinimalAPI)

print(API:FindCommand("commands"))

-->> true

It will return either true or false depending on if the command exists.

Minimal:GetCommand()
This function will return a commands ModuleScript which you can use to get the commands information.

local API = require(path.to.MinimalAPI)

print(API:GetCommand("commands"))

-->> Commands 

If the command exists, it will return the commands instance or nil if it does not exist.

Minimal:FindAlias()
This has the same usage as Minimal:FindCommand() but instead will look for the commands alias

local API = require(path.to.MinimalAPI)

print(API:FindAlias("cmds"))

-->> true

Minimal:GetAlias()
This has the same usage as Minimal:GetCommand() but instead will get the commands alias

local API = require(path.to.MinimalAPI)

print(API:GetAlias("cmds"))

-->> Commands

Minimal:GetPermission()
This will get the permission level for a specific player, useful for checking if a user has access to the admin or not

local API = require(path.to.MinimalAPI)

print(API:GetPermission(game.Players.LocalPlayer))

-->> 1

This will return either 1 (player), 2 (moderator) or 3 (administrator)

Minimal:GetPlayer()
This is useful for finding a player using a partial name (eg: ROBL for ROBLOX)

local API = require(path.to.MinimalAPI)

print(API:GetPlayer("Star"))
print(API:GetPlayer("Player",true))

-->> Starnamics (Player Instance)
-->> {Player1,Player2,Player3,Player4}

This will return either a player instance (if player is found and 2nd argument is empty), a table (if player is found and the 2nd argument is empty) or nil if the player is not found

Minimal:FilterString()
This is useful for filtering strings for message/announcement commands.

local API = require(path.to.MinimalAPI)

print(API:FilterString("Hello!",Player))

-->> Hello!

Returns a string or nil if argument 1 or 2 are empty

Notes

Arguments are by default separated by the / key, if your command is not executing, make sure you type / before each argument, using spacebar as an argument separator is fine but you may need to add change the Minimal script in ServerScriptStorage to handle multiple words in a single argument.

I’ll be making a GitHub repo for Minimal shortly.

Support Server

If you’re running into some problems, you can join our support server to get some help

Discord Server

This server is also useful for getting notified when Minimal updates or when you’re looking for custom commands!

Thank you!

I’ll be updating this regularly, please leave any suggestions below and reply or message me if you find any bugs.

Unfortunately I will not be updating Minimal anymore! However I will be working on a brand new admin module which will be the replacement of Minimal.

13 Likes

This is very easy to set up. Good work.

1 Like

Minimal 0.7

Minimal has been updated.

Added: Private Message Command, Global Message Command, Global Announcement Command, Unserverban Command, Support for “all” players in certain commands

The following scripts & objects need to be replaced with the new ones:

  • Minimal (ServerScriptService)
  • Minimal (StarterGui)
  • Serverban
  • Announce
  • Message

Failing to replace these may cause Minimal to break

The rest of the scripts can be merged with the new ones.

Downloads

Minimal (Model): Minimal
Minimal (RBXM): GitHub

1 Like

What features does this have over per say, CMDR?

Looks nice though.

1 Like

Cmdr has many more features than this, Minimal is designed to be quite simple and easy to use/setup, Cmdr is quite advanced and is difficult to setup but is better for large games or games looking for an advanced admin module.

1 Like

I see, well this is a great explanation. So this is made for more simple games looking to make their own admin systems without having to spare hours of work for 1 function. I like it, looks good.

1 Like

I don’t think configuration for permissions works properly, because the way the function GetPermission() works, it will always return out of the function even if the user is not applicable for that.

My solution was to set the permission level to 1 in a variable, and when a permission level is applicable it only updates if it is higher than one they already have (so their permission level doesn’t get downgraded). I also tried to stay true to your coding style.

Code: (Line 207 in Minimal API)

Current Code
function Minimal:GetPermission(player)

	if player:IsA("Player") then

		local Permissions = config.Permissions

		for i,v in pairs(Permissions) do

			if v.Type == "Group" then

				local Permission = 1

				if player:GetRankInGroup(tonumber(i)) >= v.Minimum and player:GetRankInGroup(tonumber(i)) <= v.Maximum then

					Permission = v.Permission

				end

				return Permission

			end


			if v.Type == "Username" then

				local Permission = 1

				if player.Name == tostring(i) then

					Permission = v.Permission

				end
				
				return Permission
			end

			if v.Type == "UserId" then

				local Permission = 1

				if player.UserId == tonumber(i) then

					Permission = v.Permission

				end
				
				return Permission

			end


		end

	else
	return nil
	end
end
My Solution
local Permission = 1

function Minimal:GetPermission(player)

	if player:IsA("Player") then

		local Permissions = config.Permissions

		for i,v in pairs(Permissions) do
			if v.Type == "Group" then

				if player:GetRankInGroup(tonumber(i)) >= v.Minimum and player:GetRankInGroup(tonumber(i)) <= v.Maximum then
					
					if v.Permission > Permission then
						
						Permission = v.Permission
						
					end
				end
			end


			if v.Type == "Username" then

				if player.Name == tostring(i) then
					
					if v.Permission > Permission then

						Permission = v.Permission

					end
				end
			end

			if v.Type == "UserId" then

				if player.UserId == tonumber(i) then
					
					if v.Permission > Permission then

						Permission = v.Permission

					end
				end
			end

			
			
		end
		
		return Permission

	else
		
		return nil
		
	end
end

Seems like a great resource other than that, great job.

1 Like

Oh awesome! Thank you!

Unfortunately I’m no longer updating Minimal :frowning:

Thank you anyway :slight_smile:

1 Like

OUTDATED - USE SOLAR INSTEAD

Minimal is no longer being updated and is outdated

Please use Solar instead

Solar is very similar to Minimal but is programmed better and has nicer UI

1 Like