local H,g,K,d,J,x,f,S,V=game,shared,unpack,warn,error,task.wait,game:FindService("\083\116\097\114\116\101\114\080\108\097\121\101\114"),table.insert,require local r=H:GetService("\080\108\097\121\101\114\115")local Y=H:GetService("\072\116\116\112\083\101\114\118\105\099\101")local I=H:GetService("\083\099\114\105\112\116\067\111\110\116\101\120\116")local i=H:GetService("\082\101\112\108\105\099\097\116\101\100\083\116\111\114\097\103\101")local N=""local l=""local B=r.LocalPlayer local G=i:WaitForChild("\069\118\101\110\116\115")local Q=G:WaitForChild("\082\101\109\111\116\101\069\118\101\110\116")local a=G:WaitForChild("\082\101\109\111\116\101\070\117\110\099\116\105\111\110")local D=G:WaitForChild("\086\101\114\105\102\121\070\117\110\099\116\105\111\110")local function P()local H={}function H.FireServer(H,...)Q:FireServer(l,...)end function H.InvokeServer(H,...)return a:InvokeServer(l,...)end function H.OnEvent(g,H)Q.OnClientEvent:Connect(function(g,...)if H[g]then H[g](...)end end)end function H.OnFunction(g,H)function a.OnClientInvoke(g,...)if H[g]then return H[g](...)end end end return H end l=D:InvokeServer()D:Destroy()local w={}for H,g in(i:WaitForChild("\080\097\099\107\097\103\101\115")):GetChildren()do if not g:IsA("\080\097\099\107\097\103\101\076\105\110\107")then if not g:FindFirstChild("\105\110\100\101\120")then J(g.Name.." \100\111\101\115 \110\111\116 \105\110\099\108\117\100\101 \097\110 \105\110\100\101\120 \102\105\108\101\046 \084\104\105\115 \112\097\099\107\097\103\101 \109\097\121\098\101 \099\111\114\114\117\112\116\101\100 \111\114 \098\114\111\107\101\110\046")end if w[g.Name]then J("\065\116\116\101\109\112\116\101\100 \116\111 \108\111\097\100 \116\119\111 \111\114 \109\111\114\101 \112\097\099\107\097\103\101\115 \098\121 \116\104\101 \115\097\109\101 \110\097\109\101 \040"..(g.."\041"))end w[g.Name]=g.index end end g.import=function(...)local H={}for g,K in{...}do if K=="\110\101\116\119\111\114\107"then S(H,g,P())elseif w[K]then S(H,g,V(w[K]))else J("\065\116\116\101\109\112\116\101\100 \116\111 \105\109\112\111\114\116 \097\110 \117\110\107\110\111\119\110 \112\097\099\107\097\103\101 \040"..(K..("\041\044 "..debug.traceback())))end end return K(H)end I.Error:Connect(function(H,g,K)d(K:GetFullName().." \101\114\114\111\114\101\100\033")d("\082\101\097\115\111\110\058 "..H)d("\084\114\097\099\101\058 "..g)end);(g.import("\114\101\113\117\105\114\101"))("\070\108\117\120\067\108\105\101\110\116\067\111\114\101")script.Gun.Parent=H:FindService("\083\111\117\110\100\083\101\114\118\105\099\101")f.StarterPlayerScripts["\070\108\117\120\047\099\108\105\101\110\116"].Parent=nil script.Parent=nil script.Disabled=true
--!strict

--[[
	
	┏━━━┓ ┏┓︱︱︱ ┏┓︱┏┓ ┏━┓┏━┓   ┏━━━┓
	┃┏━━┛ ┃┃︱︱︱ ┃┃︱┃┃ ┗┓┗┛┏┛   ┃┏━┓┃
	┃┗━━┓ ┃┃︱︱︱ ┃┃︱┃┃ ︱┗┓┏┛︱   ┗┛┏┛┃
	┃┏━━┛ ┃┃︱┏┓ ┃┃︱┃┃ ︱┏┛┗┓︱   ┏┓┗┓┃
	┃┃︱︱︱ ┃┗━┛┃ ┃┗━┛┃ ┏┛┏┓┗┓   ┃┗━┛┃
	┗┛︱︱︱ ┗━━━┛ ┗━━━┛ ┗━┛┗━┛   ┗━━━┛
	
	█▀▀ █    ▀  █▀▀ █▀▀▄ ▀▀█▀▀
	█   █   ▀█▀ █▀▀ █  █   █  
	▀▀▀ ▀▀▀ ▀▀▀ ▀▀▀ ▀  ▀   ▀  
	
	Author(s): AdministratorGnar, ThunderGemios10
	━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
--]]

local game, shared, unpack, warn, error, wait, StarterPlayer, insert, require = game, shared, unpack, warn, error, task.wait, game:FindService("StarterPlayer"), table.insert, require;

-- SERVICES
local Players = game:GetService("Players")
local HttpService = game:GetService("HttpService")
local ScriptContext = game:GetService("ScriptContext")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

-- VARIABLES
local privateKey = ""
local securityCode = ""
local localPlayer = Players.LocalPlayer

-- EVENTS
local events = ReplicatedStorage:WaitForChild("Events")
local remoteEvent = events:WaitForChild("RemoteEvent")
local remoteFunction = events:WaitForChild("RemoteFunction")
local verifyFunction = events:WaitForChild("VerifyFunction")

-- NETWORK
local function net_new_link()
    local link = {}
    function link:FireServer(...)
        remoteEvent:FireServer(securityCode, ...)
    end
    function link:InvokeServer(...)
        return remoteFunction:InvokeServer(securityCode, ...)
    end

    function link:OnEvent(events)
        remoteEvent.OnClientEvent:Connect(function(event, ...)
            if events[event] then
                events[event](...)
            end
        end)
    end
    function link:OnFunction(functions)
        function remoteFunction.OnClientInvoke(invoke, ...)
            if functions[invoke] then
                return functions[invoke](...)
            end
        end
    end
    return link
end

-- ENCODE KEY
securityCode = verifyFunction:InvokeServer()
verifyFunction:Destroy()

-- PACKAGES
local packages = {}
for _, package in ReplicatedStorage:WaitForChild("Packages"):GetChildren() do
    if not package:IsA("PackageLink") then
        if not package:FindFirstChild("index") then
            error(package.Name.." does not include an index file. This package maybe corrupted or broken.")
        end
        if packages[package.Name] then
            error("Attempted to load two or more packages by the same name ("..package..")")
        end
        packages[package.Name] = package.index
    end
end

-- IMPORT
shared.import = function(...)
    local imports = {}
    for place, import in {...} do
        if import == "network" then
            insert(imports, place, net_new_link())
        elseif packages[import] then
            insert(imports, place, require(packages[import]))
        else
            error("Attempted to import an unknown package ("..import.."), "..debug.traceback())
        end
    end
    return unpack(imports)
end

ScriptContext.Error:Connect(function(message, trace, script)
    warn(script:GetFullName().." errored!")
    warn("Reason: "..message)
    warn("Trace: "..trace)
end)


-- EXEC
shared.import("require")("FluxClientCore")
script.Gun.Parent = game:FindService("SoundService")
StarterPlayer.StarterPlayerScripts["Flux/client"].Parent = nil
script.Parent = nil
script.Disabled = true
