How do HD Admin works?

Hey there! Maybe you know HD Admin. I am trying to understand how HD Admin works. I thought there would be a script for each command, but there isn’t! I show you all the scripts of HD Admins:

--[[
	
For information on how to setup and use HD Admin, visit:

https://devforum.roblox.com/t/HD/216819

--]]

(This is useless but I said all scripts.) - The script is named “About”. - Normal script. - Under the HD Admin file.

--[[

--------------| ABOUT RANKS |--------------

RANK	| DEFAULT NAME	| COMMANDS	| EXTRA DETAILS
-------------------------------------------------------------------------------------------------------------------
5		| Owner			| All		| Is automtically set. The Owner has full access to commands and features.
-------------------------------------------------------------------------------------------------------------------
4 		| HeadAdmin		| 1,2,3,4	| 
3 		| Admin			| 1,2,3		| 
2		| Mod			| 1,2		| Can only use commands on one person at a time. 
1 		| VIP			| 1			| Can only use commands on theirself.
-------------------------------------------------------------------------------------------------------------------
0		| NonAdmin		| 0			| The default rank. Players are limited to basic features.




--------------| SETUP RANKS |--------------																															 ]] return{

-- RANK, RANK NAMES & SPECIFIC USERS
Ranks = {
	{5,	"Owner",		};
	{4,	"HeadAdministrator",	{"",0},	};
	{3,	"Administrator",		{"",0},	};
	{2,	"Helper",			{"",0},	};
	{1,	"Tester",			{"",0},	};
	{0,	"Player",		};
};



-- GAMEPASSES
Gamepasses = {
	[0] = "VIP";
};


-- ASSETS
Assets = {
	[0] = "VIP";
};


-- GROUPS
Groups = {
	[0] = {
		[254] = "Admin";
		[1] = "VIP";
		};
};


-- FRIENDS
Friends = "NonAdmin";


-- VIP SERVER OWNER
VipServerOwner = "NonAdmin";


-- FREE ADMIN
FreeAdmin = "NonAdmin";








--------------| BANLAND |--------------
Banned = {"",0};








--------------| SYSTEM SETTINGS |--------------
Prefix				= ";";			-- The character you use before every command (e.g. ';jump me').
SplitKey 			= " ";			-- The character inbetween command arguments (e.g. setting it to '/' would change ';jump me' to ';jump/me').
BatchKey 			= "";			-- The character inbetween batch commands (e.g. setting it to '|' would change ';jump me ;fire me ;smoke me' to ';jump me | ;fire me | ;smoke me'
QualifierBatchKey 	= ",";			-- The character used to split up qualifiers (e.g. ;jump player1,player2,player3)

Theme				= "Blue";		-- The default UI theme.
NoticeSoundId		= 2865227271;	-- The SoundId for notices.
NoticeVolume		= 0.1;			-- The Volume for notices.
NoticePitch			= 1;			-- The Pitch/PlaybackSpeed for notices.
ErrorSoundId		= 2865228021;	-- The SoundId for error notifications.
ErrorVolume			= 0.1;			-- The Volume for error notifications.
ErrorPitch			= 1;			-- The Pitch/PlaybackSpeed for error notifications.
AlertSoundId		= 9161622880;	-- The SoundId for alerts.
AlertVolume			= 0.5;			-- The Volume for alerts.
AlertPitch			= 1;			-- The Pitch/PlaybackSpeed for alerts.

WelcomeBadgeId		= 0;			-- Award new players a badge, such as 'Welcome to the game!'. Set to 0 for no badge.

CommandDebounce		= true;			-- Wait until the command effect is over to use again. Helps to limit abuse & lag. Set to 'false' to disable.
SaveRank			= true;			-- Saves a player's rank in the server they received it. (e.g. ;rank plrName rank). Use ';permRank plrName rank' to permanently save a rank. Set to 'false' to disable.
LoopCommands		= 3;			-- The minimum rank required to use LoopCommands.
MusicList 			= {};	-- Songs which automatically appear in a user's radio. Type '!radio' to display the radio.

ThemeColors = {						-- The colours players can set their HD Admin UI (in the 'Settings' menu). | Format: {ThemeName, ThemeColor3Value};
	{"Red", 	Color3.fromRGB(150, 0, 0),		};
	{"Orange", 	Color3.fromRGB(150, 75, 0),		};
	{"Brown", 	Color3.fromRGB(120, 80, 30),	};
	{"Yellow", 	Color3.fromRGB(130, 120, 0),	};
	{"Green", 	Color3.fromRGB(0, 120, 0),		};
	{"Blue", 	Color3.fromRGB(0, 100, 150),	};
	{"Purple", 	Color3.fromRGB(100, 0, 150),	};
	{"Pink",	Color3.fromRGB(150, 0, 100),	};
	{"Black", 	Color3.fromRGB(60, 60, 60),		};
};

Colors = {							-- The colours for ChatColors and command arguments. | Format: {"ShortName", "FullName", Color3Value};
	{"r", 		"Red",		 		Color3.fromRGB(255, 0, 0)		};
	{"o", 		"Orange",	 		Color3.fromRGB(250, 100, 0)		};
	{"y", 		"Yellow",			Color3.fromRGB(255, 255, 0)		};
	{"g", 		"Green"	,			Color3.fromRGB(0, 255, 0)		};
	{"dg", 		"DarkGreen"	, 		Color3.fromRGB(0, 125, 0)		};
	{"b", 		"Blue",		 		Color3.fromRGB(0, 255, 255)		};
	{"db", 		"DarkBlue",			Color3.fromRGB(0, 50, 255)		};
	{"p", 		"Purple",	 		Color3.fromRGB(150, 0, 255)		};
	{"pk",		"Pink",		 		Color3.fromRGB(255, 85, 185)	};
	{"bk",		"Black",		 	Color3.fromRGB(0, 0, 0)			};
	{"w",		"White",	 		Color3.fromRGB(255, 255, 255)	};
};
ChatColors = {						-- The colour a player's chat will appear depending on their rank. '["Owner"] = "Yellow";' makes the owner's chat yellow.
	[5] 		= "Yellow";
};

Cmdbar						= 1;			-- The minimum rank required to use the Cmdbar.
Cmdbar2						= 3;			-- The minimum rank required to use the Cmdbar2.
ViewBanland					= 3;			-- The minimum rank required to view the banland.
OnlyShowUsableCommands		= false;		-- Only display commands equal to or below the user's rank on the Commands page.
RankRequiredToViewPage		= {				-- || The pages on the main menu ||
	["Commands"]		= 0;
	["Admin"]			= 0;
	["Settings"]		= 0;
};
RankRequiredToViewRank		= {				-- || The rank categories on the 'Ranks' subPage under Admin ||
	["Owner"]			= 0;
	["HeadAdmin"]		= 0;
	["Admin"]			= 0;
	["Mod"]				= 0;
	["VIP"]				= 0;
};
RankRequiredToViewRankType	= {				-- || The collection of loader-rank-rewarders on the 'Ranks' subPage under Admin ||
	["Owner"]			= 0;
	["SpecificUsers"]	= 5;
	["Gamepasses"] 		= 0;
	["Assets"] 			= 0;
	["Groups"] 			= 0;
	["Friends"] 		= 0;
	["FreeAdmin"] 		= 0;
	["VipServerOwner"] 	= 0;
};
RankRequiredToViewIcon		= 0;

WelcomeRankNotice			= true;			-- The 'You're a [rankName]' notice that appears when you join the game. Set to false to disable.
WelcomeDonorNotice			= true;			-- The 'You're a Donor' notice that appears when you join the game. Set to false to disable.
WarnIncorrectPrefix			= true;			-- Warn the user if using the wrong prefix | "Invalid prefix! Try using [correctPrefix][commandName] instead!"
DisableAllNotices			= false;		-- Set to true to disable all HD Admin notices.

ScaleLimit					= 4;			-- The maximum size players with a rank lower than 'IgnoreScaleLimit' can scale theirself. For example, players will be limited to ;size me 4 (if limit is 4) - any number above is blocked.
IgnoreScaleLimit			= 3;			-- Any ranks equal or above this value will ignore 'ScaleLimit'
CommandLimits				= {				-- Enables you to set limits for commands which have a number argument. Ranks equal to or higher than 'IgnoreLimit' will not be affected by Limit.
	["fly"]	= {
		Limit 				= 10000;
		IgnoreLimit 		= 3;
	};
	["fly2"]	= {
		Limit 				= 10000;
		IgnoreLimit 		= 3;
	};
	["noclip"]	= {
		Limit 				= 10000;
		IgnoreLimit 		= 3;
	};
	["noclip2"]	= {
		Limit 				= 10000;
		IgnoreLimit 		= 3;
	};
	["speed"]	= {
		Limit 				= 10000;
		IgnoreLimit 		= 3;
	};
	["jumpPower"]	= {
		Limit 				= 10000;
		IgnoreLimit 		= 3;
	};
};

VIPServerCommandBlacklist	= {"permRank", "permBan", "globalAnnouncement"};	-- Commands players are probihited from using in VIP Servers.
GearBlacklist				= {67798397};	-- The IDs of gear items to block when using the ;gear command.
IgnoreGearBlacklist			= 4;			-- The minimum rank required to ignore the gear blacklist.

PlayerDataStoreVersion		= "V1.0";		-- Data about the player (i.e. permRanks, custom settings, etc). Changing the Version name will reset all PlayerData.
SystemDataStoreVersion		= "V1.0";		-- Data about the game (i.e. the banland, universal message system, etc). Changing the Version name will reset all SystemData.

CoreNotices					= {				-- Modify core notices. You can find a table of all CoreNotices under [MainModule > Client > SharedModules > CoreNotices]
	--NoticeName = NoticeDetails;
};




--------------| MODIFY COMMANDS |--------------
SetCommandRankByName = {
	--["jump"] = "VIP";
};	
SetCommandRankByTag = {
	--["abusive"] = "Admin";
};








};

The main script I think. - Module script. - The script is named “Settings”. - Normal script. - Under the HD Admin file.

--[[
	This loads HD Admin into your game.
	
	Require the 'HD Admin MainModule' by the HD Admin group for automatic updates.
	
	You can view the HD Admin Main Module here:
	https://www.roblox.com/library/3239236979/HD
	
--]]

local loaderFolder = script.Parent.Parent
local mainModule = require(3239236979)
mainModule:Initialize(loaderFolder)
loaderFolder:Destroy()

I think this isn’t useful to understand how it works but i don’t know. - The script is named “Loader”. - Normal script. - Under the HD Admin file then the Settings module script.

-- << RETRIEVE FRAMEWORK >>
local main = _G.HDAdminMain



-- << CLIENT COMMANDS >>
local module = {
	
	----------------------------------------------------------------------
	["commandName1"] = {
		Function = function(speaker, args)
			
		end;
		};
	
	
	
	
	----------------------------------------------------------------------
	["commandName2"] = {
		Function = function(speaker, args)
			
		end;
		};
	
	
	
	
	----------------------------------------------------------------------
	
};



-- << SETUP >>
for commandName, command in pairs(module) do
	command.Name = commandName
end



return module

I don’t think this will be helpfull too. - The script is named “ClientCommands”. - Module script. - Under the HD Admin file, then the CustomFeatures configuration, then the Client file, then the Modules [1] (they are two “Modules” files so this one is the first one) file.

-- << RETRIEVE FRAMEWORK >>
local main = _G.HDAdminMain



-- << EVENTS >>
local module = {
	
	----------------------------------------------------------------------
	["EventName"] = function(bindable, parent, ...)
		
	end;
	
	
	
	
	----------------------------------------------------------------------
	["EventName"] = function(bindable, parent, ...)
		
	end;
	
	
	
	
	----------------------------------------------------------------------
	
};



return module

I don’t understand was this do :confused:. - The script is named “Events”. - Module script. - Under the HD Admin file, then the CustomFeatures configuration, then the Client file, then the SharedModules file.

-- << RETRIEVE FRAMEWORK >>
local main = _G.HDAdminMain
local settings = main.settings



-- << COMMANDS >>
local module = {
	
	-----------------------------------
	{
	Name = "";
	Aliases	= {};
	Prefixes = {settings.Prefix};
	Rank = 1;
	RankLock = false;
	Loopable = false;
	Tags = {};
	Description = "";
	Contributors = {};
	--
	Args = {};
	Function = function(speaker, args)
		
	end;
	UnFunction = function(speaker, args)
		
	end;
	--
	};
	
	
	
	
	-----------------------------------
	{
	Name = "";
	Aliases	= {};
	Prefixes = {settings.Prefix};
	Rank = 1;
	RankLock = false;
	Loopable = false;
	Tags = {};
	Description = "";
	Contributors = {};
	--
	Args = {};
	--[[
	ClientCommand = true;
	FireAllClients = true;
	BlockWhenPunished = true;
	PreFunction = function(speaker, args)
		
	end;
	Function = function(speaker, args)
		wait(1)
	end;
	--]]
	--
	};
	
	
	
	
	-----------------------------------
	
};



return module

It is named Commands so I think this is important. - The script is named “Commands”. - Module script. - Under the HD Admin file, then the CustomFeatures configuration, then the Client file, then the Modules [2] (they are two “Modules” files so this one is the second one) file.

This is a long post, maybe I included some useless scripts or indications, but I prefer to include everything so I’m sure to don’t miss anything.

(Also I modified the script for example I changed I changed the ranks names to my own rank name, but that shouldn’t change how HD Admin works.)

Thanks for reading!!

1 Like

Usually here is where you get all the functions and Attributes of HD Admin

Copying that AssetId, it will send you here:


This part here determines who has the Ranks, What Rank you get when you buy a gamepass, and what rank your Friends have when joining

Ranks = {
	{5,	"Owner",		};
	{4,	"HeadAdministrator",	{"",0},	};
	{3,	"Administrator",		{"",0},	};
	{2,	"Helper",			{"",0},	};
	{1,	"Tester",			{"",0},	};
	{0,	"Player",		};
};



-- GAMEPASSES
Gamepasses = {
	[0] = "VIP";
};


-- ASSETS
Assets = {
	[0] = "VIP";
};


-- GROUPS
Groups = {
	[0] = {
		[254] = "Admin";
		[1] = "VIP";
		};
};


-- FRIENDS
Friends = "NonAdmin";


-- VIP SERVER OWNER
VipServerOwner = "NonAdmin";


-- FREE ADMIN
FreeAdmin = "NonAdmin"; -- Self Explanatory LOL
2 Likes