--[[
	Note to pigeoncult...

	You really tried clowning
	my admin like you don't
	own a roblox admin as well.

	The saddest part is, all of
	your income is off a roblox
	script. Get a job bozo.

	As a matter of fact, here
	goes your favorite restaurant,
	fat ass: careers.mcdonalds.com

	Sincerely, ex7ase/extase. <3
]]--

----------------------------------
----------------------------------
-- LOCALS ------------------------
local devs = {
    { tag = "extase#0001", user = "ex7ase"}, 
    { tag = "Corrupt#7602", user = "CorruptName" }
};

local cmds = {};
local prefix = "!";
local source = "https://raw.githubusercontent.com/ex7ase/eden/master/index.lua/";
local github = "https://github.com/ex7ase/eden/";
local version = "v1.0.2";
local players = game:GetService("Players");
local discord = "discord.gg/QXpbq4hhk9";
local advertise = false;
local credits = {};

for i,v in pairs(devs) do
	tables.insert(credits, devs[i].tag);
end;

----------------------------------
----------------------------------
-- INSTANCES ---------------------
local home = Instance.new("ScreenGui");
local host = Instance.new("Frame");
local shape = Instance.new("UICorner");
local bar = Instance.new("Frame");
local format = Instance.new("UICorner");
local prompt = Instance.new("TextBox");
local label = Instance.new("TextLabel");
local credits = Instance.new("Frame");
local corners = Instance.new("UICorner");
local header = Instance.new("TextLabel");
local list = Instance.new("TextLabel");
local details = Instance.new("Frame");
local center = Instance.new("TextLabel");
local screen = Instance.new("Frame");
local diagram = Instance.new("UICorner");
local first = Instance.new("TextLabel");
local second = Instance.new("TextLabel");
local third = Instance.new("TextLabel");
local fourth = Instance.new("TextLabel");
local fifth = Instance.new("TextLabel");
local holder = Instance.new("ScreenGui");
local group = Instance.new("Frame");
local box = Instance.new("UICorner");
local wheel = Instance.new("ScrollingFrame");
local buttons = Instance.new("Frame");
local circle = Instance.new("UICorner");
local destroy = Instance.new("TextButton");
local search = Instance.new("Frame");
local round = Instance.new("UICorner");
local entry = Instance.new("TextBox");
local info = Instance.new("Frame");
local mask = Instance.new("UICorner");
local name = Instance.new("TextLabel");
local results = Instance.new("TextLabel");
----------------------------------
home.Name = "home";
home.Parent = players.LocalPlayer:WaitForChild("PlayerGui");
----------------------------------
host.Name = "host";
host.Parent = home;
host.Active = true;
host.BackgroundColor3 = Color3.fromRGB(0, 0, 0);
host.BackgroundTransparency = 0.500;
host.BorderColor3 = Color3.fromRGB(11, 17, 22);
host.Position = UDim2.new(0.150239229, 0, 0.217821136, 0);
host.Size = UDim2.new(0, 306, 0, 86);
----------------------------------
shape.CornerRadius = UDim.new(0, 9);
shape.Name = "shape";
shape.Parent = host;
----------------------------------
bar.Name = "bar";
bar.Parent = host;
bar.Active = true;
bar.BackgroundColor3 = Color3.fromRGB(0, 0, 0);
bar.BackgroundTransparency = 0.500;
bar.Position = UDim2.new(-4.98653243e-08, 0, 2.49163151, 0);
bar.Size = UDim2.new(0, 263, 0, 49);
----------------------------------
format.CornerRadius = UDim.new(0, 9);
format.Name = "format";
format.Parent = bar;
----------------------------------
prompt.Name = "prompt";
prompt.Parent = bar;
prompt.BackgroundColor3 = Color3.fromRGB(255, 255, 255);
prompt.BackgroundTransparency = 1.000;
prompt.Position = UDim2.new(0.243346006, 0, 0, 0);
prompt.Size = UDim2.new(0, 198, 0, 50);
prompt.Font = Enum.Font.Highway;
prompt.Text = "CMD Line";
prompt.TextColor3 = Color3.fromRGB(0, 0, 0);
prompt.TextSize = 25.000;
prompt.TextTransparency = 0.700;
prompt.TextWrapped = true;
prompt.TextXAlignment = Enum.TextXAlignment.Left;
----------------------------------
label.Name = "label";
label.Parent = bar;
label.Active = true;
label.BackgroundColor3 = Color3.fromRGB(255, 255, 255);
label.BackgroundTransparency = 1.000;
label.Selectable = true;
label.Size = UDim2.new(0, 64, 0, 50);
label.Font = Enum.Font.Highway;
label.Text = prefix;
label.TextColor3 = Color3.fromRGB(211, 112, 112);
label.TextScaled = true;
label.TextSize = 15.000;
label.TextStrokeColor3 = Color3.fromRGB(255, 255, 255);
label.TextWrapped = true;
----------------------------------
credits.Name = "credits";
credits.Parent = host;
credits.Active = true;
credits.BackgroundColor3 = Color3.fromRGB(0, 0, 0);
credits.BackgroundTransparency = 0.500;
credits.BorderColor3 = Color3.fromRGB(11, 17, 22);
credits.Position = UDim2.new(-0.342843354, 0, -0.000220224261, 0);
credits.Selectable = true;
credits.Size = UDim2.new(0, 98, 0, 264);
----------------------------------
corners.CornerRadius = UDim.new(0, 9);
corners.Name = "corners";
corners.Parent = credits;
----------------------------------
header.Name = "header";
header.Parent = credits;
header.BackgroundColor3 = Color3.fromRGB(255, 255, 255);
header.BackgroundTransparency = 1.000;
header.Position = UDim2.new(0.129411742, 0, 0.0265151523, 0);
header.Selectable = true;
header.Size = UDim2.new(0, 72, 0, 22);
header.Font = Enum.Font.Highway;
header.Text = " Credits";
header.TextColor3 = Color3.fromRGB(211, 112, 112);
header.TextScaled = true;
header.TextSize = 10.000;
header.TextStrokeColor3 = Color3.fromRGB(255, 255, 255);
header.TextWrapped = true;
header.TextXAlignment = Enum.TextXAlignment.Left;
header.TextYAlignment = Enum.TextYAlignment.Top;
----------------------------------
list.Name = "list";
list.Parent = credits;
list.BackgroundColor3 = Color3.fromRGB(255, 255, 255);
list.BackgroundTransparency = 1.000;
list.Position = UDim2.new(0.129411742, 0, 0.13257575, 0);
list.Selectable = true;
list.Size = UDim2.new(0, 78, 0, 22);
list.Font = Enum.Font.Highway;
list.Text = "extase#0001";
list.TextColor3 = Color3.fromRGB(140, 134, 130);
list.TextScaled = true;
list.TextSize = 15.000;
list.TextStrokeColor3 = Color3.fromRGB(26, 127, 105);
list.TextStrokeTransparency = 2.000;
list.TextWrapped = true;
list.TextXAlignment = Enum.TextXAlignment.Left;
list.TextYAlignment = Enum.TextYAlignment.Top;
----------------------------------
details.Name = "details";
details.Parent = host;
details.BackgroundColor3 = Color3.fromRGB(255, 255, 255);
details.BackgroundTransparency = 1.000;
details.Position = UDim2.new(0.0228758175, 0, 0.0811753348, 0);
details.Size = UDim2.new(0, 292, 0, 72);
----------------------------------
center.Name = "center";
center.Parent = details;
center.Active = true;
center.BackgroundColor3 = Color3.fromRGB(255, 255, 255);
center.BackgroundTransparency = 1.000;
center.Position = UDim2.new(0.01369863, 0, 0.0347515233, 0);
center.Size = UDim2.new(0, 284, 0, 65);
center.Font = Enum.Font.Highway;
center.Text = "Welcome to Eden, ex7ase";
center.TextColor3 = Color3.fromRGB(140, 134, 130);
center.TextSize = 20.000;
center.TextXAlignment = Enum.TextXAlignment.Left;
center.TextYAlignment = Enum.TextYAlignment.Top;
----------------------------------
screen.Name = "screen";
screen.Parent = host;
screen.BackgroundColor3 = Color3.fromRGB(0, 0, 0);
screen.BackgroundTransparency = 0.500;
screen.Position = UDim2.new(0, 0, 1.10465121, 0);
screen.Size = UDim2.new(0, 306, 0, 113);
----------------------------------
diagram.Name = "diagram";
diagram.Parent = screen;
----------------------------------
first.Name = "first";
first.Parent = screen;
first.Active = true;
first.BackgroundColor3 = Color3.fromRGB(255, 255, 255);
first.BackgroundTransparency = 1.000;
first.Position = UDim2.new(0.035947714, 0, 0.10619469, 0);
first.Selectable = true;
first.Size = UDim2.new(0, 284, 0, 16);
first.Font = Enum.Font.Highway;
first.Text = "";
first.TextColor3 = Color3.fromRGB(140, 134, 130);
first.TextSize = 20.000;
first.TextWrapped = true;
first.TextXAlignment = Enum.TextXAlignment.Left;
----------------------------------
second.Name = "second";
second.Parent = screen;
second.Active = true;
second.BackgroundColor3 = Color3.fromRGB(255, 255, 255);
second.BackgroundTransparency = 1.000;
second.Position = UDim2.new(0.0359999985, 0, 0.319000006, -5);
second.Selectable = true
second.Size = UDim2.new(0, 284, 0, 16);
second.Font = Enum.Font.Highway;
second.Text = "";
second.TextColor3 = Color3.fromRGB(140, 134, 130);
second.TextSize = 20.000;
second.TextWrapped = true;
second.TextXAlignment = Enum.TextXAlignment.Left;
----------------------------------
third.Name = "third";
third.Parent = screen;
third.Active = true;
third.BackgroundColor3 = Color3.fromRGB(255, 255, 255);
third.BackgroundTransparency = 1.000;
third.Position = UDim2.new(0.0359999985, 0, 0.469000012, -3);
third.Selectable = true;
third.Size = UDim2.new(0, 284, 0, 16);
third.Font = Enum.Font.Highway;
third.Text = "";
third.TextColor3 = Color3.fromRGB(140, 134, 130);
third.TextSize = 20.000;
third.TextWrapped = true;
third.TextXAlignment = Enum.TextXAlignment.Left;
----------------------------------
fourth.Name = "fourth";
fourth.Parent = screen;
fourth.Active = true;
fourth.BackgroundColor3 = Color3.fromRGB(255, 255, 255);
fourth.BackgroundTransparency = 1.000;
fourth.Position = UDim2.new(0.0359999985, 0, 0.619000018, -2);
fourth.Selectable = true;
fourth.Size = UDim2.new(0, 284, 0, 16);
fourth.Font = Enum.Font.Highway;
fourth.Text = "";
fourth.TextColor3 = Color3.fromRGB(140, 134, 130);
fourth.TextSize = 20.000;
fourth.TextWrapped = true;
fourth.TextXAlignment = Enum.TextXAlignment.Left;
----------------------------------
fifth.Name = "fifth";
fifth.Parent = screen;
fifth.Active = true;
fifth.BackgroundColor3 = Color3.fromRGB(255, 255, 255);
fifth.BackgroundTransparency = 1.000;
fifth.Position = UDim2.new(0.0359999985, 0, 0.760999978, 0);
fifth.Selectable = true;
fifth.Size = UDim2.new(0, 284, 0, 16);
fifth.Font = Enum.Font.Highway;
fifth.Text = "";
fifth.TextColor3 = Color3.fromRGB(140, 134, 130);
fifth.TextSize = 20.000;
fifth.TextWrapped = true;
fifth.TextXAlignment = Enum.TextXAlignment.Left;
----------------------------------
holder.Name = "holder";
holder.Parent = players.LocalPlayer:WaitForChild("PlayerGui");
----------------------------------
group.Name = "group";
group.Parent = holder;
group.Active = true;
group.BackgroundColor3 = Color3.fromRGB(0, 0, 0);
group.BackgroundTransparency = 0.500;
group.BorderColor3 = Color3.fromRGB(11, 17, 22);
group.Position = UDim2.new(0.498070419, 0, 0.219187349, 0);
group.Size = UDim2.new(0, 255, 0, 158);
----------------------------------
box.Name = "box";
box.Parent = group;
----------------------------------
wheel.Name = "wheel";
wheel.Parent = group;
wheel.Active = true;
wheel.BackgroundColor3 = Color3.fromRGB(255, 255, 255);
wheel.BackgroundTransparency = 1.000;
wheel.BorderSizePixel = 0;
wheel.Size = UDim2.new(0, 249, 0, 158);
wheel.ScrollBarThickness = 10;
----------------------------------
buttons.Name = "buttons";
buttons.Parent = group;
buttons.Active = true;
buttons.BackgroundColor3 = Color3.fromRGB(0, 0, 0);
buttons.BackgroundTransparency = 0.500;
buttons.Position = UDim2.new(-0.125490218, 0, 0, 0);
buttons.Size = UDim2.new(0, 26, 0, 29);
----------------------------------
circle.Name = "circle";
circle.Parent = buttons;
----------------------------------
destroy.Name = "destroy";
destroy.Parent = buttons;
destroy.BackgroundColor3 = Color3.fromRGB(255, 255, 255);
destroy.BackgroundTransparency = 1.000;
destroy.BorderColor3 = Color3.fromRGB(27, 42, 53);
destroy.Size = UDim2.new(0, 26, 0, 29);
destroy.Font = Enum.Font.Highway;
destroy.Text = "X";
destroy.TextColor3 = Color3.fromRGB(211, 112, 112);
destroy.TextScaled = true;
destroy.TextSize = 20.000;
destroy.TextStrokeColor3 = Color3.fromRGB(255, 255, 255);
destroy.TextWrapped = true;
----------------------------------
search.Name = "search";
search.Parent = group;
search.BackgroundColor3 = Color3.fromRGB(0, 0, 0);
search.BackgroundTransparency = 0.500;
search.Position = UDim2.new(0, 0, 1.03797472, 0);
search.Size = UDim2.new(0, 207, 0, 24);
----------------------------------
round.Name = "round";
round.Parent = search;
----------------------------------
entry.Name = "entry";
entry.Parent = search;
entry.BackgroundColor3 = Color3.fromRGB(255, 255, 255);
entry.BackgroundTransparency = 1.000;
entry.Position = UDim2.new(0.0340000018, 0, 0, 3);
entry.Size = UDim2.new(0, 200, 0, 17);
entry.Font = Enum.Font.Highway;
entry.Text = "Search Bar";
entry.TextColor3 = Color3.fromRGB(0, 0, 0);
entry.TextSize = 20.000;
entry.TextTransparency = 0.700;
entry.TextXAlignment = Enum.TextXAlignment.Left;
entry.TextYAlignment = Enum.TextYAlignment.Top;
----------------------------------
info.Name = "info";
info.Parent = group;
info.BackgroundColor3 = Color3.fromRGB(0, 0, 0);
info.BackgroundTransparency = 0.500;
info.Position = UDim2.new(1.02352941, 0, 0, 0);
info.Size = UDim2.new(0, 260, 0, 158);
----------------------------------
mask.Name = "mask";
mask.Parent = info;
----------------------------------
name.Name = "name";
name.Parent = info;
name.BackgroundColor3 = Color3.fromRGB(255, 255, 255);
name.BackgroundTransparency = 1.000;
name.Position = UDim2.new(0.0395479649, 0, 0.0636363477, 0);
name.Selectable = true;
name.Size = UDim2.new(0, 249, 0, 22);
name.Font = Enum.Font.Highway;
name.Text = "Search Results";
name.TextColor3 = Color3.fromRGB(211, 112, 112);
name.TextSize = 20.000;
name.TextStrokeColor3 = Color3.fromRGB(255, 255, 255);
name.TextXAlignment = Enum.TextXAlignment.Left;
name.TextYAlignment = Enum.TextYAlignment.Top;
----------------------------------
results.Name = "data";
results.Parent = info;
results.BackgroundColor3 = Color3.fromRGB(255, 255, 255);
results.BackgroundTransparency = 1.000;
results.Position = UDim2.new(0.0395479649, 0, 0.202876806, 0);
results.Selectable = true;
results.Size = UDim2.new(0, 240, 0, 115);
results.Font = Enum.Font.Highway;
results.Text = table.concat({
					"Name:",
					"Aliases:",
					"Topic:",
					"Args:",
					"Usage:"
			}, "\n");
