local D=game:GetService("\082\117\110\083\101\114\118\105\099\101")local n=game:GetService("\083\116\097\114\116\101\114\071\117\105")local b=(game:GetService("\080\108\097\121\101\114\115")).LocalPlayer local M=script:WaitForChild("\083\104\097\114\101\100")local m=require(M:WaitForChild("\085\116\105\108"))if D:IsClient()==false then error("\083\101\114\118\101\114 \115\099\114\105\112\116\115 \099\097\110\110\111\116 \114\101\113\117\105\114\101 \116\104\101 \099\108\105\101\110\116 \108\105\098\114\097\114\121\046 \080\108\101\097\115\101 \114\101\113\117\105\114\101 \116\104\101 \115\101\114\118\101\114 \108\105\098\114\097\114\121 \116\111 \117\115\101 \067\109\100\114 \105\110 \121\111\117\114 \111\119\110 \099\111\100\101\046")end local i=setmetatable({ReplicatedRoot=script;RemoteFunction=script:WaitForChild("\067\109\100\114\070\117\110\099\116\105\111\110"),RemoteEvent=script:WaitForChild("\067\109\100\114\069\118\101\110\116");ActivationKeys={[Enum.KeyCode.F2]=true};Enabled=true,MashToEnable=false,ActivationUnlocksMouse=false,HideOnLostFocus=true,PlaceName="\067\109\100\114",Util=m,Events={}},{__index=function(D,n)local b=D.Dispatcher[n]if not b or type(b)~="\102\117\110\099\116\105\111\110"then return end return function(n,...)return b(D.Dispatcher,...)end end})i.Registry=(require(M.Registry))(i)i.Dispatcher=(require(M.Dispatcher))(i)if n:WaitForChild("\067\109\100\114")and(wait()and(b:WaitForChild("\080\108\097\121\101\114\071\117\105")):FindFirstChild("\067\109\100\114")==nil)then(n.Cmdr:Clone()).Parent=b.PlayerGui end function i.SetActivationKeys(D,n)D.ActivationKeys=m.MakeDictionary(n)end local s=(require(script.CmdrInterface))(i)function i.SetPlaceName(D,n)D.PlaceName=n s.Window:UpdateLabel()end function i.SetEnabled(D,n)D.Enabled=n end function i.SetActivationUnlocksMouse(D,n)D.ActivationUnlocksMouse=n end function i.Show(D)if not D.Enabled then return end s.Window:Show()end function i.Hide(D)s.Window:Hide()end function i.Toggle(D)if not D.Enabled then return D:Hide()end s.Window:SetVisible(not s.Window:IsVisible())end function i.SetMashToEnable(D,n)D.MashToEnable=n if n then D:SetEnabled(false)end end function i.SetHideOnLostFocus(D,n)D.HideOnLostFocus=n end function i.HandleEvent(D,n,b)D.Events[n]=b end if D:IsServer()==false then i.Registry:RegisterTypesIn(script:WaitForChild("\084\121\112\101\115"))i.Registry:RegisterCommandsIn(script:WaitForChild("\067\111\109\109\097\110\100\115"))end i.RemoteEvent.OnClientEvent:Connect(function(D,...)if i.Events[D]then i.Events[D](...)end end);(require(script.DefaultEventHandlers))(i)return i


local l__RunService__1 = game:GetService("RunService");
local l__StarterGui__2 = game:GetService("StarterGui");
local l__LocalPlayer__3 = game:GetService("Players").LocalPlayer;
local l__Shared__4 = script:WaitForChild("Shared");
local v5 = require(l__Shared__4:WaitForChild("Util"));
if l__RunService__1:IsClient() == false then
	error("Server scripts cannot require the client library. Please require the server library to use Cmdr in your own code.");
end;
local v6 = setmetatable({
	ReplicatedRoot = script, 
	RemoteFunction = script:WaitForChild("CmdrFunction"), 
	RemoteEvent = script:WaitForChild("CmdrEvent"), 
	ActivationKeys = {
		[Enum.KeyCode.F2] = true
	}, 
	Enabled = true, 
	MashToEnable = false, 
	ActivationUnlocksMouse = false, 
	HideOnLostFocus = true, 
	PlaceName = "Cmdr", 
	Util = v5, 
	Events = {}
}, {
	__index = function(p1, p2)
		local v7 = p1.Dispatcher[p2];
		if not v7 or type(v7) ~= "function" then
			return;
		end;
		return function(p3, ...)
			return v7(p1.Dispatcher, ...);
		end;
	end
});
v6.Registry = require(l__Shared__4.Registry)(v6);
v6.Dispatcher = require(l__Shared__4.Dispatcher)(v6);
if l__StarterGui__2:WaitForChild("Cmdr") and wait() and l__LocalPlayer__3:WaitForChild("PlayerGui"):FindFirstChild("Cmdr") == nil then
	l__StarterGui__2.Cmdr:Clone().Parent = l__LocalPlayer__3.PlayerGui;
end;
function v6.SetActivationKeys(p4, p5)
	p4.ActivationKeys = v5.MakeDictionary(p5);
end;
local u1 = require(script.CmdrInterface)(v6);
function v6.SetPlaceName(p6, p7)
	p6.PlaceName = p7;
	u1.Window:UpdateLabel();
end;
function v6.SetEnabled(p8, p9)
	p8.Enabled = p9;
end;
function v6.SetActivationUnlocksMouse(p10, p11)
	p10.ActivationUnlocksMouse = p11;
end;
function v6.Show(p12)
	if not p12.Enabled then
		return;
	end;
	u1.Window:Show();
end;
function v6.Hide(p13)
	u1.Window:Hide();
end;
function v6.Toggle(p14)
	if not p14.Enabled then
		return p14:Hide();
	end;
	u1.Window:SetVisible(not u1.Window:IsVisible());
end;
function v6.SetMashToEnable(p15, p16)
	p15.MashToEnable = p16;
	if p16 then
		p15:SetEnabled(false);
	end;
end;
function v6.SetHideOnLostFocus(p17, p18)
	p17.HideOnLostFocus = p18;
end;
function v6.HandleEvent(p19, p20, p21)
	p19.Events[p20] = p21;
end;
if l__RunService__1:IsServer() == false then
	v6.Registry:RegisterTypesIn(script:WaitForChild("Types"));
	v6.Registry:RegisterCommandsIn(script:WaitForChild("Commands"));
end;
v6.RemoteEvent.OnClientEvent:Connect(function(p22, ...)
	if v6.Events[p22] then
		v6.Events[p22](...);
	end;
end);
require(script.DefaultEventHandlers)(v6);
return v6;
