RoAdmin Beta Update 0.2


8153699437
Get RoAdmin

Introduction

Hello Roblox Community, we have released a brand new version of RoAdmin with some new features to our system, we re-wrote some sections of the init module launching RoAdmin. With this change, RoAdmin will now verify your settings to make sure it is up to date so your system no longer breaks when we push an update out.

We renamed a few objects inside of RoAdmin which can be viewed in the MainModule. Now onto the exciting part of the lovely update.

Developer Changes

Notes

  • _G Global Variables are now used server-sided between for commands on specific variables for eg: God, Ungod, etc. All of our _G Variables will start with _G.RoAdmin_TableName, this is so we don’t accidentally overwrite any of your game data.
  • RoAdmin now uses in-game datastores, however, we try not to use many server resources. The Datastores are: RoAdmin_Permissions_Manager, and RoAdmin_Player_Manager

RoAdmin_Permissions_Manager stores user permissions, view how its operated via Permissions Manager under MainModule - > Library - > Modules. Saved by UserIds

RoAdmin_Player_Manager stores users’ data for things like update notifications, player data, moderation history. Saved by UserIds, used by more than one Manager.

  • Change Log is now displayed in-game when a new update is pushed out. Credits to @catgirlin_space for Forum for data viewer.

Command Changes

  • :discordtroll command fixed, Command Failed to require the wrong module for game Sound.
  • :god/:ungod user added
  • :heal user added
  • :damage user amount added
  • :char command added
  • :noclip fixed
  • :fly fixed
  • :f3x fixed
  • :shutdown added
  • :jail fixed
  • other commands fixed related towards its need to access storage
  • :health player amount
  • :sword player
  • :respawn player
  • :dex player gives the targeted player dex explorer & dex properties, editing properties affects the client only.
  • :team player team
  • :change player statname valuetoadd (int only)
  • :speed player speed
  • :jumppower player power
  • :invisible added
  • :visible added
  • :killlogs added
  • :age user added.
  • ! Commands are now supported
  • !rejoin added.
  • :blind/:unblinda added
  • :ff/:unff added
  • :fling added
  • :give user tool or all added.
  • :jump user added
  • :sit user added
  • :music added
  • :countdown player time added
  • :n/:m text delay should be fixed

If you think any of these commands were labeled incorrectly in wrong category, command suggestions etc. Please send me message on developer forum.

We updated our code to auto-send RoAdmin errors to an on-duty engineer to fix the error occuring in our product and will push out a bug fix update as soon as possible to all servers. We hope you enjoy this amazing new changes to RoAdmin.

API Endpoints

Releasing some detailed information on RoAdmin API Endpoints with the release of Plugins in 0.2, there are 3 ways of interacting with RoAdmin API:

  • RoAdmin Remote Event
  • RoAdmin Plugin

RoAdmin Remote Function has nothing to do with RoAdmin API and can’t do much with it other than HTTP Requests to specific websites such as Roblox APIs.

RoAdmin Remote Event currently has an action which is “Command”. This allows the client to fire the remote to execute a command, however, it will run through and check if the client has access to such command.

Example:

local Remote = game.ReplicatedStorage:WaitForChild("RoAdmin_Events")
Remote:FireServer("Command", ":fire me")

Simply fire the remote with first arg “Command” and second arg would be prefixed then command name and command args.

Plugins

Now into more little advanced stuff, Plugins! When a command is executed via remote, command bar, chat, etc. Commands Manager . runCommand function is fired and will run the command with a table of information & services.

Sorry in advance if this doesn’t make much sense or is understandable, I suck at explaining, have any questions message @vq9o on DevForum.

What the table looks like:

local Data = {
		["RobloxService"] = RoAdmin.RobloxService,
		["RoAdmin"] = RoAdmin.Service,
		["Logs"] = {
			["Admin"] = RoAdmin.AdminLogs,
			["Chat"] = RoAdmin.ChatLogs,
			["Join"] = RoAdmin.JoinLogs,
		},
		["Commands"] = RoAdmin.CommandList,
		["Functions"] = RoAdmin.Functions,
		["Args"] =  args,
		["Settings"] = Settings,
		["Level"] = RoAdmin.GetLevel(Player)
	}

What’s all this in the dictionary?

  • RobloxService, a table of Roblox Services
    RoAdmin.RobloxService.ReplicatedStorage = game:GetService("ReplicatedStorage")
	RoAdmin.RobloxService.ServerScriptService = game:GetService("ServerScriptService")
	RoAdmin.RobloxService.ServerStorage = game:GetService("ServerStorage")
	RoAdmin.RobloxService.StarterGui = game:GetService("StarterGui")
	RoAdmin.RobloxService.ReplicatedFirst = game:GetService("ReplicatedFirst")
	RoAdmin.RobloxService.Players = game:GetService("Players")
	RoAdmin.RobloxService.TeleportService = game:GetService("TeleportService")
  • RoAdmin, is a major part of the table as it contains a large number of functions for the plugins to access RoAdmin Data.