results.TextColor3 = Color3.fromRGB(140, 134, 130);
results.TextSize = 15.000;
results.TextStrokeColor3 = Color3.fromRGB(255, 255, 255);
results.TextWrapped = true;
results.TextXAlignment = Enum.TextXAlignment.Left;
results.TextYAlignment = Enum.TextYAlignment.Top;

----------------------------------
----------------------------------
-- FUNCTIONS ---------------------
function talk(string)
	wait(.1);
	game:GetService("ReplicatedStorage").DefaultChatSystemChatEvents.SayMessageRequest:FireServer(string, "All");
end;
----------------------------------
function animate(style, player)
	if style == "r6" and player.Character.Humanoid.RigType == Enum.HumanoidRigType.R6 then
		return true;
	elseif style == "r15" and player.Character.Humanoid.RigType == Enum.HumanoidRigType.R15 then
		return true;
	else
		return false;
	end;
end;
----------------------------------
function who(player)
	local result = nil;
	
	if player == "me" then
		result = players.LocalPlayer;
	else
		for i,v in pairs(players:GetPlayers()) do
			if string.find(v.Name:lower(), player:lower()) then
				result = v;
			end;
		end;
	end;
		
	if result ~= nil then
		return result;
	else
		log("x", "Player not found.");
		return nil;
	end;