RoAdmin Service has:

.ClearLogs(), Clears admin, chat, and join logs.
.GetAdmins(), Returns a list of all admins.
.SetLevel(Player instance, Level int, Temp boolean), Seta users permission level
.GetLevel(Player instance), Return a players permission level
.GetRank(Player instance), Returns a converted string of their rank from level
.GetTable(Name), Gets table created by RoAdmin However new _G tables can’t be fetched via this way must use _G.
.CreateTable(Name), Creates an empty new table with that name, also returns the newly created table.
.DeleteTable(Name) NEW, Deletes table with that name.
.New(Instance Name, Data Dictionary), Creates a new instance with provided data. Example:

return {
	Data = {
		Author = "vq9o",
		CommandName = "explode",
		CommandLevel = 3,
		Aliases = {},
		Description = "Explode the target",
	},
	
	OnRun = function(Player, Data)
		if Data.Args[1] ~= nil then 
			local Victims = Data.Functions.FindPlayer(Player, Data.Args[1])

			if type(Victims) == "table" then
				for i,v in pairs(Victims) do
					Data.RoAdmin.New("Explosion", {
						Position = v.Character.PrimaryPart.Position,
						BlastRadius =  Data.Args[2] or 20,
						Archivable = false,
						Parent = workspace.Terrain
					})
				end
			end
		end
	end,
}
-- RoAdmin :Explode command from Fun Cat
  • Args. Returns a table of args.
  • Settings. Returns a copy of the settings file.
  • Level. Returns Level Id of the executor of the command.
  • Functions. Commands Function Utility. Allows the command to access functions such as Data.Functions.FindPlayer, Data.Functions.Filter etc. Copy the RoAdmin Module for more usage information.

image

  • Logs, Self explaintory, table of logs.

How to create a plugin

Create a module script and name it whatever you want and place it in the plugins folder of RoAdmin.
image

Plugin Types

  • Plugin - A script that is inited & sent to the RoAdmin Settings.
  • An addon command which is inited after pre-built RoAdmin Commands have been inited.

Plugin Example:

Quick Notes

  • This is a plugin (a script), this is NOT a command. Useful for RoAdmin plugins such as our Official Plugin RoAdmin Extended to connect your RoAdmin Module to our RoAdmin Discord Bot. (Coming Soon TM)

image

image

	Data = {
		Author = "vq9o",
		Description = "Example Plugin",
		Type = "Plugin",
	},

	OnRun = function(RoAdminSettings)
		print("Hello World")
    end)

Command Example:

Quick Notes

  • This is a command, acts the same as a regular RoAdmin command and is sent the same data as a regular command.
  • This is a command, therefore requires extra data in-order to work.
  • Technically speaking as this is classified as a command in the RoAdmin back-end, your ability to modify them with settings. Such as disable, modify, etc.
  • All commands default category is set to Utility so make sure they are enabled.
  • When commands are inited, you are sent the same data as if it was running in a table.
Data = {
		Author = "vq9o",
		Description = "Example Command",
		Type = "Command",
		
		-- Extra Data
		CommandName = "example",
		CommandLevel = 1,
		Aliases = {},
	},

	OnRun = function(Player, Data)
		if Data.Args[1] == nil then Data.Functions.Notify(Player, "ERROR", "Must provide a message to run the command") return end
		
		print(Data.Args[1])
	end,

Commands have an extra little feature to run some code when commands are inited.

OnInit = function(Settings)
    print("Hi")
end,

Welcome Webhooks!

With 0.2 release we added some brand new features to logging such as Chat Logs, Kill Logs, and Admin Logs!

Here’s the newly updated settings for it, our logging supports API calls to discord webhooks or even your own website to receive JSON data from the game.

Discord Webhooks are routed through a proxy so you should have no issues with HTTP 400 Calls.

Data sent to your website if enabled:
image

End Note

I hope you all enjoy this new update to RoAdmin, have any questions feel free to message me.

Grammarly prob messed up somewhere, lmk if It did lol.

Play RoAdmin PlayGround

Using mySQL with RoAdmin

This function is similar to api webhooks we developed, instead of pinging your webhook data will be inserted into logs. Our permission system has been also revamped to fetch admins.

admins table values must have:
userid (int) = roblox userid
level (int) = roadmin level

logs table values must have:
logtype (string) = whats being logged
json (JSON) = encoded json.

JSON is structured same way as if it was being used as an webhook website.

Pre-Made .sql file: https://vq9o.com/use-bloxsql-with-roadmin/example.sql

Testing Place

RoAdmin has created an admin tesitng place here to test new features to the system.
[FREE ADMIN] RoAdmin - Roblox