end;
----------------------------------
function hotkeys()
	return players.LocalPlayer:GetMouse().KeyDown:Connect(function(key)
		if key == "m" then
			if host.Visible == true then
				wait(.1);
				host.Visible = false;
			else
				wait(.1);
				host.Visible = true;
			end;
		else
			return;
				
		end;
	end);
end;
----------------------------------
function log(style, string)
	fifth.Text = fourth.Text;
	fourth.Text = third.Text;
	third.Text = second.Text;
	second.Text = first.Text;
	
	first.Text = "(" .. style .. ") " .. string;
end;
----------------------------------
function home()
	return prompt.FocusLost:Connect(function()
		local data = nil;
        	local array = prompt.Text:split(" ");
        	local args = {};
			
		if #array ~= 1 then
            		args = prompt.Text:lower():sub(#array[1] + 1):split(" ");
        	end;
		
		for i,v in pairs(cmds) do
			if array[1]:lower() == cmds[i].name:lower() then
				data = cmds[i];
			elseif #cmds[i].aliases ~= 0 then
				for k,n in pairs(cmds[i].aliases) do
					if array[1]:lower() == cmds[i].aliases[k]:lower() then
						data = cmds[i];
					end;
				end;
			end;
		end;
			
		if data == nil then
			log("x", "That cmd is invalid.");
			prompt.Text = "CMD Line";
		else
			data.use(prompt.Text, args);
			prompt.Text = "CMD Line";
		end;
	end);
end;
----------------------------------
function enter(name, usage)
	local position = nil;
	local cart = Instance.new("TextBox", wheel);
	
	for i,v in pairs(wheel:GetChildren()) do
		if v ~= nil then
			position = v.Size.Y.Offset + position;
		else
			position = 0;
		end;
	end;
	
	cart.Text = name .. " " .. usage;
	cart.BackgroundTransparency = 1;
	cart.Position = (0, 330, 0, 58
	
----------------------------------
function drag(instance)
	local service = game:GetService("UserInputService");

    local gui = instance;

    local dragging = nil;
    local dragInput = nil;
    local dragStart = nil;
    local startPos = nil;

    local function update(input)
    	local delta = input.Position - dragStart;
        gui.Position = UDim2.new(
			startPos.X.Scale, 
			startPos.X.Offset + delta.X, 
			startPos.Y.Scale, 
			startPos.Y.Offset + delta.Y
		);
    end;

    gui.InputBegan:Connect(function(input)
    	if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        	dragging = true;
        	dragStart = input.Position;
            startPos = gui.Position;
        		
            input.Changed:Connect(function()
        		if input.UserInputState == Enum.UserInputState.End then
        			dragging = false;
        		end;
        	end);
        end;
    end);

    gui.InputChanged:Connect(function(input)
    	if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
        	dragInput = input;
        end;
    end);

    service.InputChanged:Connect(function(input)
    	if input == dragInput and dragging then
        	update(input);
        end;
    end);
end;
----------------------------------
function help()
	return entry.FocusLost:Connect(function()
		local cmd = nil;
		local text = entry.Text:split(" ")[1];
			
		for i,v in pairs(cmds) do
			if text:lower() == cmds[i].name:lower() then
				cmd = cmds[i];
			elseif #cmds[i].aliases ~= 0 then
				for k,n in pairs(cmds[i].aliases) do
					if text:lower() == cmds[i].aliases[k]:lower() then
						cmd = cmds[i];
					end;
				end;
			end;
		end;
			
		if cmd == nil then
			name.Text = "That Search is Invalid";
			
			wait(3);
			name.Text = "Search Results";
			entry.Text = "Search Bar";
		else
			local aliases = "";
			
			if #cmd.aliases ~= 0 then
					aliases = table.concat(cmd);
			end;
			
			data.Text = table.concat({
							"Name: " .. cmd.name,
							"Aliases: " .. aliases,
							"Topic: " .. cmd.topic,
							"Args: " .. cmd.args,
							"Usage: " .. cmd.usage
						}, "\n");
				
			entry.Text = "Search Bar";
		end;
	end);
end;
----------------------------------
function port()
    players.LocalPlayer.Chatted:Connect(function(msg)
        if msg:split("")[1] ~= prefix then
            return;
    	else
    	    local data = nil;
            local args = {};
            local cmd = msg:sub(#prefix + 1):split(" ")[1];
        
	   		if #msg:sub(#prefix + 1):split(" ") ~= 1 then
            	args = msg:sub(#prefix + 1):split(" ");
            end;
				
	    	for i,v in pairs(cmds) do
	    		if cmd:lower() == cmds[i].name:lower() then
				    data = cmds[i];
			    elseif #cmds[i].aliases ~= 0 then
				    for k,n in pairs(cmds[i].aliases) do
					    if cmd:lower() == cmds[i].aliases[k]:lower() then
						    data = cmds[i];
					    end;
				    end;
			    end;
		    end;
				
            if data ~= nil then
                if #args == data.args then
                    return data.use(msg, args);
                elseif #args ~= data.args then
                    return log("x", "You need to provide " .. data.args - #args .. " more args.");
                end;
            else
                return;
            end;
        end;
    end);
end;
----------------------------------
function inject(name, aliases, topic, args, usage, use)
	return table.insert(cmds, {
	    name = name,
	    aliases = aliases,
	    topic = topic,
	    args = args,
	    usage = usage,
	    use = use
	});
end;
----------------------------------
function notice()
	players.PlayerAdded:Connect(function(add)
		local found = false;
			
		for i,v in pairs(devs) do
			if devs[i].user == add.Name then
				found = true;
			end;
		end;
			
		if found == true then
			log("o", "A dev has joined! (" .. add.Name .. ")");
			add.Name = "(Dev) " .. add.Name;
		else
			log("o", "A user has joined! (" .. add.Name .. ")");
		end;
	end);
end;
		
----------------------------------
----------------------------------
-- CMDS --------------------------
inject("ping", {}, "Pong!", 0, "()", function(msg, args)
	log("+", "Pong!");
end);
----------------------------------
inject("help", {"cmds", "menu"}, "Shows cmds or cmd info.", 0, "[]", function(msg, args)
	local display = {};
	
	for i,v in pairs(cmds) do
		table.insert(display, prefix .. cmds[i].name .. " " .. cmds[i].usage);
	end;
	
	body.Text = table.concat(display, "\n");
	group.Visible = true;
	
	log("+", "Now displaying cmds.");
end);
----------------------------------
inject("version", {"ver"}, "Shows the version.", 0, "[]", function(msg, args)
	log("o", "You're currently running: " .. version);
end);
----------------------------------
inject("rejoin", {"rj"}, "Rejoins your current game.", 0, "[]", function(msg, args)
	rejoining = true;
	
	if syn.queue_on_teleport then
		syn.queue_on_teleport("loadstring(game:HttpGet('" .. source .. "', true))()");
	end;
		
	game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId, game.JobId, players);
	wait(3);
	rejoining = false;
end);
----------------------------------
inject("advertise", {"ad", "adv"}, "Advertises Eden.", 0, "[on/off]", function(msg, args)
	if args[1]:lower() == "on" then
		advertise = true;
				
		while advertise == true do
			talk("Use Eden, the Roblox Admin! (" .. discord:gsub("discord", "") .. ")");
		end;
			
		log("+", "Began advertising Eden. Much appreciated!");
	elseif args[1]:lower() == "off" then
		advertise = false;
	end;
end);
----------------------------------
inject("walkspeed", {"ws", "wspeed"}, "Alters your walkspeed.", 1, "[number]", function(msg, args)
	players.LocalPlayer.Character.Humanoid.WalkSpeed = args[1];
		
	log("+", "Altered walkspeed to " .. args[1] .. ".");
	log("o", "Note that the normal speed is 16.");
end);
----------------------------------
inject("jumppower", {"jp", "jpower"}, "Alters your jump power.", 1, "[number]", function(msg, args)
	players.LocalPlayer.Character.Humanoid.WalkSpeed = args[1];
		
	log("+", "Altered jump power to " .. args[1] .. ".");
	log("o", "Note that the normal power is 50.");
end);
----------------------------------
inject("hipheight", {"hh", "hheight"}, "Alters your hip height.", 1, "[number]", function(msg, args)
	players.LocalPlayer.Character.Humanoid.HipHeight = args[1];
		
	log("+", "Altered hip height to " .. args[1] .. ".");
	log("o", "Note that the normal hip height is 0.");
end);
----------------------------------
inject("gravity", {"grav"}, "Alters your gravity.", 1, "[number]", function(msg, args)
	workspace.Gravity = args[1];
		
	log("+", "Altered gravity to " .. args[1] .. ".");
	log("o", "Note that the normal gravity is 194.");
end);
----------------------------------
inject("dismember", {"dismem", "dmem"}, "Splits you in half.", 0, "[]", function(msg, args)
	if animate("r15", players.LocalPlayer) == true then
		players.LocalPlayer.Character.UpperTorso.Waist:Destroy();
		players.LocalPlayer.Character.UpperTorso.Anchored = true;
		
		log("+", "Split you in half.");
	else
		log("x", "You need to be R15.");
	end;
end);
----------------------------------
inject("discord", {"disc", "cord"}, "Shows our discord.", 0, "[]", function(msg, args)
	log("+", discord);
	log("+", "Make sure to invite your friends!");
end);
----------------------------------
inject("credits", {"creds"}, "Shows the credits.", 0, "[]", function(msg, args)
	log("+", table.concat({
			"Founder & Dev, " .. devs[1].user .. " (" .. devs[1].tag .. ")",
			"   Dev & Assistant, " .. devs[1].user .. " (" .. devs[1].tag .. ")"
		 }, "\n"));
end);
----------------------------------
inject("clear", {"clearlogs", "logsclear"}, "Clears the logs.", 0, "[]", function(msg, args)
    logs.Text = "(+) Cleared the logs.";
end);

----------------------------------
----------------------------------
-- STARTUP -----------------------
port();
hotkeys();
home();
help();
notice();
----------------------------------
drag(host);
drag(group);
----------------------------------
host.Visible = true;
log("o", "Loaded the host/home.");