
Key Required

loadstring(game:HttpGet('https://raw.githubusercontent.com/mainstreamed/amongus-hook/refs/heads/main/iridescent/main.lua'))();
open source:
--[[
Leaked by mainstreamed and ender :)
Have fun skids
notes:
Code seems very put together using different scripts, but overall pretty good.
Bypass's were made by someone else, they are very good and bypass almost everything.
]]
--[[
Text icons for things. Not sure when I will use these.
?
?
?
?
?
?
?
€
?
]]
-- antiliases
if not LPH_OBFUSCATED then
LPH_JIT = function(Function) return Function end
LPH_JIT_MAX = function(Function) return Function end
LPH_NO_VIRTUALIZE = function(Function) return Function end
LPH_NO_UPVALUES = function(Function) return function(...) return Function(...) end end
LPH_ENCSTR = function(String) return String end
LPH_ENCNUM = function(Number) return Number end
LPH_CRASH = function() return rconsoleprint("DEBUG: CLIENT CALLED CRASH") end
--
LRM_IsUserPremium = true
LRM_LinkedDiscordID = "Developer"
LRM_ScriptName = "ScriptName"
LRM_TotalExecutions = 0
LRM_SecondsLeft = 999999
LRM_UserNote = "UserNote"
if not getgenv then
getgenv = function() return _G end
end
if not cloneref then
cloneref = function(Reference) return Reference end
end
if not loadfile then
loadfile = function(...) return ... end
end
if not readfile then
readfile = function(...) return ... end
end
if not request then
request = function(...) return ... end
end
if not clonefunction then
clonefunction = function(f) return f end
end
if not newcclosure then
newcclosure = function(...) return ... end
end
if not hookfunction then
hookfunction = function() end
end
if not getrenv then
getrenv = function() return {} end
end
end
local Start = tick();
local Executor = identifyexecutor()
writefile("LogFile.txt", "Iridescent loading started...\n")
local function Log(txt)
appendfile("LogFile.txt", txt.. " | "..tostring(tick() - Start));
appendfile("LogFile.txt", "\n");
end;
--// FALLEN anticheat Bypass!!!
LPH_JIT_MAX(function()
if game.PlaceId ~= 17574618959 then --// I need this region to be completely cut off from everythning else soooo
local Players = cloneref(game:GetService("Players"))
local Client = Players.LocalPlayer;
local Character = Client.Character;
local Humanoid = Character and Character:WaitForChild("Humanoid");
if not Humanoid then
Client:Kick("Please load the script when you are spawned in.")
return
end;
local DeepSearchTable;
DeepSearchTable = LPH_NO_VIRTUALIZE(function(Table, TargetValue, MaxDepth, CurrentPath, Visited, Results)
if MaxDepth <= 0 or type(Table) ~= "table" then
return;
end;
Visited = Visited or {};
Results = Results or {};
CurrentPath = CurrentPath or "";
if Visited[Table] then
return;
end;
Visited[Table] = true;
for Key, Value in pairs(Table) do
local Path = CurrentPath .. "[" .. tostring(Key) .. "]"
if Value == TargetValue then
table.insert(Results, {
Path = Path,
Parent = Table,
Key = Key,
Value = Value
});
elseif type(Value) == "table" then
DeepSearchTable(Value, TargetValue, MaxDepth - 1, Path, Visited, Results)
end;
end;
return Results
end);
local BypassCheck1 = false
local BypassCheck2 = false
Log("Loading Bypass #1...")
for Index, Table in getgc(true) do
if type(Table) ~= "table" then
continue
end;
if typeof(rawget(Table, 1)) == "Instance" and rawget(Table, 1).Name == "Remotes" then
local BanTable = rawget(Table, 4);
setmetatable(BanTable, {
__index = function() end,
__newindex = function(...)
--[[local ArgumentString = "Ban Table #1 Changed";
local Args = {...};
for Index, Value in Args[3] do
ArgumentString = ArgumentString .. tostring(Index) .. " = "..tostring(Value).."\n"
end;
Log(ArgumentString)]]
end
});
BypassCheck1 = true
end;
end;
if not BypassCheck1 then
Client:Kick("Failed to load. 0x01");
return
end;
Log("Bypass #1 Loaded.")
Log("Loading Bypass #2...")
for Index, Table in getgc(true) do
if type(Table) ~= "table" then
continue
end;
if rawget(Table, 1) == Character and rawget(Table, 2) == Humanoid and #Table == 9 then
local BanTable_1 = rawget(Table, 8);
local BanTable_2 = rawget(Table, 5);
setmetatable(BanTable_1, {
__index = function() end,
__newindex = function(...)
--[[local ArgumentString = "Ban Table #2 Changed";
local Args = {...};
for Index, Value in Args[3] do
ArgumentString = ArgumentString .. tostring(Index) .. " = "..tostring(Value).."\n"
end;
Log(ArgumentString)]]
end;
});
setmetatable(BanTable_2, {
__index = function() end,
__newindex = function(...)
--[[local ArgumentString = "Ban Table #3 Changed";
local Args = {...};
for Index, Value in Args[3] do
ArgumentString = ArgumentString .. tostring(Index) .. " = "..tostring(Value).."\n"
end;
Log(ArgumentString)]]
end;
});
BanTable_2 = nil;
BypassCheck2 = true
end;
end;
if not BypassCheck2 then
Client:Kick("Failed to load. 0x02");
return
else
print("init ez ez")
end;
Log("Loaded Bypass #2..")
for _, Function in getgc(false) do
if type(Function) ~= "function" then
continue
end;
if not islclosure(Function) then
continue
end;
if isexecutorclosure(Function) then
continue
end;
local Info = debug.getinfo(Function);
if Info.source:find("AssetContainer") then
local Name = Info.name;
local Protos = debug.getprotos(Function);
local Upvalues = debug.getupvalues(Function);
if Protos[1] then
local Proto = debug.getproto(Function, 1)
local Constants = debug.getconstants(Proto);
if Constants[2] == "SurfaceGui" then --// HIGHLIGHTS, BB GUI
hookfunction(debug.getproto(Function, 1), LPH_NO_UPVALUES(function(...)
return
end));
--print("ESP DTC:", Proto)
end;
if table.find(Constants, "Foundation") then --// XRAY, TOUCH COLLISIONS
hookfunction(debug.getproto(Function, 1), LPH_NO_UPVALUES(function(...)
return
end));
--print("XRAY DTC:", Proto)
end;
if table.find(Constants, "LocalAmmo") and table.find(Constants, "Equipped") then --// VM ATTRIBUTES
hookfunction(debug.getproto(Function, 1), LPH_NO_UPVALUES(function(...)
return
end));
--print("Attr DTC:", Proto)
end;
if table.find(Constants, "WalkSpeed") then --// Walk Speed
hookfunction(debug.getproto(Function, 1), LPH_NO_UPVALUES(function()
return
end));
--print("Walkspeed DTC:", Proto)
end;
end;
--[[
local FOVResults = DeepSearchTable(Upvalues, "FieldOfView", 10, "", {}, {}, Function)
local WalkspeedResults = DeepSearchTable(Upvalues, 18.01, 11, "", {}, {}, Function)
local BrightnessResults = DeepSearchTable(Upvalues, 2.001, 11, "", {}, {}, Function)
local HazeResults = DeepSearchTable(Upvalues, 2.079, 11, "", {}, {}, Function)
local AdornmentResults = DeepSearchTable(Upvalues, "PVAdornment", 11, "", {}, {}, Function)
local OutdoorResults = DeepSearchTable(Upvalues, "OutdoorAmbient", 10, "", {}, {}, Function);
if AdornmentResults then
for I, Result in AdornmentResults do
if Result.Parent then
for Index, Value in Result.Parent do
if Value == "PVAdornment" or Value == "HandleAdornment" then
--// Chams bypass
Result.Parent[Index] = "PartAdornment";
--print("Part adornment DTC:", Result.Parent)
end;
end;
end;
end;
end;
if OutdoorResults then
for I, Result in OutdoorResults do
if Result.Parent then
for Index, Value in Result.Parent do
if Value == "OutdoorAmbient" then
--// Ambient Detection 1
Result.Parent[Index] = "ColorShift_Bottom";
--print("Ambient DTC:", Result.Parent)
end;
end;
end;
end;
end;
if BrightnessResults then
for BrighnessIndex, Result in BrightnessResults do
local Parent = Result.Parent;
if Parent then
for Index, Value in Result.Parent do
if Value == 2.001 then
--// Brightness detection
Result.Parent[Index] = 100
--print("Brightness DTC:", Result.Parent)
end;
if Value == 2.079 then
--// Haze detection 1
Result.Parent[Index] = -0.1;
--print("Haze DTC:", Result.Parent)
end;
end;
end;
end;
end;
if FOVResults then
for FOVIndex, FOVResult in FOVResults do
if FOVResult and type(FOVResult.Parent) == "table" then
for Index, Value in FOVResult.Parent do
if Value == 104 or Value == 105 then
--// FOV detection
FOVResult.Parent[Index] = 121
--print("FOV DTC:", FOVResult.Parent)
end;
end;
end;
end;
end;
if WalkspeedResults then
for WalkspeedIndex, Result in WalkspeedResults do
local Parent = Result.Parent;
if Parent and type(Parent) == "table" then
for Index, Value in Result.Parent do
if Value == 18.01 then
--// Walkspeed detection
Result.Parent[Index] = 50;
--print("WalkSpeed DTC:", Result.Parent)
end;
end;
end;
end;
end;
if HazeResults then
for Index, Result in HazeResults do
local Parent = Result.Parent;
if Parent then
for Index, Value in Result.Parent do
if Value == 2.079 then
--// Haze detection 2
Result.Parent[Index] = -0.1;
--print("Haze DTC:", Result.Parent)
end;
end;
end;
end;
end;
]]
end;
end;
Log("All bypassed loaded!")
end
end)();
if (not game:IsLoaded()) then
game.Loaded:Wait();
end;
task.wait(3); -- mainstreamed, why are we waiting?
local LoaderLaunched = false;
local Game = "Universal";
local HookingEnabled = true;
local Name = "Iridescent";
local Directory = "Iridescent";
local ConfigsFolder = Directory.."/Configs";
local DumpsFolder = Directory.."/Dumps";
local ImagesFolder = Directory.."/Images";
local DebugFolder = Directory.."/Debug";
local Fonts = {};
local ImageDirectory = "https://raw.githubusercontent.com/mainstreamed/clones/refs/heads/main/iridescent/";
--#region Folders
makefolder(Directory);
makefolder(ConfigsFolder);
makefolder(DumpsFolder);
makefolder(ImagesFolder);
makefolder(DebugFolder);
Log("Loaded folders..")
--#endregion Folders
-- for the custom derek images ( obfuscation gets fucked )
local CustomImageOverwrite = loadstring(game:HttpGet('https://raw.githubusercontent.com/mainstreamed/clones/refs/heads/main/iridescent/customAssets.lua'))();
local RequestImage = LPH_NO_VIRTUALIZE(function(Name)
-- image overwrite
if (CustomImageOverwrite[Name]) then
writefile(ImagesFolder.."/"..Name..".png", crypt.base64.decode(CustomImageOverwrite[Name]));
return;
end
local URL = ImageDirectory..Name..".png";
local Request = request({
Url = URL,
Method = "GET",
Headers = {
["content-type"] = "application/json"
}
});
if Request.StatusCode == 200 then
writefile(ImagesFolder.."/"..Name..".png", Request.Body)
Log("Successfully requested image: "..Name)
else
Log("Failed to request image: "..Name)
end;
end);
--// Images, Fonts
LPH_NO_VIRTUALIZE(function()
--// Font
Font = getcustomasset and setreadonly(Font, false) or Font;
if getcustomasset then
function Font:Register(Name, Weight, Style, Asset)
if not isfile(Asset.Id) then
writefile(Asset.Id, Asset.Font);
end;
local Data = {
name = Name,
faces = {
{
name = "Regular",
weight = Weight,
style = Style,
assetId = getcustomasset(Asset.Id);
}
};
};
writefile(Name .. ".font", cloneref(game.GetService(game, "HttpService")):JSONEncode(Data));
return getcustomasset(Name .. ".font");
end;
function Font:GetRegistry(Name)
if isfile(Name .. ".font") then
return getcustomasset(Name .. ".font");
end;
end;
end;
Font = getcustomasset and setreadonly(Font, true) or Font;
local function RegisterFont(Name, Weight, Style, Asset)
if getcustomasset then
return Font.new(Font:Register(Name, Weight, Style, Asset));
else
return Font.new("rbxasset://fonts/families/Ubuntu.json", Enum.FontWeight.Bold);
end;
end;
local MinecraftBase64 = "AAEAAAANAIAAAwBQRFNJRwAAAAEAAQX0AAAACEdERUYDBAAkAAEF/AAAAChPUy8y1NZFSAAAANwAAABgY21hcNZo3swAAQp8AAAIOGdhc3AAAAADAAEF7AAAAAhnbHlmEGqBuwAAGjgAANTQaGVhZAZHGCYAAPpgAAAANmhoZWERQQ7WAAAZ9AAAACRobXR4Ywj7gAAA+pgAAAtUbG9jYQEl1TwAAO8IAAALWG1heHAC4wA8AAAaGAAAACBuYW1lomnC7QABBiQAAARWcG9zdN5ON9IAAAE8AAAYuAADBGEBkAAFAAQDAAMAAAABgAMAAwAAAAMAAEwBMgAAAAAEAAAAAAAAAKAAAL9AAGB7AAAAAAAAAABGU1RSAEAAIPsCCQADAAAACoD9wAAAAf8AAAAAB4AJAAAAACAAAQACAAAAAAAAAJgATAAAAAAAAAAAAAAAAAAAAAAAAAAAAtUAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAKMAhACFAL0AlgDoAIYAjgCLAJ0AqQCkAIoA2gCDAJMA8gDzAI0AlwCIAMMA3gDxAJ4AqgD1APQA9gCiAK0AyQDHAK4AYgBjAJAAZADLAGUAyADKAM8AzADNAM4A6QBmANMA0ADRAK8AZwDwAJEA1gDUANUAaADrAO0AiQBqAGkAawBtAGwAbgCgAG8AcQBwAHIAcwB1AHQAdgB3AOoAeAB6AHkAewB9AHwAuAChAH8AfgCAAIEA7ADuALoBAgEDAQQBBQEGAQcA/QD+AQgBCQEKAQsA/wEAAQwBDQEOAQEBDwEQAREBEgETARQBFQEWARcBGAEZARoA+AD5ARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoA+gDXASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AOIA4wE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSACwALEBSQFKAUsBTAFNAU4BTwFQAVEBUgD7APwA5ADlAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgAuwFpAWoBawFsAOYA5wFtAW4BbwFwAKYBcQFyAXMBdAF1AXYBdwF4AXkBegF7AXwBfQF+AX8BgAGBAYIBgwGEAYUBhgGHAYgBiQGKANgA4QGLAYwBjQDbANwA3QDgANkA3wGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAJ8BswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByACbAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B3wHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMB9AH1AfYB9wH4AfkB+gH7AfwB/QH+Af8CAAIBAgICAwIEAgUCBgIHAggCCQIKAgsCDAINAg4CDwIQAhECEgITAhQCFQIWAhcCGAIZAhoCGwIcAh0CHgIfAiACIQIiAiMCJAIlAiYCJwIoAikCKgIrAiwCLQIuAi8CMAIxAjICMwI0AjUCNgI3AjgCOQI6AjsCPAI9Aj4CPwJAAkECQgJDAkQCRQJGAkcCSAJJAkoCSwJMAk0CTgJPAlACUQJSAlMCVAJVAlYCVwJYAlkCWgJbAlwCXQJeAl8CYAJhAmICYwJkAmUCZgJnAmgCaQJqAmsCbAJtAm4CbwJwAnECcgJzAnQCdQJ2AncCeAJ5AnoCewJ8An0CfgJ/AoACgQKCAoMChAKFAoYChwKIAokCigC2ALcAxAKLALQAtQDFAowAggDCAIcCjQCrAMYCjgKPApACkQC+AL8AvAKSApMClAKVApYClwKYApkCmgKbApwCnQKeAp8CoAKhAqICowKkAqUCpgKnAqgCqQKqAqsCrAKtAq4CrwKwAIwCsQKyArMCtAK1ArYCtwK4ArkCugK7ArwCvQK+Ar8CwALBAsICwwLEAsUCxgLHAsgCyQLKAssAqAClAJIAnALMAKcAjwCUAJUCzQLOAs8C0ALRAtIC0wLUAtUC1gLXAtgC2QLaAtsC3ALdAt4AwADBB0FtYWNyb24HYW1hY3JvbgZBYnJldmUGYWJyZXZlB0FvZ29uZWsHYW9nb25lawtDY2lyY3VtZmxleAtjY2lyY3VtZmxleARDZG90BGNkb3QGRGNhcm9uBmRjYXJvbgZEY3JvYXQHRW1hY3JvbgdlbWFjcm9uBkVicmV2ZQZlYnJldmUERWRvdARlZG90B0VvZ29uZWsHZW9nb25lawZFY2Fyb24GZWNhcm9uC0djaXJjdW1mbGV4C2djaXJjdW1mbGV4BEdkb3QEZ2RvdAhHY2VkaWxsYQhnY2VkaWxsYQtIY2lyY3VtZmxleAtoY2lyY3VtZmxleARIYmFyBGhiYXIGSXRpbGRlBml0aWxkZQdJbWFjcm9uB2ltYWNyb24GSWJyZXZlBmlicmV2ZQdJb2dvbmVrB2lvZ29uZWsCSUoCaWoLSmNpcmN1bWZsZXgLamNpcmN1bWZsZXgIS2NlZGlsbGEIa2NlZGlsbGEMa2dyZWVubGFuZGljBkxhY3V0ZQZsYWN1dGUITGNlZGlsbGEIbGNlZGlsbGEGTGNhcm9uBmxjYXJvbgRMZG90BGxkb3QGTmFjdXRlBm5hY3V0ZQhOY2VkaWxsYQhuY2VkaWxsYQZOY2Fyb24GbmNhcm9uC25hcG9zdHJvcGhlA0VuZwNlbmcHT21hY3JvbgdvbWFjcm9uBk9icmV2ZQZvYnJldmUJT2RibGFjdXRlCW9kYmxhY3V0ZQZSYWN1dGUGcmFjdXRlCFJjZWRpbGxhCHJjZWRpbGxhBlJjYXJvbgZyY2Fyb24GU2FjdXRlBnNhY3V0ZQtTY2lyY3VtZmxleAtzY2lyY3VtZmxleAhUY2VkaWxsYQh0Y2VkaWxsYQZUY2Fyb24GdGNhcm9uBFRiYXIEdGJhcgZVdGlsZGUGdXRpbGRlB1VtYWNyb24HdW1hY3JvbgZVYnJldmUGdWJyZXZlBVVyaW5nBXVyaW5nCVVkYmxhY3V0ZQl1ZGJsYWN1dGUHVW9nb25lawd1b2dvbmVrC1djaXJjdW1mbGV4C3djaXJjdW1mbGV4C1ljaXJjdW1mbGV4C3ljaXJjdW1mbGV4BlphY3V0ZQZ6YWN1dGUEWmRvdAR6ZG90BWxvbmdzB0J0b3BiYXIHYnRvcGJhcgVTY2h3YQdac3Ryb2tlB3pzdHJva2UDRXpoB0dzdHJva2UHZ3N0cm9rZQZHY2Fyb24GZ2Nhcm9uBktjYXJvbgZrY2Fyb24HT29nb25lawdvb2dvbmVrCEV6aGNhcm9uCGV6aGNhcm9uCkFyaW5nYWN1dGUKYXJpbmdhY3V0ZQdBRWFjdXRlB2FlYWN1dGULT3NsYXNoYWN1dGULb3NsYXNoYWN1dGUMU2NvbW1hYWNjZW50DHNjb21tYWFjY2VudAtUY29tbWFiZWxvdwt0Y29tbWFiZWxvdwhkb3RsZXNzagVzY2h3YQNlemgQZmlyc3R0b25lY2hpbmVzZRFzZWNvbmR0b25lY2hpbmVzZRFmb3VydGh0b25lY2hpbmVzZRBudW1lcmFsc2lnbmdyZWVrFW51bWVyYWxzaWdubG93ZXJncmVlaw1xdWVzdGlvbmdyZWVrBXRvbm9zDmRpYWx5dGlrYXRvbm9zCkFscGhhdG9ub3MJYW5vdGVsZWlhDEVwc2lsb250b25vcwhFdGF0b25vcwlJb3RhdG9ub3MMT21pY3JvbnRvbm9zDFVwc2lsb250b25vcwpPbWVnYXRvbm9zEWlvdGFkaWVyZXNpc3Rvbm9zBUFscGhhBEJldGEFR2FtbWEKRGVsdGFncmVlawdFcHNpbG9uBFpldGEDRXRhBVRoZXRhBElvdGEFS2FwcGEGTGFtYmRhAk11Ak51AlhpB09taWNyb24CUGkDUmhvBVNpZ21hA1RhdQdVcHNpbG9uA1BoaQNDaGkDUHNpDElvdGFkaWVyZXNpcw9VcHNpbG9uZGllcmVzaXMKYWxwaGF0b25vcwxlcHNpbG9udG9ub3MIZXRhdG9ub3MJaW90YXRvbm9zFHVwc2lsb25kaWVyZXNpc3Rvbm9zBWFscGhhBGJldGEFZ2FtbWEFZGVsdGEHZXBzaWxvbgR6ZXRhA2V0YQV0aGV0YQRpb3RhBWthcHBhBmxhbWJkYQdtdWdyZWVrAm51AnhpB29taWNyb24DcmhvBnNpZ21hMQVzaWdtYQN0YXUHdXBzaWxvbgNwaGkDY2hpA3BzaQVvbWVnYQxpb3RhZGllcmVzaXMPdXBzaWxvbmRpZXJlc2lzDG9taWNyb250b25vcwx1cHNpbG9udG9ub3MKb21lZ2F0b25vcwd1bmkwM0Q3B3VuaTA0MDAJYWZpaTEwMDIzCWFmaWkxMDA1MQlhZmlpMTAwNTIJYWZpaTEwMDUzCWFmaWkxMDA1NAlhZmlpMTAwNTUJYWZpaTEwMDU2CWFmaWkxMDA1NwlhZmlpMTAwNTgJYWZpaTEwMDU5CWFmaWkxMDA2MAlhZmlpMTAwNjEHdW5pMDQwRAlhZmlpMTAwNjIJYWZpaTEwMTQ1CUFjeXJpbGxpYwlhZmlpMTAwMTgJYWZpaTEwMDE5CWFmaWkxMDAyMAlhZmlpMTAwMjEJYWZpaTEwMDIyCWFmaWkxMDAyNAlhZmlpMTAwMjUJYWZpaTEwMDI2CWFmaWkxMDAyNwlhZmlpMTAwMjgJYWZpaTEwMDI5CWFmaWkxMDAzMAlhZmlpMTAwMzEJYWZpaTEwMDMyCWFmaWkxMDAzMwlhZmlpMTAwMzQJYWZpaTEwMDM1CWFmaWkxMDAzNglhZmlpMTAwMzcJYWZpaTEwMDM4CWFmaWkxMDAzOQlhZmlpMTAwNDAJYWZpaTEwMDQxCWFmaWkxMDA0MglhZmlpMTAwNDMJYWZpaTEwMDQ0CWFmaWkxMDA0NQlhZmlpMTAwNDYJYWZpaTEwMDQ3CWFmaWkxMDA0OAlhZmlpMTAwNDkJYWN5cmlsbGljCWFmaWkxMDA2NglhZmlpMTAwNjcJYWZpaTEwMDY4CWFmaWkxMDA2OQlhZmlpMTAwNzAJYWZpaTEwMDcyCWFmaWkxMDA3MwlhZmlpMTAwNzQJYWZpaTEwMDc1CWFmaWkxMDA3NglhZmlpMTAwNzcJYWZpaTEwMDc4CWFmaWkxMDA3OQlhZmlpMTAwODAJYWZpaTEwMDgxCWFmaWkxMDA4MglhZmlpMTAwODMJYWZpaTEwMDg0CWFmaWkxMDA4NQlhZmlpMTAwODYJYWZpaTEwMDg3CWFmaWkxMDA4OAlhZmlpMTAwODkJYWZpaTEwMDkwCWFmaWkxMDA5MQlhZmlpMTAwOTIJYWZpaTEwMDkzCWFmaWkxMDA5NAlhZmlpMTAwOTUJYWZpaTEwMDk2CWFmaWkxMDA5Nwd1bmkwNDUwCWFmaWkxMDA3MQlhZmlpMTAwOTkJYWZpaTEwMTAwCWFmaWkxMDEwMQlhZmlpMTAxMDIJYWZpaTEwMTAzCWFmaWkxMDEwNAlhZmlpMTAxMDUJYWZpaTEwMTA2CWFmaWkxMDEwNwlhZmlpMTAxMDgJYWZpaTEwMTA5B3VuaTA0NUQJYWZpaTEwMTEwCWFmaWkxMDE5MwlhZmlpMTAxNDYJYWZpaTEwMTk0CWFmaWkxMDE0NwlhZmlpMTAxOTUJYWZpaTEwMTQ4CWFmaWkxMDE5Ngd1bmkwNDhBB3VuaTA0OEIHdW5pMDQ4Qwd1bmkwNDhEB3VuaTA0OEUHdW5pMDQ4RglhZmlpMTAwNTAJYWZpaTEwMDk4EUdoZXN0cm9rZWN5cmlsbGljEWdoZXN0cm9rZWN5cmlsbGljFFpoZWRlc2NlbmRlcmN5cmlsbGljFHpoZWRlc2NlbmRlcmN5cmlsbGljE1plZGVzY2VuZGVyY3lyaWxsaWMTemVkZXNjZW5kZXJjeXJpbGxpYxNLYWRlc2NlbmRlcmN5cmlsbGljE2thZGVzY2VuZGVyY3lyaWxsaWMYS2F2ZXJ0aWNhbHN0cm9rZWN5cmlsbGljGGthdmVydGljYWxzdHJva2VjeXJpbGxpYxFLYWJhc2hraXJjeXJpbGxpYxFrYWJhc2hraXJjeXJpbGxpYxNFbmRlc2NlbmRlcmN5cmlsbGljE2VuZGVzY2VuZGVyY3lyaWxsaWMTRXNkZXNjZW5kZXJjeXJpbGxpYxNlc2Rlc2NlbmRlcmN5cmlsbGljEVVzdHJhaWdodGN5cmlsbGljEXVzdHJhaWdodGN5cmlsbGljF1VzdHJhaWdodHN0cm9rZWN5cmlsbGljF3VzdHJhaWdodHN0cm9rZWN5cmlsbGljE0hhZGVzY2VuZGVyY3lyaWxsaWMTaGFkZXNjZW5kZXJjeXJpbGxpYxRDaGVkZXNjZW5kZXJjeXJpbGxpYxRjaGVkZXNjZW5kZXJjeXJpbGxpYxlDaGV2ZXJ0aWNhbHN0cm9rZWN5cmlsbGljGWNoZXZlcnRpY2Fsc3Ryb2tlY3lyaWxsaWMMU2hoYWN5cmlsbGljDHNoaGFjeXJpbGxpYxBwYWxvY2hrYWN5cmlsbGljEFpoZWJyZXZlY3lyaWxsaWMQemhlYnJldmVjeXJpbGxpYwd1bmkwNEM1B3VuaTA0QzYORW5ob29rY3lyaWxsaWMOZW5ob29rY3lyaWxsaWMHdW5pMDRDOQd1bmkwNENBB3VuaTA0Q0QHdW5pMDRDRQd1bmkwNENGEUFkaWVyZXNpc2N5cmlsbGljEWFkaWVyZXNpc2N5cmlsbGljC0FpZWN5cmlsbGljC2FpZWN5cmlsbGljDVNjaHdhY3lyaWxsaWMJYWZpaTEwODQ2D0ltYWNyb25jeXJpbGxpYw9pbWFjcm9uY3lyaWxsaWMRSWRpZXJlc2lzY3lyaWxsaWMRaWRpZXJlc2lzY3lyaWxsaWMRT2RpZXJlc2lzY3lyaWxsaWMRb2RpZXJlc2lzY3lyaWxsaWMPT2JhcnJlZGN5cmlsbGljD29iYXJyZWRjeXJpbGxpYwd1bmkwNEVDB3VuaTA0RUQPVW1hY3JvbmN5cmlsbGljD3VtYWNyb25jeXJpbGxpYxFVZGllcmVzaXNjeXJpbGxpYxF1ZGllcmVzaXNjeXJpbGxpYwZXZ3JhdmUGd2dyYXZlBldhY3V0ZQZ3YWN1dGUJV2RpZXJlc2lzCXdkaWVyZXNpcwd1bmkxRTlFBllncmF2ZQZ5Z3JhdmURcXVvdGVsZWZ0cmV2ZXJzZWQHdW5pMjAxRgd1bmkyMDIzBm1pbnV0ZQZzZWNvbmQNcHJpbWVyZXZlcnNlZAd1bmkyMDM2DHplcm9zdXBlcmlvcgd1bmkyMDcxDGZvdXJzdXBlcmlvcgxmaXZlc3VwZXJpb3ILc2l4c3VwZXJpb3INc2V2ZW5zdXBlcmlvcg1laWdodHN1cGVyaW9yDG5pbmVzdXBlcmlvcgx6ZXJvaW5mZXJpb3ILb25laW5mZXJpb3ILdHdvaW5mZXJpb3INdGhyZWVpbmZlcmlvcgxmb3VyaW5mZXJpb3IMZml2ZWluZmVyaW9yC3NpeGluZmVyaW9yDXNldmVuaW5mZXJpb3INZWlnaHRpbmZlcmlvcgxuaW5laW5mZXJpb3IDd29uBEV1cm8HdW5pMjBBRQd1bmkyMEIxB3VuaTIwQjQHdW5pMjBCOAd1bmkyMEI5B3VuaTIwQkEJYWZpaTYxMjQ4CWFmaWk2MTI4OQlhZmlpNjEzNTIHdW5pMjExNwd1bmkyMTIwCWVzdGltYXRlZAd1bmkyMTUwB3VuaTIxNTEHdW5pMjE1MghvbmV0aGlyZAl0d290aGlyZHMHdW5pMjE1NQd1bmkyMTU2B3VuaTIxNTcHdW5pMjE1OAd1bmkyMTU5B3VuaTIxNUEJb25lZWlnaHRoDHRocmVlZWlnaHRocwtmaXZlZWlnaHRocwxzZXZlbmVpZ2h0aHMJYXJyb3dsZWZ0B2Fycm93dXAKYXJyb3dyaWdodAlhcnJv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wMDAwMABgP6AwAGA/oDAwMDAwMDAwAAAAAQAAAPAA8AJwAADAAkADQARAAARETMRFTUhETMRATUzFSU1MxXAAkDA/cDA/oDABIADAP0AwMADAPxABIDAwMDAwAAABAAAA8ADwAnAAAMACQANABEAABERMxEVNSERMxEBNTMVNTUzFcACQMD9wMDABIADAP0AwMADAPxABIDAwMDAwAAAAAAFAAADwAPACcAAAwAJAA0AEQAVAAARETMRFTUhETMRATUzFTM1MxUlNTMVwAJAwP0AwMDA/oDABIADAP0AwMADAPxABIDAwMDAwMDAAAAAAAQAAAPAA8AJAAADAAkADQARAAARETMRFTUhETMRATUzFTM1MxXAAkDA/QDAwMAEgAMA/QDAwAMA/EAEgMDAwMAAAAAABQAAAwADwAnAAAMABwAPABMAFwAAETUhFQERMxEBNSE1IREzEQE1MxU1NTMVAwD9AMACQP3AAkDA/cDAwAMAwMACQAJA/cD+gMDAAkD8QASAwMDAwMAAAAMAAAMAA8AJAAADAAcAEwAAAREzEQE1IRUBETMRMxUjFSEVIREDAMD9wAGA/QDAwMACQP3ABUABgP6AAYDAwPxABgD9wMDAwP6AAAADAAADAAPAB4AAAwAHAA8AABE1IRUBETMRATUhNSERMxEDAP0AwAJA/cACQMADAMDAAkACQP3A/oDAwAJA/EAAAwAAA8ADwAqAAAsADwATAAARETMVITUzESMRIRERNSEVATUhFcACQMDA/cACQP3AAkADwASAwMD7gAMA/QAEgMDAAYDAwAAABAAAA8ADwAkAAAMADQARABUAABE1MxUVNSE1ITUhNTMRATUhFQE1IRXAAkD9wAJAwP0AAkD9wAJABIDAwMDAwMDA/QADAMDAAYDAwAAAAAACAAADwAPACoAACwATAAARETMVITUzESMRIRERETMVMzUzEcACQMDA/cDAwMADwASAwMD7gAMA/QAEgAJAwMD9wAAAAAQAAAPAA8AJwAADAA0AEQAZAAARNTMVFTUhNSE1ITUzEQE1IRUBETMVMzUzEcACQP3AAkDA/QACQP3AwMDABIDAwMDAwMDA/QADAMDAAYABgMDA/oAAAAADAAACQAPACQAABQARABUAAAERMxUzFQERMxUhNTMRIxEhERE1IRUCQMDA/EDAAkDAwP3AAkAC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AAAAAAADAAADAAPAB4AABwALAA8AABERMxEhFSERAREzEQE1IRXAAkD9wAJAwP0AAkADAAPA/oDA/oACQAGA/oABgMDAAAAAAAQAAAMAA8AHgAADAAcACwAPAAABETMRATUhFSURMxERNSEVAwDA/QACQP0AwAMAAwABgP6AAYDAwMABgP6AAYDAwAAAAwAAA8ADwAeAAAMABwAPAAATNSEVJREzESERITUhFSMRwAGA/cDAAYD+gAMAwAPAwMDAAkD9wAJAwMD9wAAAAAEAAAPAA8AHgAAHAAABESE1IRUhEQGA/oADwP6AA8ADAMDA/QAAAAADAAADwAPAB4AAAwAHAAsAABM1IRUlETMRIREzEcACQP0AwAJAwAPAwMDAAwD9AAMA/QAAAwAAAwADwAeAAAMABwAVAAABETMRIREzERMRIzUzESEVIxEzFSMRAwDA/EDAwMDAAYDAwMAFQAGA/oACQP3A/cABgMACQMD+gMD+gAAAAAAJAAADAAPAB4AAAwAHAAsADwATABcAGwAfACMAABERMxEhETMRATUzFTM1MxUlNTMVJTUzFTM1MxUlNTMVITUzFcACQMD9AMDAwP6AwP6AwMDA/QDAAkDAAwABgP6AAYD+gAGAwMDAwMDAwMDAwMDAwMDAwMAAAAADAAADAAPAB4AAAwAPABMAABERMxETESM1MxEzETMVIxETETMRwMDAwMDAwMDABUACQP3A/cABgMACQP3AwP6AAkACQP3AAAAFAAADwAPAB4AAAwAHAAsADwATAAATNTMVMzUzFSURMxEhETMRIREzEcDAwMD+gMD9wMACQMADwMDAwMDAAYD+gAMA/QADAP0AAAAAAwAAA8ACQAkAAAMABwALAAATETMRATUzFTM1MxXAwP6AwMDAA8ADwPxABIDAwMDAAAAAAAUAAAPAA8AJAAADAAcACwAPABMAABM1IRUlETMRIREzEQE1MxUzNTMVwAJA/QDAAkDA/QDAwMADwMDAwAMA/QADAP0AA8DAwMDAAAAEAAADwAPAB4AAAwAHAAsADwAAEzUhFSURMxEhETMRATUhFcACQP0AwAJAwP0AAkADwMDAwAJA/cACQP3AAkDAwAAAAAQAAAPAA8AJwAADAAcACwAPAAATNSEVJREzESERMxEBETMRwAJA/QDAAkDA/cDAA8DAwMADAP0AAwD9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AADDrAAAxEAAAMTIAADFYAAAxggAAMacAADHOAAAx9gAAMhwAADIyAAAySAAAMl4AADJ1AAAyjwAAMqoAADLDAAAy2QAAMvIAADMJAAAzMwAAM0YAADNdAAAzdwAAM4MAADOPAAAzqgAAM7sAADPRAAAz5wAAM+4AADP4AAA0AwAANBUAADQhAAA0NQAANFIAADRhAAA0eQAANI0AADSYAAA0pwAANLoAADTLAAA03AAANPMAADUBAAA1DwAANSEAADU0AABAAAAAgAANpQQ/l8PPPUACwYAAAAAANA0HEwAAAAA0DOsHP6AAkAIQAqAAAAACAACAAEAAAAAAYAAAAAAAAABgAAAAYAAAAGAAAADAAAABIAAAASAAAAEgAAABIAAAAGAAAADwAAAA8AAAAPAAAAEgAAAAYAAAASAAAABgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAABgAAAAYAAAAPAAAAEgAAAA8AAAASAAAAFQAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAADAAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAADAAAABIAAAAMAAAAEgAAABIAAAAJAAAAEgAAABIAAAASAAAAEgAAABIAAAAPAAAAEgAAABIAAAAGAAAAEgAAAA8AAAAJAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAAAwAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAAPAAAABgAAAA8AAAAVAAAABgAAAA8AAAASAAAAEgAAABIAAAAGAAAAEgAAAA8AAwAYAAAADAAAAA8AAAAPAAAAGAAAABIAAAAMAAAAEgAAAAwAAAAMAAAACQAAABIAAAASAAAABgAAAAwAAwAMAAAADAAAAA8AAAAbAAAAGwAAABsAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAHgAAABIAAAASAAAAEgAAABIAAAASAAAADAAAAAwAAAAMAAAADAAAABUAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAAPAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAAeAAAAEgAAABIAAAASAAAAEgAAABIAAAAGA/0ACQAAAAkD/QAJA/0AEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABgAAAAVAAAAFQAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABUAAAAPA/0ADwP9AAwAAAAJA/0ADAAAAAkD/QAMAAAACQAAAAwAAAAGAAAAHgAAABgAAAASAAAAFQAAABIAAAAPAAAADwAAABIAAAAJAAAAEgAAAAkAAAASAAAADAAAABIAAAAMAAAAFQAAAAwAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAAYAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAAeAAAAHgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAAAwAAAASAAAAEgAAABIAAAAMAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAAPAAAAEgAAAA8AAAASAAAAEgAAABIAAAASAAAAEgAAABUAAAAVAAAAEgAAABIAAAASAAAADwAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAAB4AAAAeAAAAEgAAABIAAAASAAAAEgAAABIAAAAMAAAAEgAAABIAAAASAAAADAAAAAwAAAAMAAAACQAAAAkAAAAMAAAACQADAAwAAAAJAAAAEgAAAA8AAAAJAAAACQAAAAYAAAAGAAAAEgAAABgAAAAGAAAAGAAAABgAAAASAAAAGAAAABgAAAAYAAAADwP9ABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAADAAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAAAwAAAASAAAAEgAAABIAAAASAAAABgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAADwAAAAYAAAAPAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAADAAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAAVAAAAEgAAABIAAAASAAAADAAAAAwAAAASAAAAHgAAAB4AAAAVAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAAVAAAAEgAAABIAAAAVAAAAFQAAABgAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAAA8AAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAAYAAAAEgAAABUAAAASAAAAEgAAABUAAAASAAAAFQAAAA8AAAASAAAAEgAAABIAAAASAAAAEgAAABUAAAASAAAAEgAAABIAAAAGAAAADAAAABIAAAAbAAAAGwAAABUAAAAPAAAAEgAAABIAAAASAAAAFQAAABUAAAASAAAAEgAAABIAAAASAAAAFQAAABUAAAAVAAAAEgAAABIAAAASAAAAEgAAABIAAAAVAAAAFQAAABUAAAAVAAAAEgAAABIAAAAVAAAADwAAABIAAAASAAAAFQAAABIAAAAVAAAAFQAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABUAAAAVAAAAFQAAABUAAAASAAAAEgAAABIAAAASAAAABgAAABIAAAASAAAAFQAAABUAAAASAAAAEgAAABUAAAAVAAAAFQAAABIAAAAGAAAAEgAAABIAAAAeAAAAHgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAAJAAAACQAAAAkAAAAJAAAADwAAAA8AAAAPAAAADwAAAAwAAAAMAAAACQAAAAwAAAASAAAAGAAAAAwAAAASAAAADAAAABIAAAAJAAAACQAAAAwD+gAMAAAABgAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABgAAAAPAAAAGwAAABgAAAAYAAAAGAAAABUAAAAbAAAAGwAAACQAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAYAAAAGAAAABgAAAAYAAAAGAAAABUAAwAYAAAAGAAAABgAAAAYAAAAGAAAABIAAAAbAAAAGAAAABIAAAASAAAAFQAAABIAAAAVAAAAFQAAAAwAAAAMAAAAEgAAABIAAAAPAAAADwAAABUAAAAVAAAAEgAAABUAAAAPAAAAFQAAABUAAAAPAAAADwAAABIAAAAJAAAACQAAABUAAAAYAAAAAAQAB//8AAgAAAAEAAAAAAAEAAAAOAAAAGAAgAAAAAgABAAEC1AABAAQAAAACAAAAAQAAAAEAAAAAABoBPgABAAAAAAAAABsAAAABAAAAAAABAAsAGwABAAAAAAACAAcAJgABAAAAAAADAA8ALQABAAAAAAAEAA8APAABAAAAAAAFAAsASwABAAAAAAAGABMAVgABAAAAAAAIABYAaQABAAAAAAAJAAwAfwABAAAAAAALABYAiwABAAAAAAAMABYAoQABAAAAAAANACgAtwABAAAAAAATACkA3wADAAEECQAAADYBCAADAAEECQABABYBPgADAAEECQACAA4BVAADAAEECQADAB4BYgADAAEECQAEAB4BgAADAAEECQAFABYBngADAAEECQAGACYBtAADAAEECQAIACwB2gADAAEECQAJABgCBgADAAEECQALACwCHgADAAEECQAMACwCSgADAAEECQANAFACdgADAAEECQATAFICxkNvcHlyaWdodCBBbmRyZXcgVHlsZXIgMjAxNE1pbmVjcmFmdGlhUmVndWxhck1pbmVjcmFmdGlhIDIuME1pbmVjcmFmdGlhIDIuMFZlcnNpb24gMi4wTWluZWNyYWZ0aWEtUmVndWxhcmh0dHA6Ly9hbmRyZXd0eWxlci5uZXRBbmRyZXcgVHlsZXJodHRwOi8vYW5kcmV3dHlsZXIubmV0aHR0cDovL2FuZHJld3R5bGVyLm5ldENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24gU2hhcmUgQWxpa2VGaXZlIGJpZyBxdWFja2luZyB6ZXBoeXJzIGpvbHQgbXkgd2F4IGJlZABDAG8AcAB5AHIAaQBnAGgAdAAgAEEAbgBkAHIAZQB3ACAAVAB5AGwAZQByACAAMgAwADEANABNAGkAbgBlAGMAcgBhAGYAdABpAGEAUgBlAGcAdQBsAGEAcgBNAGkAbgBlAGMAcgBhAGYAdABpAGEAIAAyAC4AMABNAGkAbgBlAGMAcgBhAGYAdABpAGEAIAAyAC4AMABWAGUAcgBzAGkAbwBuACAAMgAuADAATQBpAG4AZQBjAHIAYQBmAHQAaQBhAC0AUgBlAGcAdQBsAGEAcgBoAHQAdABwADoALwAvAGEAbgBkAHIAZQB3AHQAeQBsAGUAcgAuAG4AZQB0AEEAbgBkAHIAZQB3ACAAVAB5AGwAZQByAGgAdAB0AHAAOgAvAC8AYQBuAGQAcgBlAHcAdAB5AGwAZQByAC4AbgBlAHQAaAB0AHQAcAA6AC8ALwBhAG4AZAByAGUAdwB0AHkAbABlAHIALgBuAGUAdABDAHIAZQBhAHQAaQB2AGUAIABDAG8AbQBtAG8AbgBzACAAQQB0AHQAcgBpAGIAdQB0AGkAbwBuACAAUwBoAGEAcgBlACAAQQBsAGkAawBlAEYAaQB2AGUAIABiAGkAZwAgAHEAdQBhAGMAawBpAG4AZwAgAHoAZQBwAGgAeQByAHMAIABqAG8AbAB0ACAAbQB5ACAAdwBhAHgAIABiAGUAZAAAAAAAAwAAAAMAAAAeAAEAAAAAAyYAAwABAAAFMAAAAAQDCAAAAK4AgAAGAC4AfgCsAX8BgwGPAZIBtwHrAe8B/wIbAjcCWQKSAscCywLdA3UDfgOKA4wDoQPOA9cEXwRjBHUEkwSdBKMEqwSzBLsEwgTKBM8E1QTZBOkE8R6FHp4e8yAjICYgMCAzIDYgOiBEIHEgeSCJIKkgrCCuILEgtCC6IQUhEyEXISAhIiEuIV4hmSIG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"
local SmallFontBase64 = "AAEAAAAMAIAAAwBAT1MvMmSz/H0AAAFIAAAAYFZETVhoYG/3AAAGmAAABeBjbWFwel+AIwAADHgAAAUwZ2FzcP//AAEAAGP4AAAACGdseWa90hIhAAARqAAARRRoZWFk/hqSzwAAAMwAAAA2aGhlYQegBbsAAAEEAAAAJGhtdHhmdgAAAAABqAAABPBsb2Nh73HeDAAAVrwAAAJ6bWF4cAFBADMAAAEoAAAAIG5hbWX/R4pVAABZOAAABC1wb3N0fPqooAAAXWgAAAaOAAEAAAABAAArGZw2Xw889QAJA+gAAAAAzSamLgAAAADNJqljAAD/OASwAyAAAAAJAAIAAAAAAAAAAQAAAu7/BgAABRQAAABkBLAAAQAAAAAAAAAAAAAAAAAAATwAAQAAATwAMgAEAAAAAAABAAAAAAAAAAAAAAAAAAAAAAADAfMBkAAFAAACvAKKAAD/nAK8AooAAAD6ADIA+gAAAgAAAAAAAAAAAIAAAi8AAAAKAAAAAAAAAABQWVJTAEAAICEiAu7/BgAAAyAAyAAAAAUAAAAAAPoB9AAAACAAAAH0AAAAAAAAAfQAAAH0AAACWAAAAlgAAAJYAAAAyAAAAS0AAAEtAAABkAAAAZAAAAEsAAABkAAAAMgAAAJYAAAB9AAAAZAAAAH0AAAB9AAAAfQAAAH0AAAB9AAAAfQAAAH0AAAB9AAAAMgAAAEsAAABkAAAAZAAAAGQAAAB9AAAAfQAAAH0AAAB9AAAAfQAAAH0AAAB9AAAAfQAAAH0AAAB9AAAAZAAAAH0AAAB9AAAAfQAAAJYAAAB9AAAAfQAAAH0AAAB9AAAAfQAAAH0AAABkAAAAfQAAAGQAAACWAAAAfQAAAGQAAAB9AAAASwAAAJYAAABLAAAAlgAAAH0AAABLAAAAfQAAAH0AAAB9AAAAfQAAAH0AAAB9AAAAfQAAAH0AAABkAAAAfQAAAH0AAAB9AAAAlgAAAH0AAAB9AAAAfQAAAH0AAAB9AAAAfQAAAGQAAAB9AAAAZAAAAJYAAAB9AAAAZAAAAH0AAABkAAAAMgAAAGQAAAB9AAAAlgAAAH0AAABLAAAAfQAAAJYAAACWAAAAZAAAAGQAAACWAAAAyAAAAJYAAABkAAAAlgAAAH0AAACWAAAAZAAAAJYAAABLAAAASwAAAJYAAACWAAAASwAAAGQAAAB9AAAA4QAAAJYAAABkAAAAlgAAAH0AAACWAAAAZAAAAGQAAABkAAAAfQAAAH0AAAB9AAAAMgAAAH0AAAB9AAAAyAAAAH0AAACvAAAAfQAAAEsAAADIAAAAZAAAAGQAAABkAAAAZAAAAGQAAAB9AAAAlgAAAJYAAAAyAAAAfQAAAK8AAAB9AAAArwAAAH0AAAB9AAAAfQAAAGQAAAB9AAAAfQAAAH0AAAB9AAAAlgAAAH0AAACWAAAAfQAAAH0AAAB9AAAAfQAAAH0AAACWAAAAfQAAAH0AAAB9AAAAfQAAAH0AAABkAAAAfQAAAJYAAAB9AAAAlgAAAH0AAACWAAAArwAAAJYAAACvAAAAfQAAAH0AAACWAAAAfQAAAH0AAAB9AAAAfQAAAH0AAACWAAAAfQAAAJYAAAB9AAAAfQAAAH0AAAB9AAAAfQAAAJYAAAB9AAAAfQAAAH0AAAB9AAAAfQAAAGQAAAB9AAAAlgAAAH0AAACWAAAAfQAAAJYAAACvAAAAlgAAAK8AAAB9AAAAfQAAAJYAAAB9AAAAfQAAAH0AAAAyAAAAlgAAAH0AAABkAAAAZAAAAH0AAAB9AAAAfQAAAEsAAABkAAAAZAAAAH0AAAFFAAABRQAAAUUAAAB9AAAAfQAAAH0AAAB9AAAAfQAAAH0AAAB9AAAAlgAAAH0AAAB9AAAAfQAAAH0AAAB9AAAAZAAAAGQAAABkAAAAZAAAAJYAAAB9AAAAfQAAAH0AAAB9AAAAfQAAAH0AAABkAAAAlgAAAH0AAAB9AAAAfQAAAH0AAABkAAAAfQAAAH0AAAB9AAAAfQAAAH0AAAB9AAAAfQAAAH0AAACWAAAAfQAAAH0AAAB9AAAAfQAAAH0AAABkAAAAZAAAAGQAAABkAAAAlgAAAH0AAAB9AAAAfQAAAH0AAAB9AAAAfQAAAGQAAACWAAAAfQAAAH0AAAB9AAAAfQAAAGQAAAB9AAAAZAAAAJYAAACWAAAAfQAAAH0AAABkAAAAfQAAAH0AAAB9AAAAZAAAAH0AAACWAAAAMgAAAGQAAAAAAABAAEBAQEBAAwA+Aj/AAgAB//+AAkACP/+AAoACP/+AAsACf/9AAwACv/9AA0AC//9AA4ADP/9AA8ADP/9ABAADf/8ABEADv/8ABIAD//8ABMAEP/8ABQAEP/8ABUAEf/7ABYAEv/7ABcAE//7ABgAFP/7ABkAFP/7ABoAFf/6ABsAFv/6ABwAF//6AB0AGP/6AB4AGP/6AB8AGf/5ACAAGv/5ACEAG//5ACIAHP/5ACMAHP/5ACQAHf/4ACUAHv/4ACYAH//4ACcAIP/4ACgAIP/4ACkAIf/3ACoAIv/3ACsAI//3ACwAJP/3AC0AJP/3AC4AJf/2AC8AJv/2ADAAJ//2ADEAKP/2ADIAKP/2ADMAKf/1ADQAKv/1ADUAK//1ADYALP/1ADcALP/1ADgALf/0ADkALv/0ADoAL//0ADsAMP/0ADwAMP/0AD0AMf/zAD4AMv/zAD8AM//zAEAANP/zAEEANP/zAEIANf/yAEMANv/yAEQAN//yAEUAOP/yAEYAOP/yAEcAOf/xAEgAOv/xAEkAO//xAEoAPP/xAEsAPP/xAEwAPf/wAE0APv/wAE4AP//wAE8AQP/wAFAAQP/wAFEAQf/vAFIAQv/vAFMAQ//vAFQARP/vAFUARP/vAFYARf/uAFcARv/uAFgAR//uAFkASP/uAFoASP/uAFsASf/tAFwASv/tAF0AS//tAF4ATP/tAF8ATP/tAGAATf/sAGEATv/sAGIAT//sAGMAUP/sAGQAUP/sAGUAUf/rAGYAUv/rAGcAU//rAGgAVP/rAGkAVP/rAGoAVf/qAGsAVv/qAGwAV//qAG0AWP/qAG4AWP/qAG8AWf/pAHAAWv/pAHEAW//pAHIAXP/pAHMAXP/pAHQAXf/oAHUAXv/oAHYAX//oAHcAYP/oAHgAYP/oAHkAYf/nAHoAYv/nAHsAY//nAHwAZP/nAH0AZP/nAH4AZf/mAH8AZv/mAIAAZ//mAIEAaP/mAIIAaP/mAIMAaf/lAIQAav/lAIUAa//lAIYAbP/lAIcAbP/lAIgAbf/kAIkAbv/kAIoAb//kAIsAcP/kAIwAcP/kAI0Acf/jAI4Acv/jAI8Ac//jAJAAdP/jAJEAdP/jAJIAdf/iAJMAdv/iAJQAd//iAJUAeP/iAJYAeP/iAJcAef/hAJgAev/hAJkAe//hAJoAfP/hAJsAfP/hAJwAff/gAJ0Afv/gAJ4Af//gAJ8AgP/gAKAAgP/gAKEAgf/fAKIAgv/fAKMAg//fAKQAhP/fAKUAhP/fAKYAhf/eAKcAhv/eAKgAh//eAKkAiP/eAKoAiP/eAKsAif/dAKwAiv/dAK0Ai//d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ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYAowCEAIUAlgCOAJ0A8gDzAI0A3gDxAJ4A9QD0APYAogCtAMkAxwCuAGIAYwCQAGQAywBlAMgAygDPAMwAzQDOAOkAZgDTANAA0QCvAGcA8ACRANYA1ADVAGgA6wDtAIkAagBpAGsAbQBsAG4AoABvAHEAcAByAHMAdQB0AHYAdwDqAHgAegB5AHsAfQB8ALgAoQB/AH4AgACBAOwA7gC6ALAAsQDkAOUAuwDmAOcApgDYANkABgAEAAUFLm51bGwJYWZpaTEwMDUxCWFmaWkxMDA1MglhZmlpMTAxMDAERXVybwlhZmlpMTAwNTgJYWZpaTEwMDU5CWFmaWkxMDA2MQlhZmlpMTAwNjAJYWZpaTEwMTQ1CWFmaWkxMDA5OQlhZmlpMTAxMDYJYWZpaTEwMTA3CWFmaWkxMDEwOQlhZmlpMTAxMDgJYWZpaTEwMTkzCWFmaWkxMDA2MglhZmlpMTAxMTAJYWZpaTEwMDU3CWFmaWkxMDA1MAlhZmlpMTAwMjMJYWZpaTEwMDUzB3VuaTAwQUQJYWZpaTEwMDU2CWFmaWkxMDA1NQlhZmlpMTAxMDMJYWZpaTEwMDk4DnBlcmlvZGNlbnRlcmVkCWFmaWkxMDA3MQlhZmlpNjEzNTIJYWZpaTEwMTAxCWFmaWkxMDEwNQlhZmlpMTAwNTQJYWZpaTEwMTAyCWFmaWkxMDEwNAlhZmlpMTAwMTcJYWZpaTEwMDE4CWFmaWkxMDAxOQlhZmlpMTAwMjAJYWZpaTEwMDIxCWFmaWkxMDAyMglhZmlpMTAwMjQJYWZpaTEwMDI1CWFmaWkxMDAyNglhZmlpMTAwMjcJYWZpaTEwMDI4CWFmaWkxMDAyOQlhZmlpMTAwMzAJYWZpaTEwMDMxCWFmaWkxMDAzMglhZmlpMTAwMzMJYWZpaTEwMDM0CWFmaWkxMDAzNQlhZmlpMTAwMzYJYWZpaTEwMDM3CWFmaWkxMDAzOAlhZmlpMTAwMzkJYWZpaTEwMDQwCWFmaWkxMDA0MQlhZmlpMTAwNDIJYWZpaTEwMDQzCWFmaWkxMDA0NAlhZmlpMTAwNDUJYWZpaTEwMDQ2CWFmaWkxMDA0NwlhZmlpMTAwNDgJYWZpaTEwMDQ5CWFmaWkxMDA2NQlhZmlpMTAwNjYJYWZpaTEwMDY3CWFmaWkxMDA2OAlhZmlpMTAwNjkJYWZpaTEwMDcwCWFmaWkxMDA3MglhZmlpMTAwNzMJYWZpaTEwMDc0CWFmaWkxMDA3NQlhZmlpMTAwNzYJYWZpaTEwMDc3CWFmaWkxMDA3OAlhZmlpMTAwNzkJYWZpaTEwMDgwCWFmaWkxMDA4MQlhZmlpMTAwODIJYWZpaTEwMDgzCWFmaWkxMDA4NAlhZmlpMTAwODUJYWZpaTEwMDg2CWFmaWkxMDA4NwlhZmlpMTAwODgJYWZpaTEwMDg5CWFmaWkxMDA5MAlhZmlpMTAwOTEJYWZpaTEwMDkyCWFmaWkxMDA5MwlhZmlpMTAwOTQJYWZpaTEwMDk1CWFmaWkxMDA5NglhZmlpMTAwOTcNYWZpaTEwMDQ1LjAwMQ1hZmlpMTAwNDcuMDAxAAAAAAAB//8AAA==";
local SmallFont = RegisterFont(
"SmallestPixel7",
400,
"normal",
{Id = "smallest-pixel7.ttf", Font = crypt.base64.decode(SmallFontBase64)}
);
local Minecraft = RegisterFont(
"Minecraft",
400,
"normal",
{Id = "Minecraft.ttf", Font = crypt.base64.decode(MinecraftBase64)}
);
-- custom Video
writefile(ImagesFolder .. '/DerekLippeVideo.mp4', crypt.base64.decode(CustomImageOverwrite.DerekLippeVideo));
Fonts.SmallestPixel = SmallFont;
Fonts.Pixel = Minecraft;
--
--// Images
local Images = {
"Military PKM", "ArmorImage", "HotKeysImage", "ShadowImage", "OutlineShadowImage", "DropdownImage", "ColorwheelImage", "TransparencyImage", "LogoImage", "ModeratorImage",
"Salvaged Skorpion", "Salvaged AK47", "Salvaged SMG", "Salvaged M14", "Salvaged Nailgun", "Salvaged AK74u", "Crossbow", "Wooden Bow", "Salvaged Python",
"Salvaged Sniper", "Military M4A1", "Bruno's M4A1", "Military USP", "Salvaged Pump Action", "Military Barrett", "Salvaged Break Action",
"Salvaged Pipe Rifle", "Salvaged Double Barrel", "Salvaged Shotgun", "Pumpkin Launcher", "Salvaged RPG", "Iron Shard Pickaxe", "Iron Shard Hatchet",
"Stone Hatchet", "Stone Pickaxe", "Steel Axe", "Steel Pickaxe", "Wooden Spear", "Stone Spear", "Small Medkit", "Military Grenade",
"Military Grenade Launcher", "PluginsImage", "SettingsImage", "MiscImage", "VisualsImage", "ESPImage", "CombatImage", "SkinsImage",
"Mining Drill", "Chainsaw", "Salvaged P250", "HitmarkerImage"
};
for Index, Name in Images do
if isfile(ImagesFolder.."/"..Name..".png") then
continue
end;
RequestImage(Name)
task.wait(0.1);
end;
--
end)()
--
Log("Loaded images and fonts")
local GetService = LPH_NO_VIRTUALIZE(function(Service)
Service = game.GetService(game, Service)
return cloneref(Service)
end);
local GetImage; do
GetImage = LPH_NO_VIRTUALIZE(function(Name, Attempt)
Attempt = Attempt or 1
local FilePath = ImagesFolder.."/"..Name..".png"
if isfile(FilePath) then
return getcustomasset(FilePath)
elseif Attempt > 5 then
return ""
else
RequestImage(Name)
return GetImage(Name, Attempt + 1)
end
end);
end;
local HttpService = GetService("HttpService")
local UserInputService = GetService("UserInputService");
local Workspace = GetService("Workspace");
local RunService = GetService("RunService");
local TweenService = GetService("TweenService");
local TextService = GetService("TextService");
local Lighting = GetService("Lighting");
local CoreGui = GetService("CoreGui");
local ReplicatedStorage = GetService("ReplicatedStorage");
local Players = GetService("Players");
local GuiService = GetService("GuiService");
local TweenService = GetService("TweenService");
local Camera = Workspace.CurrentCamera;
local Client = Players.LocalPlayer;
local MouseConstant = 30;
local Mouse = Client:GetMouse()
Log("Initializing tables")
local TrialModList = {
[4619800148] = "Trial Moderator", --//gobliniukss
[113179883] = "Trial Moderator", --// DopeIlI
[1771300283] = "Trial Moderator"; --// severalracks
[1077540175] = "Trial Moderator"; --// i3riefcase
[3320377356] = "Trial Moderator"; --// Kriffith
[3508020028] = "Trial Moderator"; ---.. SOLDIER
[3122439095] = "Trial Moderator"; --// CHANCE LMFAO
[3034556584] = "Trial Moderator"; -- Adam
[886544546] = "Trial Moderator";
[1616925260] = "Trial Moderator";
[165053216] = "Trial Moderator";
[1992294235] = "Trial Moderator";
[971641336] = "Trial Moderator";
};
Log("Initialized trial mod list")
local Library = {
NotificationList = {},
IsOpen = false;
CategoryPause = 0.2,
CategoryTransitionSpeed = 0.25,
HighlightSpeed = 0.25,
PageTransitionSpeed = 0.2,
Windows = {},
Flags = {},
Font = Font.new("rbxasset://fonts/families/Roboto.json", Enum.FontWeight.Medium),
BoldFont = Font.new("rbxasset://fonts/families/Roboto.json", Enum.FontWeight.Bold),
ConfigPath = Name .. "/Config",
CachePath = Name .. "/Cache",
Connections = {},
Keybinds = {
MouseButton1 = "MB1",
MouseButton2 = "MB2",
MouseButton3 = "MB3",
ButtonA = "A",
ButtonB = "B",
ButtonX = "X",
ButtonY = "Y",
ButtonStart = "STRT",
ButtonSelect = "SELT",
ButtonL1 = "L1",
ButtonR1 = "R1",
ButtonL2 = "L2",
ButtonR2 = "R2",
ButtonL3 = "L3",
ButtonR3 = "R3",
DPadUp = "DUP",
DPadDown = "DDN",
DPadLeft = "DLT",
DPadRight = "DRT",
W = "W",
A = "A",
S = "S",
D = "D",
Space = "SPC",
LeftShift = "LSFT",
RightShift = "RSFT",
LeftControl = "LCTL",
RightControl = "RCTL",
LeftAlt = "LALT",
RightAlt = "RALT",
Enter = "ENT",
Escape = "ESC",
Backspace = "BS",
Tab = "TAB",
CapsLock = "CAPS",
Insert = "INS",
Delete = "DEL",
Home = "HOME",
EndKey = "END",
PageUp = "PGUP",
PageDown = "PGDN",
Up = "UP",
Down = "DN",
Left = "LT",
Right = "RT",
Zero = "0",
One = "1",
Two = "2",
Three = "3",
Four = "4",
Five = "5",
Six = "6",
Seven = "7",
Eight = "8",
Nine = "9",
F1 = "F1",
F2 = "F2",
F3 = "F3",
F4 = "F4",
F5 = "F5",
F6 = "F6",
F7 = "F7",
F8 = "F8",
F9 = "F9",
F10 = "F10",
F11 = "F11",
F12 = "F12",
Minus = "-",
Equals = "=",
LeftBracket = "[",
RightBracket = "]",
Semicolon = ";",
Quote = "'",
Comma = ",",
Period = ".",
Slash = "/",
Backslash = "\\",
Grave = "`",
},
HotKeysImage = GetImage("HotkeysImage"),
ShadowImage = GetImage("ShadowImage"), --"rbxassetid://6014261993",
OutlineShadowImage = GetImage("OutlineShadowImage"), --"rbxassetid://93984335181980",
DropdownImage = GetImage("DropdownImage"), --"rbxassetid://106970154099045",
ColorwheelImage = GetImage("ColorwheelImage"),--"rbxassetid://6042338876",
TransparencyImage = GetImage("TransparencyImage"),--"rbxassetid://96978989117558",
LogoImage = GetImage("LogoImage"), --"http://www.roblox.com/asset/?id=71404918936585";
ModeratorImage = GetImage("ModeratorImage"),
ArmorImage = GetImage("ArmorImage"),
};
Log("Initialized Library tables")
local Theme = {
Accent = Color3.fromRGB(63, 201, 176), -- 0, 189, 255
DarkAccent = Color3.fromRGB(63, 201, 176), -- 0, 157, 209
AccentedHighlight = Color3.fromRGB(63, 201, 176), -- 0, 89, 118
};
Log("Initialized theme")
local Threads = {
Render = {},
Entities = {},
Character = {},
Input = {},
};
Log("Initialized thread table")
local EntityClass = {
Main = {
Cache = {},
Functions = {},
},
Misc = {
Cache = {},
Functions = {},
},
Global = {},
Flags = {},
AnimationSpeed = 0.15,
WeaponImages = {
["Salvaged Skorpion"] = GetImage("Salvaged Skorpion");
["Salvaged P250"] = GetImage("Salvaged P250");
["Salvaged Python"] = GetImage("Salvaged Python");
["Salvaged AK47"] = GetImage("Salvaged AK47");
["Salvaged AK74u"] = GetImage("Salvaged AK74u");
["Wooden Bow"] = GetImage("Wooden Bow");
["Nail Gun"] = GetImage("Salvaged Nailgun");
["Salvaged SMG"] = GetImage("Salvaged SMG");
["Crossbow"] = GetImage("Crossbow");
["Salvaged M14"] = GetImage("Salvaged M14");
["Salvaged Sniper"] = GetImage("Salvaged Sniper");
["Military M4A1"] = GetImage("Military M4A1");
["Bruno's M4A1"] = GetImage("Bruno's M4A1");
["Military USP"] = GetImage("Military USP");
["Salvaged Pump Action"] = GetImage("Salvaged Pump Action");
["Military Barrett"] = GetImage("Military Barrett");
["Military PKM"] = GetImage("Military PKM");
["Salvaged Break Action"] = GetImage("Salvaged Break Action");
["Salvaged Pipe Rifle"] = GetImage("Salvaged Pipe Rifle");
["Salvaged Double Barrel"] = GetImage("Salvaged Double Barrel");
["Salvaged Shotgun"] = GetImage("Salvaged Shotgun");
["Pumpkin Launcher"] = GetImage("Pumpkin Launcher");
["Salvaged RPG"] = GetImage("Salvaged RPG");
["Steel Axe"] = GetImage("Steel Axe");
["Steel Pickaxe"] = GetImage("Steel Pickaxe");
["Wooden Spear"] = GetImage("Wooden Spear");
["Stone Spear"] = GetImage("Stone Spear");
["Small Medkit"] = GetImage("Small Medkit");
["Military Grenade"] = GetImage("Military Grenade");
["Military Grenade Launcher"] = GetImage("Military Grenade Launcher");
["Chainsaw"] = GetImage("Chainsaw"),
["Mining Drill"] = GetImage("Mining Drill")
};
ItemList = {
"Bandage",
"Blueprint",
"Wooden External Wall",
"Stone External Wall",
"Barricade",
"Care Package Signal",
"Salvaged Skorpion",
"Salvaged P250",
"Salvaged AK47",
"Salvaged Python",
"Salvaged AK74u",
"Wooden Bow",
"Nail Gun",
"Salvaged SMG",
"Crossbow",
"Salvaged M14",
"Salvaged Sniper",
"Military M4A1",
"Bruno's M4A1",
"Military USP",
"Salvaged Pump Action",
"Military Barrett",
"Military PKM",
"Salvaged Break Action",
"Salvaged Pipe Rifle",
"Salvaged Double Barrel",
"Salvaged Shotgun",
"Pumpkin Launcher",
"Salvaged RPG",
"Iron Shard Pickaxe",
"Iron Shard Hatchet",
"Stone Hatchet",
"Stone Pickaxe",
"Steel Axe",
"Steel Pickaxe",
"Wooden Spear",
"Stone Spear",
"Small Medkit",
"Military Grenade",
"Military Grenade Launcher",
"Chainsaw",
"Mining Drill"
};
OffscreenImages = {
["GlowingArrow"] = "";
["GlowingArc"] = "";
["Arc"] = "";
["Arrow"] = "";
["OpaqueArrow"] = "";
};
IgnoreNames = {
["HumanoidRootPart"] = true
},
Font = Fonts.Pixel,--Font.new("rbxasset://fonts/families/GothamSSm.json", Enum.FontWeight.Bold);
FontSize = 10.00;
};
Log("Initialized EntityClass object")
local Math = {};
local Visuals = {};
local Globals = {};
Log("Initialized tables")
--#region Globals
Globals.LastArmorCheck = tick()
Globals.ArmorIds = {};
Globals.ArmorNames = {};
Globals.FlaggedStaff = {};
Globals.QuickStackFunctions = {};
Globals.ApplyTextStroke = LPH_NO_VIRTUALIZE(function(Object)
local NewStroke = Globals:Instance("UIStroke", {
Parent = Object,
Thickness = 1,
Color = Color3.fromRGB(),
})
return NewStroke
end);
Globals.DeepCopy = LPH_NO_VIRTUALIZE(function(Table)
local Copy = {}
for k, v in pairs(Table) do
if type(v) == 'table' then
Copy[k] = Globals.DeepCopy(v)
else
Copy[k] = v
end
end
return Copy
end);
function Globals:TweenTransparencyIns(container, targetTransparency, duration)
duration = duration or 0.2
for _, obj in ipairs(container:GetDescendants()) do
if obj:IsA("GuiObject") then
local props = {}
if obj:IsA("TextLabel") or obj:IsA("TextButton") then
props.TextTransparency = targetTransparency
end
if obj:IsA("ImageLabel") or obj:IsA("ImageButton") then
props.ImageTransparency = targetTransparency
end
if obj.BackgroundTransparency ~= nil then
props.BackgroundTransparency = targetTransparency
end
Globals:Tween(obj, TweenInfo.new(duration, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), props)
end
if obj:IsA("UIStroke") then
Globals:Tween(obj, TweenInfo.new(duration, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
Transparency = targetTransparency,
})
end
end
if container:IsA("GuiObject") then
Globals:Tween(container, TweenInfo.new(duration, Enum.EasingStyle.Quad), {
BackgroundTransparency = targetTransparency,
})
end
end
function Globals:Tween(...)
local NewTween = TweenService:Create(...)
NewTween:Play()
return NewTween
end
function Globals:Instance(Class, Properties)
local Element = Instance.new(Class)
for Key, Value in Properties do
Element[Key] = Value
end
return Element
end
function Globals:Tween(...)
local Tween = TweenService:Create(...)
Tween:Play()
return Tween
end;
if ReplicatedStorage:FindFirstChild("Modules") and ReplicatedStorage.Modules:FindFirstChild("Items") then
local Items = Globals.DeepCopy(require(ReplicatedStorage.Modules.Items));
for Index, ItemData in Items do
if ItemData.Type == "Armor" then
Globals.ArmorIds[Index] = {
Name = ItemData.Name,
};
end;
end;
Globals.ItemInfoTable = Items
end;
Log("Loaded globals library")
--#endregion Globals
--#region Library
Library.Theme = Theme
Library.__index = Library
Library.Notifications = Globals:Instance("ScreenGui", {
Parent = CoreGui,
DisplayOrder = 1,
IgnoreGuiInset = true,
})
Library.HeadsUp = Globals:Instance("ScreenGui", {
Parent = CoreGui,
DisplayOrder = 1,
IgnoreGuiInset = true,
Enabled = true
})
LPH_NO_VIRTUALIZE(function() --// Functions that arent needing to be protected
function Library:Connection(Name, Signal, Function)
local Connection = Signal:Connect(Function)
self.Connections[Name] = {
Signal = Signal,
Function = Function,
Connection = Connection,
}
return self.Connections[Name]
end
function Library:Disconnect(Name)
local Conn = self.Connections[Name]
if Conn then
Conn.Connection:Disconnect()
self.Connections[Name] = nil
end
end
function Library:DisconnectAll()
for Name, Conn in pairs(self.Connections) do
Conn.Connection:Disconnect()
end
table.clear(self.Connections)
end
function Library:DoCallback(Callback, Data)
local Success, Error = pcall(Callback, Data)
if not Success and Error then
return "Failed", Error
end
return Success
end
function Library:FormatValue(incr, val)
if incr < 1 then
return string.format("%.2f", val)
else
return tostring(math.floor(val + 0.5))
end
end
function Library:GetInputName(input)
if input and input.UserInputType then
if input.UserInputType == Enum.UserInputType.Keyboard then
return input.KeyCode.Name
elseif input.UserInputType.Name:match("Mouse") then
return input.UserInputType.Name
else
return "Unknown"
end
end
end
function Library:FormatKeyName(name)
if Library.Keybinds[name] then
return Library.Keybinds[name]
elseif #name > 4 then
return name:sub(1, 4)
end
return name
end
function Library:GetConfig()
local Flags = self.Flags
local Save = {}
for Flag, Data in Flags do
local Class = Data.Class
local Value = Data.Value
if Class == 'Toggle' then
Save[Flag] = Value
end
if Class == 'Colorpicker' then
Save[Flag] = {
[1] = { Value[1].R, Value[1].G, Value[1].B },
[2] = Value[2],
}
end
if Class == 'Slider' then
Save[Flag] = Value
end
if Class == 'TextBox' then
Save[Flag] = Value
end
if Class == 'Dropdown' then
Save[Flag] = Value
end
if Class == 'Keybind' then
if Data.Key then
local Key = {
Type = Data.Key.Type,
Value = Data.Key.Value.Name,
};
Save[Flag] = Key
end;
end;
end;
return HttpService:JSONEncode(Save);
end;
function Library:SaveConfig(Name)
local CurrentConfig = Library:GetConfig();
writefile(ConfigsFolder.."/"..Name..".json", CurrentConfig)
end
function Library:LoadConfig(Name)
local FilePath = ConfigsFolder.."/"..Name..".json";
if not isfile(FilePath) then
Library:Notify("Configuration failed to load\nFile, "..FilePath.. " does not exist!", 4, Color3.fromRGB(255, 0, 0));
return
end;
local Config = readfile(FilePath);
local DecodedConfig = HttpService:JSONDecode(Config);
for Flag, FlagData in DecodedConfig do
local RealFlag = Library.Flags[Flag];
if not RealFlag then
continue
end;
if RealFlag.Class == "Colorpicker" then
local Color = Color3.new(FlagData[1][1], FlagData[1][2], FlagData[1][3])
task.spawn(function()
RealFlag:Set({
Color,
FlagData[2];
})
end);
continue;
end;
if RealFlag.Class == "Keybind" then
task.spawn(function()
local KeyData = FlagData
local input = {}
if KeyData.Type == "MouseButton" then
input.UserInputType = Enum.UserInputType[KeyData.Value]
elseif KeyData.Type == "KeyCode" then
input.UserInputType = Enum.UserInputType.Keyboard
input.KeyCode = Enum.KeyCode[KeyData.Value]
else
input.UserInputType = Enum.UserInputType[KeyData.Value]
end
RealFlag:SetKey(input)
end)
continue
end
task.spawn(function()
RealFlag:Set(FlagData);
end);
end;
end;
end)()
LPH_NO_VIRTUALIZE(function() --// Not that important
function Library:CreateHotkeysPanel()
local Hotkeys = {
Keys = 0,
}
local Components = {}
Hotkeys.__index = Hotkeys
Components["Hotkeys"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 20, 0.5, 0),
Size = UDim2.new(0, 215, 0, 30),
Name = "Hotkeys",
Parent = Library.HeadsUp,
Visible = false,
})
Components["HotkeysCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 4),
Name = "HotkeysCorner",
Parent = Components["Hotkeys"],
})
Components["HotkeysStroke"] = Globals:Instance("UIStroke", {
Color = Color3.fromRGB(24, 24, 24),
Name = "HotkeysStroke",
Parent = Components["Hotkeys"],
})
Components["HotkeysTitleArea"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(14, 14, 14),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 25),
Name = "HotkeysTitleArea",
Parent = Components["Hotkeys"],
})
Components["HotkeysTitleCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 4),
Name = "HotkeysTitleCorner",
Parent = Components["HotkeysTitleArea"],
})
Components["HotkeysTitlestroke"] = Globals:Instance("UIStroke", {
Color = Color3.fromRGB(24, 24, 24),
Name = "HotkeysTitlestroke",
Parent = Components["HotkeysTitleArea"],
})
Components["HotkeysTitle"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = "Hotkeys",
TextColor3 = Color3.fromRGB(255, 255, 255),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 35, 0, 0),
Size = UDim2.new(1, -35, 1, 0),
Name = "HotkeysTitle",
Parent = Components["HotkeysTitleArea"],
})
Components["HotkeysImage"] = Globals:Instance("ImageLabel", {
Image = Library.HotKeysImage,
AnchorPoint = Vector2.new(0, 0.5),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 5, 0.5, 0),
Size = UDim2.new(0.0116279069, 20, 1, -5),
Name = "HotkeysImage",
Parent = Components["HotkeysTitleArea"],
})
Components["HotkeysActive"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 10, 0, 30),
Size = UDim2.new(1, -10, 0, 33),
Name = "HotkeysActive",
Parent = Components["Hotkeys"],
})
Components["UIListLayout"] = Globals:Instance("UIListLayout", {
Padding = UDim.new(0, 5),
SortOrder = Enum.SortOrder.LayoutOrder,
Parent = Components["HotkeysActive"],
})
Components["HotkeysShadowHolder"] = Globals:Instance("Frame", {
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 1, 0),
ZIndex = 0,
Name = "HotkeysShadowHolder",
Parent = Components["Hotkeys"],
})
Components["HotkeysShadow"] = Globals:Instance("ImageLabel", {
Image = Library.ShadowImage,
ImageColor3 = Color3.fromRGB(0, 0, 0),
ScaleType = Enum.ScaleType.Slice,
SliceCenter = Rect.new(49, 49, 450, 450),
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundTransparency = 1,
ImageTransparency = 0.8,
BorderSizePixel = 0,
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = UDim2.new(1, 47, 1, 47),
ZIndex = 0,
Name = "HotkeysShadow",
Parent = Components["HotkeysShadowHolder"],
})
Hotkeys.Components = Components
function Hotkeys:Add(Name, Key)
self.Keys += 1
Globals:Tween(self.Components.HotkeysShadow, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
ImageTransparency = self.Keys > 0 and 0 or 0.8,
})
local Hotkey = {}
Hotkey["Container"] = Globals:Instance("Frame", {
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 0, 14),
Name = Name,
Parent = Components["HotkeysActive"],
})
Hotkey["NameLabel"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = Name,
TextColor3 = Color3.fromRGB(150, 150, 150),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundTransparency = 1,
Size = UDim2.new(0.5, 0, 1, 0),
Position = UDim2.new(0, 0, 0, 0),
Name = "NameLabel",
Parent = Hotkey.Container,
})
Hotkey["KeyLabel"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = "["..tostring(Key).."]",
TextColor3 = Color3.fromRGB(150, 150, 150),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Right,
BackgroundTransparency = 1,
Size = UDim2.new(0.5, -5, 1, 0),
Position = UDim2.new(0.5, -3, 0, 0),
Name = "KeyLabel",
Parent = Hotkey.Container,
})
Globals:Tween(self.Components.Hotkeys, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
Size = UDim2.new(0, 215, 0, 45) + UDim2.new(0, 0, 0, self.Keys * 17),
})
--Size = UDim2.new(0, 215, 0, 45) + UDim2.new(0, 0, 0, self.Keys * 17),
end
function Hotkeys:UpdateStatus(Name, On, Key, Destroy)
local Container = self.Components["HotkeysActive"]:FindFirstChild(Name)
if Container then
if Key and Key ~= "" then
Container.KeyLabel.Text = "["..tostring(Key).."]"
end
local targetColor = On and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(150, 150, 150)
Globals:Tween(Container.NameLabel, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
TextColor3 = targetColor,
})
Globals:Tween(Container.KeyLabel, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
TextColor3 = targetColor,
})
if Destroy then
self.Keys -= 1
Container:Destroy()
Globals:Tween(
self.Components.Hotkeys,
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Size = UDim2.new(0, 215, 0, 45) + UDim2.new(0, 0, 0, self.Keys * 17),
}
)
end
else
if Key ~= "" then
self:Add(Name, Key)
end
end
Globals:Tween(self.Components.HotkeysShadow, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
ImageTransparency = self.Keys > 0 and 0 or 0.8,
})
end
return Hotkeys
end;
function Library:CreateModeratorsPanel()
local Moderators = {
Count = 0,
}
local Components = {}
Moderators.__index = Moderators
Components["Moderators"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 20, 0.5, 200),
Size = UDim2.new(0, 215, 0, 30),
Name = "Moderators",
Parent = Library.HeadsUp,
Visible = true,
})
Components["ModeratorsCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 4),
Name = "ModeratorsCorner",
Parent = Components["Moderators"],
})
Components["ModeratorsStroke"] = Globals:Instance("UIStroke", {
Color = Color3.fromRGB(24, 24, 24),
Name = "ModeratorsStroke",
Parent = Components["Moderators"],
})
Components["ModeratorsTitleArea"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(14, 14, 14),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 25),
Name = "ModeratorsTitleArea",
Parent = Components["Moderators"],
})
Components["ModeratorsTitleCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 4),
Name = "ModeratorsTitleCorner",
Parent = Components["ModeratorsTitleArea"],
})
Components["ModeratorsTitlestroke"] = Globals:Instance("UIStroke", {
Color = Color3.fromRGB(24, 24, 24),
Name = "ModeratorsTitlestroke",
Parent = Components["ModeratorsTitleArea"],
})
Components["ModeratorsTitle"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = "Moderators",
TextColor3 = Color3.fromRGB(255, 255, 255),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 25, 0, 0),
Size = UDim2.new(1, -35, 1, 0),
Name = "ModeratorsTitle",
Parent = Components["ModeratorsTitleArea"],
})
Components["ModeratorsImage"] = Globals:Instance("ImageLabel", {
Image = Library.ModeratorImage,
AnchorPoint = Vector2.new(0, 0.5),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 5, 0.5, 0),
Size = UDim2.new(0, 15, 1, -10),
Name = "ModeratorsImage",
Parent = Components["ModeratorsTitleArea"],
})
Components["ModeratorsList"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 10, 0, 30),
Size = UDim2.new(1, -10, 0, 33),
Name = "ModeratorsList",
Parent = Components["Moderators"],
})
Components["UIListLayout"] = Globals:Instance("UIListLayout", {
Padding = UDim.new(0, 5),
SortOrder = Enum.SortOrder.LayoutOrder,
Parent = Components["ModeratorsList"],
})
Components["ModeratorsShadowHolder"] = Globals:Instance("Frame", {
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 1, 0),
ZIndex = 0,
Name = "ModeratorsShadowHolder",
Parent = Components["Moderators"],
})
Components["ModeratorsShadow"] = Globals:Instance("ImageLabel", {
Image = Library.ShadowImage,
ImageColor3 = Color3.fromRGB(0, 0, 0),
ScaleType = Enum.ScaleType.Slice,
SliceCenter = Rect.new(49, 49, 450, 450),
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundTransparency = 1,
ImageTransparency = 0.8,
BorderSizePixel = 0,
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = UDim2.new(1, 47, 1, 47),
ZIndex = 0,
Name = "ModeratorsShadow",
Parent = Components["ModeratorsShadowHolder"],
})
Moderators.Components = Components
function Moderators:Add(Name, Role)
self.Count += 1
Globals:Tween(self.Components.ModeratorsShadow, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
ImageTransparency = self.Count > 0 and 0 or 0.8,
})
local Moderator = {}
Moderator["Container"] = Globals:Instance("Frame", {
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 0, 14),
Name = Name,
Parent = Components["ModeratorsList"],
})
Moderator["NameLabel"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = Name,
TextColor3 = Color3.fromRGB(255, 255, 255),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundTransparency = 1,
Size = UDim2.new(0.5, 0, 1, 0),
Position = UDim2.new(0, 0, 0, 0),
Name = "NameLabel",
Parent = Moderator.Container,
})
Moderator["RoleLabel"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = Role,
TextColor3 = Color3.fromRGB(255, 255, 255),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Right,
BackgroundTransparency = 1,
Size = UDim2.new(0.5, -5, 1, 0),
Position = UDim2.new(0.5, -3, 0, 0),
Name = "RoleLabel",
Parent = Moderator.Container,
})
Globals:Tween(self.Components.Moderators, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
Size = UDim2.new(0, 215, 0, 30) + UDim2.new(0, 0, 0, self.Count * 19),
})
end
function Moderators:UpdateModerator(Name, Role, Remove)
local Container = self.Components["ModeratorsList"]:FindFirstChild(Name)
if Container then
if Role then
Container.RoleLabel.Text = Role
end
if Remove then
self.Count -= 1
Container:Destroy()
Globals:Tween(
self.Components.Moderators,
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Size = UDim2.new(0, 215, 0, 30) + UDim2.new(0, 0, 0, self.Count * 19),
}
)
end
else
if Name and Role then
self:Add(Name, Role)
end
end
Globals:Tween(self.Components.ModeratorsShadow, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
ImageTransparency = self.Count > 0 and 0 or 0.8,
})
end
function Moderators:ClearAll()
for _, child in ipairs(self.Components["ModeratorsList"]:GetChildren()) do
if child:IsA("TextLabel") then
child:Destroy()
end
end
self.Count = 0
Globals:Tween(self.Components.Moderators, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
Size = UDim2.new(0, 215, 0, 45),
})
Globals:Tween(self.Components.ModeratorsShadow, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
ImageTransparency = 0.8,
})
end
return Moderators
end;
function Library:CreateArmorPanel()
local Armor = {
Count = 0,
}
local Components = {}
Armor.__index = Armor
Components["Armor"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(1, -245, 0.5, 0),
Size = UDim2.new(0, 215, 0, 30),
Name = "Armor",
Parent = Library.HeadsUp,
Visible = true,
ClipsDescendants = true,
})
Components["ArmorCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 4),
Name = "ArmorCorner",
Parent = Components["Armor"],
})
Components["ArmorStroke"] = Globals:Instance("UIStroke", {
Color = Color3.fromRGB(24, 24, 24),
Name = "ArmorStroke",
Parent = Components["Armor"],
})
Components["ArmorTitleArea"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(14, 14, 14),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 25),
Name = "ArmorTitleArea",
Parent = Components["Armor"],
})
Components["ArmorTitleCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 4),
Name = "ArmorTitleCorner",
Parent = Components["ArmorTitleArea"],
})
Components["ArmorTitlestroke"] = Globals:Instance("UIStroke", {
Color = Color3.fromRGB(24, 24, 24),
Name = "ArmorTitlestroke",
Parent = Components["ArmorTitleArea"],
})
Components["ArmorTitle"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = "Armor Viewer",
TextColor3 = Color3.fromRGB(255, 255, 255),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 25, 0, 0),
Size = UDim2.new(1, -35, 1, 0),
Name = "ArmorTitle",
Parent = Components["ArmorTitleArea"],
})
Components["ArmorImage"] = Globals:Instance("ImageLabel", {
Image = Library.ArmorImage,
AnchorPoint = Vector2.new(0, 0.5),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 5, 0.5, 0),
Size = UDim2.new(0, 15, 1, -10),
Name = "ArmorImage",
Parent = Components["ArmorTitleArea"],
})
Components["ArmorList"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 10, 0, 30),
Size = UDim2.new(1, -10, 0, 33),
Name = "ArmorList",
Parent = Components["Armor"],
AutomaticSize = Enum.AutomaticSize.Y,
-- ClipsDescendants = true,
})
Components["UIListLayout"] = Globals:Instance("UIListLayout", {
Padding = UDim.new(0, 5),
SortOrder = Enum.SortOrder.LayoutOrder,
Parent = Components["ArmorList"],
})
Components["ArmorShadowHolder"] = Globals:Instance("Frame", {
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 1, 0),
ZIndex = 0,
Name = "ArmorShadowHolder",
Parent = Components["Armor"],
})
Components["ArmorShadow"] = Globals:Instance("ImageLabel", {
Image = Library.ShadowImage,
ImageColor3 = Color3.fromRGB(0, 0, 0),
ScaleType = Enum.ScaleType.Slice,
SliceCenter = Rect.new(49, 49, 450, 450),
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundTransparency = 1,
ImageTransparency = 0.8,
BorderSizePixel = 0,
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = UDim2.new(1, 47, 1, 47),
ZIndex = 0,
Name = "ArmorShadow",
Parent = Components["ArmorShadowHolder"],
})
Armor.Components = Components
function Armor:Add(ArmorName, ArmorSkin)
if not self.Components.ArmorList:FindFirstChild(ArmorName.."_"..ArmorSkin) then
self.Count += 1
Globals:Tween(self.Components.ArmorShadow, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
ImageTransparency = self.Count > 0 and 0 or 0.8,
})
local ArmorEntry = {}
ArmorEntry["Container"] = Globals:Instance("Frame", {
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 0, 14),
Name = ArmorName.."_"..ArmorSkin,
Parent = Components["ArmorList"],
})
ArmorEntry.Container:SetAttribute("IsContainer", true)
ArmorEntry["PlayerLabel"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = ArmorName,
TextColor3 = Color3.fromRGB(255, 255, 255),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundTransparency = 1,
Size = UDim2.new(0.5, 0, 1, 0),
Position = UDim2.new(0, 0, 0, 0),
Name = "PlayerLabel",
Parent = ArmorEntry.Container,
})
ArmorEntry["SkinLabel"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = ArmorSkin,
TextColor3 = Color3.fromRGB(255, 255, 255),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Right,
BackgroundTransparency = 1,
Size = UDim2.new(0.5, -5, 1, 0),
Position = UDim2.new(0.5, -3, 0, 0),
Name = "SkinLabel",
Parent = ArmorEntry.Container,
})
Globals:Tween(self.Components.Armor, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
Size = UDim2.new(0, 215, 0, 30) + UDim2.new(0, 0, 0, self.Count * 19),
});
end;
end
function Armor:UpdateArmor(ArmorName, ArmorSkin, Remove)
local Container = self.Components["ArmorList"]:FindFirstChild(ArmorName)
if Container then
if ArmorSkin then
Container.SkinLabel.Text = ArmorSkin
end
if Remove then
self.Count -= 1
Container:Destroy()
Globals:Tween(
self.Components.Armor,
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Size = UDim2.new(0, 215, 0, 30) + UDim2.new(0, 0, 0, self.Count * 19),
}
)
end
else
if ArmorName and ArmorSkin then
self:Add(ArmorName, ArmorSkin)
end
end
Globals:Tween(self.Components.ArmorShadow, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
ImageTransparency = self.Count > 0 and 0 or 0.8,
})
end
function Armor:ClearAll()
for _, child in ipairs(self.Components["ArmorList"]:GetChildren()) do
if child:IsA("Frame") and child:GetAttribute("IsContainer") then
child:Destroy()
end
end
self.Count = 0
Globals:Tween(self.Components.Armor, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
Size = UDim2.new(0, 215, 0, 45),
})
Globals:Tween(self.Components.ArmorShadow, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
ImageTransparency = 0.8,
})
end
return Armor
end;
function Library:CreateWatermark(txt)
local Components = {}
Components["Watermark"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(14, 14, 14),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 400, 0, 20),
Size = UDim2.new(0, 35, 0, 24),
Name = "Watermark",
Parent = Library.HeadsUp,
})
Components["WatermarkCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 4),
Name = "WatermarkCorner",
Parent = Components["Watermark"],
})
Components["WatermarkStroke"] = Globals:Instance("UIStroke", {
Color = Color3.fromRGB(24, 24, 24),
Name = "WatermarkStroke",
Parent = Components["Watermark"],
})
Components["WatermarkLogo"] = Globals:Instance("ImageLabel", {
Image = Library.LogoImage,
ImageColor3 = Library.Theme.Accent,
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 13, 0.5, 0),
Size = UDim2.new(0, 25, 0, 25),
Name = "WatermarkLogo",
Parent = Components["Watermark"],
})
Components["WatermarkText"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = txt,
TextColor3 = Color3.fromRGB(255, 255, 255),
TextSize = 14,
AutomaticSize = Enum.AutomaticSize.X,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 25, 0, 0),
Size = UDim2.new(0, 0, 1, 0),
Name = "WatermarkText",
Parent = Components["Watermark"],
})
Components["WatermarkShadowHolder"] = Globals:Instance("Frame", {
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 1, 0),
ZIndex = 0,
Name = "WatermarkShadowHolder",
Parent = Components["Watermark"],
})
Components["WatermarkShadow"] = Globals:Instance("ImageLabel", {
Image = Library.ShadowImage,
ImageColor3 = Color3.fromRGB(0, 0, 0),
ImageTransparency = 0.5899999737739563,
ScaleType = Enum.ScaleType.Slice,
SliceCenter = Rect.new(49, 49, 450, 450),
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0.505405426, 0, 0.501500428, 0),
Size = UDim2.new(0.935135126, 47, 0.5, 47),
ZIndex = 0,
Name = "WatermarkShadow",
Parent = Components["WatermarkShadowHolder"],
})
function Components:SetText(txt)
local label = Instance.new("TextLabel")
label.Text = txt
label.TextSize = 14
label.Font = Enum.Font.SourceSansSemibold
label.Position = UDim2.new(-5, 0, 0, 0)
label.Visible = true
label.Parent = Library.HeadsUp
task.wait(0.3)
Components["WatermarkText"].Text = ""
task.spawn(function()
for i = 1, #txt do
Components["WatermarkText"].Text = string.sub(txt, 1, i)
task.wait(0.03)
end
end)
local TextBounds = label.TextBounds
Globals:Tween(Components.Watermark, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {
Size = UDim2.new(0, 35 + TextBounds.X, 0, Components.Watermark.Size.Y.Offset),
})
end
return Components
end
function Library:CreateLoader(Data)
local Loader = {
Expiry = Data.Expiry,
}
Loader.__index = Loader
local Components = {}
local SelectedGame = ""
local SelectedType = ""
do --// Components
Components["Loader"] = Globals:Instance("ScreenGui", {
IgnoreGuiInset = true,
Name = "Loader",
Parent = CoreGui,
})
Components["LoaderOutline"] = Globals:Instance("TextButton", {
Font = Enum.Font.SourceSans,
Text = "",
TextColor3 = Color3.fromRGB(0, 0, 0),
TextSize = 14,
AutoButtonColor = false,
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = Color3.fromRGB(12, 12, 12),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0.5, 0, 2, 0),
Size = UDim2.new(0, 400, 0, 329),
Name = "LoaderOutline",
Parent = Components["Loader"],
})
Components["LoaderUICorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 3),
Name = "LoaderUICorner",
Parent = Components["LoaderOutline"],
})
Components["LoaderUIStroke"] = Globals:Instance("UIStroke", {
Color = Color3.fromRGB(24, 24, 24),
Name = "LoaderUIStroke",
Parent = Components["LoaderOutline"],
})
Components["DropShadowHolder"] = Globals:Instance("Frame", {
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 1, 0),
Name = "DropShadowHolder",
Parent = Components["LoaderOutline"],
})
Components["DropShadow"] = Globals:Instance("ImageLabel", {
Image = Library.ShadowImage,
ImageColor3 = Color3.fromRGB(0, 0, 0),
ImageTransparency = 0.12,
ScaleType = Enum.ScaleType.Slice,
SliceCenter = Rect.new(49, 49, 450, 450),
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = UDim2.new(1, 47, 1, 47),
ZIndex = 0,
Name = "DropShadow",
Parent = Components["DropShadowHolder"],
})
Components["LoaderTitleArea"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(14, 14, 14),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 30),
Name = "LoaderTitleArea",
Parent = Components["LoaderOutline"],
})
Components["LoaderTitleCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 3),
Name = "LoaderTitleCorner",
Parent = Components["LoaderTitleArea"],
})
Components["LoaderTitleOutline"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 1, 0),
Size = UDim2.new(1, 0, 0, 1),
Name = "LoaderTitleOutline",
Parent = Components["LoaderTitleArea"],
})
Components["IridescentLogo"] = Globals:Instance("ImageLabel", {
Image = Library.LogoImage,
AnchorPoint = Vector2.new(0, 0.5),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0, 3, 0.5, 0),
Size = UDim2.new(0, 25, 0, 25),
Name = "IridescentLogo",
Parent = Components["LoaderTitleArea"],
})
Components["IridescentTitle"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansBold,
Text = "Iridescent",
TextColor3 = Color3.fromRGB(255, 255, 255),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0, 30, 0, 0),
Size = UDim2.new(0, 200, 1, 0),
Name = "IridescentTitle",
Parent = Components["LoaderTitleArea"],
})
Components["Workspace"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0, 20, 0, 50),
Size = UDim2.new(1, -40, 1, -70),
Name = "Workspace",
Parent = Components["LoaderOutline"],
})
Components["WorkspaceHider"] = Components["Workspace"]:Clone()
Components["WorkspaceHider"].Parent = Components["LoaderOutline"]
Components["WorkspaceHider"].Size = UDim2.new(1, 0, 1, -30)
Components["WorkspaceHider"].AnchorPoint = Vector2.new(0, 0)
Components["WorkspaceHider"].Position = UDim2.new(0, 0, 0, 30)
Components.WorkspaceHider.Name = "WorkspaceHider"
Components.WorkspaceHider.ZIndex = 10
Components.WorkspaceHider.BackgroundColor3 = Color3.fromRGB(11, 11, 11)
Components["Products"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0, -5, 0, 0),
Size = UDim2.new(0, 175, 1, 0),
Name = "Products",
Parent = Components["Workspace"],
})
Components["ProductsLayout"] = Globals:Instance("UIListLayout", {
Padding = UDim.new(0, 10),
SortOrder = Enum.SortOrder.LayoutOrder,
Name = "ProductsLayout",
Parent = Components["Products"],
})
Components["GameStatus1"] = Globals:Instance("Frame", {
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0, 191, 0, 0),
Size = UDim2.new(0, 175, 1, 0),
Name = "GameStatus",
Parent = Components["Workspace"],
})
Components["GameImageArea"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(14, 14, 14),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 125),
Name = "GameImageArea",
Parent = Components["GameStatus1"],
})
Components["GameImageAreaCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 3),
Parent = Components["GameImageArea"],
})
Components["GameImageAreaStroke"] = Globals:Instance("UIStroke", {
Color = Color3.fromRGB(24, 24, 24),
Parent = Components["GameImageArea"],
})
Components["GameImage1"] = Globals:Instance("ImageLabel", {
Image = "",
ImageTransparency = 0.4,
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = UDim2.new(1, -10, 1, -10),
Name = "GameImage",
Parent = Components["GameImageArea"],
})
Components["GameImageCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 3),
Parent = Components["GameImage1"],
})
Components["GameImageStroke"] = Globals:Instance("UIStroke", {
Color = Color3.fromRGB(24, 24, 24),
Parent = Components["GameImage1"],
})
Components["GameDetectedStatus"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(14, 14, 14),
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 0, 135),
Size = UDim2.new(1, 0, 0, 36),
Name = "GameDetectedStatus",
Parent = Components["GameStatus1"],
})
Components["GameDetectedStatusCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 3),
Parent = Components["GameDetectedStatus"],
})
Components["GameDetectedStatusStroke"] = Globals:Instance("UIStroke", {
Color = Color3.fromRGB(24, 24, 24),
Parent = Components["GameDetectedStatus"],
})
Components["Status"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansBold,
Text = "Undetected",
TextColor3 = Color3.fromRGB(255, 255, 255),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0, 5, 0, 16),
Size = UDim2.new(1, -20, 0, 20),
Name = "Status",
Parent = Components["GameDetectedStatus"],
})
Components["StatusTitle"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = "S T A T U S",
TextColor3 = Color3.fromRGB(158, 158, 158),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0, 5, 0, 1),
Size = UDim2.new(1, -20, 0, 20),
Name = "StatusTitle",
Parent = Components["GameDetectedStatus"],
})
Components["Expiry"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(14, 14, 14),
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 0, 180),
Size = UDim2.new(1, 0, 0, 36),
Name = "Expiry",
Parent = Components["GameStatus1"],
})
Components["ExpiryCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 3),
Parent = Components["Expiry"],
})
Components["ExpiryStroke"] = Globals:Instance("UIStroke", {
Color = Color3.fromRGB(24, 24, 24),
Parent = Components["Expiry"],
})
Components["ExpiryDate"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansBold,
Text = "7/30/26",
TextColor3 = Color3.fromRGB(255, 255, 255),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0, 5, 0, 16),
Size = UDim2.new(1, -20, 0, 20),
Name = "ExpiryDate",
Parent = Components["Expiry"],
})
Components["ExpiryTitle"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = Loader.Expiry,
TextColor3 = Color3.fromRGB(158, 158, 158),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0, 5, 0, 1),
Size = UDim2.new(1, -20, 0, 20),
Name = "ExpiryTitle",
Parent = Components["Expiry"],
Text = "E X P I R Y",
})
Components["LaunchButton"] = Globals:Instance("TextButton", {
Font = Enum.Font.SourceSansBold,
Text = "Launch",
TextColor3 = Color3.fromRGB(255, 255, 255),
TextSize = 14,
AutoButtonColor = false,
BackgroundColor3 = Color3.fromRGB(14, 14, 14),
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 0, 227),
Size = UDim2.new(1, 0, 0, 40),
Name = "LaunchButton",
Parent = Components["GameStatus1"],
})
Components["LaunchStroke"] = Globals:Instance("UIStroke", {
ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
Color = Color3.fromRGB(24, 24, 24),
Parent = Components["LaunchButton"],
})
Components["LaunchCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 3),
Parent = Components["LaunchButton"],
})
task.wait(0.15)
Globals:Tween(Components.LoaderOutline, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
Position = UDim2.new(0.5, 0, 0.5, 0),
})
Library:Connection("LaunchDown", Components.LaunchButton.MouseButton1Down, function()
task.spawn(function()
Globals:Tween(
Components.LaunchStroke,
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{ Color = Library.Theme.Accent }
)
Globals:Tween(
Components["LaunchButton"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
BackgroundColor3 = Library.Theme.Accent,
}
)
task.wait(0.2)
Globals:Tween(
Components["LaunchButton"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
BackgroundColor3 = Color3.fromRGB(14, 14, 14),
}
)
end)
Loader:Launch(SelectedGame, SelectedType)
end)
Library:Connection("LaunchEnter", Components.LaunchButton.MouseEnter, function()
Globals:Tween(Components.LaunchStroke, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
Color = Library.Theme.Accent,
})
end)
Library:Connection("LaunchLeave", Components.LaunchButton.MouseLeave, function()
Globals:Tween(Components.LaunchStroke, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
Color = Color3.fromRGB(24, 24, 24),
})
end)
end
local Selected
function Loader:NewGame(Name, Type, Image)
local GameComponents = {}
GameComponents["NewGame"] = Globals:Instance("TextButton", {
Font = Enum.Font.SourceSans,
Text = "",
TextColor3 = Color3.fromRGB(0, 0, 0),
TextSize = 14,
AutoButtonColor = false,
BackgroundColor3 = Color3.fromRGB(14, 14, 14),
BorderSizePixel = 0,
Position = UDim2.new(0.05, 0, 0.00619195, 0),
Size = UDim2.new(1, 0, 0.0247678, 50),
Name = "NewGame",
Parent = Components["Products"],
})
GameComponents["NewGameCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 3),
Name = "NewGameCorner",
Parent = GameComponents["NewGame"],
})
GameComponents["NewGameStroke"] = Globals:Instance("UIStroke", {
ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
Color = Color3.fromRGB(24, 24, 24),
Name = "NewGameStroke",
Parent = GameComponents["NewGame"],
})
GameComponents["GameTitle"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = Name .. " " .. Type,
TextColor3 = Color3.fromRGB(255, 255, 255),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0, 8, 0, 36),
Size = UDim2.new(1, -10, 0, 10),
ZIndex = 2,
Name = "GameTitle",
Parent = GameComponents["NewGame"],
})
GameComponents["GameImage"] = Globals:Instance("ImageLabel", {
Image = Image,
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0, 8, 0, 5),
Size = UDim2.new(0, 20, 0, 20),
ZIndex = 2,
Name = "GameImage",
Parent = GameComponents["NewGame"],
})
GameComponents["UICorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(1, 0),
Parent = GameComponents["GameImage"],
})
GameComponents["GameStatus"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(41, 255, 130),
BorderSizePixel = 0,
Position = UDim2.new(0, 35, 0, 10),
Size = UDim2.new(0, 10, 0, 10),
Name = "GameStatus",
Parent = GameComponents["NewGame"],
})
GameComponents["UICorner1"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(1, 0),
Parent = GameComponents["GameStatus"],
})
Library:Connection(Name .. Type .. "Down", GameComponents.NewGame.MouseButton1Down, function()
Selected = GameComponents.NewGame
SelectedGame = Name
SelectedType = Type
for Index, GameButton in Components.Products:GetChildren() do
if GameButton.Name == "NewGame" then
local Stroke = GameButton:FindFirstChild("NewGameStroke")
Globals:Tween(GameButton, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
BackgroundColor3 = Color3.fromRGB(14, 14, 14),
})
Globals:Tween(Stroke, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
Color = Color3.fromRGB(24, 24, 24),
})
end
end
task.spawn(function()
Globals:Tween(
GameComponents.NewGameStroke,
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Color = Library.Theme.Accent,
}
)
Globals:Tween(
GameComponents.NewGame,
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
BackgroundColor3 = Library.Theme.Accent,
}
)
task.wait(0.2)
Globals:Tween(
GameComponents.NewGame,
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
BackgroundColor3 = Color3.fromRGB(14, 14, 14),
}
)
end)
task.spawn(function()
Globals:Tween(Components["GameImage1"], TweenInfo.new(0.1, Enum.EasingStyle.Quad), {
ImageTransparency = 1,
})
task.wait(0.15)
Components["GameImage1"].Image = Image
Globals:Tween(Components["GameImage1"], TweenInfo.new(0.1, Enum.EasingStyle.Quad), {
ImageTransparency = 0.4,
})
end)
end)
Library:Connection(Name .. Type .. "Enter", GameComponents.NewGame.MouseEnter, function()
Globals:Tween(
GameComponents.NewGameStroke,
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{ Color = Library.Theme.Accent }
)
end)
Library:Connection(Name .. Type .. "Leave", GameComponents.NewGame.MouseLeave, function()
if Selected ~= GameComponents.NewGame then
Globals:Tween(
GameComponents.NewGameStroke,
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{ Color = Color3.fromRGB(24, 24, 24) }
)
end
end)
end
function Loader:SetProgress(num)
Globals:Tween(Components["Progess"], TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
Size = UDim2.new(num / 100, 0, 1, 0),
})
Components["ProgressPercent"].Text = tostring(math.floor(num)) .. "%"
end
function Loader:SetStage(stage)
Components["ProgressStage"].Text = "Iridescent | " .. stage
end
function Loader:Launch(Game, Type)
HookingEnabled = Type ~= "Lite"
task.wait(0.2)
local HideTween = Globals:Tween(Components.WorkspaceHider, TweenInfo.new(0.15, Enum.EasingStyle.Quad), {
BackgroundTransparency = 0,
})
task.spawn(function()
task.wait(0.15)
Globals:Tween(Components.LoaderOutline, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {
Size = UDim2.new(0, 400, 0, 200),
})
end)
HideTween.Completed:Wait()
for _, Obj in Components.Workspace:GetChildren() do
Obj:Destroy()
end
task.wait(0.3)
do --// Components
Components["ProgressBar"] = Globals:Instance("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = Color3.fromRGB(14, 14, 14),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0.5, 0, 0.5, 20),
Size = UDim2.new(0, 200, 0, 20),
Name = "ProgressBar",
Parent = Components["LoaderOutline"],
})
Components["ProgressBarStroke"] = Globals:Instance("UIStroke", {
Color = Color3.fromRGB(24, 24, 24),
Name = "ProgressBarStroke",
Parent = Components["ProgressBar"],
})
Components["ProgressBarCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 3),
Name = "ProgressBarCorner",
Parent = Components["ProgressBar"],
})
Components["Progess"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(63, 201, 176),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(0, 0, 1, 0),
Name = "Progess",
Parent = Components["ProgressBar"],
})
Components["ProgessCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 3),
Name = "ProgessCorner",
Parent = Components["Progess"],
})
Components["ProgressPercent"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansBold,
Text = "",
TextColor3 = Color3.fromRGB(255, 255, 255),
TextSize = 14,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 1, 0),
Name = "ProgressPercent",
Parent = Components["ProgressBar"],
})
Components["ProgressPercentStroke"] = Globals:Instance("UIStroke", {
Thickness = 0.9,
Name = "ProgressPercentStroke",
Parent = Components["ProgressPercent"],
})
Components["ProgressStage"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansBold,
Text = "Iridescent",
TextColor3 = Color3.fromRGB(255, 255, 255),
TextSize = 14,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 0, -1, -5),
Size = UDim2.new(1, 0, 1, 0),
Name = "ProgressStage",
Parent = Components["ProgressBar"],
})
Components["IridescentLogo"] = Globals:Instance("ImageLabel", {
Image = Library.LogoImage,
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0.5, 0, 0.5, -45),
Size = UDim2.new(0, 25, 0, 25),
Name = "IridescentLogo",
Parent = Components["ProgressBar"],
})
end
LoaderLaunched = true
Loader.BeginLoading = true
Globals:Tween(Components.WorkspaceHider, TweenInfo.new(0.15, Enum.EasingStyle.Quad), {
BackgroundTransparency = 1,
})
task.spawn(function()
while Components.ProgressStage do
task.wait()
if Components.ProgressStage:GetAttribute("Tweening") then
break
end
Components.ProgressStage.TextTransparency = math.sin(tick() * 3) + 1 / 2
end
end)
end
Loader.Components = Components
return Loader
end
function Library:Window(WindowData)
local Window = {
Name = WindowData.Name,
Tabs = {},
Sections = {},
Components = {},
PlayerImage = WindowData.PlayerImage,
Open = true,
IsOpen = true,
}
Library.IsOpen = true;
Window.ArmorPanel = self:CreateArmorPanel()
Window.ModPanel = self:CreateModeratorsPanel()
Window.Hotkeys = self:CreateHotkeysPanel()
Window.__index = Window
local Components = {}
do --// Components
Components["UI"] = Globals:Instance("ScreenGui", {
IgnoreGuiInset = true,
ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
Name = "UI",
Parent = CoreGui,
DisplayOrder = 3,
})
Components["Outline"] = Globals:Instance("TextButton", {
Font = Enum.Font.SourceSans,
Text = "",
TextColor3 = Color3.fromRGB(0, 0, 0),
TextSize = 14,
AutoButtonColor = false,
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0.5, 0, 3, 0),
Size = UDim2.new(0, 650, 0, 470),
Name = "Outline",
Parent = Components["UI"],
})
-- WOW VIDEO!
Components["BackgroundVideo"] = Globals:Instance("VideoFrame", {
Size = UDim2.fromScale(1, 1);
Video = getcustomasset(ImagesFolder .. '/DerekLippeVideo.mp4');
Looped = true;
Name = "BackgroundVideo";
Parent = Components["Outline"];
})
Components["BackgroundVideo"]:Play();
Components["OutlineCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 3),
Name = "OutlineCorner",
Parent = Components["Outline"],
})
Components["WindowNotifications"] = Globals:Instance("Frame", {
Position = UDim2.new(1, 0, 1, 0),
AnchorPoint = Vector2.new(1, 1),
Size = UDim2.new(0, 200, 1, 0),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Name = "Notifications",
Parent = Components.Outline,
})
Components["LeftSideElements"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(14, 14, 14),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(0, 50, 1, 0),
Name = "LeftSideElements",
Parent = Components["Outline"],
})
Components["LeftSideElmentsCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 3),
Name = "LeftSideElmentsCorner",
Parent = Components["LeftSideElements"],
})
Components["LeftSideFixIGNORE"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(14, 14, 14),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(1, -2, 0, 0),
Size = UDim2.new(0, 3, 1, 0),
Name = "LeftSideFixIGNORE",
Parent = Components["LeftSideElements"],
})
Components["LeftSideOutline"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(1, 0, 0, 0),
Size = UDim2.new(0, 1, 1, 0),
Name = "LeftSideOutline",
Parent = Components["LeftSideFixIGNORE"],
})
Components["LogoSpace"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 50),
Name = "LogoSpace",
Parent = Components["LeftSideElements"],
})
Components["Logo"] = Globals:Instance("ImageLabel", {
Image = Library.LogoImage,
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = UDim2.new(1, -10, 1, -10),
Name = "Logo",
Parent = Components["LogoSpace"],
})
Components["TabsHolder"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 0, 50),
Size = UDim2.new(1, 0, 1, -106),
Name = "TabsHolder",
Parent = Components["LeftSideElements"],
})
Components["TabsScrollingFrame"] = Globals:Instance("ScrollingFrame", {
AutomaticCanvasSize = Enum.AutomaticSize.Y,
CanvasSize = UDim2.new(1, 0, 1, 0),
ScrollBarImageColor3 = Color3.fromRGB(0, 0, 0),
ScrollBarImageTransparency = 1,
ScrollBarThickness = 0,
Active = true,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 0, -3),
Size = UDim2.new(1, 0, 1, 3),
Name = "TabsScrollingFrame",
Parent = Components["TabsHolder"],
})
Components["ScrollingFrameListLayout"] = Globals:Instance("UIListLayout", {
Padding = UDim.new(0, 13),
SortOrder = Enum.SortOrder.LayoutOrder,
Name = "ScrollingFrameListLayout",
Parent = Components["TabsScrollingFrame"],
})
Components["UIPadding"] = Globals:Instance("UIPadding", {
PaddingLeft = UDim.new(0, 8),
PaddingTop = UDim.new(0, 1),
Parent = Components["TabsScrollingFrame"],
})
Components["TabFadeTop"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 0, -10),
Size = UDim2.new(1, 0, 0, 20),
Name = "TabFadeTop",
Parent = Components["TabsHolder"],
})
Components["TabFadeTopGradient"] = Globals:Instance("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(14, 14, 14)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(14, 14, 14)),
}),
Rotation = 90,
Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.4),
NumberSequenceKeypoint.new(1, 1),
}),
Name = "TabFadeTopGradient",
Parent = Components["TabFadeTop"],
})
Components["TabFadeBottom"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 1, -20),
Size = UDim2.new(1, 0, 0, 20),
Name = "TabFadeBottom",
Parent = Components["TabsHolder"],
})
Components["TabFadeBottomGradient"] = Globals:Instance("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(14, 14, 14)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(14, 14, 14)),
}),
Rotation = -90,
Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.4),
NumberSequenceKeypoint.new(1, 1),
}),
Name = "TabFadeBottomGradient",
Parent = Components["TabFadeBottom"],
})
Components["PlayerIconHolder"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 1, -50),
Size = UDim2.new(1, 0, 0, 50),
Name = "PlayerIconHolder",
Parent = Components["LeftSideElements"],
})
--[[Components["PlayerImageButton"] = Globals:Instance("ImageLabel", {
Image = Window.PlayerImage or "",
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = UDim2.new(1, -25, 1, -25),
Name = "PlayerImageButton",
Parent = Components["PlayerIconHolder"],
Visible = false
})]]
Components["PlayerImageCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(1, 0),
Name = "PlayerImageCorner",
Parent = Components["PlayerImageButton"],
})
Components["TopSideElements"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(14, 14, 14),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 52, 0, 0),
Size = UDim2.new(1, -52, 0, 50),
Name = "TopSideElements",
Parent = Components["Outline"],
ClipsDescendants = true,
})
Components["TopSideElementsCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 3),
Name = "TopSideElementsCorner",
Parent = Components["TopSideElements"],
})
Components["TopSideElementsFix"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(14, 14, 14),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 1, -2),
Size = UDim2.new(1, 0, 0, 3),
Name = "TopSideElementsFix",
Parent = Components["TopSideElements"],
})
Components["TopSideOutline"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 1),
Name = "TopSideOutline",
Parent = Components["TopSideElementsFix"],
})
Components["Categorys"] = Globals:Instance("Frame", {
AnchorPoint = Vector2.new(0, 0.5),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 15, 0.5, 0),
Size = UDim2.new(1, -30, 1, -30),
Name = "Categorys",
Parent = Components["TopSideElements"],
})
Components["Pages"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 64, 0, 62),
Size = UDim2.new(0, 573, 0, 395),
Name = "Pages",
Parent = Components["Outline"],
})
Components["PageHider"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
BackgroundTransparency = 0,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 64, 0, 62),
Size = UDim2.new(0, 573, 0, 395),
Name = "PageHider",
Parent = Components["Outline"],
})
Components["PageFadeBottom"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 1, -20),
Size = UDim2.new(1, 0, 0, 20),
Name = "PageFadeBottom",
Parent = Components["Pages"],
ZIndex = 2000,
})
Components["PageFadeTopGradient"] = Globals:Instance("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(11, 11, 11)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(11, 11, 11)),
}),
Rotation = -90,
Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(0.43, 1),
NumberSequenceKeypoint.new(1, 1),
}),
Name = "PageFadeTopGradient",
Parent = Components["PageFadeBottom"],
})
Components["PageFadeTop"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 0, -2),
Size = UDim2.new(1, 0, 0, 20),
Name = "PageFadeTop",
Parent = Components["Pages"],
ZIndex = 2000,
})
Components["PageFadeTopGradient1"] = Globals:Instance("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(11, 11, 11)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(11, 11, 11)),
}),
Rotation = 90,
Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(0.43, 1),
NumberSequenceKeypoint.new(1, 1),
}),
Name = "PageFadeTopGradient",
Parent = Components["PageFadeTop"],
})
Components["OutlineShadowHolder"] = Globals:Instance("Frame", {
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 1, 0),
ZIndex = 0,
Name = "OutlineShadowHolder",
Parent = Components["Outline"],
})
Components["OutlineShadow"] = Globals:Instance("ImageLabel", {
Image = Library.OutlineShadowImage,
ImageColor3 = Color3.fromRGB(0, 0, 0),
ImageTransparency = 0.3,
ScaleType = Enum.ScaleType.Slice,
SliceCenter = Rect.new(49, 49, 450, 450),
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = UDim2.new(1, 47, 1, 47),
ZIndex = 0,
Name = "OutlineShadow",
Parent = Components["OutlineShadowHolder"],
})
end
do --// Dragging and Window visibility
local Dragging = false
local DragStart = nil
local StartPosition = nil
Components["Outline"].InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 and not Window.InDrag then
Dragging = true
DragStart = input.Position
StartPosition = Components["Outline"].Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
Dragging = false
end
end)
end
end)
UserInputService.InputChanged:Connect(function(input)
if Dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local delta = input.Position - DragStart
local newPosition = UDim2.new(
StartPosition.X.Scale,
StartPosition.X.Offset + delta.X,
StartPosition.Y.Scale,
StartPosition.Y.Offset + delta.Y
)
TweenService:Create(
Components["Outline"],
TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
{ Position = newPosition }
):Play()
end
end)
UserInputService.InputBegan:Connect(function(inp)
if inp.KeyCode == Enum.KeyCode.RightShift and not UserInputService:GetFocusedTextBox() then
Window.Open = not Window.Open
Library.IsOpen = Window.Open
Window:SetVisibility(Window.Open)
end
end)
end
function Window:Notify(txt, duration)
-- todo
end
function Window:OpenWindow()
local outline = self.Components.Outline
self.Components.UI.Enabled = true
local currentX = outline.Position.X
local targetPosition = UDim2.new(currentX.Scale, currentX.Offset, 0.5, 0)
if self.CurrentTween then
self.CurrentTween:Cancel()
self.CurrentTween = nil
end
outline.Position = UDim2.new(currentX.Scale, currentX.Offset, outline.Position.Y.Scale, outline.Position.Y.Offset)
self.CurrentTween = Globals:Tween(outline, TweenInfo.new(0.25), {
Position = targetPosition,
})
local completedConnection
completedConnection = self.CurrentTween.Completed:Connect(function()
self.CurrentTween = nil
self.IsOpen = true
if completedConnection then completedConnection:Disconnect() end
end)
end
function Window:Close()
local outline = self.Components.Outline
if self.CurrentTween then
self.CurrentTween:Cancel()
self.CurrentTween = nil
end
local currentX = outline.Position.X
self.CurrentTween = Globals:Tween(outline, TweenInfo.new(0.25), {
Position = UDim2.new(currentX.Scale, currentX.Offset, 2, 0),
})
local completedConnection
completedConnection = self.CurrentTween.Completed:Connect(function()
self.CurrentTween = nil
self.Components.UI.Enabled = false
self.IsOpen = false
if completedConnection then
completedConnection:Disconnect()
end
end)
end
function Window:SetVisibility(force)
if self.CurrentTween then
self.CurrentTween:Cancel()
self.CurrentTween = nil
end
local TargetOpen = (force ~= nil) and force or not self.IsOpen
self.Open = TargetOpen
self.IsOpen = TargetOpen
if TargetOpen then
self:OpenWindow()
else
self:Close()
end
end
function Window:SetTab(Tab)
local TabsContainer = self.Components["TabsScrollingFrame"]
local TabCategories = self.Components["Categorys"]
local Pages = self.Components["Pages"]
local FirstCategory = Tab.Categories[Tab.CategoryOrder[1]]
local CatToSet
--// Category slide Out animation
task.spawn(function()
Globals:Tween(
self.Components.Categorys,
TweenInfo.new(Library.CategoryTransitionSpeed, Enum.EasingStyle.Quad),
{
Position = UDim2.new(-0.7, 0, 0.5, 0),
}
)
end)
--// Set category
task.spawn(function()
if FirstCategory then
self:SetCategory({
Pointer = FirstCategory,
Name = FirstCategory.Parent.Name .. "_" .. FirstCategory.Name,
Parent = FirstCategory.Parent,
})
end
end)
--// Animate tab button
task.spawn(function()
for _, TabButton in TabsContainer:GetChildren() do
local Name = TabButton.Name
local TabCategoryContainer = TabCategories:FindFirstChild(Name)
if not TabCategoryContainer then
continue
end
local Opened = Name == Tab.Name
if Opened then
CatToSet = TabCategoryContainer
else
task.spawn(function()
task.wait(Library.CategoryPause)
TabCategoryContainer.Visible = Opened
end)
end
TabButton.TabImage:SetAttribute("Opened", Opened)
Globals:Tween(TabButton.TabImage, TweenInfo.new(0.25), {
ImageColor3 = Opened and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(126, 126, 126),
})
end
end)
--// Category slide in animation
task.spawn(function()
task.wait(Library.CategoryPause)
Globals:Tween(
self.Components.Categorys,
TweenInfo.new(Library.CategoryTransitionSpeed, Enum.EasingStyle.Quad),
{
Position = UDim2.new(0, 15, 0.5, 0),
}
)
task.wait(0.1)
CatToSet.Visible = true
end)
end
function Window:SetCategory(Category)
local Pointer = Category.Pointer
local Components = Pointer.Components
local Tab = Category.Parent
local PageContainer = self.Components["Pages"]
local hiderIn
Components.CategoryButton:SetAttribute("Opened", true)
--// Transition
task.spawn(function()
hiderIn = Globals:Tween(
self.Components.PageHider,
TweenInfo.new(Library.PageTransitionSpeed, Enum.EasingStyle.Quad),
{
BackgroundTransparency = 0,
}
)
end)
--// Reset
task.spawn(function()
for _, CategoryData in Tab.Categories do
local Comp = CategoryData.Components
Globals:Tween(Comp.CategoryButton, TweenInfo.new(0.25), {
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
})
Globals:Tween(Comp.CategoryTitle, TweenInfo.new(0.25), {
TextColor3 = Color3.fromRGB(129, 129, 129),
})
Globals:Tween(Comp.CategoryStroke, TweenInfo.new(0.25), {
Color = Color3.fromRGB(24, 24, 24),
})
Globals:Tween(Comp.TabDropshadow, TweenInfo.new(0.25), {
ImageTransparency = 1,
})
Comp.CategoryButton:SetAttribute("Opened", false)
CategoryData.IsOpen = false
end
end)
--// animate current category
task.spawn(function()
Globals:Tween(Components.CategoryButton, TweenInfo.new(0.25), {
BackgroundColor3 = Library.Theme.DarkAccent,
})
Globals:Tween(Components.CategoryTitle, TweenInfo.new(0.25), {
TextColor3 = Color3.fromRGB(255, 255, 255),
})
Globals:Tween(Components.CategoryStroke, TweenInfo.new(0.25), {
Color = Library.Theme.Accent,
})
Globals:Tween(Components.TabDropshadow, TweenInfo.new(0.25), {
ImageTransparency = 0.5,
})
Components.CategoryButton:SetAttribute("Opened", true)
end)
Pointer.IsOpen = true
--// Fade out page hider
task.spawn(function()
if hiderIn then
hiderIn.Completed:Wait()
end
Globals:Tween(
self.Components.PageHider,
TweenInfo.new(Library.PageTransitionSpeed, Enum.EasingStyle.Quad),
{
BackgroundTransparency = 1,
}
)
--// Set Active page visibility
for _, Page in PageContainer:GetChildren() do
if not Page:IsA("Frame") or table.find({ "PageFadeTop", "PageFadeBottom" }, Page.Name) then
continue
end
Page.Visible = Page.Name == Category.Name
end
end)
end
function Window:Tab(TabData)
local Tab = {
Name = TabData.Name,
Image = TabData.Image,
Categories = {},
CategoryOrder = {},
}
Tab.__index = Tab
local Components = {}
do --// Components
Components["NewTabButtonHolder"] = Globals:Instance("TextButton", {
BackgroundColor3 = Color3.fromRGB(15, 15, 15),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(0, 35, 0, 35),
Name = Tab.Name,
Parent = self.Components["TabsScrollingFrame"],
Text = "",
AutoButtonColor = false,
})
Components["TabImage"] = Globals:Instance("ImageLabel", {
Image = Tab.Image,
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
ImageColor3 = Color3.fromRGB(126, 126, 126),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = UDim2.new(0, 25, 0, 25),
Name = "TabImage",
Parent = Components["NewTabButtonHolder"],
})
Components["CategoryHolder"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 1, 0),
Name = Tab.Name,
Parent = Window.Components["Categorys"],
Visible = false,
})
Components["CategoryListLayout"] = Globals:Instance("UIListLayout", {
Padding = UDim.new(0, 10),
FillDirection = Enum.FillDirection.Horizontal,
SortOrder = Enum.SortOrder.LayoutOrder,
Name = "CategoryHolderLayout",
Parent = Components["CategoryHolder"],
})
end
do --// Connections
local TabButton = Components["NewTabButtonHolder"]
Library:Connection("TabHandler_" .. Tab.Name, TabButton.MouseButton1Down, function()
Window:SetTab(Tab)
end)
Library:Connection("TabMouseEnter_" .. Tab.Name, Components.NewTabButtonHolder.MouseEnter, function()
Globals:Tween(
Components["TabImage"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
ImageColor3 = Color3.fromRGB(255, 255, 255),
}
)
end)
Library:Connection("TabMouseLeave_" .. Tab.Name, Components.NewTabButtonHolder.MouseLeave, function()
if Components["TabImage"]:GetAttribute("Opened") then
return
end
Globals:Tween(
Components["TabImage"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
ImageColor3 = Color3.fromRGB(126, 126, 126),
}
)
end)
end
function Tab:Category(CategoryData)
local Category = {
Name = CategoryData.Name,
Sections = {},
Parent = Tab,
IsOpen = false,
}
Category.__index = Category
local Components = {}
do --// Components
Components["CategoryButton"] = Globals:Instance("TextButton", {
Font = Enum.Font.SourceSansSemibold,
RichText = true,
Text = "",
TextColor3 = Color3.fromRGB(143, 143, 143),
TextSize = 14,
TextTransparency = 1,
AutoButtonColor = false,
BackgroundColor3 = Color3.fromRGB(11, 11, 11), -- 0, 157, 209
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(0, 82, 0, 20),
Name = Category.Name,
Parent = self.Components["CategoryHolder"],
})
Components["CategoryCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 4),
Name = "CategoryCorner",
Parent = Components["CategoryButton"],
})
Components["CategoryStroke"] = Globals:Instance("UIStroke", {
ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
Color = Color3.fromRGB(24, 24, 24), -- 0, 189, 255
Name = "CategoryStroke",
Parent = Components["CategoryButton"],
})
Components["CategoryTitle"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = Category.Name,
TextColor3 = Color3.fromRGB(133, 133, 133), -- 255, 255, 255
TextSize = 14,
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 1, 0),
Name = "CategoryTitle",
Parent = Components["CategoryButton"],
})
Components["TabDropshadowContainer"] = Globals:Instance("Frame", {
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 1, 0),
ZIndex = 0,
Name = "TabDropshadowContainer",
Parent = Components["CategoryButton"],
})
Components["TabDropshadow"] = Globals:Instance("ImageLabel", {
Image = Library.ShadowImage,
ImageColor3 = Library.Theme.Accent,
ImageTransparency = 1, -- 0.5,
ScaleType = Enum.ScaleType.Slice,
SliceCenter = Rect.new(49, 49, 450, 450),
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = UDim2.new(1, 30, 1, 30),
ZIndex = 0,
Name = "TabDropshadow",
Parent = Components["TabDropshadowContainer"],
})
Components["Page"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 1, 0),
Name = Tab.Name .. "_" .. Category.Name,
Visible = false,
Parent = Window.Components["Pages"],
})
Components["Left"] = Globals:Instance("ScrollingFrame", {
AutomaticCanvasSize = Enum.AutomaticSize.Y,
CanvasSize = UDim2.new(0, 0, 1, 24),
ScrollBarImageColor3 = Color3.fromRGB(0, 0, 0),
ScrollBarImageTransparency = 1,
ScrollBarThickness = 0,
Active = true,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(0.5, -5, 1, 0),
Name = "Left",
Parent = Components["Page"],
})
Components["LeftListLayout"] = Globals:Instance("UIListLayout", {
Parent = Components.Left,
Padding = UDim.new(0, 15),
})
Components["LeftPadding"] = Globals:Instance("UIPadding", {
PaddingLeft = UDim.new(0, 2),
PaddingTop = UDim.new(0, 4),
PaddingBottom = UDim.new(0, 5),
Name = "LeftPadding",
Parent = Components["Left"],
})
Components["Right"] = Globals:Instance("ScrollingFrame", {
AutomaticCanvasSize = Enum.AutomaticSize.Y,
CanvasSize = UDim2.new(0, 0, 1, 0),
ScrollBarImageColor3 = Color3.fromRGB(0, 0, 0),
ScrollBarImageTransparency = 1,
ScrollBarThickness = 0,
Active = true,
AnchorPoint = Vector2.new(0.5, 0),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0.5, 147, 0, 0),
Size = UDim2.new(0.5, -5, 1, 0),
Name = "Right",
Parent = Components["Page"],
})
Components["RightPadding"] = Globals:Instance("UIPadding", {
PaddingLeft = UDim.new(0, 2),
PaddingTop = UDim.new(0, 4),
PaddingBottom = UDim.new(0, 5),
Name = "RightPadding",
Parent = Components["Right"],
})
Components["RightListLayout"] = Globals:Instance("UIListLayout", {
Parent = Components.Right,
Padding = UDim.new(0, 15),
})
end
function Category:Section(SectionData)
local Section = {
Name = SectionData.Name,
Side = SectionData.Side or "Left",
Elements = {},
ZIndex = 9000,
}
Section.__index = Section
local Components = {}
do --// Components
Components["Section"] = Globals:Instance("Frame", {
AutomaticSize = Enum.AutomaticSize.Y,
BackgroundColor3 = Color3.fromRGB(14, 14, 14),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, -4, 0, 30),
Name = "Section",
Parent = self.Components[Section.Side],
})
Components["SectionStroke"] = Globals:Instance("UIStroke", {
Color = Color3.fromRGB(24, 24, 24),
Name = "SectionStroke",
Parent = Components["Section"],
})
Components["SectionCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 3),
Name = "SectionCorner",
Parent = Components["Section"],
})
Components["SectionTitleLine"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 0, 24),
Size = UDim2.new(1, 0, 0, 1),
Name = "SectionTitleLine",
Parent = Components["Section"],
})
Components["SectionTitle"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = Section.Name,
TextColor3 = Color3.fromRGB(255, 255, 255),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 14, 0, 2),
Size = UDim2.new(1, -14, 0, 20),
Name = "SectionTitle",
Parent = Components["Section"],
})
Components["SectionElements"] = Globals:Instance("Frame", {
AutomaticSize = Enum.AutomaticSize.Y,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 14, 0, 30),
Size = UDim2.new(0, 249, 0, -30),
Name = "SectionElements",
Parent = Components["Section"],
})
Components["SectionElementsListLayout"] = Globals:Instance("UIListLayout", {
Padding = UDim.new(0, 3),
SortOrder = Enum.SortOrder.LayoutOrder,
Name = "SectionElementsListLayout",
Parent = Components["SectionElements"],
})
end
function Section:SetVisibility(visible)
self.Visible = visible
end
function Section:Seperator()
local Components = {}
Components["SectionSeperatorHolder"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 6),
Name = "SectionSeperatorHolder",
Parent = self.Components["SectionElements"],
})
Components["SectionSeperatorFrame"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 1),
Name = "SectionSeperatorFrame",
Parent = Components["SectionSeperatorHolder"],
})
function Components:SetVisibility(visible)
Components.SectionSeperatorHolder.Visible = visible
end
return Components
end
function Section:Toggle(ToggleData)
local Toggle = {
Name = ToggleData.Name,
Flag = ToggleData.Flag,
Value = false,
Default = ToggleData.Default or false,
Callback = ToggleData.Callback or function() end,
Tooltip = ToggleData.Tooltip or nil,
Risky = ToggleData.Risky,
Class = "Toggle"
};
Toggle.__index = Toggle
local Components = {}
do --// Components
Components["ToggleHolder"] = Globals:Instance("TextButton", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = Toggle.Tooltip and UDim2.new(1, 0, 0, 38) or UDim2.new(1, 0, 0, 20),
Name = "ToggleHolder",
Parent = self.Components["SectionElements"],
Text = "",
AutoButtonColor = false,
})
Components["ToggleTitle"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = Toggle.Name,
TextColor3 = not Toggle.Risky and Color3.fromRGB(129, 129, 129)
or Color3.fromRGB(150, 14, 23),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 15),
Name = "ToggleTitle",
Parent = Components["ToggleHolder"],
})
Components["ToggleButton"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSans,
Text = "",
TextColor3 = Color3.fromRGB(0, 0, 0),
TextSize = 14,
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(1, -15, 0, 0),
Size = UDim2.new(0, 15, 0, 15),
Name = "ToggleButton",
Parent = Components["ToggleHolder"],
})
Components["ToggleButtonCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 4),
Name = "ToggleButtonCorner",
Parent = Components["ToggleButton"],
})
Components["ToggleStroke"] = Globals:Instance("UIStroke", {
ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
Color = Color3.fromRGB(24, 24, 24),
Name = "ToggleStroke",
Parent = Components["ToggleButton"],
})
Components["ToggleDropshadowContainer"] = Globals:Instance("Frame", {
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 1, 0),
ZIndex = 0,
Name = "ToggleDropshadowContainer",
Parent = Components["ToggleButton"],
})
Components["ToggleDropshadow"] = Globals:Instance("ImageLabel", {
Image = Library.ShadowImage,
ImageColor3 = Library.Theme.Accent,
ImageTransparency = 0.5,
ScaleType = Enum.ScaleType.Slice,
SliceCenter = Rect.new(49, 49, 450, 450),
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = UDim2.new(1, 20, 1, 20),
ZIndex = 0,
Name = "ToggleDropshadow",
Parent = Components["ToggleDropshadowContainer"],
})
if Toggle.Tooltip then
Components["Tooltip"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = Toggle.Tooltip,
TextColor3 = Color3.fromRGB(88, 88, 88),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 3, 0, 18),
Size = UDim2.new(1, 0, 0, 15),
Name = "Tooltip",
Parent = Components["ToggleHolder"],
})
end
end
local Val = false
Toggle.Components = Components
function Toggle:Set(Value)
self.Value = Value
Val = Value
if self.Value == true then
Globals:Tween(
Components["ToggleDropshadow"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
ImageTransparency = 0.5,
}
)
Globals:Tween(
Components["ToggleButton"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
BackgroundColor3 = Library.Theme.DarkAccent,
}
)
Globals:Tween(
Components["ToggleStroke"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Color = Library.Theme.Accent,
}
)
Globals:Tween(
Components["ToggleTitle"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
TextColor3 = self.Risky and Color3.fromRGB(255, 0, 0)
or Color3.fromRGB(255, 255, 255),
}
)
else
Globals:Tween(
Components["ToggleDropshadow"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
ImageTransparency = 1,
}
)
Globals:Tween(
Components["ToggleButton"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
}
)
Globals:Tween(
Components["ToggleStroke"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Color = Color3.fromRGB(24, 24, 24),
}
)
Globals:Tween(
Components["ToggleTitle"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
TextColor3 = self.Risky and Color3.fromRGB(150, 14, 23)
or Color3.fromRGB(129, 129, 129),
}
)
end
Library:DoCallback(self.Callback)
end
function Toggle:SetVisibility(visible)
self.Components.ToggleHolder.Visible = visible
end
Library:Connection(
"ToggleHandler" .. Toggle.Flag,
Components.ToggleHolder.MouseButton1Down,
function()
Toggle:Set(not Val)
end
)
Library:Connection(
"ToggleMouseEnter" .. Toggle.Name,
Components.ToggleHolder.MouseEnter,
function()
Globals:Tween(
Components["ToggleStroke"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Color = Library.Theme.Accent,
}
)
end
)
Library:Connection(
"ToggleMouseLeave" .. Category.Name,
Components.ToggleHolder.MouseLeave,
function()
if Toggle.Value then
return
end
Globals:Tween(
Components["ToggleStroke"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Color = Color3.fromRGB(24, 24, 24),
}
)
end
)
Library.Flags[Toggle.Flag] = Toggle
Section.Elements[Toggle.Flag] = Toggle
Toggle:Set(Toggle.Default)
return Toggle
end
function Section:Slider(SliderData)
local Slider = {
Min = SliderData.Min or 0,
Max = SliderData.Max or 100,
Default = SliderData.Default or SliderData.Max,
Increment = SliderData.Increment or 1,
Name = SliderData.Name,
Flag = SliderData.Flag,
Suffix = SliderData.Suffix or "",
Callback = SliderData.Callback or function() end,
Class = "Slider"
};
Slider.__index = Slider
local Components = {}
do --// Components
Components["Slider"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 0, 4),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 44),
Name = "Slider",
Parent = self.Components["SectionElements"],
})
Components["SliderTitle"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = Slider.Name,
TextColor3 = Color3.fromRGB(129, 129, 129),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 15),
Name = "SliderTitle",
Parent = Components["Slider"],
})
Components["SliderVisualizer"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 1, -15),
Size = UDim2.new(1, 0, 0, 2),
Name = "SliderVisualizer",
Parent = Components["Slider"],
})
Components["SliderVisualizerFill"] = Globals:Instance("Frame", {
BackgroundColor3 = Library.Theme.DarkAccent,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(0, 0, 1, 0),
Name = "SliderVisualizerFill",
Parent = Components["SliderVisualizer"],
})
Components["SliderCircle"] = Globals:Instance("Frame", {
AnchorPoint = Vector2.new(0, 0.5),
BackgroundColor3 = Library.Theme.DarkAccent,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(1, -10, 0.5, 0),
Size = UDim2.new(0, 10, 0, 10),
Name = "SliderCircle",
Parent = Components["SliderVisualizerFill"],
})
Components["SliderCircleCorner"] = Globals:Instance("UICorner", {
Name = "SliderCircleCorner",
Parent = Components["SliderCircle"],
})
Components["SliderShadowContainer"] = Globals:Instance("Frame", {
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 1, 0),
ZIndex = 0,
Name = "SliderShadowContainer",
Parent = Components["SliderVisualizerFill"],
})
Components["SliderShadow"] = Globals:Instance("ImageLabel", {
Image = Library.ShadowImage,
ImageColor3 = Library.Theme.Accent,
ImageTransparency = 0.72,
ScaleType = Enum.ScaleType.Slice,
SliceCenter = Rect.new(49, 49, 450, 450),
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0.5, -1, 0.5, 0),
Size = UDim2.new(1, 7, 1, 10),
ZIndex = 0,
Name = "SliderShadow",
Parent = Components["SliderShadowContainer"],
})
Components["SliderValue"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = tostring(Slider.Default) .. Slider.Suffix,
TextColor3 = Color3.fromRGB(129, 129, 129),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Right,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 15),
Name = "SliderValue",
Parent = Components["Slider"],
})
end
function Slider:Set(Value)
Value = Math.RoundToIncrement(math.clamp(Value, self.Min, self.Max), self.Increment)
self.Value = Value
local percent = (Value - self.Min) / (self.Max - self.Min)
Globals:Tween(
Components["SliderVisualizerFill"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Size = UDim2.new(percent, 0, 1, 0),
}
)
Globals:Tween(
Components["SliderCircle"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Position = UDim2.new(1, -10, 0.5, 0),
}
)
Components["SliderValue"].Text = Library:FormatValue(Slider.Increment, Value)
.. Slider.Suffix
Library:DoCallback(self.Callback, Value)
end
function Slider:SetVisibility(visible)
self.Slider.Visible = visible
end
Slider.Components = Components
do --// Slider Input
local Dragging = false
local function UpdateFromInput(XPosition)
local SliderVisualizer = Components["SliderVisualizer"]
local SliderVisualizerFill = Components["SliderVisualizerFill"]
local Circle = Components["SliderCircle"]
local ValueLabel = Components["SliderValue"]
local RelativeX = math.clamp(
(XPosition - SliderVisualizer.AbsolutePosition.X) / SliderVisualizer.AbsoluteSize.X,
0,
1
)
local RawValue = (Slider.Max - Slider.Min) * RelativeX + Slider.Min
Slider:Set(RawValue)
end
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
Dragging = false
Window.InDrag = false
end
end)
UserInputService.InputChanged:Connect(function(input)
if Dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
UpdateFromInput(input.Position.X)
end
end)
Library:Connection("Slider" .. Slider.Flag, Components.Slider.InputBegan, function(Input)
if Input.UserInputType == Enum.UserInputType.MouseButton1 then
Dragging = true
Window.InDrag = true
UpdateFromInput(Input.Position.X)
end
end)
end
Slider:Set(Slider.Default)
Library.Flags[Slider.Flag] = Slider
Section.Elements[Slider.Flag] = Slider
return Slider
end
function Section:Button(ButtonData)
local Button = {
Name = ButtonData.Name,
Flag = ButtonData.Flag,
Class = "Button",
Callback = ButtonData.Callback or function() end
}
local Components = {}
do --// Components
Components["ButtonHolder"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 24),
Name = "ButtonHolder",
Parent = self.Components["SectionElements"]
})
Components["Button"] = Globals:Instance("TextButton", {
Font = Enum.Font.SourceSansSemibold,
TextColor3 = Color3.fromRGB(129, 129, 129),
TextSize = 14,
AutoButtonColor = false,
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 0, 2),
Size = UDim2.new(1, 0, 0, 18),
Name = "Button",
Parent = Components["ButtonHolder"],
Text = Button.Name
})
Components["ButtonCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 4),
Name = "ButtonCorner",
Parent = Components["Button"]
})
Components["ButtonStroke"] = Globals:Instance("UIStroke", {
ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
Color = Color3.fromRGB(24, 24, 24),
Name = "ButtonStroke",
Parent = Components["Button"]
})
end
Library:Connection("MouseEnter" .. Button.Flag, Components.Button.MouseEnter, function()
Globals:Tween(
Components["ButtonStroke"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Color = Library.Theme.Accent,
}
)
end)
Library:Connection("MouseLeave" .. Button.Flag, Components.Button.MouseLeave, function()
Globals:Tween(
Components["ButtonStroke"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Color = Color3.fromRGB(24, 24, 24),
}
)
end)
Library:Connection("ButtonHandler" .. Button.Flag, Components.Button.MouseButton1Down, function()
Library:DoCallback(Button.Callback)
task.spawn(function()
Globals:Tween(
Components["Button"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
BackgroundColor3 = Library.Theme.Accent,
}
)
task.wait(0.2)
Globals:Tween(
Components["Button"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
}
)
end);
end)
function Button:AddButton(NewData)
if self.SecondButton then return end
local newFlag = NewData.Flag or (self.Flag .. "_2")
local newName = NewData.Name or "Button"
local newCallback = NewData.Callback or function() end
Components.Button.Size = UDim2.new(0.5, -1, 0, 18)
Components.Button.Position = UDim2.new(0, 0, 0, 2)
local Second = Globals:Instance("TextButton", {
Font = Enum.Font.SourceSansSemibold,
TextColor3 = Color3.fromRGB(129, 129, 129),
TextSize = 14,
AutoButtonColor = false,
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0.5, 1, 0, 2),
Size = UDim2.new(0.5, -1, 0, 18),
Name = "Button2",
Parent = Components["ButtonHolder"],
Text = newName
})
Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 4),
Parent = Second
})
local Stroke = Globals:Instance("UIStroke", {
ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
Color = Color3.fromRGB(24, 24, 24),
Parent = Second
})
Library:Connection("ButtonHandler" .. newFlag, Second.MouseButton1Down, function()
Library:DoCallback(newCallback)
task.spawn(function()
Globals:Tween(
Second,
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
BackgroundColor3 = Library.Theme.Accent,
}
)
task.wait(0.2)
Globals:Tween(
Second,
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
}
)
end);
end)
Library:Connection("MouseEnter" .. newFlag, Second.MouseEnter, function()
Globals:Tween(
Stroke,
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Color = Library.Theme.Accent,
}
)
end)
Library:Connection("MouseLeave" .. newFlag, Second.MouseLeave, function()
Globals:Tween(
Stroke,
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Color = Color3.fromRGB(24, 24, 24),
}
)
end)
self.SecondButton = {
Name = newName,
Flag = newFlag,
Callback = newCallback,
Instance = Second
}
return self.SecondButton
end
Button.Components = Components
Button.__index = Button
Section.Elements[Button.Flag] = Button
return Button
end
function Section:Dropdown(DropdownData)
local Dropdown = {
Name = DropdownData.Name,
Flag = DropdownData.Flag,
Multi = DropdownData.Multi or false,
Value = not DropdownData.Multi and "" or {},
Default = DropdownData.Default,
Callback = DropdownData.Callback or function() end,
Class = "Dropdown"
};
self.ZIndex -= 1
Dropdown.__index = Dropdown
local vis = false
local Components = {}
do --// Components
Components["Dropdown"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 44),
ZIndex = 2,
Name = "Dropdown",
Parent = self.Components["SectionElements"],
ZIndex = self.ZIndex,
})
Components["DropdownTitle"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = Dropdown.Name,
TextColor3 = Color3.fromRGB(129, 129, 129),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 15),
Name = "DropdownTitle",
Parent = Components["Dropdown"],
})
Components["DropdownButton"] = Globals:Instance("TextButton", {
Font = Enum.Font.SourceSansSemibold,
Text = " ",
TextColor3 = Color3.fromRGB(129, 129, 129),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
AutoButtonColor = false,
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 0, 18),
Size = UDim2.new(1, 0, 0, 22),
Name = "DropdownButton",
Parent = Components["Dropdown"],
ClipsDescendants = false,
})
Components["DropdownButtonCorner"] = Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 4),
Name = "DropdownButtonCorner",
Parent = Components["DropdownButton"],
})
Components["DropdownStroke"] = Globals:Instance("UIStroke", {
ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
Color = Color3.fromRGB(24, 24, 24),
Name = "DropdownStroke",
Parent = Components["DropdownButton"],
})
Components["DropdownImage"] = Globals:Instance("ImageLabel", {
Image = Library.DropdownImage,
AnchorPoint = Vector2.new(0, 0.5),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(1, -15, 0.5, 0),
Size = UDim2.new(0, 15, 0, 15),
Name = "DropdownImage",
Parent = Components["DropdownButton"],
ZIndex = 3,
})
Components["DropdownItemsOutline"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 0, 21),
Size = UDim2.new(1, 0, 0, 0),
Name = "DropdownItemsOutline",
Visible = false,
Parent = Components["DropdownButton"],
ClipsDescendants = true,
ZIndex = 2,
})
Components["DropdownItemsStroke"] = Globals:Instance("UIStroke", {
ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
Color = Color3.fromRGB(24, 24, 24),
Name = "DropdownItemsStroke",
Parent = Components["DropdownItemsOutline"],
Transparency = 1,
})
Components["DropdownItems"] = Globals:Instance("ScrollingFrame", {
AutomaticCanvasSize = Enum.AutomaticSize.Y,
CanvasSize = UDim2.new(0, 0, 1, 0),
ScrollBarImageColor3 = Library.Theme.Accent,
ScrollBarImageTransparency = 0.67,
ScrollBarThickness = 3,
Visible = true,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 2, 0, 2),
Size = UDim2.new(1, -4, 1, -4),
Name = "DropdownItems",
Parent = Components["DropdownItemsOutline"],
ClipsDescendants = true,
})
Components["DropdownListLayout"] = Globals:Instance("UIListLayout", {
Padding = UDim.new(0, 3),
SortOrder = Enum.SortOrder.LayoutOrder,
Name = "DropdownListLayout",
Parent = Components["DropdownItems"],
})
Components["DropdownFadeBottom"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 1, -20),
Size = UDim2.new(1, 0, 0, 20),
Name = "DropdownFadeBottom",
Parent = Components["DropdownItemsOutline"],
})
Components["DropdownFadeTopGradient"] = Globals:Instance("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(11, 11, 11)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(11, 11, 11)),
}),
Rotation = -90,
Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.4),
NumberSequenceKeypoint.new(1, 1),
}),
Name = "DropdownFadeTopGradient",
Parent = Components["DropdownFadeBottom"],
})
Components["DropdownFadeTop"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 20),
Name = "DropdownFadeTop",
Parent = Components["DropdownItemsOutline"],
})
Components["DropdownFadeTopGradient1"] = Globals:Instance("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(11, 11, 11)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(11, 11, 11)),
}),
Rotation = 90,
Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.4),
NumberSequenceKeypoint.new(1, 1),
}),
Name = "DropdownFadeTopGradient",
Parent = Components["DropdownFadeTop"],
})
Components["DropdownText"] = Globals:Instance("TextLabel", {
Parent = Components["DropdownButton"],
BackgroundTransparency = 1,
TextXAlignment = Enum.TextXAlignment.Left,
TextColor3 = Color3.fromRGB(129, 129, 129),
Size = UDim2.new(1, 0, 1, 0),
ZIndex = 1,
Font = Enum.Font.SourceSansSemibold,
TextSize = 14,
ClipsDescendants = true,
})
Components["DropdownHider"] = Instance.new("Frame")
Components["DropdownHider"].BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Components["DropdownHider"].BorderColor3 = Color3.fromRGB(0, 0, 0)
Components["DropdownHider"].BorderSizePixel = 0
Components["DropdownHider"].Position = UDim2.new(1, -20, 0.5, 0)
Components["DropdownHider"].Size = UDim2.new(0, 20, 1, -2)
Components["DropdownHider"].AnchorPoint = Vector2.new(0, 0.5)
Components["DropdownHider"].Parent = Components["DropdownButton"]
Components["HiderGradient"] = Instance.new("UIGradient")
Components["HiderGradient"].Color = ColorSequence.new({
ColorSequenceKeypoint.new(
0,
Color3.fromRGB(11.000000294297934, 11.000000294297934, 11.000000294297934)
),
ColorSequenceKeypoint.new(
1,
Color3.fromRGB(11.000000294297934, 11.000000294297934, 11.000000294297934)
),
})
Components["HiderGradient"].Rotation = -180
Components["HiderGradient"].Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(0.7219451665878296, 0),
NumberSequenceKeypoint.new(0.7842893004417419, 0),
NumberSequenceKeypoint.new(0.8690773248672485, 0.44999998807907104),
NumberSequenceKeypoint.new(0.9650872945785522, 0.7062499523162842),
NumberSequenceKeypoint.new(1, 0.36250001192092896),
})
Components["HiderGradient"].Name = "PageFadeTopGradient"
Components["HiderGradient"].Parent = Components["DropdownHider"]
end
Dropdown.Components = Components
Dropdown.Options = {}
function Dropdown:SetVisibility(visible)
self.Components.Dropdown.Visible = visible
end
function Dropdown:AddOption(Name)
local Option = {
Name = Name,
Value = false,
Components = {},
}
local OptionComponents = {}
OptionComponents["Option"] = Globals:Instance("TextButton", {
Font = Enum.Font.SourceSans,
Text = "",
TextColor3 = Color3.fromRGB(0, 0, 0),
TextSize = 14,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 20),
Name = "Option",
Parent = Components["DropdownItems"],
})
OptionComponents["OptionOnTitle"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = Name,
TextColor3 = Color3.fromRGB(129, 129, 129),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundColor3 = Color3.fromRGB(129, 129, 129),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 10, 0, 0),
Size = UDim2.new(1, -10, 1, 0),
Name = "OptionOnTitle",
Parent = OptionComponents["Option"],
})
OptionComponents["OptionIndicator"] = Globals:Instance("Frame", {
BackgroundColor3 = Library.Theme.Accent,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(0, 3, 1, 0),
Name = "OptionIndicator",
Visible = true,
BackgroundTransparency = 1,
Parent = OptionComponents["Option"],
})
Library:Connection(
"OptionHandler" .. Option.Name .. "_" .. Dropdown.Flag,
OptionComponents.Option.MouseButton1Down,
function()
if Dropdown.Multi then
Option.Value = not Option.Value
Globals:Tween(
OptionComponents["OptionIndicator"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
BackgroundTransparency = Option.Value and 0 or 1,
}
)
Globals:Tween(
OptionComponents["OptionOnTitle"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
TextColor3 = Option.Value and Color3.fromRGB(255, 255, 255)
or Color3.fromRGB(129, 129, 129),
}
)
else
for _, other in ipairs(Dropdown.Options) do
other.Value = false
Globals:Tween(
other.Components["OptionIndicator"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
BackgroundTransparency = other.Value and 0 or 1,
}
)
Globals:Tween(
other.Components["OptionOnTitle"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
TextColor3 = other.Value and Color3.fromRGB(255, 255, 255)
or Color3.fromRGB(129, 129, 129),
}
)
end
Option.Value = true
Globals:Tween(
OptionComponents["OptionIndicator"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
BackgroundTransparency = 0,
}
)
Globals:Tween(
OptionComponents["OptionOnTitle"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
TextColor3 = Option.Value and Color3.fromRGB(255, 255, 255)
or Color3.fromRGB(129, 129, 129),
}
)
Components["DropdownText"].Text = " " .. Name
local SizeTween = Globals:Tween(
Components["DropdownItemsOutline"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Size = UDim2.new(1, 0, 0, 0),
}
)
Globals:Tween(
Components["DropdownItemsStroke"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Transparency = 1,
}
)
task.spawn(function()
task.wait(Library.HighlightSpeed)
Components.DropdownItemsOutline.Visible = false
end)
end
if Dropdown.Multi then
local selected = {}
for _, opt in ipairs(Dropdown.Options) do
if opt.Value then
table.insert(selected, opt.Name)
end
end
Dropdown:Set(selected)
else
Dropdown:Set(Name)
end
end
)
Option.Components = OptionComponents
table.insert(Dropdown.Options, Option)
return Option
end
for Index, Name in DropdownData.Options do
Dropdown:AddOption(Name)
end
function Dropdown:Set(Value)
self.Value = Value
if Dropdown.Multi then
local selectedNames = {}
for _, opt in ipairs(self.Options) do
local selected = table.find(Value, opt.Name) ~= nil
opt.Value = selected
Globals:Tween(
opt.Components["OptionIndicator"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
BackgroundTransparency = selected and 0 or 1,
}
)
Globals:Tween(
opt.Components["OptionOnTitle"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
TextColor3 = selected and Color3.fromRGB(255, 255, 255)
or Color3.fromRGB(129, 129, 129),
}
)
if selected then
table.insert(selectedNames, opt.Name)
end
end
if #selectedNames == 0 then
Components["DropdownText"].Text = " None"
else
Components["DropdownText"].Text = " " .. table.concat(selectedNames, ", ")
end
else
for _, opt in ipairs(self.Options) do
local selected = opt.Name == Value
opt.Value = selected
Globals:Tween(
opt.Components["OptionIndicator"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
BackgroundTransparency = selected and 0 or 1,
}
)
Globals:Tween(
opt.Components["OptionOnTitle"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
TextColor3 = selected and Color3.fromRGB(255, 255, 255)
or Color3.fromRGB(129, 129, 129),
}
)
end
Globals:Tween(
Components["Dropdown"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Size = UDim2.new(1, 0, 0, 44),
}
)
Components["DropdownText"].Text = " " .. tostring(Value)
end
Library:DoCallback(self.Callback, Value)
end
Library:Connection(
"DropdownHandler_" .. Dropdown.Flag .. "Main",
Components["DropdownButton"].MouseButton1Down,
function()
vis = not vis
if vis then
local itemCount = #Dropdown.Options
local itemHeight = 24
local expandedItemHeight = math.min(itemCount, 3) * itemHeight
local fullHeight = 44 + expandedItemHeight
Components.DropdownItemsOutline.Visible = true
Globals:Tween(
Components["DropdownItemsOutline"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Size = UDim2.new(1, 0, 0, expandedItemHeight),
}
)
Globals:Tween(
Components["Dropdown"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Size = UDim2.new(1, 0, 0, fullHeight),
}
)
Globals:Tween(
Components["DropdownItemsStroke"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Transparency = 0,
}
)
else
Globals:Tween(
Components["DropdownItemsOutline"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Size = UDim2.new(1, 0, 0, 0),
}
)
Globals:Tween(
Components["Dropdown"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Size = UDim2.new(1, 0, 0, 44),
}
)
Globals:Tween(
Components["DropdownItemsStroke"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Transparency = 1,
}
)
task.spawn(function()
task.wait(Library.HighlightSpeed)
Components.DropdownItemsOutline.Visible = false
end)
end
end
)
if not Dropdown.Default or (Dropdown.Multi and #Dropdown.Default == 0) then
if Dropdown.Multi then
Dropdown.Default = { DropdownData.Options[1] }
else
Dropdown.Default = DropdownData.Options[1]
end
end
Dropdown:Set(Dropdown.Default)
Library.Flags[Dropdown.Flag] = Dropdown
Section.Elements[Dropdown.Flag] = Dropdown
return Dropdown
end
function Section:Textbox(TextboxData)
local TextBox = {
Name = TextboxData.Name,
Flag = TextboxData.Flag,
Default = TextboxData.Default or "",
Callback = TextboxData.Callback or function() end,
Value = "",
Class = "TextBox";
}
local Components = {}
Components.Holder = Globals:Instance("Frame", {
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 0, 40),
Parent = self.Components.SectionElements,
})
Components.Title = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = TextBox.Name,
TextColor3 = Color3.fromRGB(129, 129, 129),
TextSize = 14,
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 0, 15),
TextXAlignment = Enum.TextXAlignment.Left,
Parent = Components.Holder,
})
local BoxFrame = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
Position = UDim2.new(0, 0, 0, 18),
Size = UDim2.new(1, 0, 0, 18),
ClipsDescendants = true,
Parent = Components.Holder,
})
Globals:Instance("UICorner", { CornerRadius = UDim.new(0, 4), Parent = BoxFrame })
local Stroke = Globals:Instance("UIStroke", {
Color = Color3.fromRGB(24, 24, 24),
ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
Parent = BoxFrame,
})
local Label = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = "",
TextColor3 = Color3.fromRGB(230, 230, 230),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundTransparency = 1,
Size = UDim2.new(1, -5, 1, 0),
Position = UDim2.new(0, 5, 0, 0),
Parent = BoxFrame,
})
local Mask = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
Size = UDim2.new(1, -2, 1, -2),
Position = UDim2.new(0, 1, 0, 1),
Parent = BoxFrame,
})
Globals:Instance("UICorner", { CornerRadius = UDim.new(0, 4), Parent = Mask })
local Cursor = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(230, 230, 230),
Size = UDim2.new(0, 1, 0.8, 0),
Position = UDim2.new(0, 0, 0.1, 0),
Parent = BoxFrame,
ZIndex = Mask.ZIndex + 1,
Visible = false,
})
Globals:Instance("UICorner", { CornerRadius = UDim.new(0, 1), Parent = Cursor })
local InputBox = Globals:Instance("TextBox", {
Font = Label.Font,
TextSize = Label.TextSize,
TextTransparency = 1,
Text = "",
BackgroundTransparency = 1,
ClearTextOnFocus = false,
Size = UDim2.new(1, -5, 1, 0),
Position = UDim2.new(0, 5, 0, 0),
Parent = BoxFrame,
})
local TweenService = TweenService
local BlinkTweenInfo =
TweenInfo.new(0.7, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut, -1, true)
local BlinkTween = TweenService:Create(Cursor, BlinkTweenInfo, { BackgroundTransparency = 1 })
local function UpdateMaskAndCursor()
local FullText = Label.Text
local TextWidth = Label.TextBounds.X
local BoxWidth = BoxFrame.AbsoluteSize.X
local RevealX = math.clamp(TextWidth, 0, BoxWidth - 7)
if FullText:sub(-1) == " " then
RevealX = RevealX + 3
end
Mask:TweenPosition(
UDim2.new(0, 1 + 5 + RevealX, 0, 1),
Enum.EasingDirection.Out,
Enum.EasingStyle.Sine,
0.1,
true
)
Cursor:TweenPosition(
UDim2.new(0, 5 + RevealX, 0.1, 0),
Enum.EasingDirection.Out,
Enum.EasingStyle.Sine,
0.1,
true
)
end
function TextBox:Set(Value)
self.Value = Value
Label.Text = Value
InputBox.Text = Value
task.defer(UpdateMaskAndCursor)
Library:DoCallback(self.Callback, Value)
end
function TextBox:SetVisibility(Visible)
Components.Holder.Visible = Visible
end
InputBox.Focused:Connect(function()
TweenService:Create(Stroke, TweenInfo.new(0.2), { Color = Library.Theme.Accent }):Play()
Cursor.Visible = true
if BlinkTween.PlaybackState ~= Enum.PlaybackState.Playing then
BlinkTween:Play()
end
end)
InputBox.FocusLost:Connect(function()
TweenService:Create(Stroke, TweenInfo.new(0.2), { Color = Color3.fromRGB(24, 24, 24) })
:Play()
Cursor.Visible = false
BlinkTween:Pause()
end)
InputBox:GetPropertyChangedSignal("Text"):Connect(function()
local FullText = InputBox.Text
TextBox.Value = FullText
Label.Text = FullText
task.defer(UpdateMaskAndCursor)
Library:DoCallback(TextboxData.Callback, FullText)
end)
TextBox:Set(TextBox.Default)
TextBox.Components = Components
TextBox.__index = TextBox
Library.Flags[TextBox.Flag] = TextBox
return TextBox
end
function Section:Colorpicker(ColorpickerData)
local Colorpicker = {
Name = ColorpickerData.Name,
Flag = ColorpickerData.Flag,
Default = ColorpickerData.Default or { Color3.fromRGB(255, 255, 255), 0 }, -- {Color, Transparency}
Callback = ColorpickerData.Callback or function() end,
Class = "Colorpicker";
}
Colorpicker.__index = Colorpicker
local Components = {}
Components["Colorpicker"] = Globals:Instance("Frame", {
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 0, 20),
Name = "Colorpicker",
Parent = self.Components["SectionElements"],
BorderSizePixel = 0,
})
Components["ColorpickerTitle"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSans,
Text = Colorpicker.Name,
TextColor3 = Color3.fromRGB(129, 129, 129),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 0, 15),
Name = "ColorpickerTitle",
Parent = Components["Colorpicker"],
BorderSizePixel = 0,
})
Components["ColorpickerButton"] = Globals:Instance("TextButton", {
Font = Enum.Font.SourceSans,
Text = "",
TextColor3 = Color3.fromRGB(0, 0, 0),
TextSize = 14,
AutoButtonColor = false,
BackgroundColor3 = Colorpicker.Default[1],
Position = UDim2.new(1, -15, 0, 0),
Size = UDim2.new(0, 15, 0, 15),
Name = "ColorpickerButton",
Parent = Components["Colorpicker"],
BorderSizePixel = 0,
})
Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 4),
Parent = Components["ColorpickerButton"],
})
Globals:Instance("UIStroke", {
ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
Color = Color3.fromRGB(24, 24, 24),
Parent = Components["ColorpickerButton"],
})
Components["ColorpickerFrame"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
BackgroundTransparency = 1, -- start fully transparent
Position = UDim2.new(1, 20, 0, 0),
Size = UDim2.new(0, 215, 0, 210),
Name = "ColorpickerFrame",
Parent = Window.Components.Outline,
BorderSizePixel = 0,
Visible = false,
})
Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 3),
Parent = Components["ColorpickerFrame"],
})
Globals:Instance("UIStroke", {
Color = Color3.fromRGB(24, 24, 24),
Transparency = 1, -- start fully transparent
Thickness = 1.5,
Parent = Components["ColorpickerFrame"],
})
Components["ColorpickerTitleLine"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BackgroundTransparency = 1, -- start fully transparent
Position = UDim2.new(0, 0, 0, 25),
Size = UDim2.new(1, 0, 0, 1),
Name = "ColorpickerTitleLine",
Parent = Components["ColorpickerFrame"],
BorderSizePixel = 0,
})
Components["ColorpickerTitleHeader"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = " " .. Colorpicker.Name,
TextColor3 = Color3.fromRGB(255, 255, 255),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundTransparency = 1, -- start fully transparent
BackgroundColor3 = Color3.fromRGB(14, 14, 14),
Position = UDim2.new(0, 0, 0, 0),
Size = UDim2.new(1, 0, 0, 25),
Name = "ColorpickerTitleHeader",
Parent = Components["ColorpickerFrame"],
BorderSizePixel = 0,
})
Components["ColorpickerElements"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
BackgroundTransparency = 1, -- start fully transparent
Position = UDim2.new(0, 10, 0, 208),
Size = UDim2.new(1, -20, -0.548837364, -50),
Name = "ColorpickerElements",
Parent = Components["ColorpickerFrame"],
BorderSizePixel = 0,
})
Components["Colorwheel"] = Globals:Instance("ImageLabel", {
Image = Library.ColorwheelImage,
AnchorPoint = Vector2.new(0.5, 0),
BackgroundTransparency = 1,
Position = UDim2.new(0.5, -20, 0, 0),
Size = UDim2.new(0, 150, 0, 150),
Name = "Colorwheel",
Parent = Components["ColorpickerElements"],
BorderSizePixel = 0,
})
Globals:Instance("UICorner", {
CornerRadius = UDim.new(1, 0),
Parent = Components["Colorwheel"],
})
Globals:Instance("UIStroke", {
ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
Color = Color3.fromRGB(24, 24, 24),
Transparency = 1, -- start fully transparent
Thickness = 3,
Parent = Components["Colorwheel"],
})
Components["BrightnessPicker"] = Globals:Instance("TextButton", {
Text = "",
AutoButtonColor = false,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Position = UDim2.new(1, -35, 0, 0),
Size = UDim2.new(0, 10, 0, 150),
Name = "BrightnessPicker",
Parent = Components["ColorpickerElements"],
BorderSizePixel = 0,
})
Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 4),
Parent = Components["BrightnessPicker"],
})
Globals:Instance("UIStroke", {
ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
Color = Color3.fromRGB(24, 24, 24),
Transparency = 1, -- start fully transparent
Parent = Components["BrightnessPicker"],
})
Globals:Instance("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255, 255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 0, 0)),
}),
Rotation = 90,
Parent = Components["BrightnessPicker"],
})
Components["TransparencyPickerButton"] = Globals:Instance("TextButton", {
Text = "",
AutoButtonColor = false,
BackgroundColor3 = Colorpicker.Default[1],
Position = UDim2.new(1, -15, 0, 0),
Size = UDim2.new(0, 10, 0, 150),
Name = "TransparencyPickerButton",
Parent = Components["ColorpickerElements"],
BorderSizePixel = 0,
})
local TransparencyPicture = Globals:Instance("ImageLabel", {
Image = Library.TransparencyImage,
ScaleType = Enum.ScaleType.Tile,
TileSize = UDim2.new(8, 0, 0.5, 0),
BackgroundColor3 = Colorpicker.Default[1],
Size = UDim2.new(1, 0, 1, 0),
Name = "TransparencyPicture",
Parent = Components["TransparencyPickerButton"],
BorderSizePixel = 0,
Rotation = 180,
AnchorPoint = Vector2.new(0.5, 0.5),
Position = UDim2.new(0.5, 0, 0.5, 0),
})
Globals:Instance("UIGradient", {
Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(1, 1),
}),
Rotation = 90,
Parent = TransparencyPicture,
})
Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 4),
Parent = Components["TransparencyPickerButton"],
})
Globals:Instance("UIStroke", {
ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
Color = Color3.fromRGB(24, 24, 24),
Parent = Components["TransparencyPickerButton"],
})
local WheelIndicator = Globals:Instance("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 2,
Size = UDim2.new(0, 6, 0, 6),
Name = "WheelIndicator",
Parent = Components["Colorwheel"],
})
Globals:Instance("UICorner", { CornerRadius = UDim.new(1, 0), Parent = WheelIndicator })
local BrightnessIndicator = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BorderSizePixel = 1,
Size = UDim2.new(1, 0, 0, 2),
Name = "BrightnessIndicator",
Parent = Components["BrightnessPicker"],
})
local TransparencyIndicator = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BorderSizePixel = 1,
Size = UDim2.new(1, 0, 0, 2),
Name = "TransparencyIndicator",
Parent = Components["TransparencyPickerButton"],
})
Colorpicker.Components = Components
local function FadeInFrame(frame)
frame.Visible = true
Globals:TweenTransparencyIns(frame, 0, 0.2)
end
local function FadeOutFrame(frame)
Globals:TweenTransparencyIns(frame, 1, 0.2)
task.delay(0.2, function()
if frame and frame.Parent then
frame.Visible = false
end
end)
end
Components["ColorpickerButton"].MouseButton1Down:Connect(function()
local thisFrame = Components["ColorpickerFrame"]
local isOpening = not (thisFrame.Visible and thisFrame.BackgroundTransparency < 1)
for _, child in ipairs(Window.Components.Outline:GetChildren()) do
if child.Name == "ColorpickerFrame" and child ~= thisFrame and child.Visible then
FadeOutFrame(child)
end
end
if isOpening then
FadeInFrame(thisFrame)
else
FadeOutFrame(thisFrame)
end
end)
local function UpdateIndicators()
local col, transparency = Colorpicker.Value[1], Colorpicker.Value[2]
local h, s, v = col:ToHSV()
local radius = Components["Colorwheel"].AbsoluteSize.X / 2
local angle = h * 2 * math.pi
local distance = s * radius
local offset = Vector2.new(math.cos(angle), math.sin(angle)) * distance
Globals:Tween(WheelIndicator, TweenInfo.new(0.15, Enum.EasingStyle.Quad), {
Position = UDim2.new(0.5, offset.X, 0.5, offset.Y),
})
Globals:Tween(BrightnessIndicator, TweenInfo.new(0.15, Enum.EasingStyle.Quad), {
Position = UDim2.new(0, 0, 1 - v, -1),
})
Globals:Tween(TransparencyIndicator, TweenInfo.new(0.15, Enum.EasingStyle.Quad), {
Position = UDim2.new(0, 0, transparency, -1),
})
end
function Colorpicker:Set(Value)
self.Value = Value
local col = Value[1]
local transparency = Value[2]
Globals:Tween(Components["ColorpickerButton"], TweenInfo.new(0.15, Enum.EasingStyle.Quad), {
BackgroundColor3 = col,
})
Globals:Tween(TransparencyPicture, TweenInfo.new(0.15, Enum.EasingStyle.Quad), {
BackgroundColor3 = col,
})
Globals:Tween(
Components["TransparencyPickerButton"],
TweenInfo.new(0.15, Enum.EasingStyle.Quad),
{
BackgroundColor3 = col,
}
)
local h, s, v = col:ToHSV()
if v > 0 then
self._LastHue = h
self._LastSaturation = s
end
UpdateIndicators()
Library:DoCallback(self.Callback, Value)
end
function Colorpicker:SetVisibility(visible)
self.Colorpicker.Visible = visible
if self.ColorpickerFrame.Visible and not visible then
self.ColorpickerFrame.Visible = visible
end
end
local function ColorFromWheel(x, y, wheel)
local center = wheel.AbsolutePosition + wheel.AbsoluteSize / 2
local radius = wheel.AbsoluteSize.X / 2
local rel = Vector2.new(x, y) - center
local distance = rel.Magnitude
local hue, sat = 0, 0
if distance > 0 then
hue = math.atan2(rel.Y, rel.X) / (2 * math.pi)
if hue < 0 then
hue = hue + 1
end
sat = math.clamp(distance / radius, 0, 1)
end
local _, _, v = Colorpicker.Value[1]:ToHSV()
return Color3.fromHSV(hue, sat, v)
end
local function EnableDragging(Component, onDrag)
Component.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
local moveConn, upConn
moveConn = RunService.RenderStepped:Connect(function()
local mousePos = UserInputService:GetMouseLocation()
local adjustedMousePos = Vector2.new(mousePos.X, mousePos.Y - MouseConstant)
onDrag(adjustedMousePos)
end)
upConn = UserInputService.InputEnded:Connect(function(endInput)
if endInput.UserInputType == Enum.UserInputType.MouseButton1 then
moveConn:Disconnect()
upConn:Disconnect()
end
end)
end
end)
end
EnableDragging(Components["Colorwheel"], function(mousePosRaw)
local mousePos = Vector2.new(mousePosRaw.X, mousePosRaw.Y - MouseConstant)
local col = ColorFromWheel(mousePos.X, mousePos.Y, Components["Colorwheel"])
Colorpicker:Set({ col, Colorpicker.Value[2] })
end)
EnableDragging(Components["BrightnessPicker"], function(mousePosRaw)
local mousePos = Vector2.new(mousePosRaw.X, mousePosRaw.Y - MouseConstant)
local top = Components["BrightnessPicker"].AbsolutePosition.Y
local height = Components["BrightnessPicker"].AbsoluteSize.Y
local valueY = math.clamp((mousePos.Y - top) / height, 0, 1)
local h, s = Colorpicker._LastHue or 0, Colorpicker._LastSaturation or 0
local v = 1 - valueY
local newColor = Color3.fromHSV(h, s, v)
Colorpicker:Set({ newColor, Colorpicker.Value[2] })
end)
EnableDragging(Components["TransparencyPickerButton"], function(mousePosRaw)
local mousePos = Vector2.new(mousePosRaw.X, mousePosRaw.Y - MouseConstant)
local top = Components["TransparencyPickerButton"].AbsolutePosition.Y
local height = Components["TransparencyPickerButton"].AbsoluteSize.Y
local yVal = math.clamp((mousePos.Y - top) / height, 0, 1)
Colorpicker:Set({ Colorpicker.Value[1], yVal })
end)
Colorpicker:Set(Colorpicker.Default)
Library.Flags[Colorpicker.Flag] = Colorpicker
return Colorpicker
end
function Section:Keybind(KeybindData)
local Keybind = {
Name = KeybindData.Name,
Flag = KeybindData.Flag,
Default = KeybindData.Default or nil,
Callback = KeybindData.Callback or function() end,
Key = KeybindData.Key or nil,
Mode = KeybindData.Mode or "Toggle",
Active = false,
Class = "Keybind"
}
Keybind.__index = Keybind
local Components = {}
do --// Components
Components["KeybindHolder"] = Globals:Instance("Frame", {
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 0, 20),
Name = "KeybindHolder",
Parent = self.Components["SectionElements"],
})
Components["KeybindTitle"] = Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansSemibold,
Text = Keybind.Name,
TextColor3 = Color3.fromRGB(129, 129, 129),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 0, 15),
Name = "KeybindTitle",
Parent = Components["KeybindHolder"],
})
Components["KeybindButton"] = Globals:Instance("TextButton", {
Font = Enum.Font.SourceSansSemibold,
Text = "None",
TextColor3 = Color3.fromRGB(135, 135, 135),
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Center,
AutoButtonColor = false,
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
BorderSizePixel = 0,
Position = UDim2.new(1, -50, 0, 0),
Size = UDim2.new(0, 50, 0, 15),
Name = "KeybindButton",
Parent = Components["KeybindHolder"],
})
Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 4),
Parent = Components["KeybindButton"],
})
Globals:Instance("UIStroke", {
ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
Color = Color3.fromRGB(24, 24, 24),
Parent = Components["KeybindButton"],
})
end
Keybind.Components = Components
function Keybind:SetVisibility(visible)
self.KeybindHolder.Visible = visible
end
function Keybind:SetKey(input)
if input then
if typeof(input.UserInputType) == "string" then
input.UserInputType = Enum.UserInputType[input.UserInputType]
if input.UserInputType == "KeyCode" then
input.KeyCode = Enum.KeyCode[input.KeyCode]
end
end
local keyType
local keyValue
if
input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.MouseButton2
or input.UserInputType == Enum.UserInputType.MouseButton3
then
keyType = "MouseButton"
keyValue = input.UserInputType
elseif input.UserInputType == Enum.UserInputType.Keyboard then
keyType = "KeyCode"
keyValue = input.KeyCode
else
keyType = "UserInputType"
keyValue = input.UserInputType
end
self.Key = {
Type = keyType,
Value = keyValue,
}
Window.Hotkeys:UpdateStatus(
self.Name,
self.Active,
Library:FormatKeyName(Library:GetInputName(input))
)
Components["KeybindButton"].Text = Library:FormatKeyName(Library:GetInputName(input))
else
Window.Hotkeys:UpdateStatus(self.Name, self.Active, "", true)
self.Key = nil
Components["KeybindButton"].Text = "None"
end
Globals:Tween(
Components["KeybindButton"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
TextColor3 = Color3.fromRGB(129, 129, 129),
}
)
end
function Keybind:SetState(state)
self.Active = state
Window.Hotkeys:UpdateStatus(self.Name, self.Active)
Library:DoCallback(self.Callback, state)
end
function Keybind:Set(value)
self.Value = value
self:SetKey(value)
end
function Keybind:Matches(input)
if not self.Key then
return false
end
if self.Key.Type == "KeyCode" then
return input.KeyCode == self.Key.Value
elseif self.Key.Type == "MouseButton" then
return input.UserInputType == self.Key.Value
elseif self.Key.Type == "UserInputType" then
return input.UserInputType == self.Key.Value
end
return false
end
local Listening = false
Library:Connection(
"Keybind_" .. Keybind.Flag .. "_StartListen",
Components["KeybindButton"].MouseButton1Click,
function()
if Listening then
return
end
Listening = true
Globals:Tween(
Components["KeybindButton"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
TextColor3 = Color3.fromRGB(11, 11, 11),
}
)
Components["KeybindButton"].Text = "..."
Globals:Tween(
Components["KeybindButton"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
TextColor3 = Color3.fromRGB(255, 255, 255),
}
)
local ConnectionName = "Keybind_" .. Keybind.Flag .. "_InputListen"
task.wait(0.06)
Library:Connection(ConnectionName, UserInputService.InputBegan, function(input, gpe)
if not Listening then
return
end
Listening = false
Library:Disconnect(ConnectionName)
if input.KeyCode == Enum.KeyCode.Backspace then
Keybind:Set(nil)
return
end
if
input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.MouseButton2
or input.UserInputType == Enum.UserInputType.MouseButton3
or input.UserInputType == Enum.UserInputType.Keyboard
then
Keybind:SetKey(input)
end
end)
end
)
Library:Connection(
"Keybind_" .. Keybind.Flag .. "_InputBegan",
UserInputService.InputBegan,
function(input, gpe)
if gpe or Listening or not Keybind.Key then
return
end
if Keybind:Matches(input) then
if Keybind.Mode == "Toggle" then
Keybind:SetState(not Keybind.Active)
elseif Keybind.Mode == "Callback" then
Library:DoCallback(Keybind.Callback)
elseif Keybind.Mode == "Hold" then
Keybind:SetState(true)
Keybind.Active = true
end
end
end
)
Library:Connection(
"Keybind_" .. Keybind.Flag .. "_InputEnded",
UserInputService.InputEnded,
function(input, gpe)
if gpe or Listening or not Keybind.Key then
return
end
if Keybind:Matches(input) and Keybind.Mode == "Hold" and Keybind.Active then
Keybind:SetState(false)
Keybind.Active = false
end
end
)
Keybind:Set(Keybind.Default)
Library.Flags[Keybind.Flag] = Keybind
return Keybind
end
Section.Components = Components
Category.Sections[Section.Name] = Section
return Section
end
Category.Components = Components
do --// Connections
Library:Connection(
"PageHandler" .. Category.Name,
Components["CategoryButton"].MouseButton1Down,
function()
Window:SetCategory({
Name = Tab.Name .. "_" .. Category.Name,
Pointer = Category,
Parent = Tab,
})
end
)
Library:Connection(
"CategoryMouseEnter" .. Category.Name,
Components.CategoryButton.MouseEnter,
function()
Globals:Tween(
Components["CategoryStroke"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Color = Library.Theme.AccentedHighlight,
}
)
end
)
Library:Connection(
"CategoryMouseLeave" .. Category.Name,
Components.CategoryButton.MouseLeave,
function()
if Components["CategoryButton"]:GetAttribute("Opened") then
return
end
Globals:Tween(
Components["CategoryStroke"],
TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad),
{
Color = Color3.fromRGB(24, 24, 24),
}
)
end
)
end
table.insert(Tab.CategoryOrder, Category.Name)
Tab.Categories[Category.Name] = Category
return Category
end
Tab.Components = Components
Window.Tabs[TabData.Name] = Tab
return Tab
end
function Window:TabSeperator()
local Components = {}
Components["TabSeparatorHolder"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 1),
Name = "TabSeparatorHolder",
Parent = self.Components["TabsScrollingFrame"],
})
Components["TabSeparatorLine"] = Globals:Instance("Frame", {
AnchorPoint = Vector2.new(0, 0.5),
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 0.5, 0),
Size = UDim2.new(1, -7, 1, 0),
Name = "TabSeparatorLine",
Parent = Components["TabSeparatorHolder"],
})
return Components
end
Window.Components = Components
Library.Window = Window
return Window
end
function Library:Notify(txt, duration, color)
duration = duration or 3
color = color or Color3.fromRGB(63, 201, 176)
local Components = {}
local Padding = 12
local IconSize = 25
local TextPadding = 5
local LabelFontSize = 14
local BottomBufferSize = 4
local TemporaryLabel = Instance.new("TextLabel")
TemporaryLabel.Size = UDim2.new(1, 0, 1, 0)
TemporaryLabel.TextSize = LabelFontSize
TemporaryLabel.Font = Enum.Font.SourceSansBold
TemporaryLabel.Text = txt
TemporaryLabel.TextWrapped = true
TemporaryLabel.Parent = Library.Notifications
TemporaryLabel.Visible = false
task.wait()
local TextBounds = TemporaryLabel.TextBounds
TemporaryLabel:Destroy()
local NotificationHeight = math.max(TextBounds.Y + BottomBufferSize, IconSize)
local NotificationWidth = IconSize + TextBounds.X + TextPadding * 2
local YPosition = 75
for _, NotificationData in ipairs(Library.NotificationList) do
YPosition = YPosition + NotificationData.Height + Padding
end
Components["NewNotification"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(11, 11, 11),
BorderSizePixel = 0,
Position = UDim2.new(0, -NotificationWidth - 20, 0, YPosition),
Size = UDim2.new(0, NotificationWidth, 0, NotificationHeight),
Name = "NewNotification",
Parent = Library.Notifications,
})
Globals:Instance("UICorner", {
CornerRadius = UDim.new(0, 3),
Parent = Components["NewNotification"],
})
Globals:Instance("ImageLabel", {
Image = Library.ShadowImage,
ImageColor3 = color,
ImageTransparency = 0.7,
ScaleType = Enum.ScaleType.Slice,
SliceCenter = Rect.new(49, 49, 450, 450),
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = UDim2.new(1, 30, 1, 30),
ZIndex = 0,
Parent = Components["NewNotification"],
})
Globals:Instance("UIStroke", {
Color = Color3.fromRGB(24, 24, 24),
Parent = Components["NewNotification"],
})
Globals:Instance("TextLabel", {
Font = Enum.Font.SourceSansBold,
Text = txt,
TextColor3 = Color3.new(1, 1, 1),
TextSize = LabelFontSize,
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundTransparency = 1,
Position = UDim2.new(0, IconSize + TextPadding, 0, 0),
Size = UDim2.new(1, -IconSize - TextPadding * 2, 1, 0),
TextWrapped = true,
Parent = Components["NewNotification"],
})
Globals:Instance("ImageLabel", {
Image = Library.LogoImage,
ImageColor3 = color,
BackgroundTransparency = 1,
Size = UDim2.new(0, IconSize, 0, IconSize),
Position = UDim2.new(0, 0, 0.5, -IconSize / 2),
Parent = Components["NewNotification"],
})
table.insert(Library.NotificationList, {
Frame = Components["NewNotification"],
Height = NotificationHeight,
})
Globals:Tween(
Components["NewNotification"],
TweenInfo.new(0.35, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
{
Position = UDim2.new(0, 10, 0, YPosition),
}
)
local CurrentY = 75
for _, NotificationData in ipairs(Library.NotificationList) do
Globals:Tween(NotificationData.Frame, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
Position = UDim2.new(0, 10, 0, CurrentY),
})
CurrentY = CurrentY + NotificationData.Height + Padding
end
task.delay(duration, function()
for _, child in pairs(Components["NewNotification"]:GetChildren()) do
if child:IsA("TextLabel") then
Globals:Tween(child, TweenInfo.new(0.2, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), { TextTransparency = 1 })
elseif child:IsA("ImageLabel") then
Globals:Tween(child, TweenInfo.new(0.2, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), { ImageTransparency = 1 })
elseif child:IsA("UIStroke") then
Globals:Tween(child, TweenInfo.new(0.2, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), { Transparency = 1 })
end
end
task.wait(0.2)
local IterationToRemove
for i, NotificationData in ipairs(Library.NotificationList) do
if NotificationData.Frame == Components["NewNotification"] then
IterationToRemove = i
break
end
end
if IterationToRemove then
Library.NotificationList[IterationToRemove].Frame:Destroy()
table.remove(Library.NotificationList, IterationToRemove)
end
CurrentY = 75
for _, NotificationData in ipairs(Library.NotificationList) do
Globals:Tween(
NotificationData.Frame,
TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
{
Position = UDim2.new(0, 10, 0, CurrentY),
}
)
CurrentY = CurrentY + NotificationData.Height + Padding
end
end)
end
end)()
Log("Loaded UI library.")
--#endregion Library
--#region Threads
Threads.__index = Threads
Threads.Run = LPH_NO_VIRTUALIZE(function(self)
local Success, Error = pcall(self.Function)
if not Success and Error then
Log('Error: ' .. tostring(Error));
Library:Notify("Error occured. "..tostring(Error), 1, Color3.fromRGB(255, 0, 0))
end;
end)
Threads.New = LPH_NO_VIRTUALIZE(function(Name, Function, Priority)
local Thread = setmetatable({
Name = Name,
Function = Function,
Priority = Priority,
}, Threads)
if not Priority then
Priority = "Render"
end
Thread.Priority = Priority
local Index = #Threads[Priority] + 1
Threads[Priority][Index] = Thread
return Threads[Priority][Index]
end)
Log("Loaded threads library.")
--#endregion Threads
--#region Math
Math.RoundToIncrement = LPH_NO_VIRTUALIZE(function(value, increment)
return math.round(value / increment) * increment
end)
Math.FloorVector = LPH_NO_VIRTUALIZE(function(Vector)
if typeof(Vector) == "Vector2" then
return Vector2.new(math.floor(Vector.X), math.floor(Vector.Y))
else
return Vector3.new(math.floor(Vector.X), math.floor(Vector.Y), math.floor(Vector.Z))
end
end)
Log("Loaded math library.")
--#endregion Math
--#region Visuals
Visuals.Hitmarkers = {};
--// FOV
Visuals.FOVSpace = Globals:Instance("ScreenGui", {
Parent = CoreGui,
IgnoreGuiInset = true;
});
Visuals.FOVOutline = Globals:Instance("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
Position = UDim2.new(0.5, 0, 0.5, 0),
BackgroundTransparency = 1,
ZIndex = 9999,
Size = UDim2.new(0, 500, 0, 500),
Visible = true,
Parent = Visuals.FOVSpace,
Visible = false,
});
Visuals.FOVCircle = Globals:Instance("Frame", {
BackgroundTransparency = 1,
ZIndex = 9999,
Position = UDim2.new(0, -1, 0, -1),
Size = UDim2.new(1, 2, 1, 2),
Visible = true,
Parent = Visuals.FOVOutline,
BackgroundColor3 = Library.Theme.Accent,
});
Visuals.FOVInline = Globals:Instance("Frame", {
Size = UDim2.new(1, -2, 1, -2),
Position = UDim2.new(0, 1, 0, 1),
BackgroundTransparency = 0.8,
Parent = Visuals.FOVCircle,
BackgroundColor3 = Library.Theme.Accent,
});
Visuals.FOVCircleCorner = Globals:Instance("UICorner", {
CornerRadius = UDim.new(1, 0),
Parent = Visuals.FOVCircle,
});
Visuals.FOVInlineCorner = Globals:Instance("UICorner", {
CornerRadius = UDim.new(1, 0),
Parent = Visuals.FOVInline
});
Visuals.FOVCircleStroke = Globals:Instance("UIStroke", {
Parent = Visuals.FOVCircle,
Thickness = 3,
Color = Library.Theme.Accent
});
Visuals.FOVOutlineStroke = Globals:Instance("UIStroke", {
Thickness = 5,
Color = Color3.new(),
Parent = Visuals.FOVOutline
});
Visuals.FOVOutlineCorner = Globals:Instance("UICorner", {
CornerRadius = UDim.new(1, 0),
Parent = Visuals.FOVOutline
});
--
--// Crosshair
Visuals.CrosshairHolder = Globals:Instance("Frame", {
Position = UDim2.new(0, Camera.ViewportSize.X /2 , 0, Camera.ViewportSize.Y / 2),
Size = UDim2.new(0, 100, 0, 100),
BackgroundTransparency = 1,
Parent = Library.HeadsUp,
AnchorPoint = Vector2.new(0.5, 0.5),
Visible = false,
});
Visuals.CrosshairTop = Globals:Instance("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = Color3.fromRGB(255,255, 255),
BorderColor3 = Color3.fromRGB(),
BorderMode = Enum.BorderMode.Middle,
Position = UDim2.new(0.5, 0, 0.5, -20),
Size = UDim2.new(0, 2, 0, 20),
Parent = Visuals.CrosshairHolder
});
Visuals.CrosshairTopGradient = Globals:Instance("UIGradient", {
Color = ColorSequence.new{
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255, 255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 0, 0))
},
Rotation = -90,
Transparency = NumberSequence.new{
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(0.694513738155365, 0.5249999761581421),
NumberSequenceKeypoint.new(0.8503741025924683, 0.78125),
NumberSequenceKeypoint.new(1, 0.862500011920929)
},
Parent = Visuals.CrosshairTop
});
Visuals.CrosshairBottom = Globals:Instance("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderMode = Enum.BorderMode.Middle,
Position = UDim2.new(0.5, 0, 0.5, 20),
Size = UDim2.new(0, 2, 0, 20),
Parent = Visuals.CrosshairHolder,
Name = "Bottom"
})
Visuals.CrosshairBottomGradient = Globals:Instance("UIGradient", {
Color = ColorSequence.new{
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255, 255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 0, 0))
},
Rotation = 90,
Transparency = NumberSequence.new{
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(0.6945, 0.525),
NumberSequenceKeypoint.new(0.8504, 0.78125),
NumberSequenceKeypoint.new(1, 0.8625)
},
Parent = Visuals.CrosshairBottom
});
Visuals.CrosshairLeft = Globals:Instance("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderMode = Enum.BorderMode.Middle,
Position = UDim2.new(0.5, -20, 0.5, 0),
Size = UDim2.new(0, 20, 0, 2),
Parent = Visuals.CrosshairHolder,
Name = "Left"
})
Visuals.CrosshairLeftGradient = Globals:Instance("UIGradient", {
Color = ColorSequence.new{
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255, 255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 0, 0))
},
Rotation = 180,
Transparency = NumberSequence.new{
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(0.6945, 0.525),
NumberSequenceKeypoint.new(0.8504, 0.78125),
NumberSequenceKeypoint.new(1, 0.8625)
},
Parent = Visuals.CrosshairLeft
});
Visuals.CrosshairRight = Globals:Instance("Frame", {
Name = "Right",
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderMode = Enum.BorderMode.Middle,
Position = UDim2.new(0.5, 20, 0.5, 0),
Size = UDim2.new(0, 20, 0, 2),
Parent = Visuals.CrosshairHolder
});
Visuals.CrosshairRightGradient = Globals:Instance("UIGradient", {
Color = ColorSequence.new{
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255, 255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 0, 0))
},
Transparency = NumberSequence.new{
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(0.694513738155365, 0.5249999761581421),
NumberSequenceKeypoint.new(0.8503741025924683, 0.78125),
NumberSequenceKeypoint.new(1, 0.862500011920929)
},
Parent = Visuals.CrosshairRight
});
--
--// ESP
Visuals.MiscSpace = Globals:Instance("ScreenGui", {
Parent = CoreGui,
IgnoreGuiInset = true,
DisplayOrder = 0,
Name = "Misc Space",
});
Visuals.ESPSpace = Globals:Instance("ScreenGui", {
Parent = CoreGui,
IgnoreGuiInset = true,
DisplayOrder = 0,
Name = "ESP Space",
});
Visuals.LOSFrame = Globals:Instance("Frame", {
AnchorPoint = Vector2.new(0.5, 0),
BackgroundTransparency = 1,
Size = UDim2.new(0, 500, 0, 500),
Parent = Visuals.ESPSpace,
Position = UDim2.new(0.5, 0, 0, 100)
});
Visuals.LOSLayout = Globals:Instance("UIListLayout", {
Parent = Visuals.LOSFrame,
Padding = UDim.new(0, 3),
});
--
--// Functions
Visuals.CreateHitmarker = LPH_NO_VIRTUALIZE(function(Part, Position)
local Index = #Visuals.Hitmarkers+1
local Hitmarker = Globals:Instance("ImageLabel", {
Image = GetImage("HitmarkerImage");
Size = UDim2.new(0, Library.Flags.HitmarkerSize.Value + 10, 0, Library.Flags.HitmarkerSize.Value + 10);
BackgroundTransparency = 1;
AnchorPoint = Vector2.new(0.5, 0.5);
Parent = Visuals.ESPSpace,
ZIndex = Library.Flags.PrioritizeHitmarkers.Value and 5 or 1,
ImageTransparency = 1,
ImageColor3 = Library.Flags.HitmarkerColor.Value[1];
Visible = true;
});
Visuals.Hitmarkers[Index] = {
Position = Position,
Part = Part,
Hitmarker = Hitmarker;
};
Globals:Tween(Hitmarker, TweenInfo.new(0.25, Enum.EasingStyle.Quad), {
ImageTransparency = 0;
Size = UDim2.new(0, Library.Flags.HitmarkerSize.Value, 0, Library.Flags.HitmarkerSize.Value);
});
if Library.Flags.HitmarkerRandomRotation.Value then
Globals:Tween(Hitmarker, TweenInfo.new(0.25, Enum.EasingStyle.Quad), {
Rotation = math.random(-90, 90)
});
end;
Delay(Library.Flags.HitmarkerTime.Value, function()
local Tween = Globals:Tween(Hitmarker, TweenInfo.new(0.1, Enum.EasingStyle.Quad), {
ImageTransparency = 1;
});
Tween.Completed:Wait()
Hitmarker:Destroy()
Visuals.Hitmarkers[Index] = nil
end)
end);
Visuals.DrawLine = LPH_NO_VIRTUALIZE(function()
local Frame = Drawing.new("Line");
Frame.Visible = false;
Frame.ZIndex = 2;
Frame.Color = Color3.fromRGB(255, 255, 255);
return Frame;
end);
Visuals.DrawOutline = LPH_NO_VIRTUALIZE(function()
local Frame = Drawing.new("Line");
Frame.Visible = false;
Frame.ZIndex = 1;
Frame.Thickness = 3
Frame.Color = Color3.fromRGB(0, 0, 0);
return Frame;
end);
Visuals.IsPartVisible = LPH_NO_VIRTUALIZE(function(Part, Origin)
if not Part then
return nil
end
if not Origin then
Origin = Camera.CFrame.p;
end;
local Direction = (Part.CFrame.p - Origin).Unit * ((Part.CFrame.p - Origin).Magnitude + 10)
local Params = Globals.RaycastParams
local RayResult = Workspace:Raycast(Origin, Direction, Params)
if RayResult and RayResult.Instance and RayResult.Instance:IsDescendantOf(Part.Parent) then
return true
end
return nil
end);
Visuals.GetDistanceFromCenter = LPH_NO_VIRTUALIZE(function(part)
local position = part
if typeof(part) == "Instance" then
position = part.CFrame.p
end
local ScreenPosition, OnScreen = Camera:WorldToViewportPoint(position);
if OnScreen then
local Center = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
return (Center - Vector2.new(ScreenPosition.X, ScreenPosition.Y)).Magnitude
end
return math.huge
end);
--
Log("Loaded visuals library.")
--#endregion Visuals
--#region EntityClass Global
EntityClass.__index = EntityClass
EntityClass.Global.__index = EntityClass.Global
EntityClass.Main.__index = EntityClass.Main
EntityClass.Main.Functions.__index = EntityClass.Main.Functions
EntityClass.Global.FindVisiblePosition = LPH_NO_VIRTUALIZE(function(Origin, Destination)
local OriginalDestination = Destination
if typeof(Origin) ~= "Vector3" then Origin = Origin.Position end
local CameraCFrame = Camera.CFrame
local ManipulationOffsets = {
CameraCFrame * CFrame.new(3, 0, 0),
CameraCFrame * CFrame.new(-3, 0, 0),
CameraCFrame * CFrame.new(-6, 0, 0),
CameraCFrame * CFrame.new(6, 0, 0),
CameraCFrame * CFrame.new(3, 2, 0),
CameraCFrame * CFrame.new(-3, 2, 0),
CameraCFrame * CFrame.new(-6, 2, 0),
CameraCFrame * CFrame.new(6, 2, 0),
CameraCFrame * CFrame.new(4, 0, 0),
CameraCFrame * CFrame.new(-4, 2, 0),
CameraCFrame * CFrame.new(-4, 0, 0),
CameraCFrame * CFrame.new(4, 2, 0),
CameraCFrame * CFrame.new(7, 0, 0),
CameraCFrame * CFrame.new(-7, 2, 0),
CameraCFrame * CFrame.new(-7, 0, 0),
CameraCFrame * CFrame.new(7, 2, 0),
CameraCFrame * CFrame.new(0.2, 3.9, 0),
CameraCFrame * CFrame.new(1.8, 4.1, 1),
CameraCFrame * CFrame.new(2.1, 4.4, 1.1),
CameraCFrame * CFrame.new(0.15, 5.2, 0.1),
CameraCFrame * CFrame.new(-1.8, 5.4, -0.2),
CameraCFrame * CFrame.new(-2.3, 6.35, -0.4),
CameraCFrame * CFrame.new(0.1, 7.5, 0),
CameraCFrame * CFrame.new(0.1, 8, 0),
CameraCFrame * CFrame.new(0.1, 8, 0),
}
for _, offset in ManipulationOffsets do
local newOrigin = offset.Position
if Visuals.IsPartVisible(Destination, newOrigin) then
return newOrigin
end
end
return nil;
end);
EntityClass.Global.Create = LPH_NO_VIRTUALIZE(function(self, Object, Data)
if typeof(Object) ~= "Instance" then
rconsoleprint(
"corescript",
"invalid argument #2 <instance> expected. Did you index instead of namecall?",
"Type recieved:",
typeof(Object)
)
return
end
if typeof(Data) ~= "table" then
rconsoleprint(
"corescript",
"invalid argument #3 <table> expected. Did you index instead of namecall?",
"Type recieved:",
typeof(Data)
)
return
end
local Entity = setmetatable({
Name = Data.Name or Object.Name,
Character = Data.Character or (Object:IsA("Player") and Object.Character),
DisplayName = Object:IsA("Player") and Object.DisplayName or (Data.Name or Object.Name),
Components = {},
LastOffscreenRefresh = tick(),
LastChamsRefresh = tick(),
LastUpdate = tick(),
Components = EntityClass.Main.Functions.CreateComponents(),
CachedArmor = {},
CachedItem = nil,
CachedAttachments = {},
ItemHistory = {},
Class = Data.Class,
ClassType = Data.ClassType,
Pointer = Object,
Adornments = {},
}, EntityClass.Main.Functions)
EntityClass.Main.Cache[Object] = Entity
return Entity
end);
Log("Loaded EntityClass Global library.")
--#endregion EntityClass Global
--#region EntityClass Main
EntityClass.FlagProperties = {
Size = UDim2.new(0, 200, 0, 7),
FontFace = Fonts.SmallestPixel,
TextSize = 8,
BackgroundTransparency = 1,
TextTransparency = 1,
TextStrokeTransparency = 1,
Text = "",
ClipsDescendants = false,
TextXAlignment = Enum.TextXAlignment.Left;
TextYAlignment = Enum.TextYAlignment.Top;
};
EntityClass.Main.Functions.__index = EntityClass.Main.Functions;
EntityClass.Main.Functions.Remove = LPH_NO_VIRTUALIZE(function(self, Instance)
local ObjectPointer = EntityClass.Main.Cache[Instance];
if not ObjectPointer then return end;
ObjectPointer.Components.LookAngle:Remove();
ObjectPointer.Components.LookAngleOutline:Remove();
for Index, Value in ObjectPointer.Components do
if Index == "Corners" or Index == "LookAngle" or Index == "Skeleton" or Index == "LookAngleOutline" then continue end;
Value:Destroy();
end;
for Index, Value in ObjectPointer.Components.Corners do
Value:Destroy();
end;
for Index, Value in ObjectPointer.Components.Skeleton do
Value:Remove();
end;
EntityClass.Main.Cache[Instance] = nil;
end);
EntityClass.Main.Functions.ApplyArmorVisuals = LPH_NO_VIRTUALIZE(function(self, Instance)
if Instance:IsA("MeshPart") and Instance.Transparency ~= 1 then
Instance:SetAttribute("OriginalMaterial", Instance.Material);
Instance:SetAttribute("OriginalColor", Instance.Color);
Instance:SetAttribute("OriginalTextureId", Instance.TextureID);
Instance:SetAttribute("OriginalReflectance", Instance.Reflectance)
Instance.CanQuery = false;
if Library.Flags["Sandbox"..self.ClassType] and Library.Flags["Sandbox"..self.ClassType].Value then
Instance.Color = Library.Flags[self.ClassType.."ArmorColor"].Value[1];
Instance.Reflectance = Library.Flags[self.ClassType.."ArmorReflectance"].Value * Library.Flags[self.ClassType.."ArmorReflectanceMul"].Value;
Instance.Material = Library.Flags[self.ClassType.."ArmorMaterial"].Value;
if Instance:IsA("MeshPart") and Instance.Material == Enum.Material.ForceField then
Instance.TextureID = "rbxassetid://10913193650";
elseif Instance:IsA("MeshPart") and Instance.Material ~= Enum.Material.ForceField then
Instance.TextureID = "";
end;
else
Instance.Color = Instance:GetAttribute("OriginalColor");
Instance.Material = Instance:GetAttribute("OriginalMaterial");
Instance.Reflectance = Instance:GetAttribute("OriginalReflectance")
if Instance:IsA("MeshPart") then
Instance.TextureID = Instance:GetAttribute("OriginalTextureId")
end;
end;
end;
end);
EntityClass.Main.Functions.OnCharacterAdded = LPH_NO_VIRTUALIZE(function(self, Character)
self.CachedArmor = {}
self.CachedItem = nil;
if not Character then
rconsoleprint("invalid argument #1, <Instance> expected, got", typeof(Character))
return
end;
for Index, Child in next, Character:GetChildren() do
if table.find(EntityClass.ItemList, Child.Name) then
self.CachedItem = Child;
end;
if Child.Name:find("Armor") then
for Index, MeshPart in Child:GetChildren() do
self:ApplyArmorVisuals(MeshPart)
end;
if Globals.ArmorNames[Child.Name] then
local Info = Globals.ArmorNames[Child.Name]
self.CachedArmor[Child] = {
Name = Info.Name,
Skin = Info.Skin
};
else
local ModelName = Child.Name;
local ArmorSplit = ModelName:split("/");
if not ArmorSplit then return end;
local ArmorFormat = ArmorSplit[1]
local Skin = ArmorSplit[2];
local ArmorFormatSplit = ArmorFormat:split("_");
local ArmorId = ArmorFormatSplit[2];
ArmorId = tonumber(ArmorId)
local ArmorInfo = Globals.ArmorIds[ArmorId]
if ArmorInfo then
self.CachedArmor[Child] = {
Name = ArmorInfo.Name,
Skin = Skin
};
Globals.ArmorNames[Child.Name] = {
Name = ArmorInfo.Name,
Skin = Skin
};
end;
end;
end;
end;
Character.ChildAdded:Connect(function(Child)
task.wait(0.3);
if Child and table.find(EntityClass.ItemList, Child.Name) then
self.CachedItem = Child;
end;
if Child and Child.Name:find("Armor") then
for Index, MeshPart in Child:GetChildren() do
self:ApplyArmorVisuals(MeshPart)
end;
if Globals.ArmorNames[Child.Name] then
local Info = Globals.ArmorNames[Child.Name]
self.CachedArmor[Child] = {
Name = Info.Name,
Skin = Info.Skin
};
else
local ModelName = Child.Name;
local ArmorSplit = ModelName:split("/");
if not ArmorSplit then return end;
local ArmorFormat = ArmorSplit[1]
local Skin = ArmorSplit[2];
local ArmorFormatSplit = ArmorFormat:split("_");
local ArmorId = ArmorFormatSplit[2];
ArmorId = tonumber(ArmorId)
local ArmorInfo = Globals.ArmorIds[ArmorId]
if (not ArmorInfo) then
return;
end;
self.CachedArmor[Child] = {
Name = ArmorInfo.Name,
Skin = Skin
};
Globals.ArmorNames[Child.Name] = {
Name = ArmorInfo.Name,
Skin = Skin
};
end;
end;
end);
Character.ChildRemoved:Connect(function(Child)
if self.CachedItem == Child then
self.CachedItem = nil;
end;
if self.CachedArmor[Child] then
self.CachedArmor[Child] = nil;
end;
end)
end);
EntityClass.Main.Functions.CreateComponents = LPH_NO_VIRTUALIZE(function(self)
local Components = {}
--// Box Outline
Components.BoxOutline = Globals:Instance("Frame", {
Parent = Visuals.ESPSpace,
Visible = false,
BackgroundTransparency = 1,
ZIndex = 2,
})
Components.BoxOutlineStroke = Globals:Instance("UIStroke", {
Parent = Components.BoxOutline,
Thickness = 3,
Color = Color3.fromRGB(0, 0, 0),
ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
LineJoinMode = Enum.LineJoinMode.Miter,
})
--
--// Box Inline
Components.BoxInline = Globals:Instance("Frame", {
Parent = Components.BoxOutline,
Visible = true,
BackgroundTransparency = 1,
Position = UDim2.new(0, -1, 0, -1),
Size = UDim2.new(1, 2, 1, 2),
ZIndex = 2
})
Components.BoxInlineStroke = Globals:Instance("UIStroke", {
Parent = Components.BoxInline,
LineJoinMode = Enum.LineJoinMode.Miter,
Color = Color3.fromRGB(255, 255, 255)
})
--
--// Corners
Components.FakeCornerBox = Globals:Instance("Frame", {
Parent = Components.BoxOutline,
BackgroundTransparency = 1,
Size = UDim2.new(1, 4, 1, 2),
Position = UDim2.new(0, -2, 0, -1),
});
local Corners = {}
local CornerWidth = 0.3
local CornerHeight = 0.3
local Thickness = 1
local Offset = -Thickness
--// Inline
Corners[1] = Instance.new("Frame")
Corners[1].Parent = Components.FakeCornerBox
Corners[1].Size = UDim2.new(CornerWidth, 0, 0, Thickness)
Corners[1].Position = UDim2.new(0, 0, 0, Offset)
Corners[1].BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Corners[1].BorderSizePixel = 0
Corners[1].Visible = false
Corners[2] = Instance.new("Frame")
Corners[2].Parent = Components.FakeCornerBox
Corners[2].Size = UDim2.new(0, Thickness, CornerHeight, 0)
Corners[2].Position = UDim2.new(0, 0, 0, Offset)
Corners[2].BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Corners[2].BorderSizePixel = 0
Corners[3] = Instance.new("Frame")
Corners[3].Parent = Components.FakeCornerBox
Corners[3].Size = UDim2.new(CornerWidth, 0, 0, Thickness)
Corners[3].Position = UDim2.new(1 - CornerWidth, 0, 0, Offset)
Corners[3].BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Corners[3].BorderSizePixel = 0
Corners[4] = Instance.new("Frame")
Corners[4].Parent = Components.FakeCornerBox
Corners[4].Size = UDim2.new(0, Thickness, CornerHeight, 0)
Corners[4].Position = UDim2.new(1, -Thickness, 0, Offset)
Corners[4].BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Corners[4].BorderSizePixel = 0
Corners[5] = Instance.new("Frame")
Corners[5].Parent = Components.FakeCornerBox
Corners[5].Size = UDim2.new(0, Thickness, CornerHeight, 0)
Corners[5].Position = UDim2.new(0, 0, 1 - CornerHeight, 0)
Corners[5].BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Corners[5].BorderSizePixel = 0
Corners[6] = Instance.new("Frame")
Corners[6].Parent = Components.FakeCornerBox
Corners[6].Size = UDim2.new(CornerWidth, 0, 0, Thickness)
Corners[6].Position = UDim2.new(0, 0, 1, 0)
Corners[6].BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Corners[6].BorderSizePixel = 0
Corners[7] = Instance.new("Frame")
Corners[7].Parent = Components.FakeCornerBox
Corners[7].Size = UDim2.new(0, Thickness, CornerHeight, 0)
Corners[7].Position = UDim2.new(1, -Thickness, 1 - CornerHeight, 0)
Corners[7].BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Corners[7].BorderSizePixel = 0
Corners[8] = Instance.new("Frame")
Corners[8].Parent = Components.FakeCornerBox
Corners[8].Size = UDim2.new(CornerWidth, 0, 0, Thickness)
Corners[8].Position = UDim2.new(1 - CornerWidth, 0, 1, 0)
Corners[8].BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Corners[8].BorderSizePixel = 0
--// Outline (same layout, just with BorderSizePixel = 1)
for i = 9, 16 do
local base = Corners[i - 8]:Clone()
base.Parent = Components.FakeCornerBox
base.BorderSizePixel = 1
base.BorderColor3 = Color3.fromRGB(0, 0, 0)
Corners[i] = base
end
Components.Corners = Corners
--
--// Healthbar
Components["Healthbar"] = Globals:Instance("Frame", {
Parent = Components.BoxOutline,
Size = UDim2.new(0, 1, 1, 4),
Position = UDim2.new(0, -6, 0, -2),
BackgroundColor3 = Color3.fromRGB(255, 0, 0),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 1,
Visible = false
});
Components["HealthbarBlackout"] = Globals:Instance("Frame", {
BackgroundColor3 = Color3.fromRGB(),
Size = UDim2.new(0, 0, 0, 0),
Parent = Components.Healthbar;
BorderSizePixel = 0,
Visible = false
});
Components.Health = Globals:Instance("TextLabel", {
BackgroundTransparency = 1,
Parent = Components.HealthbarBlackout,
Visible = false,
FontFace = EntityClass.Font,
TextSize = EntityClass.FontSize,
TextXAlignment = Enum.TextXAlignment.Right,
TextYAlignment = Enum.TextYAlignment.Top,
TextColor3 = Color3.fromRGB(255, 255, 255),
Text = "",
Size = UDim2.new(0, 20, 0, 12),
Position = UDim2.new(-1, -23, 0, -2)
});
Components.HealthStroke = Globals.ApplyTextStroke(Components.Health);
--
--// Name
Components.Name = Globals:Instance("TextLabel", {
Parent = Components.BoxOutline,
FontFace = EntityClass.Font,
TextSize = EntityClass.FontSize,
BackgroundTransparency = 1,
TextColor3 = Color3.fromRGB(255, 255, 255),
Size = UDim2.new(1, 0, 0, 14),
Position = UDim2.new(0, 0, 0, -17),
TextStrokeTransparency = 1,
Visible = false,
});
Components.NameStroke = Globals.ApplyTextStroke(Components.Name)
--
--// Weapon
Components.Distance = Globals:Instance("TextLabel", {
Parent = Components.BoxOutline,
ZIndex = 1,
TextSize = EntityClass.FontSize,
Size = UDim2.new(1, 0, 0, 14),
Position = UDim2.new(0, 0, 1, 6),
TextStrokeTransparency = 1,
Visible = false,
Text = "",
BackgroundTransparency = 1,
FontFace = EntityClass.Font,
TextColor3 = Color3.fromRGB(255, 255, 255),
});
Components.DistanceStroke = Globals.ApplyTextStroke(Components.Distance)
--
--// Weapon
Components.Weapon = Globals:Instance("TextLabel", {
Parent = Components.BoxOutline,
ZIndex = 1,
TextSize = EntityClass.FontSize,
Size = UDim2.new(1, 0, 0, 14),
Position = UDim2.new(0, 0, 1, 6),
TextStrokeTransparency = 1,
Visible = false,
Text = "",
BackgroundTransparency = 1,
FontFace = EntityClass.Font,
TextColor3 = Color3.fromRGB(255, 255, 255),
});
Components.WeaponStroke = Globals.ApplyTextStroke(Components.Weapon)
--
--// Weapon Image
Components.WeaponImage = Globals:Instance("ImageLabel", {
Parent = Components.BoxOutline,
ZIndex = 1,
Image = GetImage("Salvaged AK47"),
AnchorPoint = Vector2.new(0.5, 0),
Size = UDim2.new(0, 25, 0, 25),
ScaleType = Enum.ScaleType.Fit,
ImageColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1
})
--
--// Flags Container
Components.FlagsContainer = Globals:Instance("Frame", {
Parent = Components.BoxOutline,
ClipsDescendants = true,
Size = UDim2.new(0, 150, 1, 12),
Position = UDim2.new(1, 2, 0, -6),
BackgroundTransparency = 1,
});
Components.FlagsListLayout = Globals:Instance("UIListLayout", {
Padding = UDim.new(0, 0),
SortOrder = Enum.SortOrder.LayoutOrder,
Parent = Components.FlagsContainer,
});
Components.FlagsPadding = Globals:Instance("UIPadding", {
PaddingTop = UDim.new(0, 2),
Parent = Components.FlagsContainer,
PaddingLeft = UDim.new(0, 2),
})
--
--// Flags
for FlagName, FlagData in EntityClass.Flags do
Components["Flag_"..FlagName] = Globals:Instance("TextLabel", EntityClass.FlagProperties);
Components["Flag_"..FlagName].Parent = Components.FlagsContainer
Components["FlagStroke_"..FlagName] = Globals.ApplyTextStroke(Components["Flag_"..FlagName]);
Components["FlagStroke_"..FlagName].Transparency = 1;
end;
--
--// Offscreen
Components.OffscreenArrow = Globals:Instance("TextLabel", {
Text = "?",
TextSize = 14,
BackgroundTransparency = 1,
Size = UDim2.new(0, 20, 0, 20),
Visible = false,
Parent = Visuals.ESPSpace
});
Components.ArrowStroke = Globals.ApplyTextStroke(Components.OffscreenArrow)
--
--// LOSIndicator
Components.LOSIndicator = Globals:Instance("TextLabel", {
Parent = Visuals.LOSFrame,
FontFace = Font.new("rbxasset://fonts/families/GothamSSm.json", Enum.FontWeight.Bold),
TextSize = 15,
BackgroundTransparency = 1,
TextColor3 = Color3.fromRGB(255, 255, 255),
Size = UDim2.new(1, 0, 0, 0),
Position = UDim2.new(0, 0, 0, -18),
TextStrokeTransparency = 1,
TextTransparency = 1,
Visible = false,
TextYAlignment = Enum.TextYAlignment.Top;
});
Components.LOSStroke = Globals.ApplyTextStroke(Components.LOSIndicator);
Components.LOSStroke.Transparency = 1;
--
--// LookAngle
Components["LookAngle"] = Visuals.DrawLine();
Components["LookAngleOutline"] = Visuals.DrawOutline();
--
--// Skeleton
Components["Skeleton"] = {
Main = Visuals.DrawLine();
RL_line = Visuals.DrawLine();
LL_line = Visuals.DrawLine();
RightFoot = Visuals.DrawLine();
LeftFoot = Visuals.DrawLine();
LeftArm = Visuals.DrawLine();
RightArm = Visuals.DrawLine();
RightElbow = Visuals.DrawLine();
LeftElbow = Visuals.DrawLine();
Hips = Visuals.DrawLine();
Shoulders = Visuals.DrawLine();
MainOutline = Visuals.DrawOutline();
RL_lineOutline = Visuals.DrawOutline();
LL_lineOutline = Visuals.DrawOutline();
RightFootOutline = Visuals.DrawOutline();
LeftFootOutline = Visuals.DrawOutline();
LeftArmOutline = Visuals.DrawOutline();
RightArmOutline = Visuals.DrawOutline();
RightElbowOutline = Visuals.DrawOutline();
LeftElbowOutline = Visuals.DrawOutline();
HipsOutline = Visuals.DrawOutline();
ShouldersOutline = Visuals.DrawOutline();
};
--
return Components
end);
EntityClass.Main.Functions.GetBoxSize = LPH_NO_VIRTUALIZE(function(self)
local Character = self.Character
local Root = self.Root
local CameraPosition = Camera.CFrame.Position
if not Character or not Root then
return { Visible = false, OnScreen = false, Root = nil }
end
if (CameraPosition - Root.Position).Magnitude > 2000 then
return { Visible = false, OnScreen = false, Root = Root }
end
local MaxWidth, MaxHeight, MaxDepth = 10, 20, 10
local BoundingPosition, BoundingSize = self:GetBoundingBox(Character, Root.CFrame)
local HalfSize = BoundingSize / 2
local ClampedSize = Vector3.new(
math.min(HalfSize.X, MaxWidth / 2) * 2,
math.min(HalfSize.Y, MaxHeight / 2) * 2,
math.min(HalfSize.Z, MaxDepth / 2) * 2
)
local CornerOffsets = {
Vector3.new( ClampedSize.X/2, ClampedSize.Y/2, ClampedSize.Z/2),
Vector3.new( ClampedSize.X/2, ClampedSize.Y/2, -ClampedSize.Z/2),
Vector3.new( ClampedSize.X/2, -ClampedSize.Y/2, ClampedSize.Z/2),
Vector3.new( ClampedSize.X/2, -ClampedSize.Y/2, -ClampedSize.Z/2),
Vector3.new(-ClampedSize.X/2, ClampedSize.Y/2, ClampedSize.Z/2),
Vector3.new(-ClampedSize.X/2, ClampedSize.Y/2, -ClampedSize.Z/2),
Vector3.new(-ClampedSize.X/2, -ClampedSize.Y/2, ClampedSize.Z/2),
Vector3.new(-ClampedSize.X/2, -ClampedSize.Y/2, -ClampedSize.Z/2),
}
local MinX, MinY = math.huge, math.huge
local MaxX, MaxY = -math.huge, -math.huge
local OnScreenCount = 0
local WorldToViewportPoint = Camera.WorldToViewportPoint
for _, Offset in ipairs(CornerOffsets) do
local WorldCorner = BoundingPosition:PointToWorldSpace(Offset)
local ScreenPos, OnScreen = WorldToViewportPoint(Camera, WorldCorner)
if OnScreen then
OnScreenCount += 1
MinX = math.min(MinX, ScreenPos.X)
MinY = math.min(MinY, ScreenPos.Y)
MaxX = math.max(MaxX, ScreenPos.X)
MaxY = math.max(MaxY, ScreenPos.Y)
end
end
if OnScreenCount == 0 and Character:FindFirstChild("Head") then
local Visible = Visuals.IsPartVisible(Character.Head)
return {
Root = Root,
OnScreen = false,
RootPosition = Root.Position,
Visible = Visible,
VisiblePart = Visible and Character.Head or nil,
}
end
local VisiblePart = nil
local PartsToCheck = {
Character:FindFirstChild("HumanoidRootPart"),
Character:FindFirstChild("RightLowerLeg"),
Character:FindFirstChild("LeftLowerLeg"),
Character:FindFirstChild("RightUpperArm"),
Character:FindFirstChild("LeftUpperArm"),
}
for _, Part in ipairs(PartsToCheck) do
if Part and Part:IsA("BasePart") and Visuals.IsPartVisible(Part) then
VisiblePart = Part
break
end
end
local Width = MaxX - MinX
local Height = MaxY - MinY
local Size = Math.FloorVector(Vector2.new(Width, Height))
local Position = Math.FloorVector(Vector2.new(MinX, MinY))
local Center2D = Vector2.new(Position.X + Size.X / 2, Position.Y + Size.Y / 2)
return {
Visible = VisiblePart ~= nil,
VisiblePart = VisiblePart,
Root = Root,
RootPosition = Root.Position,
Height = Height,
Width = Width,
Size = Size,
Position = Position,
Center2D = Center2D,
OnScreen = OnScreenCount > 0,
}
end);
EntityClass.Main.Functions.GetBoundingBox = LPH_NO_VIRTUALIZE(function(self, Model, Orientation)
local Parts = typeof(Model) == "Instance" and Model:GetChildren() or Model
Orientation = Orientation or CFrame.new()
local Inf = math.huge
local MinX, MinY, MinZ = Inf, Inf, Inf
local MaxX, MaxY, MaxZ = -Inf, -Inf, -Inf
for _, Part in ipairs(Parts) do
if Part:IsA("BasePart") then
local Cf = Orientation:ToObjectSpace(Part.CFrame)
local Sx, Sy, Sz = Part.Size.X, Part.Size.Y, Part.Size.Z
local X, Y, Z, R00, R01, R02, R10, R11, R12, R20, R21, R22 = Cf:components()
local Wsx = 0.5 * (math.abs(R00) * Sx + math.abs(R01) * Sy + math.abs(R02) * Sz)
local Wsy = 0.5 * (math.abs(R10) * Sx + math.abs(R11) * Sy + math.abs(R12) * Sz)
local Wsz = 0.5 * (math.abs(R20) * Sx + math.abs(R21) * Sy + math.abs(R22) * Sz)
MinX = math.min(MinX, X - Wsx)
MinY = math.min(MinY, Y - Wsy)
MinZ = math.min(MinZ, Z - Wsz)
MaxX = math.max(MaxX, X + Wsx)
MaxY = math.max(MaxY, Y + Wsy)
MaxZ = math.max(MaxZ, Z + Wsz)
end
end
local MinVec = Vector3.new(MinX, MinY, MinZ)
local MaxVec = Vector3.new(MaxX, MaxY, MaxZ)
local Middle = (MaxVec + MinVec) / 2
local Cf = Orientation - Orientation.Position + Orientation:PointToWorldSpace(Middle)
local Size = MaxVec - MinVec
return Cf, Size
end);
EntityClass.Main.Functions.GetDistance = LPH_NO_VIRTUALIZE(function(self)
local root = self.Root
if not root then
return 9e9
end
return math.floor((root.Position - Camera.CFrame.Position).Magnitude)
end);
EntityClass.Main.Functions.GetHealth = LPH_NO_VIRTUALIZE(function(self)
if (self.Class == "Player" or self.Class == "AI") and self.Character then
if self.Character.Name == "BTR" then
return self.Character:GetAttribute("Health"), self.Character:GetAttribute("MaxHealth")
end
local Humanoid = self.Humanoid
if not Humanoid then
return 0, 100
end
return Humanoid.Health, Humanoid.MaxHealth
end
return 0, 100
end);
EntityClass.Main.Functions.GetRoot = LPH_NO_VIRTUALIZE(function(self)
local character = self.Character
if not character then
return
end
local Humanoid = character:FindFirstChildOfClass("Humanoid")
if Humanoid then
self.Humanoid = Humanoid
end
if self.Class == "Player" or self.Class == "AI" then
return Humanoid and Humanoid.RootPart or character:FindFirstChild("HumanoidRootPart")
end
end);
EntityClass.Main.Functions.GetCharacter = LPH_NO_VIRTUALIZE(function(self)
if self.Class == "AI" then
return self.Pointer
end
if self.Class == "Player" then
return self.Pointer.Character
end
end);
EntityClass.Main.Functions.ProjectSkeletonLine = LPH_NO_VIRTUALIZE(function(self, part, offset)
local pos = part.Position + (offset or Vector3.zero)
local screenPos = Camera:WorldToViewportPoint(pos)
return Math.FloorVector(Vector2.new(screenPos.X, screenPos.Y))
end);
EntityClass.Main.Functions.SetSkeletonLine = LPH_NO_VIRTUALIZE(function(self, name, from, to, transparency, color)
local line = self.Components.Skeleton[name]
if line then
line.Visible = true
line.From = from
line.To = to
line.Color = color
line.Transparency = 1 - transparency
end
local outline = self.Components.Skeleton[name .. "Outline"]
if outline then
outline.Visible = true
outline.From = from
outline.To = to
outline.Transparency = 1 - transparency
end
end);
EntityClass.Main.Functions.SetSkeletonsInvisible = LPH_NO_VIRTUALIZE(function(self)
if self.Components.Skeleton.RL_line.Visible then
for _, Line in self.Components.Skeleton do
Line.Visible = false;
end;
end;
end);
EntityClass.Main.Functions.Update = LPH_NO_VIRTUALIZE(function(self)
self.Character = self:GetCharacter()
self.Root = self:GetRoot()
self.Distance = self:GetDistance()
self.CoreInformation = self:GetBoxSize() or {}
local Components = self.Components
if not self.Root then
Components.LOSIndicator.Visible = false
Components.OffscreenArrow.Visible = false
Components.BoxOutline.Visible = false
Components.LookAngle.Visible = false
Components.LookAngleOutline.Visible = false
self:SetSkeletonsInvisible()
return
end;
local Health, MaxHealth = self:GetHealth()
local CoreInformation = self.CoreInformation
local Visible = CoreInformation.Visible
local ClassType = self.ClassType
local Flags = Library.Flags
local StatusColor = not Visible and Flags[ClassType.."OccludedColor"].Value[1] or Flags[ClassType.."VisibleColor"].Value[1]
if self == EntityClass.TargetData then
StatusColor = Flags.TargetColor.Value[1]
if EntityClass.ManipulatedPlayer == self.Pointer then
StatusColor = Flags.ManipColor.Value[1]
end
end
self.IsDead = Health <= 0.1
local Transparency = self.IsDead and 1 or 0
Globals:Tween(Components.BoxInlineStroke, TweenInfo.new(EntityClass.AnimationSpeed, Enum.EasingStyle.Quad), {
Color = StatusColor
})
Globals:Tween(Components.BoxOutlineStroke, TweenInfo.new(EntityClass.AnimationSpeed + 0.25, Enum.EasingStyle.Quad), {
Transparency = Transparency
})
local ComponentColor = Components.BoxInlineStroke.Color
Transparency = Components.BoxOutlineStroke.Transparency
local BoxCorners = Components.Corners
local BottomBounds = 1
local HasItem = self.CachedItem ~= nil
if Flags.LockOnIndicator.Value and ClassType == "Player" and Flags.PlayerESP.Value then
local ClientHead = Client.Character and Client.Character:FindFirstChild("Head")
local EnemyHead = self.Character and self.Character:FindFirstChild("Head")
if EnemyHead and ClientHead then
local Delta = (ClientHead.Position - EnemyHead.Position)
local Distance = Delta.Magnitude
local Direction = Delta.Unit
local LookVector = EnemyHead.CFrame.LookVector
local DotProduct = LookVector:Dot(Direction)
local CrossProduct = LookVector:Cross(Direction).Magnitude
local Angle = math.deg(math.atan2(CrossProduct, DotProduct))
local MaxAngle = math.clamp(60 - (Distance/10), 15, 60)
local Percentage = math.floor(math.clamp(100 - (Angle/MaxAngle * 100), 0, 100))
local IsLooking = Angle <= MaxAngle
local ThroughWalls = not Visible
local Color = Percentage >= Flags.LockOnRisk.Value and Color3.fromRGB(255, 0, 0) or Color3.fromRGB(255, 255, 255)
if IsLooking and Percentage >= Flags.LockOnThreshold.Value then
Components.LOSIndicator.LayoutOrder = tick()
Components.LOSIndicator.Visible = true
Components.LOSIndicator.Text = string.format(
"%s %s (%d%%) [%d studs]\n",
self.Name,
ThroughWalls and "is looking at you through walls" or "is looking at you",
Percentage,
math.floor(Distance)
)
if not Components.LOSIndicator:GetAttribute("IsTweening") then
Components.LOSIndicator:SetAttribute("IsTweening", true)
local Tween = Globals:Tween(Components.LOSIndicator, TweenInfo.new(EntityClass.AnimationSpeed, Enum.EasingStyle.Quad), {
TextColor3 = Color,
Size = UDim2.new(1, 0, 0, Components.LOSIndicator.TextSize),
TextTransparency = 0
})
Components.LOSStroke.Transparency = Components.LOSIndicator.TextTransparency
Tween.Completed:Connect(function()
Components.LOSIndicator:SetAttribute("IsTweening", false)
end)
end
Components.LOSStroke.Transparency = Components.LOSIndicator.TextTransparency
else
if not Components.LOSIndicator:GetAttribute("IsTweening") then
Components.LOSIndicator:SetAttribute("IsTweening", true)
local Tween = Globals:Tween(Components.LOSIndicator, TweenInfo.new(EntityClass.AnimationSpeed, Enum.EasingStyle.Quad), {
Size = UDim2.new(1, 0, 0, 0),
TextTransparency = 1
})
Tween.Completed:Connect(function()
task.wait(0.1)
Components.LOSIndicator:SetAttribute("IsTweening", false)
Components.LOSIndicator.Visible = false
end)
end
Components.LOSStroke.Transparency = Components.LOSIndicator.TextTransparency
end
end
else
Components.LOSIndicator.Visible = false
end
if CoreInformation.OnScreen and Flags[ClassType.."ESP"].Value then
Components.OffscreenArrow.Visible = false
local CanShowWeapon = ClassType == "Player" and Flags[ClassType.."Weapon"]
local CanShowWeaponImage = ClassType == "Player" and Flags[ClassType.."WeaponImage"]
local TweenProperties = TweenInfo.new(EntityClass.AnimationSpeed, Enum.EasingStyle.Quad)
if tick() - self.LastChamsRefresh > Flags.ChamsRefreshRate.Value then
self.LastChamsRefresh = tick()
for _, Part in self.Character:GetChildren() do
if Part:IsA("Model") and Part.Name:find("Armor") then
for Index, MeshPart in Part:GetChildren() do
self:ApplyArmorVisuals(MeshPart)
end;
end;
if Part:IsA("BasePart") and not EntityClass.IgnoreNames[Part.Name] then
if not self.Adornments[Part] then
local Adornments = {}
local Adornment
for Vis = 1, 2 do
if Part.Name == "Head" then
Adornment = Globals:Instance("CylinderHandleAdornment", {
Name = "",
Adornee = Part,
Parent = Part,
ZIndex = Vis == 1 and 2 or 1,
Height = Vis == 1 and 0.87 or 1.02,
Radius = Vis == 1 and 0.5 or 0.65,
CFrame = CFrame.new(Vector3.new(), Vector3.new(0, 1, 0)),
Visible = false,
AlwaysOnTop = Vis == 1
})
else
local SizeOffset = Vis == 1 and -0.05 or 0.05
Adornment = Globals:Instance("BoxHandleAdornment", {
Name = "",
Adornee = Part,
Parent = Part,
ZIndex = Vis == 1 and 2 or 1,
AlwaysOnTop = Vis == 1,
Size = Part.Size + Vector3.new(SizeOffset, SizeOffset, SizeOffset),
Visible = false
})
end
Adornments[Vis] = Adornment
end
self.Adornments[Part] = Adornments
else
local Adornments = self.Adornments[Part]
if Adornments then
local OccludedColor = Flags[ClassType.."ChamsOccludedColor"].Value[1]
local OccludedTransparency = Flags[ClassType.."ChamsOccludedColor"].Value[2]
local ShouldShow = Flags[ClassType.."Chams"].Value
local GlowChams = Flags[ClassType.."ChamsStyle"].Value == "Glow"
local VisibleColor = Flags[ClassType.."ChamsVisibleColor"].Value[1]
local VisibleTransparency = Flags[ClassType.."ChamsVisibleColor"].Value[2]
Adornments[1].Visible = ShouldShow
Adornments[1].Color3 = OccludedColor
Adornments[1].Transparency = OccludedTransparency
Adornments[2].Visible = ShouldShow
Adornments[2].ZIndex = GlowChams and 9e9 or 1
Adornments[2].AlwaysOnTop = GlowChams
Adornments[2].Color3 = VisibleColor
Adornments[2].Transparency = VisibleTransparency
end
end
end
end
end
Components.BoxOutline.Position = UDim2.new(0, CoreInformation.Position.X, 0, CoreInformation.Position.Y)
Components.BoxOutline.Size = UDim2.new(0, CoreInformation.Size.X, 0, CoreInformation.Size.Y)
Components.BoxOutline.Visible = true
local CanUseSolid = Flags[ClassType.."BoundingBox"].Value and Flags[ClassType.."BoxStyle"].Value == "Solid"
Components.BoxOutlineStroke.Enabled = CanUseSolid
Components.BoxInlineStroke.Enabled = CanUseSolid
ComponentColor = Components.BoxInlineStroke.Color
Components.BoxInlineStroke.Transparency = Transparency
for Index = 1, 16 do
BoxCorners[Index].Visible = Flags[ClassType.."BoundingBox"].Value and Flags[ClassType.."BoxStyle"].Value == "Corner"
if BoxCorners[Index].Visible then
if Index <= 8 then
BoxCorners[Index].ZIndex = 3
BoxCorners[Index].BackgroundColor3 = ComponentColor
end;
BoxCorners[Index].BackgroundTransparency = Transparency
end;
end
if Flags[ClassType.."Healthbar"].Value then
local HealthPercent = Health / MaxHealth
if tostring(HealthPercent) == "nan" then
HealthPercent = 0
end
local CalculatedSize = UDim2.new(1, 0, 1 - HealthPercent, 0)
Components.HealthbarBlackout.Visible = true
Components.Healthbar.Visible = true
Components.Healthbar.BackgroundTransparency = Transparency
Components.HealthbarBlackout.BackgroundTransparency = Transparency
local ShowIfDamaged = Flags[ClassType.."ShowHealthIfDamaged"].Value
local CanShowHealth = not ShowIfDamaged or (ShowIfDamaged and Health < MaxHealth)
if Flags[ClassType.."Health"].Value and CanShowHealth then
Components.Health.Visible = true
Components.Health.Text = tostring(math.floor(HealthPercent * 100))
Components.Health.TextTransparency = Transparency
Components.HealthStroke.Transparency = Transparency
else
Components.Health.Visible = false
end
if Health ~= self.LastHealth then
self.LastHealth = Health
Globals:Tween(Components.HealthbarBlackout, TweenInfo.new(EntityClass.AnimationSpeed, Enum.EasingStyle.Quad), {
Size = CalculatedSize
})
local LerpedColor = Flags[ClassType.."LowerHealthColor"].Value[1]:lerp(Flags[ClassType.."HigherHealthColor"].Value[1], Health / MaxHealth)
Globals:Tween(Components.Healthbar, TweenInfo.new(EntityClass.AnimationSpeed, Enum.EasingStyle.Quad), {
BackgroundColor3 = LerpedColor
})
end
else
Components.Healthbar.Visible = false
end
if Flags[ClassType.."Name"].Value then
Components.Name.Visible = true
Components.NameStroke.Transparency = Transparency
Components.Name.TextTransparency = Transparency
Components.Name.Text = self.Name
Components.Name.TextColor3 = ComponentColor
else
Components.Name.Visible = false
end
if Flags[ClassType.."Distance"].Value then
Components.Distance.Visible = true
Components.DistanceStroke.Transparency = Transparency
Components.Distance.Text = tostring(self.Distance).."s"
Components.Distance.TextColor3 = ComponentColor
Components.Distance.TextTransparency = Transparency
Components.Distance.Position = UDim2.new(0, 0, 1, BottomBounds)
BottomBounds += 8
else
Components.Distance.Visible = false
end
if CanShowWeapon and CanShowWeapon.Value then
Components.Weapon.Visible = true
if HasItem and self.CachedItem then
Components.Weapon.Text = self.CachedItem.Name
end
Components.Weapon.TextColor3 = ComponentColor
if not Components.Weapon:GetAttribute("IsTweening") then
Components.Weapon:SetAttribute("IsTweening", true)
local TargetY = HasItem and BottomBounds or (BottomBounds - 4)
local WeaponTween = Globals:Tween(Components.Weapon, TweenProperties, {
TextTransparency = HasItem and Transparency or 1,
Position = UDim2.new(0, 0, 1, TargetY)
})
Globals:Tween(Components.WeaponStroke, TweenProperties, {
Transparency = HasItem and Transparency or 1
})
WeaponTween.Completed:Connect(function()
Components.Weapon:SetAttribute("IsTweening", false)
end)
end
BottomBounds += 6
else
Components.Weapon.Visible = false
end
if CanShowWeaponImage and CanShowWeaponImage.Value then
if not Components.Weapon.Visible then
BottomBounds -= 4
end
local WeaponImage = (HasItem and self.CachedItem and EntityClass.WeaponImages[self.CachedItem.Name]) or nil
local HasImage = HasItem and WeaponImage ~= nil
Components.WeaponImage.Visible = HasImage
if HasImage then
Components.WeaponImage.Image = WeaponImage
end
if not Components.WeaponImage:GetAttribute("IsTweening") then
Components.WeaponImage:SetAttribute("IsTweening", true)
local TargetY = HasImage and BottomBounds or (BottomBounds - 5)
local ImageTween = Globals:Tween(Components.WeaponImage, TweenProperties, {
ImageTransparency = HasImage and Transparency or 1,
Position = UDim2.new(0.5, 0, 1, TargetY)
})
ImageTween.Completed:Connect(function()
Components.WeaponImage:SetAttribute("IsTweening", false)
end)
end
else
Components.WeaponImage.Visible = false
end
if ClassType == "Player" and Flags[ClassType.."Flags"].Value then
Components.FlagsContainer.Visible = true
local AnimationSpeed = EntityClass.AnimationSpeed
local EasingStyle = Enum.EasingStyle.Quad
local TweenInfo = TweenInfo.new(AnimationSpeed, EasingStyle)
for FlagName, FlagData in EntityClass.Flags do
local ShouldShow = FlagData.Allow(self)
local Flag = Components["Flag_"..FlagName]
local FlagStroke = Components["FlagStroke_"..FlagName]
if not Flag then
Flag = Globals:Instance("TextLabel", EntityClass.FlagProperties)
Flag.Parent = Components.FlagsContainer
FlagStroke = Globals.ApplyTextStroke(Flag)
FlagStroke.Transparency = 1
Components["Flag_"..FlagName] = Flag
Components["FlagStroke_"..FlagName] = FlagStroke
end
if Flag then
local Text = FlagData.Text(self) or ""
Flag.TextColor3 = FlagData.Color and FlagData.Color(self) or Flags[FlagName.."FlagColor"].Value[1]
Flag.Text = " "..Text
if not Flag:GetAttribute("IsTweening") then
Flag:SetAttribute("IsTweening", true)
if ShouldShow then
Flag.Visible = true
Flag.LayoutOrder = tick()
end
local FlagTween = Globals:Tween(Flag, TweenInfo, {
TextTransparency = ShouldShow and Transparency or 1,
Size = ShouldShow and UDim2.new(0, 200, 0, Flag.TextBounds.Y) or UDim2.new(0, 200, 0, 0)
})
Globals:Tween(FlagStroke, TweenInfo, {
Transparency = ShouldShow and Transparency or 1
})
FlagTween.Completed:Connect(function()
Flag:SetAttribute("IsTweening", false)
Flag.Visible = ShouldShow
end)
end
end
end
else
Components.FlagsContainer.Visible = false
end
if Flags[ClassType.."LookAngle"].Value and self.Character:FindFirstChild("Head") and not Library.IsOpen then
local Head = self.Character.Head
local HeadPos, HeadOnScreen = Camera:WorldToViewportPoint(Head.Position)
local LookPos, LookOnScreen = Camera:WorldToViewportPoint(Head.Position + Head.CFrame.LookVector * 5)
local Line = Components.LookAngle
local Outline = Components.LookAngleOutline
if HeadOnScreen and LookOnScreen then
local From = Vector2.new(HeadPos.X, HeadPos.Y)
local To = Vector2.new(LookPos.X, LookPos.Y)
From = Math.FloorVector(From)
To = Math.FloorVector(To)
Line.Visible = true
Line.From = From
Line.To = To
Line.Color = ComponentColor
Line.Transparency = 1 - Transparency
Outline.Visible = true
Outline.From = From
Outline.To = To
Outline.Transparency = 1 - Transparency
else
Line.Visible = false
Outline.Visible = false
end
else
Components.LookAngle.Visible = false
Components.LookAngleOutline.Visible = false
end
if Flags[ClassType.."Skeleton"].Value and self.Character:FindFirstChild("Head") and not Library.IsOpen then
local Valid = true
for _, Part in {"UpperTorso", "RightUpperLeg", "LeftFoot", "RightFoot", "LeftUpperLeg", "LeftUpperArm", "RightUpperArm", "RightLowerArm", "RightHand", "LeftHand"} do
if not self.Character:FindFirstChild(Part) then
Valid = false
break
end
end
if Valid then
local Head = self:ProjectSkeletonLine(self.Character.Head)
local RL = self:ProjectSkeletonLine(self.Character.RightUpperLeg)
local LL = self:ProjectSkeletonLine(self.Character.LeftUpperLeg)
local RightLeg = self:ProjectSkeletonLine(self.Character.RightUpperLeg, Vector3.new(0, 0.5, 0))
local LeftLeg = self:ProjectSkeletonLine(self.Character.LeftUpperLeg, Vector3.new(0, 0.5, 0))
local RightFoot = self:ProjectSkeletonLine(self.Character.RightFoot)
local LeftFoot = self:ProjectSkeletonLine(self.Character.LeftFoot)
local RightArm = self:ProjectSkeletonLine(self.Character.RightUpperArm, Vector3.new(0, 0.2, 0))
local LeftArm = self:ProjectSkeletonLine(self.Character.LeftUpperArm, Vector3.new(0, 0.2, 0))
local RightElbow = self:ProjectSkeletonLine(self.Character.RightLowerArm, Vector3.new(0, 0.2, 0))
local LeftElbow = self:ProjectSkeletonLine(self.Character.LeftLowerArm, Vector3.new(0, 0.2, 0))
local RightHand = self:ProjectSkeletonLine(self.Character.RightHand)
local LeftHand = self:ProjectSkeletonLine(self.Character.LeftHand)
self:SetSkeletonLine("RightFoot", RightFoot, RL, Transparency, ComponentColor)
self:SetSkeletonLine("LeftFoot", LeftFoot, LL, Transparency, ComponentColor)
self:SetSkeletonLine("LL_line", LeftLeg, LL, Transparency, ComponentColor)
self:SetSkeletonLine("RL_line", RightLeg, RL, Transparency, ComponentColor)
self:SetSkeletonLine("RightArm", RightArm, RightElbow, Transparency, ComponentColor)
self:SetSkeletonLine("RightElbow", RightElbow, RightHand, Transparency, ComponentColor)
self:SetSkeletonLine("LeftArm", LeftArm, LeftElbow, Transparency, ComponentColor)
self:SetSkeletonLine("LeftElbow", LeftElbow, LeftHand, Transparency, ComponentColor)
self:SetSkeletonLine("Main", Vector2.new((LeftLeg.X + RightLeg.X) / 2, LeftLeg.Y), Head, Transparency, ComponentColor)
self:SetSkeletonLine("Hips", LeftLeg, RightLeg, Transparency, ComponentColor)
self:SetSkeletonLine("Shoulders", RightArm, LeftArm, Transparency, ComponentColor)
else
self:SetSkeletonsInvisible()
end
else
self:SetSkeletonsInvisible()
end
else
Components.BoxOutline.Visible = false
Components.LookAngle.Visible = false
Components.LookAngleOutline.Visible = false
self:SetSkeletonsInvisible()
if CoreInformation.Root and Flags[ClassType.."Offscreen"] and Flags[ClassType.."Offscreen"].Value then
local ArrowRadius = Flags[ClassType.."OffscreenRadius"].Value
local Size = Flags[ClassType.."OffscreenSize"].Value
local Arrow = Components.OffscreenArrow
local CameraPosition = Camera.CFrame.p
local ViewAngle = Camera.CFrame.lookVector
local ScreenPos = Camera:WorldToScreenPoint(CoreInformation.Root.Position)
local Center = Camera.ViewportSize / 2
local Direction = (Vector2.new(ScreenPos.X, ScreenPos.Y) - Vector2.new(Center.X, Center.Y)).Unit
local OffscreenRadius = ArrowRadius
local ClampedPosition = Vector2.new(Center.X, Center.Y) + Direction * OffscreenRadius
Arrow.TextSize = Size
Arrow.Size = UDim2.new(0, 25, 0, 25)
Arrow.Position = UDim2.new(0, ClampedPosition.X - Arrow.Size.X.Offset / 2, 0, ClampedPosition.Y - Arrow.Size.Y.Offset / 2)
Arrow.Rotation = math.deg(math.atan2(Direction.Y, Direction.X)) + 90
Arrow.Visible = true
Arrow.TextColor3 = ComponentColor
Arrow.TextTransparency = Transparency
Components.ArrowStroke.Transparency = Transparency
else
Components.OffscreenArrow.Visible = false
end
end
end)
EntityClass.Main.Functions.AddFlag = LPH_NO_VIRTUALIZE(function(self, Data)
EntityClass.Flags[Data.Name] = Data;
return EntityClass.Flags[Data.Name]
end)
Log("Loaded EntityClass main library.")
--#endregion EntityClass Main
--#region EntityClass Misc
EntityClass.Misc.Functions.__index = EntityClass.Misc .Functions;
EntityClass.Misc.Functions.CreateComponents = LPH_NO_VIRTUALIZE(function(self)
local Components = {}
Components.Name = Globals:Instance("TextLabel", {
Parent = Visuals.MiscSpace,
ZIndex = 1,
BackgroundTransparency = 1,
TextSize = EntityClass.FontSize,
Text = "",
FontFace = EntityClass.Font,
Size = UDim2.new(0, 0, 0, EntityClass.FontSize),
Visible = false,
Position = UDim2.new(0, 0, 0, 0),
TextYAlignment = Enum.TextYAlignment.Top,
AutomaticSize = Enum.AutomaticSize.Y
})
Components.NameStroke = Globals.ApplyTextStroke(Components.Name)
return Components
end)
EntityClass.Misc.Functions.ScanParent = LPH_NO_VIRTUALIZE(function(self)
local ParentFolder = self.Parent;
local ClassName = self.ClassName;
local Name = self.Name;
for Index, Object in ParentFolder:GetChildren() do
if Object.ClassName == ClassName or Name == Object.Name then
self.Object = Object
EntityClass.Misc.Cache[Object] = {
Components = self:CreateComponents(),
Listener = self,
Object = Object,
};
end;
end;
ParentFolder.ChildAdded:Connect(function(Object)
task.wait(0.5);
if ParentFolder == Workspace:FindFirstChild("Drops") then
task.wait(2);
end;
if (Object.ClassName == ClassName or Name == Object.Name) and not Object:GetAttribute("IsThrow") and not EntityClass.Misc.Cache[Object] then
EntityClass.Misc.Cache[Object] = {
Components = self:CreateComponents(),
Listener = self,
Object = Object,
};
Object:GetPropertyChangedSignal("Parent"):Connect(function()
if Object.Parent ~= ParentFolder and EntityClass.Misc.Cache[Object] then
for _, Component in EntityClass.Misc.Cache[Object].Components do
Component:Destroy();
end;
EntityClass.Misc.Cache[Object] = nil
end
end);
Object:GetAttributeChangedSignal("IsThrow"):Connect(function()
task.wait(0.1);
if Object:GetAttribute("IsThrow") then
for _, Component in EntityClass.Misc.Cache[Object].Components do
Component:Destroy();
end;
EntityClass.Misc.Cache[Object] = nil
end;
end);
end;
end);
ParentFolder.ChildRemoved:Connect(function(Object)
if EntityClass.Misc.Cache[Object] then
for _, Component in EntityClass.Misc.Cache[Object].Components do
Component:Destroy();
end;
EntityClass.Misc.Cache[Object] = nil
end;
end);
end);
EntityClass.Misc.Functions.AddListener = LPH_NO_VIRTUALIZE(function(Data)
--[[local ObjectListener = setmetatable({
Listener = Data.Listener,
GetPosition = Data.GetPosition,
GetDistance = Data.GetDistance,
GetColor = Data.GetColor or function()
return Library.Flags[Data.Flag .. "MiscColor"].Value[1]
end,
GetAlpha = Data.GetAlpha or function()
return Library.Flags[Data.Flag .. "MiscColor"].Value[2]
end,
Flag = Data.Flag,
GetName = Data.GetName,
Parent = Data.Parent,
ClassName = Data.ClassName,
Name = Data.Name,
Validate = Data.Validate,
}, EntityClass.Misc.Functions)
ObjectListener:ScanParent()
task.spawn(function()
local LastState = false
while task.wait(5) do
local Toggle = Library.Flags["ESP" .. ObjectListener.Flag]
local Enabled = Toggle and Toggle.Value
if Enabled and not LastState then
ObjectListener:ScanParent()
elseif not Enabled and LastState then
for Object, Entry in pairs(EntityClass.Misc.Cache) do
if Entry.Listener == ObjectListener then
for _, Component in pairs(Entry.Components) do
Component:Destroy()
end
EntityClass.Misc.Cache[Object] = nil
end
end
end
LastState = Enabled
end
end)
task.spawn(function()
local Toggle = Library.Flags["ESP" .. ObjectListener.Flag]
if Toggle and Toggle.Value then
ObjectListener:ScanParent()
end
end)
return ObjectListener]]
end)
Log("Loaded EntityClass Misc library.")
--#endregion EntityClass Misc
--#region UI Setup
--[[do --// Loader bullshit
task.wait(1)
local Loader = Library:CreateLoader("never")
Loader:NewGame("Fallen Survival", "Lite", "http://www.roblox.com/asset/?id=99962944873879")
Loader:NewGame("Fallen Survival", "Full", "http://www.roblox.com/asset/?id=99962944873879")
repeat
task.wait()
until LoaderLaunched
repeat
task.wait()
until Loader.BeginLoading
do --// Loading...
task.wait(1)
Loader:SetStage("Initializing...")
Loader:SetProgress(10)
task.wait(0.2)
Loader:SetStage("Loading visuals...")
Loader:SetProgress(40)
task.wait(1)
Loader:SetStage("Loading hooks...")
Loader:SetProgress(80)
task.wait(1)
Loader:SetStage("Finalizing...")
Loader:SetProgress(100)
end
task.wait(1)
do --// Finished loading!
for Index, Object in Loader.Components.Loader:GetDescendants() do
Object:SetAttribute("Tweening", true)
if Object:IsA("TextLabel") then
Globals:Tween(Object, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
BackgroundTransparency = 1,
})
Globals:Tween(Object, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
TextTransparency = 1,
})
end
if Object:IsA("TextButton") then
Globals:Tween(Object, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
BackgroundTransparency = 1,
})
Globals:Tween(Object, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
TextTransparency = 1,
})
end
if Object:IsA("ImageLabel") then
Globals:Tween(Object, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
BackgroundTransparency = 1,
})
Globals:Tween(Object, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
ImageTransparency = 1,
})
end
if Object:IsA("Frame") then
Globals:Tween(Object, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
BackgroundTransparency = 1,
})
end
if Object:IsA("ImageButton") then
Globals:Tween(Object, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
BackgroundTransparency = 1,
})
Globals:Tween(Object, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
ImageTransparency = 1,
})
end
if Object:IsA("UIStroke") then
Globals:Tween(Object, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
Transparency = 1,
})
end
end
end
task.wait(3)
Loader.Components.Loader:Destroy()
end;]]
local Window = Library:Window({
Name = "MainWindow",
--PlayerImage = "http://www.roblox.com/asset/?id=118959562649521",
})
LPH_JIT_MAX(function() --// UI Setup
local Pages = {
Combat = Window:Tab({
Name = "Combat",
Image = GetImage("CombatImage"), -- "rbxassetid://7485051715"
}),
ESP = Window:Tab({
Name = "ESP",
Image = GetImage("ESPImage"), -- "rbxassetid://13321848320"
}),
Seperator1 = Window:TabSeperator(),
Visuals = Window:Tab({
Name = "Visuals",
Image = GetImage("VisualsImage"), -- "rbxassetid://18870359747"
}),
Misc = Window:Tab({
Name = "Misc",
Image = GetImage("MiscImage") -- rbxassetid://6953992690
}),
Skins = Window:Tab({
Name = "Skins",
Image = GetImage("SkinsImage"), -- rbxassetid://13693164564
}),
Seperator2 = Window:TabSeperator(),
Settings = Window:Tab({
Name = "Settings",
Image = GetImage("SettingsImage") -- rbxassetid://11956055886
}),
Plugins = Window:Tab({
Name = "Plugins",
Image = GetImage("PluginsImage"), -- http://www.roblox.com/asset/?id=133292957761995
}),
}
local PluginsCategories = {
Main = Pages.Plugins:Category({
Name = "Credits Scene"
}),
};
local CombatCategories = {
Aimbot = Pages.Combat:Category({
Name = "Main",
}),
AntiAim = Pages.Combat:Category({
Name = "Anti Aim",
}),
WeaponMods = Pages.Combat:Category({
Name = "Weapon Mods",
}),
Crosshair = Pages.Combat:Category({
Name = "Crosshair"
})
};
do --// COMBAT CAT
--// Aimbot
local Aimbot = CombatCategories.Aimbot:Section({
Name = "Aimbot",
Side = "Left",
})
Aimbot:Toggle({
Name = "Enabled",
Flag = "Aimbot",
Tooltip = "Redirects bullets to targets",
});
Aimbot:Dropdown({
Name = "Mode",
Flag = "AimbotMode",
Options = {
"Silent",
"Memory"
}
})
Aimbot:Toggle({
Name = "Always target",
Flag = "AlwaysTarget",
Tooltip = "Ignores aimbot key requirement"
});
Aimbot:Toggle({
Name = "Random hitpart",
Flag = "RandomizeHitPart"
});
Aimbot:Toggle({
Name = "Visibility check",
Flag = "VisibleCheck",
Tooltip = "Prioritizes hitboxes based on visibility"
});
Aimbot:Toggle({
Name = "Manipulation",
Flag = "Manipulation",
Tooltip = "Shoot around obstructions"
})
Aimbot:Seperator()
Aimbot:Keybind({
Name = "Manipulation Key",
Flag = "Manipulation Activation",
Mode = "Toggle"
})
Aimbot:Keybind({
Name = "Aimbot key",
Flag = "Aimbot Activation",
Mode = "Hold",
});
Aimbot:Seperator()
Aimbot:Toggle({
Name = "Target Players",
Flag = "TargetPlayer"
});
Aimbot:Toggle({
Name = "Target AI",
Flag = "TargetAI",
});
Aimbot:Toggle({
Name = "Target Bosses",
Flag = "TargetBoss",
});
Aimbot:Seperator();
Aimbot:Slider({
Name = "Distance",
Flag = "AimbotDistance",
Min = 0,
Max = 1200,
Suffix = "s",
Increment = 0.1,
});
Aimbot:Dropdown({
Name = "Hit part",
Flag = "AimbotPart",
Options = {
"Head",
"LowerTorso",
"UpperTorso",
},
});
--
--// Target Settings
local FOVSettings = CombatCategories.Aimbot:Section({
Name = "FOV Settings",
Side = "Right",
})
FOVSettings:Toggle({
Name = "Visualize FOV",
Flag = "VisualizeFOV",
Callback = function(v)
Visuals.FOVOutline.Visible = Library.Flags.VisualizeFOV.Value
end;
})
FOVSettings:Toggle({
Name = "Dynamic Radius",
Flag = "DynamicFOV",
Tooltip = "Scales radius based on Camera FOV",
});
FOVSettings:Slider({
Name = "Radius",
Flag = "FOVRadius",
Suffix = "px",
Min = 30,
Max = 1500,
});
FOVSettings:Colorpicker({
Name = "Color",
Flag = "FOVColor",
Default = {Library.Theme.Accent, 0.8},
Callback = function(v)
Visuals.FOVCircleStroke.Color = Library.Flags.FOVColor.Value[1]
Visuals.FOVInline.BackgroundColor3 = Library.Flags.FOVColor.Value[1]
Visuals.FOVInline.BackgroundTransparency = Library.Flags.FOVColor.Value[2]
end,
})
FOVSettings:Colorpicker({
Name = "Target color",
Flag = "TargetColor",
Default = {Library.Theme.Accent, 0}
});
FOVSettings:Colorpicker({
Name = "Manipulated color",
Flag = "ManipColor",
Default = {Color3.fromRGB(255, 162, 0), 0}
})
--
--// Armor Viewer Settings
local ArmorViewer = CombatCategories.Aimbot:Section({
Name = "Armor Viewer",
Side = "Right"
});
ArmorViewer:Toggle({
Name = "Enabled",
Flag = "ArmorViewer",
Tooltip = "Displays targets armor",
Callback = function()
Window.ArmorPanel.Components.Armor.Visible = Library.Flags.ArmorViewer.Value
end;
})
--
--// Gun Mods
local ToolInfo = ReplicatedStorage:FindFirstChild("Modules") and ReplicatedStorage.Modules:FindFirstChild("ToolInfo") and require(ReplicatedStorage.Modules.ToolInfo) or {};
local ToolInfoCopy = Globals.DeepCopy(ToolInfo)
Globals.ToolInfo = ToolInfo
local Universal = CombatCategories.WeaponMods:Section({
Name = "Universal",
Side = "Left"
})
local Guns = CombatCategories.WeaponMods:Section({
Name = "Guns",
Side = "Right"
});
local Melees = CombatCategories.WeaponMods:Section({
Name = "Melees",
Side = "Left"
})
--// Universal
Universal:Toggle({
Name = "Instant equip",
Flag = "FastEquip",
Callback = LPH_NO_VIRTUALIZE(function()
for Index, Value in ToolInfo do
if type(Value) == "table" and rawget(Value, "Weapon") then
local Old = ToolInfoCopy[Index].Weapon;
Value.Weapon.EquipAnimSpeed = Library.Flags.FastEquip.Value and 6 or Old.EquipAnimSpeed;
end;
end;
end);
});
--
--// Guns
Guns:Toggle({
Name = "Remove recoil",
Flag = "RemoveRecoil"
});
Guns:Toggle({
Name = "Instant bullet",
Flag = "InstantBullet"
});
Guns:Toggle({
Name = "Force automatic",
Flag = "ForceAuto",
Callback = LPH_NO_VIRTUALIZE(function()
for Index, Value in ToolInfo do
if type(Value) == "table" and rawget(Value, "Weapon") and rawget(Value.Weapon, 'RPM') then
Value.Weapon.Auto = Library.Flags.ForceAuto.Value and true or ToolInfoCopy[Index].weapon.Auto
end
end;
end);
})
Guns:Seperator()
Guns:Toggle({
Name = "Instant Bolt",
Flag = "InstantBolt",
Risky = true,
Callback = LPH_NO_VIRTUALIZE(function()
for Index, Value in ToolInfo do
if type(Value) == "table" and rawget(Value, "Weapon") and rawget(Value.Weapon, 'BoltAnimSpeed') then
Value.Weapon.ReloadAnimSpeed = Library.Flags.InstantBolt.Value and 10 or ToolInfoCopy[Index].Weapon.ReloadAnimSpeed
Value.Weapon.BoltAnimSpeed = Library.Flags.InstantBolt.Value and 10 or ToolInfoCopy[Index].Weapon.BoltAnimSpeed
end
end;
end);
});
Guns:Seperator()
Guns:Toggle({
Name = "Rapid Fire",
Flag = "RapidFire",
Risky = true,
Callback = LPH_NO_VIRTUALIZE(function()
for Index, Value in ToolInfo do
if type(Value) == "table" and rawget(Value, "Weapon") and rawget(Value.Weapon, 'RPM') then
Value.Weapon.RPM = Library.Flags.RapidFire.Value and ToolInfoCopy[Index].Weapon.RPM * Library.Flags.RPMMult.Value or ToolInfoCopy[Index].Weapon.RPM
end
end;
end);
});
Guns:Slider({
Name = "RPM Multiplier",
Flag = "RPMMult",
Suffix = "x",
Min = 1, Max = 3, Increment = 0.01,
Callback = LPH_NO_VIRTUALIZE(function()
for Index, Value in ToolInfo do
if type(Value) == "table" and rawget(Value, "Weapon") and rawget(Value.Weapon, 'RPM') then
Value.Weapon.RPM = Library.Flags.RapidFire.Value and ToolInfoCopy[Index].Weapon.RPM * Library.Flags.RPMMult.Value or ToolInfoCopy[Index].Weapon.RPM
end
end;
end);
});
Guns:Seperator();
Guns:Toggle({
Name = "Faster ADS",
Flag = "FastADS",
Callback = LPH_NO_VIRTUALIZE(function()
local TOGGLE = Library.Flags.FastADS.Value;
for Index, Value in next, ToolInfo do
if type(Value) == "table" and rawget(Value, "Weapon") then
local Old = ToolInfoCopy[Index].Weapon;
if rawget(Value.Weapon, "AimDownSpeed") then
Value.Weapon.AimDownSpeed.In = TOGGLE and Old.AimDownSpeed.In - (Old.AimDownSpeed.In * (Library.Flags.AimSpeed.Value / 100)) or Old.AimDownSpeed.In;
Value.Weapon.AimDownSpeed.Out =TOGGLE and Old.AimDownSpeed.Out - (Old.AimDownSpeed.Out * (Library.Flags.AimSpeed.Value / 100)) or Old.AimDownSpeed.Out;
end;
end;
end;
end);
});
Guns:Slider({
Name = "ADS Percent",
Flag = "AimSpeed",
Suffix = "%",
Min = 0, Max = 100,
Callback = LPH_NO_VIRTUALIZE(function()
local TOGGLE = Library.Flags.FastADS.Value;
for Index, Value in next, ToolInfo do
if type(Value) == "table" and rawget(Value, "Weapon") then
local Old = ToolInfoCopy[Index].Weapon;
if rawget(Value.Weapon, "AimDownSpeed") then
Value.Weapon.AimDownSpeed.In = TOGGLE and Old.AimDownSpeed.In - (Old.AimDownSpeed.In * (Library.Flags.AimSpeed.Value / 100)) or Old.AimDownSpeed.In;
Value.Weapon.AimDownSpeed.Out = TOGGLE and Old.AimDownSpeed.Out - (Old.AimDownSpeed.Out * (Library.Flags.AimSpeed.Value / 100)) or Old.AimDownSpeed.Out;
end;
end;
end;
end);
});
--
--// Melees
Melees:Toggle({
Name = "Reach",
Flag = "Reach",
Risky = true
})
Melees:Toggle({
Name = "Perfect farm",
Flag = "PerfectFarm"
})
Melees:Toggle({
Name = "Fast cooldown",
Flag = "FastCooldown",
Callback = LPH_NO_VIRTUALIZE(function()
for Index, Value in ToolInfo do
if type(Value) == "table" and rawget(Value, "Weapon") and rawget(Value.Weapon, 'Cooldown') then
Value.Weapon.Cooldown = Library.Flags.FastCooldown.Value and ToolInfoCopy[Index].Weapon.Cooldown * 0.8 or ToolInfoCopy[Index].Weapon.Cooldown
end
end;
end);
})
Melees:Toggle({
Name = "Killaura (Uses Silent Aim Target)",
Flag = "KillauraToggle"
})
Melees:Keybind({
Name = "Killaura Key",
Flag = "Killaura Activation",
Mode = "Toggle"
})
--
--
--// Anti aim tab
local AntiaimMaster = CombatCategories.AntiAim:Section({
Name = "Master",
Side = "Left"
});
AntiaimMaster:Toggle({
Name = "Enabled",
Flag = "AntiAim"
});
local YawSection = CombatCategories.AntiAim:Section({
Name = "Yaw",
Side = "Right"
})
YawSection:Slider({
Name = "Modifier",
Flag = "YawModifier",
Min = 0, Max = 360, Suffix = "°"
});
YawSection:Dropdown({
Name = "Base",
Flag = "YawBase",
Options = {"Camera", "Random", "Spin", "Targets"}
});
local PitchSection = CombatCategories.AntiAim:Section({
Name = "Pitch",
Side = "Left"
});
PitchSection:Slider({
Name = "Modifier",
Flag = "PitchModifier",
Min = -1, Max = 1, Increment = 0.1,
});
PitchSection:Dropdown({
Name = "Base",
Flag = "PitchBase",
Options = {"Nod", "Up", "Down", "Custom"}
})
--
--// Crosshair settings
local CrosshairSettings = CombatCategories.Crosshair:Section({
Name = "Settings",
Side = "Left"
});
CrosshairSettings:Toggle({
Name = "Enabled",
Flag = "Crosshair"
});
CrosshairSettings:Toggle({
Name = "Apply rotation animation",
Flag = "RotateCrosshair"
});
CrosshairSettings:Seperator();
CrosshairSettings:Slider({
Name = "Length",
Flag = "CrosshairLength",
Min = 3,
Max = 40,
Default = 20
});
CrosshairSettings:Slider({
Name = "Width",
Flag = "CrosshairWidth",
Min = 2,
Max = 4,
Default = 2
});
CrosshairSettings:Slider({
Name = "Gap",
Flag = "CrosshairGap",
Min = 1,
Max = 20,
Default = 10
});
CrosshairSettings:Seperator();
CrosshairSettings:Colorpicker({
Name = "Color",
Flag = "CrosshairColor",
Default = {Color3.fromRGB(255, 255, 255), 0}
})
--
--// Crosshair Target Settings
local CrosshairTargetSettings = CombatCategories.Crosshair:Section({
Name = "Target Settings",
Side = "Right"
});
CrosshairTargetSettings:Toggle({
Name = "Stick to target",
Flag = "StickToTarget",
Tooltip = "Crosshair will move to targe"
});
CrosshairTargetSettings:Toggle({
Name = "Sync to lock color",
Flag = "SyncToLockColor",
Tooltip = "Crosshair will sync with target color if locked"
})
--
end
local ESPCategories = {
Players = Pages.ESP:Category({ Name = "Players" }),
AI = Pages.ESP:Category({ Name = "AI" }),
Boss = Pages.ESP:Category({ Name = "Bosses" }),
World = Pages.ESP:Category({ Name = "World" })
}
do --// ESP Categories
do --// Players
local PlayersMain = ESPCategories.Players:Section({
Name = "Main",
Side = "Left",
})
local PlayersSettings = ESPCategories.Players:Section({
Name = "Settings",
Side = "Left",
})
local PlayersColors = ESPCategories.Players:Section({
Name = "Colors",
Side = "Right",
})
local PlayerModels = ESPCategories.Players:Section({
Name = "Character model",
Side = "Right",
});
local LockOn = ESPCategories.Players:Section({
Name = "Lock on indicators",
Side = "Left"
})
do --// Lock on
LockOn:Toggle({
Name = "Enabled",
Flag = "LockOnIndicator"
});
LockOn:Slider({
Name = "Lock on threshold",
Flag = "LockOnThreshold",
Min = 30,
Max = 90,
Default = 70
});
LockOn:Slider({
Name = "Lock on danger threshold",
Flag = "LockOnRisk",
Min = 30,
Max = 90,
Default = 70
});
end;
do --// Players main
PlayersMain:Toggle({
Name = "Enabled",
Flag = "PlayerESP",
})
PlayersMain:Toggle({
Name = "Bounding box",
Flag = "PlayerBoundingBox",
});
PlayersMain:Toggle({
Name = "Skeleton",
Flag = "PlayerSkeleton",
});
PlayersMain:Toggle({
Name = "View angle",
Flag = "PlayerLookAngle",
})
PlayersMain:Toggle({
Name = "Healthbar",
Flag = "PlayerHealthbar",
})
PlayersMain:Toggle({
Name = "Name",
Flag = "PlayerName",
})
PlayersMain:Toggle({
Name = "Distance",
Flag = "PlayerDistance",
})
PlayersMain:Toggle({
Name = "Item",
Flag = "PlayerWeapon",
})
PlayersMain:Toggle({
Name = "Health",
Flag = "PlayerHealth",
Tooltip = "Displays players health on text",
})
PlayersMain:Toggle({
Name = "Weapon image",
Flag = "PlayerWeaponImage",
Tooltip = "2d icon of held weapon",
})
PlayersMain:Toggle({
Name = "Flags",
Flag = "PlayerFlags",
Tooltip = "Flag certain actions/attributes",
})
PlayersMain:Dropdown({
Multi = true,
Name = "Selected flags",
Flag = "PlayerFlagsList",
Options = {
"Aiming",
"Reloading",
"Healing",
"Clan",
"VIP",
"Staff",
},
})
PlayersMain:Toggle({
Name = "Offscreen indicators",
Flag = "PlayerOffscreen",
});
end
do --// Players settings
PlayersSettings:Toggle({
Name = "Ignore friends",
Flag = "IgnoreFriends",
Tooltip = "Doesn't render in players marked as friendly",
})
PlayersSettings:Dropdown({
Name = "Bounding box type",
Flag = "PlayerBoxStyle",
Options = {
"Solid",
"Corner",
},
})
PlayersSettings:Toggle({
Name = "Only show health if damaged",
Flag = "PlayerShowHealthIfDamaged",
})
PlayersSettings:Slider({
Name = "Maximum distance",
Flag = "PlayerMaxDistance",
Min = 100,
Max = 1300,
Suffix = "studs",
})
PlayersSettings:Slider({
Name = "Offscreen arrow size",
Flag = "PlayerOffscreenSize",
Min = 10,
Max = 30,
Increment = 0.1,
})
PlayersSettings:Slider({
Name = "Offscreen arrow radius",
Flag = "PlayerOffscreenRadius",
Min = 100,
Max = 700,
Increment = 0.1,
})
end
do --// Players colors
PlayersColors:Colorpicker({
Name = "Visible color",
Flag = "PlayerVisibleColor",
Default = { Color3.fromRGB(255, 0, 0), 0 },
})
PlayersColors:Colorpicker({
Name = "Occluded color",
Flag = "PlayerOccludedColor",
Default = { Color3.fromRGB(255, 255, 255), 0 },
});
PlayersColors:Colorpicker({
Name = "Higher health color",
Flag = "PlayerHigherHealthColor",
Default = {Color3.fromRGB(120, 255, 100), 0}
})
PlayersColors:Colorpicker({
Name = "Lower health color",
Flag = "PlayerLowerHealthColor",
Default = {Color3.fromRGB(255, 0, 0), 0}
});
PlayersColors:Seperator();
PlayersColors:Colorpicker({
Name = "Aiming flag color",
Flag = "AimingFlagColor",
Default = {Color3.fromRGB(3, 169, 252), 0}
});
PlayersColors:Colorpicker({
Name = "Reloading flag color",
Flag = "ReloadingFlagColor",
Default = {Color3.fromRGB(255, 255, 255), 0}
});
PlayersColors:Colorpicker({
Name = "Healing flag color",
Flag = "HealingFlagColor",
Default = {Color3.fromRGB(120, 255, 100), 0}
});
PlayersColors:Colorpicker({
Name = "VIP flag color",
Flag = "VIPFlagColor",
Default = {Color3.fromRGB(252, 211, 3), 0}
});
PlayersColors:Colorpicker({
Name = "Safezone flag color",
Flag = "SafezoneFlagColor",
Default = {Color3.fromRGB(0, 211, 0), 0}
});
PlayersColors:Colorpicker({
Name = "Clan flag color",
Flag = "ClanFlagColor",
Default = {Color3.fromRGB(255, 255, 255), 0}
});
PlayersColors:Colorpicker({
Name = "Staff flag color",
Flag = "StaffFlagColor",
Default = {Color3.fromRGB(255, 255, 255), 0}
});
end
do --// Player models
PlayerModels:Toggle({
Name = "Chams",
Flag = "PlayerChams",
});
PlayerModels:Dropdown({
Name = "Chams style",
Flag = "PlayerChamsStyle",
Options = {
"Solid",
"Glow"
}
})
PlayerModels:Colorpicker({
Name = "Chams visible color",
Flag = "PlayerChamsVisibleColor",
Default = { Library.Theme.Accent, 0.2 },
})
PlayerModels:Colorpicker({
Name = "Chams occluded color",
Flag = "PlayerChamsOccludedColor",
Default = { Library.Theme.Accent, 0.8 },
})
PlayerModels:Seperator()
PlayerModels:Toggle({
Name = "Sandbox armor models",
Flag = "SandboxPlayer",
})
PlayerModels:Dropdown({
Name = "Material",
Flag = "PlayerArmorMaterial",
Options = {
"ForceField",
"Neon",
"SmoothPlastic",
"Plastic",
"Glass",
},
})
PlayerModels:Slider({
Name = "Reflectance",
Flag = "PlayerArmorReflectance",
Min = 0, Max = 1, Increment = 0.001
});
PlayerModels:Slider({
Name = "Reflectance multiplier",
Flag = "PlayerArmorReflectanceMul",
Min = 0, Max = 100
})
PlayerModels:Colorpicker({
Name = "Color",
Flag = "PlayerArmorColor",
Default = { Library.Theme.Accent, 0.2 },
})
end
end
do --// AI
local AIMain = ESPCategories.AI:Section({
Name = "Main",
Side = "Left",
})
local AISettings = ESPCategories.AI:Section({
Name = "Settings",
Side = "Left",
})
local AIColors = ESPCategories.AI:Section({
Name = "Colors",
Side = "Right",
})
local AIModels = ESPCategories.AI:Section({
Name = "Character model",
Side = "Right",
});
do --// AIs main
AIMain:Toggle({
Name = "Enabled",
Flag = "AIESP",
})
AIMain:Toggle({
Name = "Bounding box",
Flag = "AIBoundingBox",
});
AIMain:Toggle({
Name = "Skeleton",
Flag = "AISkeleton",
});
AIMain:Toggle({
Name = "View angle",
Flag = "AILookAngle",
})
AIMain:Toggle({
Name = "Healthbar",
Flag = "AIHealthbar",
})
AIMain:Toggle({
Name = "Name",
Flag = "AIName",
})
AIMain:Toggle({
Name = "Distance",
Flag = "AIDistance",
})
AIMain:Toggle({
Name = "Health",
Flag = "AIHealth",
Tooltip = "Displays AIs health on text",
})
end
do --// AIs settings
AISettings:Dropdown({
Name = "Bounding box type",
Flag = "AIBoxStyle",
Options = {
"Solid",
"Corner",
},
})
AISettings:Toggle({
Name = "Only show health if damaged",
Flag = "AIShowHealthIfDamaged",
})
AISettings:Slider({
Name = "Maximum distance",
Flag = "AIMaxDistance",
Min = 100,
Max = 1300,
Suffix = "studs",
})
end
do --// AIs colors
AIColors:Colorpicker({
Name = "Visible color",
Flag = "AIVisibleColor",
Default = { Color3.fromRGB(255, 0, 0), 0 },
})
AIColors:Colorpicker({
Name = "Occluded color",
Flag = "AIOccludedColor",
Default = { Color3.fromRGB(255, 255, 255), 0 },
});
AIColors:Colorpicker({
Name = "Higher health color",
Flag = "AIHigherHealthColor",
Default = {Color3.fromRGB(120, 255, 100), 0}
})
AIColors:Colorpicker({
Name = "Lower health color",
Flag = "AILowerHealthColor",
Default = {Color3.fromRGB(255, 0, 0), 0}
});
end
do --// AI models
AIModels:Toggle({
Name = "Chams",
Flag = "AIChams",
});
AIModels:Dropdown({
Name = "Chams style",
Flag = "AIChamsStyle",
Options = {
"Solid",
"Glow"
}
})
AIModels:Colorpicker({
Name = "Chams visible color",
Flag = "AIChamsVisibleColor",
Default = { Library.Theme.Accent, 0.2 },
})
AIModels:Colorpicker({
Name = "Chams occluded color",
Flag = "AIChamsOccludedColor",
Default = { Library.Theme.Accent, 0.8 },
})
end
end
do --// Bosses
local BossMain = ESPCategories.Boss:Section({
Name = "Main",
Side = "Left",
})
local BossSettings = ESPCategories.Boss:Section({
Name = "Settings",
Side = "Left",
})
local BossColors = ESPCategories.Boss:Section({
Name = "Colors",
Side = "Right",
})
local BossModels = ESPCategories.Boss:Section({
Name = "Character model",
Side = "Right",
});
do --// Boss main
BossMain:Toggle({
Name = "Enabled",
Flag = "BossESP",
})
BossMain:Toggle({
Name = "Bounding box",
Flag = "BossBoundingBox",
});
BossMain:Toggle({
Name = "Skeleton",
Flag = "BossSkeleton",
});
BossMain:Toggle({
Name = "View angle",
Flag = "BossLookAngle",
})
BossMain:Toggle({
Name = "Healthbar",
Flag = "BossHealthbar",
})
BossMain:Toggle({
Name = "Name",
Flag = "BossName",
})
BossMain:Toggle({
Name = "Distance",
Flag = "BossDistance",
})
BossMain:Toggle({
Name = "Health",
Flag = "BossHealth",
Tooltip = "Displays Bosses health on text",
})
end
do --// Boss settings
BossSettings:Dropdown({
Name = "Bounding box type",
Flag = "BossBoxStyle",
Options = {
"Solid",
"Corner",
},
})
BossSettings:Toggle({
Name = "Only show health if damaged",
Flag = "BossShowHealthIfDamaged",
})
BossSettings:Slider({
Name = "Maximum distance",
Flag = "BossMaxDistance",
Min = 100,
Max = 1300,
Suffix = "studs",
})
end
do --// Boss colors
BossColors:Colorpicker({
Name = "Visible color",
Flag = "BossVisibleColor",
Default = { Color3.fromRGB(255, 0, 0), 0 },
})
BossColors:Colorpicker({
Name = "Occluded color",
Flag = "BossOccludedColor",
Default = { Color3.fromRGB(255, 255, 255), 0 },
});
BossColors:Colorpicker({
Name = "Higher health color",
Flag = "BossHigherHealthColor",
Default = {Color3.fromRGB(120, 255, 100), 0}
})
BossColors:Colorpicker({
Name = "Lower health color",
Flag = "BossLowerHealthColor",
Default = {Color3.fromRGB(255, 0, 0), 0}
});
end
do --// Boss models
BossModels:Toggle({
Name = "Chams",
Flag = "BossChams",
});
BossModels:Dropdown({
Name = "Chams style",
Flag = "BossChamsStyle",
Options = {
"Solid",
"Glow"
}
})
BossModels:Colorpicker({
Name = "Chams visible color",
Flag = "BossChamsVisibleColor",
Default = { Library.Theme.Accent, 0.2 },
})
BossModels:Colorpicker({
Name = "Chams occluded color",
Flag = "BossChamsOccludedColor",
Default = { Library.Theme.Accent, 0.8 },
})
end
end
do --// World
--// Global
local Global = ESPCategories.World:Section({
Name = "Global settings",
Side = "Left"
});
Global:Keybind({
Name = "Combat Hide",
Flag = "CombatHide",
Mode = "Toggle"
});
Global:Toggle({
Name = "Smart ESP Fade",
Tooltip = "Fades objects not in center",
Flag = "SmartESP"
});
Global:Slider({
Name = "Smart ESP Radius",
Flag = "FadeRadius",
Min = 0,
Max = 1000,
});
--[[Global:Colorpicker({
Name = "Distance color",
Flag = "ESPMiscDistanceColor",
Default = {Color3.fromRGB(255, 255, 255), 0}
})]]
--
--// Wool
local Wool = ESPCategories.World:Section({
Side = "Left",
Name = "Cloth plants"
});
Wool:Toggle({
Name = "Enabled",
Flag = "ESPWoolPlants"
});
Wool:Colorpicker({
Name = "Color",
Flag = "WoolPlantsMiscColor",
Default = {Color3.fromRGB(25, 107, 0), 1}
});
Wool:Slider({
Min = 10, Max = 1000,
Suffix = "s",
Name = "Distance",
Flag = "WoolPlantsDistance"
});
--
--// Nodes
local Nodes = ESPCategories.World:Section({
Side = "Right",
Name = "Nodes"
});
Nodes:Toggle({
Name = "Enabled",
Flag = "ESPNodes"
});
Nodes:Seperator()
Nodes:Toggle({
Name = "Stone",
Flag = "Stone nodeCanShow"
});
Nodes:Colorpicker({
Name = "Stone color",
Flag = "Stone nodeColor",
Default = {Color3.fromRGB(255, 255, 255), 1}
});
Nodes:Seperator()
Nodes:Toggle({
Name = "Metal",
Flag = "Metal nodeCanShow"
})
Nodes:Colorpicker({
Name = "Metal color",
Flag = "Metal nodeColor",
Default = {Color3.fromRGB(214, 135, 153), 1}
});
Nodes:Seperator()
Nodes:Toggle({
Name = "Phosphate",
Flag = "Phosphate nodeCanShow"
});
Nodes:Colorpicker({
Name = "Phosphate color",
Flag = "Phosphate nodeColor",
Default = {Color3.fromRGB(237, 193, 104), 1}
});
Nodes:Seperator()
Nodes:Slider({
Min = 10, Max = 1000,
Suffix = "s",
Name = "Distance",
Flag = "NodesDistance"
});
--
--// Body bags
local Bodybags = ESPCategories.World:Section({
Name = "Body bags",
Side = "Left"
});
Bodybags:Toggle({
Name = "Enabled",
Flag = "ESPBodyBags",
Default = {Color3.fromRGB(244, 80, 40), 0}
});
Bodybags:Colorpicker({
Name = "Color",
Flag = "BodyBagsMiscColor",
Default = {Color3.fromRGB(255, 255, 255), 0}
})
Bodybags:Slider({
Name ="Distance",
Flag = "BodyBagsDistance",
Min = 50, Max = 1000, Suffix = "s"
});
--
--// Dropped items
local Items = ESPCategories.World:Section({
Name = "Items",
Side = "Right"
});
Items:Toggle({
Name = "Enabled",
Flag = "ESPItems"
});
Items:Seperator();
Items:Toggle({
Name = "Guns",
Flag = "IncludeGun"
});
Items:Toggle({
Name = "Consumable ammo",
Flag = "IncludeConsumableAmmo"
});
Items:Toggle({
Name = "Consumable armor",
Flag = "IncludeConsumableAmmoArmor",
});
Items:Toggle({
Name = "Ammo",
Flag = "IncludeAmmo"
});
Items:Toggle({
Name = "Armor",
Flag = "IncludeArmor"
});
Items:Toggle({
Name = "Tools",
Flag = "IncludeTool"
});
Items:Toggle({
Name = "Locks",
Flag = "IncludeLock"
});
Items:Toggle({
Name = "Benches",
Flag = "IncludeBench"
});
Items:Toggle({
Name = "Resources",
Flag = "IncludeResource"
});
Items:Toggle({
Name = "Components / Misc",
Flag = "IncludeMisc"
})
Items:Toggle({
Name = "Attachments",
Flag = "IncludeAttachment"
});
Items:Toggle({
Name = "Consumables",
Flag = "IncludeConsumable"
});
Items:Seperator();
Items:Colorpicker({
Name = "Color", Flag = "ItemsColor"
});
Items:Slider({Name = "Distance", Flag = "ItemsDistance", Min = 50, Max = 1000, Suffix = "s"})
--
--// Raids
local Raids = ESPCategories.World:Section({Name = "Raids", Side = "Right"});
Raids:Toggle({
Name = "Enabled",
Flag = "ESPRaids"
});
Raids:Colorpicker({
Name = "Color",
Flag = "RaidsMiscColor",
Default = {
Color3.fromRGB(255, 0, 102),
0
}
})
Raids:Slider({
Name = "Distance",
Flag = "RaidsDistance",
Min = 50, Max = 10000, Suffix = "s"
});
Raids:Seperator()
Raids:Toggle({
Name = "Notifications",
Flag = "RaidNotifications",
Tooltip = "Notifies you when a raid starts"
});
--
--// Timed Crates
local TimedCrates = ESPCategories.World:Section({Name = "Timed Crates", Side = "Left"});
TimedCrates:Toggle({
Name = "Enabled",
Flag = "ESPTimedCrates"
});
TimedCrates:Colorpicker({
Flag = "TimedCratesMiscColor",
Default = {
Color3.fromRGB(0, 122, 8),
0
},
Name = "Color"
});
TimedCrates:Slider({
Name = "Distance",
Flag = "TimedCratesDistance",
Min = 50, Max = 1000, Suffix = "s"
})
--
--// Care Packages
local CarePackages = ESPCategories.World:Section({
Name = "Care Packages",
Side = "Right"
});
CarePackages:Toggle({
Name = "Enabled",
Flag = "ESPCarePackages",
});
CarePackages:Colorpicker({
Name = "Color",
Flag = "CarePackagesMiscColor",
Default = {
Color3.fromRGB(0, 244, 8),
0
}
});
CarePackages:Slider({
Name = "Distance",
Flag = "CarePackagesDistance",
Min = 50, Max = 10000, Suffix = "s"
})
--
--// Sleepers
local Sleepers = ESPCategories.World:Section({
Name = "Sleepers",
Side = "Right"
});
Sleepers:Toggle({
Name = "Enabled",
Flag = "ESPSleepers"
});
Sleepers:Colorpicker({
Name = "Color",
Flag = "SleepersMiscColor",
})
Sleepers:Slider({
Name = "Distance",
Flag = "SleepersDistance",
Min = 50, Max = 1000, Suffix = "s"
})
--
end;
end
local VisualsCategories = {
Camera = Pages.Visuals:Category({ Name = "Camera"}),
World = Pages.Visuals:Category({ Name = "World"}),
Viewmodel = Pages.Visuals:Category({ Name = "Viewmodel "});
};
--// Visuals Categories
--// Camera
local CamEffects = VisualsCategories.Camera:Section({
Name = "Camera Effects",
Side = "Left"
});
local DebugCamera = VisualsCategories.Camera:Section({
Name = "Debug Camera",
Side = "Right"
})
local ThirdPerson = VisualsCategories.Camera:Section({
Name = "Third person",
Side = "Right"
});
--// Third person
ThirdPerson:Toggle({
Name = "Enabled",
Flag = "ThirdPerson",
Tooltip = "WARNING: Can cause invalids"
})
ThirdPerson:Keybind({
Name = "Third Person Key",
Flag = "Third Person Activation",
Mode = "Toggle",
Callback = function()
local Viewmodel = Workspace.VFX.VMs:GetChildren()[1];
local ThirdPerson = Library.Flags.ThirdPerson.Value and Library.Flags["Third Person Activation"].Active
if Viewmodel then
if ThirdPerson then
for Index, Part in Viewmodel:GetDescendants() do
if Part:IsA("Part") or Part:IsA("MeshPart") then
if Part.Transparency ~= 1 then
Part:SetAttribute("OriginalTransparency", Part.Transparency)
end;
Part.Transparency = 1;
end;
end;
else
for Index, Part in Viewmodel:GetDescendants() do
if Part:IsA("Part") or Part:IsA("MeshPart") then
if Part:GetAttribute("OriginalTransparency") then
Part.Transparency = Part:GetAttribute("OriginalTransparency")
end;
end;
end;
end;
end;
end;
})
ThirdPerson:Slider({
Name = "Distance",
Flag = "ThirdPersonDistance",
Min = 0, Max = 20,
Increment = 0.1,
})
--
--// Cam Effects
CamEffects:Toggle({
Name = "Remove bobbing",
Flag = "RemoveCameraBobbing"
});
CamEffects:Seperator();
CamEffects:Toggle({
Name = "Custom field of view",
Flag = "ChangeFOV",
Callback = function()
if Library.Flags.ChangeFOV.Value then
Camera.FieldOfView = Library.Flags.CustomFOV.Value
end;
end;
});
local MaximumFOV = 120
CamEffects:Slider({
Name = "Field of view",
Suffix = "°",
Flag = "CustomFOV",
Min = 70, Max = MaximumFOV,
Callback = function()
if Library.Flags.ChangeFOV.Value then
Camera.FieldOfView = Library.Flags.CustomFOV.Value
end;
end;
});
CamEffects:Seperator();
CamEffects:Toggle({
Name = "Zoom",
Flag = "Zoom"
});
CamEffects:Slider({
Name = "Zoom level",
Suffix = "°",
Flag = "ZoomFOV",
Min = 10, Max = 40
});
CamEffects:Keybind({
Name = "Zoom key",
Flag = "Zoom Activation",
Mode = "Hold",
Callback = function()
if Library.Flags["Zoom"].Value and Library.Flags["Zoom Activation"].Active then
Camera.FieldOfView = Library.Flags.ZoomFOV.Value
end;
end;
})
--
--// Debug Camera
DebugCamera:Toggle({
Name = "Enabled",
Flag = "DebugCamera"
})
DebugCamera:Keybind({
Name = "Debug Camera Key",
Flag = "Debug Camera Activation",
Mode = "Toggle"
})
DebugCamera:Slider({
Name = "Speed",
Flag = "DebugCameraSpeed",
Min = 1, Max = 300, Increment = 0.1
})
--
--
--// World
local LightingSection = VisualsCategories.World:Section({
Name = "Lighting",
Side = "Left"
});
local BaseSection = VisualsCategories.World:Section({
Name = "Bases",
Side = "Right"
});
local Hitmarkers = VisualsCategories.World:Section({
Name = "Hitmarkers",
Side = "Left"
});
local Tracers = VisualsCategories.World:Section({
Name = "Tracers",
Side = "Right"
});
local TerrainSection = VisualsCategories.World:Section({
Name = "Terrain",
Side = "Left"
});
local CloudsSection = VisualsCategories.World:Section({
Name = "Clouds",
Side = "Right"
})
local FogSection = VisualsCategories.World:Section({
Name = "Fog",
Side = "Left"
});
local BloomSection = VisualsCategories.World:Section({
Name = "Bloom",
Side = "Right"
});
--// Bloom Section
local Bloom = Lighting:FindFirstChildOfClass("BloomEffect") or Globals:Instance("BloomEffect", {
Parent = Lighting,
Enabled = false
});
BloomSection:Toggle({
Name = "Enabled",
Flag = "Bloom",
Callback = function()
Bloom.Enabled = Library.Flags.Bloom.Value
end
});
BloomSection:Slider({
Name = "Intensity",
Flag = "BloomIntensity",
Min = 0, Max = 5,
Increment = 0.1,
Callback = function()
Bloom.Intensity = Library.Flags.BloomIntensity.Value
end;
})
BloomSection:Slider({
Name = "Threshold",
Flag = "BloomThreshold",
Min = 0, Max = 1,
Increment = 0.1,
Callback = function()
Bloom.Intensity = Library.Flags.BloomThreshold.Value
end;
})
BloomSection:Slider({
Name = "Size",
Flag = "BloomSize",
Min = 0, Max = 50,
Increment = 0.1,
Callback = function()
Bloom.Size = Library.Flags.BloomSize.Value
end;
});
--
--// Tracers Section
Tracers:Toggle({
Name = "Enabled",
Flag = "BulletTracers"
});
Tracers:Toggle({
Name = "Show enemy tracers",
Flag = "ShowEnemyTracers"
});
Tracers:Seperator()
Tracers:Colorpicker({
Name = "Client tracer color",
Flag = "TracerColor", Default = {Library.Theme.Accent, 0}
});
Tracers:Colorpicker({
Name = "Enemy tracer color",
Flag = "EnemyTracerColor", Default = {Color3.fromRGB(255, 0, 0), 0}
});
Tracers:Seperator()
Tracers:Slider({
Name = "Brigtness",
Min = 1, Max = 10,
Flag = "TracerBrightness"
});
Tracers:Slider({
Name = "Lifetime",
Flag = "TracerLifetime",
Min = 1, Max = 5, Increment = 0.1
});
Tracers:Slider({
Name = "Speed",
Flag = "ReferenceTime",
Min = 50, Max = 300, Default = 250
});
Tracers:Seperator()
-- BulletTracers:AddDropdown("Texture", "BeamTexture", {"Default", "Lightning", "Dark"});
Tracers:Dropdown({Name = "Texture", Flag = "BeamTexture", Options = {"Default", "Lightning", "Dark"}})
--, TracerBrightness, BeamTexture, TracerLifetime, ReferenceTime,
--
--// Hitmarkers Section
--HitmarkerColor, HitmarkerSize, HitmarkerTime
Hitmarkers:Toggle({
Name = "Enabled",
Flag = "Hitmarkers",
});
Hitmarkers:Toggle({
Name = "Prioritize hitmarker visibility",
Flag = "PrioritizeHitmarkers"
})
Hitmarkers:Toggle({
Name = "Apply random rotation",
Flag = "HitmarkerRandomRotation"
})
Hitmarkers:Colorpicker({
Name = "Color",
Flag = "HitmarkerColor"
});
Hitmarkers:Slider({
Name = "Size",
Flag = "HitmarkerSize",
Min = 10, Max = 20
});
Hitmarkers:Slider({
Name = "Lifetime",
Flag = "HitmarkerTime",
Min = 0.1, Max = 3, Increment = 0.1;
})
--
--// Clouds Section
if Workspace.Terrain:FindFirstChild("Clouds") then
local OldDensity = Workspace.Terrain.Clouds.Density;
local OldCover = Workspace.Terrain.Clouds.Cover;
local OldCloudColor = Workspace.Terrain.Clouds.Color
local function CloudCallback()
Workspace.Terrain.Clouds.Density = Library.Flags.ChangeCloudDensity.Value and Library.Flags.CloudDensity.Value or OldDensity
Workspace.Terrain.Clouds.Cover = Library.Flags.ChangeCloudCover.Value and Library.Flags.CloudCover.Value or OldCover
Workspace.Terrain.Clouds.Color = Library.Flags.ChangeCloudColor.Value and Library.Flags.CloudColor.Value[1] or OldloudColor;
end;
CloudsSection:Toggle({
Name = "Change cloud density",
Flag = "ChangeCloudDensity",
Callback = CloudCallback
});
CloudsSection:Slider({
Name = "Density",
Flag = "CloudDensity",
Min = 0, Max = 1, Increment = 0.001,
Callback = CloudCallback
});
CloudsSection:Seperator()
CloudsSection:Toggle({
Name = "Change cloud cover",
Flag = "ChangeCloudCover",
Callback = CloudCallback
});
CloudsSection:Slider({
Name = "Density",
Flag = "CloudCover",
Min = 0, Max = 1, Increment = 0.001,
Callback = CloudCallback
});
CloudsSection:Seperator()
CloudsSection:Toggle({
Name = "Change cloud color",
Flag = "ChangeCloudColor",
Callback = CloudCallback
});
CloudsSection:Colorpicker({
Name = "Color",
Flag = "CloudColor",
Callback = CloudCallback;
})
end
--
--// Fog Section
local Atmosphere = Lighting:FindFirstChild("Atmosphere");
if Atmosphere then
local OldFogDensity = Atmosphere.Density;
local OldFogColor = Atmosphere.Color;
local OldFogHaze = Atmosphere.Haze
local OldFogGlare = Atmosphere.Glare
local OldFogDecay = Atmosphere.Decay;
local function FogCallback()
Atmosphere.Density = Library.Flags.ChangeFogDensity.Value and Library.Flags.FogDensity.Value or OldFogDensity
Atmosphere.Color = Library.Flags.ChangeFogColor.Value and Library.Flags.FogColor.Value[1] or OldFogColor
Atmosphere.Decay = Library.Flags.ChangeFogDecay.Value and Library.Flags.DecayColor.Value[1] or OldFogDecay
Atmosphere.Glare = Library.Flags.ChangeFogGlare.Value and Library.Flags.FogGlare.Value or OldFogGlare
Atmosphere.Haze = Library.Flags.ChangeFogHaze.Value and Library.Flags.FogHaze.Value or OldFogHaze
end;
FogSection:Toggle({
Name = "Change fog density",
Flag = "ChangeFogDensity",
Callback = FogCallback
});
FogSection:Slider({
Name = "Density",
Flag = "FogDensity",
Min = 0, Max = 1, Increment = 0.001,
Callback = FogCallback
});
--
FogSection:Seperator()
--
FogSection:Toggle({
Name = "Change fog haze",
Flag = "ChangeFogHaze",
Callback = FogCallback
});
FogSection:Slider({
Name = "Haze",
Min = 0, Max = 1, Increment = 0.001, Callback = FogCallback, Flag = "FogHaze"
});
--
FogSection:Seperator()
--
FogSection:Toggle({
Name = "Change fog glare",
Flag = "ChangeFogGlare",
Callback = FogCallback
});
FogSection:Slider({
Name = "Glare",
Min = 0, Max = 1, Increment = 0.001, Callback = FogCallback, Flag = "FogGlare"
});
FogSection:Toggle({
Name = "Change fog color",
Flag = "ChangeFogColor",
Callback = FogCallback
});
FogSection:Colorpicker({
Name = "Color",
Flag = "FogColor",
Callback = FogCallback
})
--
FogSection:Seperator()
--
FogSection:Toggle({
Name = "Change fog decay",
Flag = "ChangeFogDecay",
Callback = FogCallback
});
FogSection:Colorpicker({
Name = "Decay",
Flag = "FogDecay",
Callback = FogCallback
});
end
--
--// Lighting Section
--[[
Lighting:GetPropertyChangedSignal("Ambient"):Connect(LPH_NO_VIRTUALIZE(function()
if Library.Flags.Ambient.Value then
Lighting.Ambient = Library.Flags.AmbientColor.Value[1]
end
end))
Lighting:GetPropertyChangedSignal("OutdoorAmbient"):Connect(LPH_NO_VIRTUALIZE(function()
if Library.Flags.Ambient.Value then
Lighting.OutdoorAmbient = Library.Flags["AmbientColor"].Value[1]
end
end))
Lighting:GetPropertyChangedSignal("ClockTime"):Connect(LPH_NO_VIRTUALIZE(function()
if Library.Flags.ChangeTime.Value then
Lighting.ClockTime = Library.Flags.Time.Value
end;
end))
]]
local BrightnessCallback = LPH_NO_VIRTUALIZE(function()
if Library.Flags.Fullbright.Value then
Lighting.Brightness = Library.Flags.Brightness.Value;
end;
end);
local AmbientCallback = LPH_NO_VIRTUALIZE(function()
if Library.Flags.Ambient.Value then
Lighting.OutdoorAmbient = Library.Flags["AmbientColor"].Value[1]
Lighting.Ambient = Library.Flags["AmbientColor"].Value[1]
end;
end);
local TimeCallback = LPH_NO_VIRTUALIZE(function()
if Library.Flags.ChangeTime.Value then
Lighting.ClockTime = Library.Flags.Time.Value
end;
end);
LightingSection:Toggle({Name = "Fullbright", Flag = "Fullbright", Callback = BrightnessCallback});
LightingSection:Slider({Name = "Brightness", Flag = "Brightness", Min = 2, Max = 6, Increment = 0.1, Callback = BrightnessCallback})
LightingSection:Seperator()
LightingSection:Toggle({Name = "Ambience", Flag = "Ambient", Callback = AmbientCallback});
LightingSection:Colorpicker({Name = "Ambient color", Flag = "AmbientColor", Default = {Library.Theme.Accent, 0.1}, Callback = AmbientCallback});
LightingSection:Seperator()
LightingSection:Toggle({Name = "Change time", Flag = "ChangeTime", Callback = TimeCallback})
LightingSection:Slider({Name = "Time", Flag = "Time", Min = 0, Max = 14, Increment = 0.1, Callback = TimeCallback})
--
--// Base Section
BaseSection:Toggle({
Name = "XRay",
Flag = "XRay",
})
BaseSection:Keybind({
Name = "XRay Key",
Flag = "XRay Activation",
Callback = LPH_NO_VIRTUALIZE(function()
for Index, Part in next, Globals.XRayParts do
if Library.Flags.XRay.Value and Library.Flags["XRay Activation"].Active then
Part.Transparency = Library.Flags.XRayTransparency.Value;
else
Part.Transparency = 0;
end;
end;
end)
});
BaseSection:Slider({
Name = "XRay transparency",
Flag = "XRayTransparency",
Min = 0, Max = 1, Increment = 0.1, Default = 0.5
})
--
--// Terrain Section
TerrainSection:Toggle({
Name = "Remove grass",
Flag = "RemoveGrass",
Callback = function()
sethiddenproperty(Workspace.Terrain, "Decoration", not Library.Flags.RemoveGrass.Value);
end
})
--
--
--// Viewmodel
local ViewmodelMaster = VisualsCategories.Viewmodel:Section({
Name = "Master",
Side = "Left"
})
ViewmodelMaster:Toggle({
Name = "Enabled",
Flag = "ViewmodelSandbox"
});
local Items = VisualsCategories.Viewmodel:Section({
Name = "Items",
Side = "Right"
});
local Arms = VisualsCategories.Viewmodel:Section({
Name = "Arms",
Side = "Left"
})
local Gloves = VisualsCategories.Viewmodel:Section({
Name = "Gloves",
Side = "Left"
});
local Sleeves = VisualsCategories.Viewmodel:Section({
Name = "Sleeves",
Side = "Right"
});
local Highlight = VisualsCategories.Viewmodel:Section({
Name = "Highlight",
Side = "Left"
})
--// Items
Items:Toggle({
Name = "Enabled",
Flag = "ItemChams"
});
Items:Toggle({
Name = "Ignore attachments",
Flag = "IgnoreAttachments"
});
Items:Colorpicker({
Name = "Color",
Flag = "VMItemColor",
Default = {Color3.fromRGB(0, 100, 255), 0}
});
Items:Dropdown({
Name = "Material",
Flag = "VMItemMaterial",
Options = {"SmoothPlastic", "ForceField", "Neon", "Glass"}
});
Items:Slider({
Name = "Reflectance", Flag = "ItemReflectance",
Min = 0, Max = 5, Increment = 0.001
})
--
--// Arms
Arms:Toggle({
Name = "Enabled",
Flag = "ArmChams"
});
Arms:Colorpicker({
Name = "Color",
Flag = "ArmColor",
Default = {Color3.fromRGB(0, 100, 255), 0}
})
Arms:Dropdown({
Name = "Material",
Flag = "ArmMaterial",
Options = {"SmoothPlastic", "ForceField", "Neon", "Glass"}
});
Arms:Slider({
Name = "Reflectance", Flag = "ArmReflectance",
Min = 0, Max = 5, Increment = 0.001
})
--
--// Shirt
Sleeves:Toggle({
Name = "Enabled",
Flag = "ShirtChams"
})
Sleeves:Colorpicker({
Name = "Color",
Flag = "ShirtColor",
Default = {Color3.fromRGB(0, 100, 255), 0}
})
Sleeves:Dropdown({
Name = "Material",
Flag = "ShirtMaterial",
Options = {"SmoothPlastic", "ForceField", "Neon", "Glass"}
});
Sleeves:Toggle({
Name = "Remove sleeves",
Flag = "RemoveClothing"
});
Sleeves:Slider({
Name = "Reflectance", Flag = "ShirtReflectance",
Min = 0, Max = 5, Increment = 0.001
})
--
--// Gloves
Gloves:Toggle({
Name = "Enabled",
Flag = "GloveChams"
})
Gloves:Colorpicker({
Name = "Color",
Flag = "GloveColor",
Default = {Color3.fromRGB(0, 100, 255), 0}
})
Gloves:Dropdown({
Name = "Material",
Flag = "GloveMaterial",
Options = {"SmoothPlastic", "ForceField", "Neon", "Glass"}
});
Gloves:Slider({
Name = "Reflectance", Flag = "GloveReflectance",
Min = 0, Max = 5, Increment = 0.001
})
--
--// Highlight
Highlight:Colorpicker({
Name = "Fill Color",
Flag = "VMFillColor",
Default = {Color3.fromRGB(0, 0, 0), 1}
})
Highlight:Colorpicker({
Name = "Outline Color",
Flag = "VMOutlineColor",
Default = {Color3.fromRGB(0, 0, 0), 0}
})
--
--
--[[
ViewmodelSandbox:AddColorpicker("Highlight fill color", "VMFillColor", Color3.fromRGB(0, 0, 0), 1);
ViewmodelSandbox:AddColorpicker("Highlight outline color", "VMOutlineColor", Color3.fromRGB(0, 0, 0), 0)
]]
--
--
local MiscCategories = {
Interactions = Pages.Misc:Category({ Name = "Interactions" }),
Movement = Pages.Misc:Category({ Name = "Movement" }),
};
--// Misc Interaction Categories
local Loot = MiscCategories.Interactions:Section({
Name = "Looting",
Side = "Right"
});
Loot:Toggle({
Name = "Instant loot",
Flag = "InstantLoot",
Callback = function()
if #Globals.QuickStackFunctions > 0 then
for _, FUNCTION in pairs(Globals.QuickStackFunctions) do
debug.setconstant(FUNCTION, 19, Library.Flags.InstantLoot.Value and 0 or 0.9) -- 0.9
debug.setconstant(FUNCTION, 20, Library.Flags.InstantLoot.Value and 0 or 0.3) -- 0.3
debug.setconstant(FUNCTION, 21, Library.Flags.InstantLoot.Value and 0 or 0.1) -- 0.1
end
end
end;
});
local Bases = MiscCategories.Interactions:Section({
Name = "Bases",
Side = "Left"
});
Bases:Toggle({
Name = "Disable turrets",
Flag = "DisableTurrets",
Callback = LPH_NO_VIRTUALIZE(function()
for Index, Part in next, Globals.TouchCollisions do
Part.CanTouch = not Library.Flags.DisableTurrets.Value
end;
end);
});
Bases:Toggle({
Name = "Disable trap damage",
Flag = "DisableDamageParts",
Callback = LPH_NO_VIRTUALIZE(function()
for Index, Part in next, Globals.DamageParts do
Part.CanTouch = not Library.Flags.DisableDamageParts.Value
end;
end);
});
local Building = MiscCategories.Interactions:Section({
Name = "Building",
Side = "Left"
});
Building:Toggle({
Name = "Auto Upgrade",
Flag = "AutoUpgrade"
});
Building:Slider({
Name = "Distance",
Flag = "AutoUpgradeDistance",
Min = 5, Max = 30
});
Building:Dropdown({
Name = "Level",
Flag = "UpgradeMaterial",
Options = {
"Wood",
"Stone",
"Metal",
"Steel"
};
});
--
--// Misc Movement categories
local Flight = MiscCategories.Movement:Section({
Name = "Flight",
Side = "Left"
});
local GeneralMovement = MiscCategories.Movement:Section({
Name = "General movement",
Side = "Right"
})
local NoFall = MiscCategories.Movement:Section({
Name = "Anti fall damage",
Side = "Left"
});
local TeleportSection = MiscCategories.Movement:Section({
Name = "Teleport",
Side = "Right"
})
--// Teleport section
TeleportSection:Toggle({
Name = "Enabled",
Flag = "ShootOnTP",
Risky = true
});
TeleportSection:Keybind({
Name = "Teleport Key",
Flag = "Teleport Activation",
Mode = "Toggle"
})
--
--// Flight Section
Flight:Toggle({
Name = "Enabled",
Flag = "Fly",
});
Flight:Toggle({
Name = "Bypass flight restriction",
Flag = "InfiniteFly",
Risky = true
});
Flight:Keybind({
Name = "Fly key",
Flag = "Fly Activation"
});
Flight:Slider({
Name = "Fly speed",
Flag = "FlySpeed",
Min = 2, Max = 6,
Increment = 0.1,
});
--
--// General movement
GeneralMovement:Toggle({
Name = "Silent step",
Flag = "SilentStep",
Risky = true
});
GeneralMovement:Toggle({
Name = "Bunnyhop",
Flag = "Bunnyhop"
});
GeneralMovement:Toggle({
Name = "Omnisprint",
Flag = "Omnisprint"
});
GeneralMovement:Toggle({
Name = "Always grounded",
Flag = "AlwaysGrounded",
Tooltip = "Doesn't work on potassium"
});
--
--// No fall
NoFall:Toggle({
Name = "Enabled",
Flag = "NoFall"
})
--
--
local SkinCategories = {
Global = Pages.Skins:Category({ Name = "Global Settings" }),
Guns = Pages.Skins:Category({ Name = "Items" }),
Armor = Pages.Skins:Category({ Name = "Armor" }),
}
--// Skins
local GlobalSection = SkinCategories.Global:Section({
Name = "Global Settings",
Side = "Left"
})
GlobalSection:Toggle({
Name = "Enable skin changer",
Flag = "SkinChanger",
})
if ReplicatedStorage:FindFirstChild("VMs") then
local VMs = ReplicatedStorage.VMs;
local Sleeves = ReplicatedStorage.Sleeves;
local ItemSkins = {};
local ArmorSkins = {};
for Index, Item in VMs:GetChildren() do
if Item:IsA("Folder") then
ItemSkins[Item.Name] = {}
for _, Skin in Item:GetChildren() do
if Skin:IsA("Model") then
ItemSkins[Item.Name][#ItemSkins[Item.Name] + 1] = Skin.Name;
end;
end;
end;
end;
for Index, Armor in Sleeves:GetChildren() do
if Armor:IsA("Folder") then
ArmorSkins[Armor.Name] = {}
for _, Skin in Armor:GetChildren() do
if Skin:IsA("Model") then
ArmorSkins[Armor.Name][#ArmorSkins[Armor.Name] + 1] = Skin.Name;
end;
end;
end;
end;
do --// Guns/Items
local GoLeft = false
for Item, Skins in ItemSkins do
if #Skins > 1 then
GoLeft = not GoLeft
local Section = SkinCategories.Guns:Section({
Name = Item,
Side = GoLeft and "Left" or "Right"
});
Section:Toggle({
Name = "Enabled",
Flag = "EnableSkin_"..Item
})
Section:Dropdown({
Name = "Skin",
Flag = "Skin_"..Item,
Options = Skins,
})
end;
end;
end;
do --// Armor
local GoLeft = false
for Armor, Skins in ArmorSkins do
if #Skins > 1 then
GoLeft = not GoLeft
local Section = SkinCategories.Armor:Section({
Name = Armor,
Side = GoLeft and "Left" or "Right"
});
Section:Toggle({
Name = "Enabled",
Flag = "EnableSkin_"..Armor
})
Section:Dropdown({
Name = "Skin",
Flag = "Skin_"..Armor,
Options = Skins,
})
end;
end;
end;
end;
--
local SettingsCategories = {
Main = Pages.Settings:Category({
Name = "Main"
}),
};
--// Configs
local Configs = SettingsCategories.Main:Section({
Name = "Configurations",
Side = "Left"
});
Configs:Textbox({
Name = "Configuration Name",
Flag = "ConfigName",
});
local Save = Configs:Button({
Name = "Save",
Flag = "SaveButton",
Confirm = true,
Callback = LPH_NO_VIRTUALIZE(function()
Library:SaveConfig(Library.Flags.ConfigName.Value)
end)
}):AddButton({
Name = "Load",
Flag = "LoadButton",
Confirm = true,
Callback = LPH_NO_VIRTUALIZE(function()
local s, e = pcall(Library:LoadConfig(Library.Flags.ConfigName.Value))
if not s and e then rconsoleprint(e); end;
end);
});
Configs:Button({
Name = "Delete config",
Flag = "DeleteButton",
Confirm = true,
Callback = function()
local Name = tostring(Library.Flags.ConfigName.Value);
local FilePath = ConfigsFolder.."/"..Name..".json";
if not isfile(FilePath) then
Library:Notify("Failed to load config!\n"..FilePath.."does not exist!", 4, Color3.fromRGB(255, 165, 0))
return
end;
delfile(FilePath)
end;
});
if game.PlaceId == 17574618959 or game.PlaceId == 18911599934 then
Configs:Button({
Name = "Rejoin",
Flag = "Rejoin",
Callback = function()
game.TeleportService:Teleport(game.PlaceId);
end;
})
end;
--
--// HUD
local HUD = SettingsCategories.Main:Section({
Name = "Heads up Display",
Side = "Right"
});
HUD:Toggle({
Name = "Hotkeys panel",
Flag = "HotkeysPanel",
Default = true,
Callback = function()
Window.Hotkeys.Components.Hotkeys.Visible = Library.Flags.HotkeysPanel.Value
end;
})
HUD:Toggle({
Name = "Moderator panel",
Flag = "ModeratorPanel",
Default = true,
Callback = function()
Window.ModPanel.Components.Moderators.Visible = Library.Flags.ModeratorPanel.Value
end;
})
--;
--// ESP
local ESPSettingsGlobal = SettingsCategories.Main:Section({
Name = "Global ESP settings",
Side = "Left"
})
ESPSettingsGlobal:Slider({
Name = "Chams refresh rate",
Flag = "ChamsRefreshRate",
Min = 0, Max = 10, Suffix = "s", Increment = 0.1
})
--;
local Watermark = Library:CreateWatermark("")
task.wait(0.5)
Globals:Tween(Window.Components.Outline, TweenInfo.new(Library.HighlightSpeed, Enum.EasingStyle.Quad), {
Position = UDim2.new(0.5, 0, 0.5, 0),
})
Window:SetTab(Pages.Combat)
task.wait(2)
Watermark:SetText("Iridescent x Amongus.Hook - Fallen Survival"); -- Feel free to change it!
local ArmorPanel = Window.ArmorPanel;
Globals.ArmorPanel = ArmorPanel;
end)()
Log("Successfully setup UI")
--#endregion UI Setup
--#region Flags
local AimingAnimationId = "rbxassetid://10982316984"
local HealingAnimationIds = {
["rbxassetid://14860445359"] = true,
["rbxassetid://2529243689"] = true
}
EntityClass.Main.Functions:AddFlag({
Name = "Aiming",
ClassTypes = {"Player"},
Text = LPH_NO_VIRTUALIZE(function(self) return "Scope" end),
Allow = LPH_NO_VIRTUALIZE(function(self)
if not (self.Character and self.Character:FindFirstChild("Humanoid")) then return false end
local Root = self.Character.Humanoid.RootPart
if not Root then return false end
local Weapon = self.CachedItem
if Weapon and Weapon.Name == "Wooden Bow" then
local DrawAnim = Root:FindFirstChild("Wooden BowDraw")
return DrawAnim and DrawAnim.IsPlaying
end
for _, track in ipairs(self.Character.Humanoid:GetPlayingAnimationTracks()) do
if track.Animation.AnimationId == AimingAnimationId then
return true
end
end
return false
end)
})
EntityClass.Main.Functions:AddFlag({
Name = "Reloading",
ClassTypes = {"Player"},
Text = LPH_NO_VIRTUALIZE(function(self) return "Reload" end),
Allow = LPH_NO_VIRTUALIZE(function(self)
local Root = self.Character and self.Character:FindFirstChild("HumanoidRootPart")
local Weapon = self.CachedItem
if not (Root and Weapon) then return false end
local WeaponName = Weapon.Name
local MagIn, MagOut
if WeaponName == "Crossbow" then
MagIn = Root:FindFirstChild("CrossbowPlaceArrow")
MagOut = Root:FindFirstChild("CrossbowPull")
else
MagIn = Root:FindFirstChild(WeaponName.. "MagIn")
MagOut = Root:FindFirstChild(WeaponName .. "MagOut")
end
return (MagIn and MagIn.IsPlaying) or (MagOut and MagOut.IsPlaying)
end)
})
EntityClass.Main.Functions:AddFlag({
Name = "Healing",
ClassTypes = {"Player"},
Text = LPH_NO_VIRTUALIZE(function(self) return "Heal" end),
Allow = LPH_NO_VIRTUALIZE(function(self)
if not (self.Character and self.Character:FindFirstChild("Humanoid")) then return false end
for _, track in ipairs(self.Character.Humanoid:GetPlayingAnimationTracks()) do
if HealingAnimationIds[track.Animation.AnimationId] then
return true
end
end
return false
end)
})
EntityClass.Main.Functions:AddFlag({
Name = "VIP",
ClassTypes = {"Player"},
Text = LPH_NO_VIRTUALIZE(function(self) return "VIP" end),
Allow = LPH_NO_VIRTUALIZE(function(self)
return self.Pointer and self.Pointer:GetAttribute("VIP")
end)
})
EntityClass.Main.Functions:AddFlag({
Name = "Clan",
ClassTypes = {"Player"},
Text = LPH_NO_VIRTUALIZE(function(self)
if self.Pointer:GetAttribute("ClanTag") then
return "C: "..self.Pointer:GetAttribute("ClanTag")
end
return ""
end),
Allow = LPH_NO_VIRTUALIZE(function(self)
return self.Pointer and self.Pointer:GetAttribute("ClanTag")
end)
})
EntityClass.Main.Functions:AddFlag({
Name = "Staff",
ClassTypes = {"Player"},
Text = LPH_NO_VIRTUALIZE(function(self)
return self.Pointer and Globals.FlaggedStaff[self.Pointer]
and "STAFF: "..Globals.FlaggedStaff[self.Pointer] or nil
end),
Allow = LPH_NO_VIRTUALIZE(function(self)
return self.Pointer and Globals.FlaggedStaff[self.Pointer]
end)
})
--#endregion Flags
--#region Connections
local RaidsFolder = Globals:Instance("Folder", {
Parent = CoreGui,
Name = "Raids"
});
Globals.RaidsFolder = RaidsFolder;
local AttackersFolder = Globals:Instance("Folder", {
Parent = CoreGui,
Name = "AttackerFolder"
})
Globals.AttackersFolder = AttackersFolder;
--// All important connections
LPH_JIT_MAX(function()
--// Players
local ModPanel = Library.Window.ModPanel;
local FlaggedRoles = {
"OG",
"Game Tester",
"Game Moderator",
"Developers",
"Lead Developer",
"Co-Founder",
"Founder",
};
local function CheckMod(Player)
if Player == Client then
Library:Notify("Test....");
ModPanel:Add(Player.Name, "test")
end;
local Role = "cuck"
local IsMod = false;
if Player:IsInGroup(1154360) then
Role = Player:GetRoleInGroup(1154360)
if table.find(FlaggedRoles, Role) then
Library:Notify("Staff detected! ["..Player.Name .. "] Role: "..Role, 15, Color3.fromRGB(255, 0, 0))
ModPanel:Add(Player.Name, Role);
Globals.FlaggedStaff[Player] = Role
end
end;
if TrialModList[Player.UserId] and not Globals.FlaggedStaff[Player] then
Role = "Trial Moderator";
Library:Notify("Staff detected! "..Player.Name .. " | Role: "..Role, 15, Color3.fromRGB(255, 0, 0))
ModPanel:Add(Player.Name, Role);
Globals.FlaggedStaff[Player] = Role
end;
return IsMod, Role
end;
for Index, Player in Players:GetChildren() do
if Player ~= Client then
local EntityObject = EntityClass.Global:Create(
Player,
{
Class = "Player",
ClassType = "Player",
}
);
Player.CharacterAdded:Connect(function(Character)
EntityObject:OnCharacterAdded(Character)
end)
if Player.Character then
EntityObject:OnCharacterAdded(Player.Character);
end;
pcall(CheckMod, Player)
end;
end;
Players.PlayerAdded:Connect(function(Player)
local EntityObject = EntityClass.Global:Create(
Player,
{
Class = "Player",
ClassType = "Player",
}
);
Player.CharacterAdded:Connect(function(Character)
EntityObject:OnCharacterAdded(Character)
end)
if Player.Character then
EntityObject:OnCharacterAdded(Player.Character);
end;
pcall(CheckMod, Player)
end);
Players.ChildRemoved:Connect(function(Player)
EntityClass.Main.Functions:Remove(Player);
if Globals.FlaggedStaff[Player] then
ModPanel:UpdateModerator(Player.Name, nil, true)
end;
end)
--
--// AI
local Military = Workspace:FindFirstChild("Military")
if Military then
local Events = Workspace:FindFirstChild("Events")
local function CacheSoldier(Soldier)
if table.find({"Brutus", "Bruno", "BTR", "Boris", "Soldier"}, Soldier.Name) then
local ClassType = "AI"
if Soldier.Name == "Brutus" or Soldier.Name == "Bruno" or Soldier.Name == "Boris" or Soldier.Name == "BTR" then
ClassType = "Boss"
end;
local EntityObject = EntityClass.Global:Create(
Soldier,
{
Class = "AI",
ClassType = ClassType,
}
);
else
return
end;
end;
for Index, BTR in Events:GetChildren() do
if BTR.Name == "BTR" then
CacheSoldier(BTR)
end;
end;
Events.ChildAdded:Connect(function(BTR)
task.wait(1)
if BTR.Name == "BTR" then
CacheSoldier(BTR)
end;
end)
Events.ChildRemoved:Connect(function(BTR)
EntityClass.Main.Functions:Remove(BTR)
end)
for _, Folder in Military:GetChildren() do
for Index, Soldier in Folder:GetChildren() do
if Soldier:IsA("Model") then
CacheSoldier(Soldier)
end;
end;
Folder.ChildAdded:Connect(function(Soldier)
task.wait(1)
if Soldier:IsA("Model") then
CacheSoldier(Soldier)
end;
end)
Folder.ChildRemoved:Connect(function(Soldier)
EntityClass.Main.Functions:Remove(Soldier)
end)
end;
end;
--
--// Misc ESP
local Nodes = Workspace:FindFirstChild("Nodes");
local Drops = Workspace:FindFirstChild("Drops");
local Bases = Workspace:FindFirstChild("Bases");
local Plants = Workspace:FindFirstChild("Plants")
local FixedNames = {
["Metal_Node"] = "Metal node",
["Phosphate_Node"] = "Phosphate node",
["Stone_Node"] = "Stone node",
};
if Nodes then
EntityClass.Misc.Functions.AddListener({
Parent = Nodes,
ClassName = "Model",
Listener = "NodeListener",
Flag = "Nodes",
GetColor = LPH_NO_VIRTUALIZE(function(Data)
local Name = FixedNames[Data.Object.Name];
return Library.Flags[Name.."Color"].Value[1];
end);
GetAlpha = LPH_NO_VIRTUALIZE(function(Data)
local Name = FixedNames[Data.Object.Name];
return Library.Flags[Name.."Color"].Value[2];
end);
GetName = LPH_NO_VIRTUALIZE(function(Data)
local HealthPercent = math.floor((Data.Object:GetAttribute("Health") / Data.Object:GetAttribute("MaxHealth")) * 100);
local Name = FixedNames[Data.Object.Name];
return Name .. " "..tostring(HealthPercent).."%"
end);
GetPosition = LPH_NO_VIRTUALIZE(function(Data)
return Data.Object:FindFirstChild("Main") and Data.Object:FindFirstChild("Main").CFrame.p
end);
GetDistance = LPH_NO_VIRTUALIZE(function(Data)
return Data.Object:FindFirstChild("Main") and math.floor((Camera.CFrame.p - Data.Object:FindFirstChild("Main").CFrame.p).Magnitude);
end);
Validate = LPH_NO_VIRTUALIZE(function(Data)
local Name = FixedNames[Data.Object.Name];
return Library.Flags[Name.."CanShow"].Value;
end);
});
Library:Notify("Added node listener...")
end;
--
if Drops then
local ItemColors = {
["Misc"] = Color3.fromRGB(210, 210, 210),
["Gun"] = Color3.fromRGB(214, 20, 20),
["Ammo"] = Color3.fromRGB(214, 50, 50),
["Consumable"] = Color3.fromRGB(50, 214, 50),
["Bench"] = Color3.fromRGB(210, 210, 210),
["Attachment"] = Color3.fromRGB(252, 215, 3),
["Resource"] = Color3.fromRGB(3, 252, 161),
["Lock"] = Color3.fromRGB(210, 210, 210),
["Tool"] = Color3.fromRGB(255, 255, 255),
["Armor"] = Color3.fromRGB(255, 0, 183)
};
EntityClass.Misc.Functions.AddListener({
Parent = Drops,
ClassName = "Model",
Listener = "ItemListener",
Flag = "Items",
GetColor = LPH_NO_VIRTUALIZE(function(Data)
return Library.Flags["ItemsColor"].Value[1];
end);
GetAlpha = LPH_NO_VIRTUALIZE(function(Data)
return Library.Flags["ItemsColor"].Value[2];
end);
GetName = LPH_NO_VIRTUALIZE(function(Data)
if not Data.DecodedInformation then
local Item = Data.Object:FindFirstChild("Item");
Item = HttpService:JSONDecode(Item.Value);
local ID = Item.ID;
local Amount = Item.Amount;
local ItemInfo = Globals.ItemInfoTable[ID];
local Type = ItemInfo.Type;
Data.Type = Type;
Data.DecodedInformation = {
ID = ID,
Amount = Amount,
};
end;
local Color = ItemColors[Data.Type]
local Name = Data.Object.Name;
if Data.DecodedInformation.Amount > 1 then
Name = Name .. " x"..tostring(Data.DecodedInformation.Amount)
end;
return Name
end);
GetPosition = LPH_NO_VIRTUALIZE(function(Data)
return Data.Object.PrimaryPart and Data.Object.PrimaryPart.CFrame.p
end);
GetDistance = LPH_NO_VIRTUALIZE(function(Data)
return Data.Object.PrimaryPart and math.floor((Camera.CFrame.p - Data.Object.PrimaryPart.CFrame.p).Magnitude);
end);
Validate = LPH_NO_VIRTUALIZE(function(Data)
if Data.Object:FindFirstChild("Item") then
if not Data.DecodedInformation then
local Item = Data.Object:FindFirstChild("Item");
Item = HttpService:JSONDecode(Item.Value);
local ID = Item.ID;
local Amount = Item.Amount;
local ItemInfo = Globals.ItemInfoTable[ID];
local Type = ItemInfo.Type;
Data.Type = Type;
Data.DecodedInformation = {
ID = ID,
Amount = Amount,
};
end;
return Library.Flags["Include"..Data.Type].Value;
end;
end);
});
Library:Notify("Added item listener..")
EntityClass.Misc.Functions.AddListener({
Parent = Globals.RaidsFolder,
ClassName = "Part",
Listener = "RaidListener",
Flag = "Raids",
GetName = LPH_NO_VIRTUALIZE(function(Data)
local Object = Data.Object;
local Type = Object.Name
local Time = tostring(math.floor(tick() - Object.StartedAt.Value));
return "Potential Raid - "..Object.Name.."\n"..tostring(Time).." seconds ago";
end);
GetPosition = LPH_NO_VIRTUALIZE(function(Data)
return Data.Object and Data.Object.CFrame.p
end);
GetDistance = LPH_NO_VIRTUALIZE(function(Data)
return Data.Object and math.floor((Camera.CFrame.p - Data.Object.CFrame.p).Magnitude);
end);
Validate = LPH_NO_VIRTUALIZE(function(Data)
return true;
end);
});
EntityClass.Misc.Functions.AddListener({
Parent = Globals.AttackersFolder,
ClassName = "Part",
Listener = "AttackerListener",
Flag = "Attackers",
GetName = LPH_NO_VIRTUALIZE(function(Data)
return Data.Object.Name
end);
GetPosition = LPH_NO_VIRTUALIZE(function(Data)
return Data.Object and Data.Object.CFrame.p
end);
GetDistance = LPH_NO_VIRTUALIZE(function(Data)
return Data.Object and math.floor((Camera.CFrame.p - Data.Object.CFrame.p).Magnitude);
end);
Validate = LPH_NO_VIRTUALIZE(function(Data)
return true;
end);
})
end;
--
if Bases then
local Loners = Bases:FindFirstChild("Loners");
local TimedCrate = Loners:FindFirstChild("Timed Crate");
local Sleeper = Loners:FindFirstChild("Sleeper");
if TimedCrate then
EntityClass.Misc.Functions.AddListener({
Parent = TimedCrate,
ClassName = "Model",
Listener = "TimedCrateListener",
Flag = "TimedCrates",
GetName = LPH_NO_VIRTUALIZE(function(Data)
local Name = Data.Object.Name
local Timer = Data.Object:FindFirstChild("Timer");
local GuiHolder = Timer and Timer:FindFirstChild("GuiHolder");
local SurfaceGui = GuiHolder and GuiHolder:FindFirstChild("Label");
local TextLabel = SurfaceGui and SurfaceGui:FindFirstChild("TextLabel");
local TimeRemaining = TextLabel and TextLabel.Text or "12:00";
return Name .. " ["..TimeRemaining.."]"
end);
GetPosition = LPH_NO_VIRTUALIZE(function(Data)
return Data.Object.PrimaryPart and Data.Object.PrimaryPart.CFrame.p
end);
GetDistance = LPH_NO_VIRTUALIZE(function(Data)
return Data.Object.PrimaryPart and math.floor((Camera.CFrame.p - Data.Object.PrimaryPart.CFrame.p).Magnitude);
end);
Validate = LPH_NO_VIRTUALIZE(function(Data)
return true
end);
});
Library:Notify("Added timed crate listener...")
end;
--
if Loners then
local CarePackage = Loners:FindFirstChild("Care Package");
local BodyBag = Loners:FindFirstChild("Body Bag")
if CarePackage then
EntityClass.Misc.Functions.AddListener({
Parent = CarePackage,
ClassName = "Model",
Listener = "CarePackageListener",
Flag = "CarePackages",
GetName = LPH_NO_VIRTUALIZE(function(Data)
local Name = Data.Object.Name
return Name
end);
GetPosition = LPH_NO_VIRTUALIZE(function(Data)
return Data.Object.PrimaryPart and Data.Object.PrimaryPart.CFrame.p
end);
GetDistance = LPH_NO_VIRTUALIZE(function(Data)
return Data.Object.PrimaryPart and math.floor((Camera.CFrame.p - Data.Object.PrimaryPart.CFrame.p).Magnitude);
end);
Validate = LPH_NO_VIRTUALIZE(function(Data)
return true
end);
});
Library:Notify("Added care package listener...")
end;
if BodyBag then
EntityClass.Misc.Functions.AddListener({
Parent = BodyBag,
ClassName = "Model",
Name = "Body Bag",
Listener = "BodyBagListener",
Flag = "BodyBags",
GetName = LPH_NO_VIRTUALIZE(function(Data)
local Name = Data.Object.Name;
local OwnerName = Data.Object:GetAttribute("OwnerName");
local FixedName = Name .. " - "..OwnerName
return FixedName
end);
GetPosition = LPH_NO_VIRTUALIZE(function(Data)
return Data.Object.PrimaryPart and Data.Object.PrimaryPart.CFrame.p
end);
GetDistance = LPH_NO_VIRTUALIZE(function(Data)
return Data.Object.PrimaryPart and math.floor((Camera.CFrame.p - Data.Object.PrimaryPart.CFrame.p).Magnitude);
end);
Validate = LPH_NO_VIRTUALIZE(function(Data)
return true
end);
});
Library:Notify("Added body bag listener...")
end;
end;
--
if Sleeper then
EntityClass.Misc.Functions.AddListener({
Parent = Sleeper,
ClassName = "Model",
Listener = "SleeperListener",
Flag = "Sleepers",
GetName = LPH_NO_VIRTUALIZE(function(Data)
local Name = Data.Object.Name;
local OwnerName = "Owner";
local NameTag = Data.Object:FindFirstChild("NameTag");
local Label = NameTag and NameTag:FindFirstChild("Label");
OwnerName = Label and Label.Text or OwnerName;
local FixedName = Name .. " - "..OwnerName
return FixedName
end);
GetPosition = LPH_NO_VIRTUALIZE(function(Data)
return Data.Object.PrimaryPart and Data.Object.PrimaryPart.CFrame.p
end);
GetDistance = LPH_NO_VIRTUALIZE(function(Data)
return Data.Object.PrimaryPart and math.floor((Camera.CFrame.p - Data.Object.PrimaryPart.CFrame.p).Magnitude);
end);
Validate = LPH_NO_VIRTUALIZE(function(Data)
return true
end);
});
Library:Notify("Added sleeper listener...")
end;
end;
if Plants then
EntityClass.Misc.Functions.AddListener({
Parent = Plants,
Name = "Wool Plant",
Listener = "WoolListener",
Flag = "WoolPlants",
GetName = LPH_NO_VIRTUALIZE(function(Data)
return "Cloth Plant"
end);
GetPosition = LPH_NO_VIRTUALIZE(function(Data)
return Data.Object.PrimaryPart and Data.Object.PrimaryPart.CFrame.p
end);
GetDistance = LPH_NO_VIRTUALIZE(function(Data)
return Data.Object.PrimaryPart and math.floor((Camera.CFrame.p - Data.Object.PrimaryPart.CFrame.p).Magnitude);
end);
Validate = LPH_NO_VIRTUALIZE(function(Data)
return true
end);
});
Library:Notify("Added plant listener...")
end;
--
--// Camera
Camera:GetPropertyChangedSignal("FieldOfView"):Connect(LPH_NO_VIRTUALIZE(function()
if Library.Flags.Zoom.Value and Library.Flags["Zoom Activation"].Active then
Camera.FieldOfView = Library.Flags.ZoomFOV.Value
return
end;
if Library.Flags.ChangeFOV.Value then
Camera.FieldOfView = Library.Flags.CustomFOV.Value
end;
end));
--
--// Viewmodel
local VFX = Workspace:FindFirstChild("VFX")
local VMs = VFX and VFX:FindFirstChild("VMs");
if VMs then
VMs.ChildAdded:Connect(LPH_NO_VIRTUALIZE(function(Viewmodel)
task.wait()
if Viewmodel:IsA("Model") then
local Arms = Viewmodel:WaitForChild("Arms");
local Weapon = Viewmodel:WaitForChild("Weapon");
local Highlight = Viewmodel:WaitForChild("Highlight", 1);
if Arms and Weapon then
if Library.Flags.ViewmodelSandbox.Value then
if Highlight then
Highlight.FillColor = Library.Flags.VMFillColor.Value[1];
Highlight.FillTransparency = Library.Flags.VMFillColor.Value[2];
Highlight.OutlineColor = Library.Flags.VMOutlineColor.Value[1];
Highlight.OutlineTransparency = Library.Flags.VMOutlineColor.Value[2];
end;
for Index, Part in next, Arms:GetDescendants() do
if Part:IsA("MeshPart") then
if (Part.Name == "Sleeve" or Part.Name == "Armor") and Library.Flags.ShirtChams and Library.Flags.ShirtChams.Value then
Part.Material = Library.Flags.ShirtMaterial.Value;
Part.Color = Library.Flags.ShirtColor.Value[1];
Part.Transparency = Library.Flags.ShirtColor.Value[2];
Part.Reflectance = Library.Flags.ShirtReflectance.Value
end;
if (Part.Name == "Sleeve" or Part.Name == "Armor") and Library.Flags.RemoveClothing and Library.Flags.RemoveClothing.Value then
Part.Transparency = 1;
end;
if (Part.Name == "Glove" or Part.Name == "Wrap") and Library.Flags.GloveChams and Library.Flags.GloveChams.Value then
Part.Material = Library.Flags.GloveMaterial.Value;
Part.Color = Library.Flags.GloveColor.Value[1];
Part.Transparency = Library.Flags.GloveColor.Value[2];
Part.Reflectance = Library.Flags.GloveReflectance.Value
end;
if (Part.Name == "RightArm" or Part.Name == "LeftArm") and Library.Flags.ArmChams and Library.Flags.ArmChams.Value then
Part.Material = Library.Flags.ArmMaterial.Value;
Part.Color = Library.Flags.ArmColor.Value[1];
Part.Transparency = Library.Flags.ArmColor.Value[2];
Part.Reflectance = Library.Flags.ArmReflectance.Value
end;
if Part.Material == Enum.Material.SmoothPlastic or Part.Material == Enum.Material.Glass or Part.Material == Enum.Material.Neon then
Part.TextureID = "";
end;
if Part.Material == Enum.Material.ForceField then
Part.TextureID = "rbxassetid://5843010904";
end;
end;
end;
if Library.Flags.ItemChams.Value then
for Index, Part in next, Weapon:GetDescendants() do
if Part and Part:IsA("MeshPart") and Part.Transparency ~= 1 then
if Weapon:FindFirstChild("Attachments") then
if Part:IsDescendantOf(Weapon:FindFirstChild("Attachments")) then
if not Library.Flags.IgnoreAttachments.Value then
Part.Material = Library.Flags.VMItemMaterial.Value;
Part.Color = Library.Flags.VMItemColor.Value[1];
Part.Transparency = Library.Flags.VMItemColor.Value[2];
Part.Reflectance = Library.Flags.ItemReflectance.Value
end;
else
Part.Reflectance = Library.Flags.ItemReflectance.Value
Part.Material = Library.Flags.VMItemMaterial.Value;
Part.Color = Library.Flags.VMItemColor.Value[1];
Part.Transparency = Library.Flags.VMItemColor.Value[2];
end;
else
Part.Reflectance = Library.Flags.ItemReflectance.Value
Part.Material = Library.Flags.VMItemMaterial.Value;
Part.Color = Library.Flags.VMItemColor.Value[1];
Part.Transparency = Library.Flags.VMItemColor.Value[2];
end;
if Part.Material == Enum.Material.SmoothPlastic or Part.Material == Enum.Material.Glass or Part.Material == Enum.Material.Neon then
Part.TextureID = "";
end;
if Part.Material == Enum.Material.ForceField then
Part.TextureID = "rbxassetid://5843010904";
end;
end;
end;
end;
end;
if Library.Flags.ThirdPerson.Value and Library.Flags["Third Person Activation"].Active then
for Index, Part in Viewmodel:GetDescendants() do
if Part:IsA("MeshPart") or Part:IsA("Part") then
if Part.Transparency ~= 1 then
Part:SetAttribute("OriginalTransparency", Part.Transparency)
end;
Part.Transparency = 1;
end;
end;
end;
end;
end;
end));
end;
--
--// World
local TouchCollisions = {};
local DamageParts = {};
local XRayParts = {};
local AllowedBuildings = {
"Wall",
"Half Wall",
"Low Wall",
"Doorway",
"Window",
"Foundation",
"Floor",
"Triangle Floor",
"Wall Frame",
"Floor Frame",
"Triangle Floor Frame",
"L-Shaped Stairs",
"U-Shaped Stairs",
"Foundation Steps",
"Foundation",
"Triangle Foundation"
};
local BGrade = {
["Wood"] = 1,
["Stone"] = 2,
["Metal"] = 3,
["Steel"] = 4,
};
if Workspace:FindFirstChild("Bases") then
LPH_NO_VIRTUALIZE(function()
for Index, Value in next, Workspace.Bases:GetDescendants() do
if Value:IsA("MeshPart") and Value.Name == "Detail" then
if Value.Parent and table.find(AllowedBuildings, Value.Parent.Name) then
XRayParts[#XRayParts+1] = Value
end;
end;
if Value.Name == "TouchCollision" and Value.Parent and Value.Parent.Name == "Shotgun Turret" then
TouchCollisions[#TouchCollisions+1] = Value
end;
if Value.Name == "DamagePart" then
DamageParts[#DamageParts+1] = Value;
end;
end;
end)();
Workspace.Bases.DescendantAdded:Connect(LPH_NO_VIRTUALIZE(function(Value)
if Value.ClassName == 'Model' and Client.Character and Client.Character:FindFirstChild("Blueprint") and table.find(AllowedBuildings, Value.Name) and Library.Flags.AutoUpgrade.Value then
task.spawn(function()
if not Value.PrimaryPart then
local StartTime = tick()
repeat
task.wait()
until Value.PrimaryPart or tick() - StartTime > 2
end
local Main = Value.PrimaryPart;
if Main and (Main.CFrame.p - Camera.CFrame.p).Magnitude < Library.Flags.AutoUpgradeDistance.Value then
local BuildingGrade = BGrade[Library.Flags.UpgradeMaterial.Value];
if (not BuildingGrade) then
return;
end;
Library:Notify(
"Auto Upgrade\n[Building]: "..Value.Name.. " [Quality]: "..Library.Flags.UpgradeMaterial.Value.." [Distance]: "..tostring(math.floor((Main.CFrame.p - Camera.CFrame.p).Magnitude)).."s",
3,
Color3.fromRGB(255, 133, 3)
)
-- '\223\155\187BG2\179\190\204\146\219\194<\001c\152\005\141:?';
-- 'NM\182\001\154\155j\149\231\163\004\179F\180\232\247\208\a\221\217';
-- 'NM\182\1\154\155j\149\231\163\4\179F\180\232\247\208\7\221\217'
Globals.BuildingNetworkPointer(
"Fire",
"NM\182\1\154\155j\149\231\163\4\179F\180\232\247\208\7\221\217",
"\223\155\187BG2\179\190\204\146\219\194<\1c\152\5\141:?",
Value,
BuildingGrade
);
end;
end);
end;
task.wait(0.5);
if Value:IsA("MeshPart") and Value.Name == "Detail" then
if Value.Parent and table.find(AllowedBuildings, Value.Parent.Name) then
XRayParts[#XRayParts+1] = Value
if Library.Flags.XRay.Value and Library.Flags["XRay Activation"].Active then
Value.Transparency = Library.Flags.XRayTransparency.Value
end;
end;
end;
if Value.Name == "TouchCollision" and Value.Parent and Value.Parent.Name == "Shotgun Turret" then
TouchCollisions[#TouchCollisions+1] = Value
Value.CanTouch = not Library.Flags.DisableTurrets.Value
end;
if Value.Name == "DamagePart" then
DamageParts[#DamageParts+1] = Value;
Value.CanTouch = not Library.Flags.DisableDamageParts.Value
end;
end));
end;
Globals.TouchCollisions = TouchCollisions;
Globals.DamageParts = DamageParts;
Globals.XRayParts = XRayParts
--
end)()
Lighting:GetPropertyChangedSignal("Brightness"):Connect(LPH_NO_VIRTUALIZE(function()
if Library.Flags.Fullbright.Value then
Lighting.Brightness = Library.Flags.Brightness.Value;
end;
end));
Lighting:GetPropertyChangedSignal("Ambient"):Connect(LPH_NO_VIRTUALIZE(function()
if Library.Flags.Ambient.Value then
Lighting.Ambient = Library.Flags.AmbientColor.Value[1]
end
end))
Lighting:GetPropertyChangedSignal("OutdoorAmbient"):Connect(LPH_NO_VIRTUALIZE(function()
if Library.Flags.Ambient.Value then
Lighting.OutdoorAmbient = Library.Flags["AmbientColor"].Value[1]
end
end));
local Terrain = Workspace.Terrain;
local Clouds = Terrain:FindFirstChild("Clouds")
local Atmosphere = Lighting:FindFirstChild("Atmosphere");
if Clouds then
Clouds:GetPropertyChangedSignal("Density"):Connect(LPH_NO_VIRTUALIZE(function()
if Library.Flags.ChangeCloudDensity.Value then
Clouds.Density = Library.Flags.CloudDensity.Value;
end;
end))
Clouds:GetPropertyChangedSignal("Cover"):Connect(LPH_NO_VIRTUALIZE(function()
if Library.Flags.ChangeCloudCover.Value then
Clouds.Cover = Library.Flags.CloudCover.Value;
end;
end))
Clouds:GetPropertyChangedSignal("Color"):Connect(LPH_NO_VIRTUALIZE(function()
if Library.Flags.ChangeCloudColor.Value then
Clouds.Color = Library.Flags.CloudColor.Value[1];
end;
end));
end;
if Atmosphere then
Atmosphere:GetPropertyChangedSignal("Density"):Connect(function()
if Library.Flags.ChangeFogDensity.Value then
Atmosphere.Density = Library.Flags.FogDensity.Value
end;
end);
Atmosphere:GetPropertyChangedSignal("Color"):Connect(function()
if Library.Flags.ChangeFogColor.Value then
Atmosphere.Color = Library.Flags.FogColor.Value[1]
end;
end);
Atmosphere:GetPropertyChangedSignal("Decay"):Connect(function()
if Library.Flags.ChangeFogDecay.Value then
Atmosphere.Decay = Library.Flags.FogDecay.Value[1]
end;
end);
Atmosphere:GetPropertyChangedSignal("Haze"):Connect(function()
if Library.Flags.ChangeFogHaze.Value then
Atmosphere.Haze = Library.Flags.FogHaze.Value
end;
end);
Atmosphere:GetPropertyChangedSignal("Glare"):Connect(function()
if Library.Flags.ChangeFogGlare.Value then
Atmosphere.Glare = Library.Flags.FogGlare.Value
end;
end);
end;
--[[Lighting:GetPropertyChangedSignal("ClockTime"):Connect(LPH_NO_VIRTUALIZE(function()
if Library.Flags.ChangeTime.Value then
Lighting.ClockTime = Library.Flags.Time.Value
end;
end))]]
Log("Loaded Connenctions.")
--#endregion Connections
--#region Threads
EntityClass.LastTarget = EntityClass.LastTarget or nil
EntityClass.LastArmorData = EntityClass.LastArmorData or {}
local Swing = LPH_JIT_MAX(function(Remote, Hash, Arguments) -- dereks fuckass broken functions
Globals.VMNetworkPointer(
'Fire',
'd\147e\1R\169#o\249,9\133\153`B4q^W\6',
'#\250)\215\28\1U\143\237}\154\218\231Cl-\15H\1\147',
unpack(Arguments)
);
end);
local Hit = LPH_JIT_MAX(function(Time, MeleeArguments) -- dereks broken fucking function
local ServerTime = Time or Workspace:GetServerTimeNow();
local Seed = ServerTime * 10000
local RoundedSeed = math.round(Seed)
local RandomCode = Random.new(RoundedSeed):NextInteger(1, 1000000000)
local RandomCode2 = Random.new(RoundedSeed):NextInteger(1, 10000000000)
local Table = {
RandomCode; -- used for hashing
RandomCode2; -- used for hashing
MeleeArguments[6]; -- Material
MeleeArguments[4]; -- Angle
MeleeArguments[5]; -- Root To Tip
MeleeArguments[3]; -- TargetPart
MeleeArguments[2]; -- CF
MeleeArguments[1], -- Random Fuckass number
};
local OriginCFrame = Table[2]
local OriginPosition = OriginCFrame.Position
local TargetPosition = Table[3].Position
local Delta = TargetPosition - OriginPosition
local Distance = Delta.Magnitude + 20
local Direction = Delta.Unit * Distance
local Parent = Table[3].Parent
local AdjustedHitPosition
local Params2 = RaycastParams.new();
Params2.FilterDescendantsInstances = {Parent}
Params2.FilterType = Enum.RaycastFilterType.Whitelist
Params2.IgnoreWater = true
local Result = Workspace:Raycast(OriginPosition, Direction, Globals.RaycastParams);
local Result2 = Workspace:Raycast(OriginPosition, Direction, Params2)
if Result and Result.Instance then
if Result.Normal.Magnitude ~= 1 then
Table[5] = Result.Normal;
end;
if Result2 and Result2.Normal then
Table[5] = Result2.Normal;
end;
local HitPos = Result.Position
Table[4] = Table[3].CFrame:PointToObjectSpace(HitPos);
if not Result.Instance:IsDescendantOf(Parent) then
return
end;
end;
if typeof(Table[3]) == "Instance" and typeof(Table[2]) == "CFrame" and typeof(Table[5]) == "Vector3" and type(Table[8]) == "number" then
pcall(function()
Globals.VMNetworkPointer(
"Fire",
'd\147e\1R\169#o\249,9\133\153`B4q^W\6',
"\160\29\229\248\31\16pJ\140]\137-\250\171Z_\1\135\223#",
unpack(Table)
);
end);
end;
end);
local doKillaura = LPH_JIT_MAX(function(MeleeArguments) -- yea fixed ur shitty code derek
local ServerTime = workspace:GetServerTimeNow();
local Seed = ServerTime * 10000
local RoundedSeed = math.round(Seed)
local RandomCode1 = Random.new(RoundedSeed):NextInteger(1, 1000000000)
local RandomCode2 = Random.new(RoundedSeed):NextInteger(1, 10000000000)
local attackCFrame = MeleeArguments[2];
local attackOrigin = attackCFrame.Position;
local hitInstance = MeleeArguments[3];
local hitCharacter = hitInstance.Parent;
if (hitCharacter.Parent ~= workspace) then
Log('Bad Parent' .. tostring(hitInstance:GetFullName()));
return;
end;
local Params = RaycastParams.new();
Params.FilterType = Enum.RaycastFilterType.Include;
Params.FilterDescendantsInstances = { hitCharacter };
local RaycastResult = Workspace:Raycast(attackOrigin, hitInstance.Position - attackOrigin, Params);
if (not RaycastResult) then
return;
end;
Globals.VMNetworkPointer(
'Fire',
'd\147e\001R\169#o\249,9\133\153`B4q^W\006',
'#\250)\215\028\001U\143\237}\154\218\231Cl-\015H\001\147',
ServerTime,
MeleeArguments[7]
);
task.wait();
local hitInfo = {
[1] = RandomCode2;
[2] = RandomCode1;
[3] = RaycastResult.Material.Name;
[4] = RaycastResult.Normal;
[5] = hitInstance.CFrame:PointToObjectSpace(RaycastResult.Position);
[6] = hitInstance;
[7] = CFrame.new( attackOrigin, hitInstance.Position );
[8] = 3; -- SwingProgression (not a fuckass variable)
};
Globals.VMNetworkPointer(
'Fire',
'd\147e\001R\169#o\249,9\133\153`B4q^W\006',
'\160\029\229\248\031\016pJ\140]\137-\250\171Z_\001\135\223#',
unpack(hitInfo)
);
end);
local LastArmorTick = tick();
local LastSwing = tick();
local EntityThread = Threads.New("Entity Handler", LPH_NO_VIRTUALIZE(function()
local Params = RaycastParams.new()
Params.FilterType = Enum.RaycastFilterType.Blacklist
Params.FilterDescendantsInstances = {Camera, Client.Character, Workspace:FindFirstChild("VFX")}
Globals.RaycastParams = Params
local FOVRadius = Library.Flags.FOVRadius.Value
if Library.Flags.DynamicFOV and Library.Flags.DynamicFOV.Value then
local CurrentFOV = Library.Flags.ChangeFOV.Value and Library.Flags.CustomFOV.Value or 90
local Difference = (CurrentFOV / Camera.FieldOfView)
Globals:Tween(Visuals.FOVOutline, TweenInfo.new(0.15, Enum.EasingStyle.Linear), {
Size = UDim2.new(0, Difference * FOVRadius, 0, Difference * FOVRadius)
})
else
Visuals.FOVOutline.Size = UDim2.new(0, FOVRadius, 0, FOVRadius)
end
local LastDistance = math.huge
local ClosestTarget, EntityCharacter, EntityData, EntityInstance = nil, nil, nil, nil
local Manipulated, ManipulatedPosition, ManipulatedPart, ManipulatedPlayer = false, nil, nil, nil
local AimbotEnabled = Library.Flags.Aimbot.Value
local ActivationActive = Library.Flags["Aimbot Activation"].Active
local AlwaysTarget = Library.Flags.AlwaysTarget.Value
local UseVisibleCheck = Library.Flags.VisibleCheck.Value
local RandomizeHitPart = Library.Flags.RandomizeHitPart.Value
local AimbotPart = Library.Flags.AimbotPart.Value
local ManipulationActive = Library.Flags.Manipulation.Value and Library.Flags["Manipulation Activation"].Active
local DynamicFOVRadius = Visuals.FOVCircle.AbsoluteSize.X / 2
local ClientRoot = Client.Character and Client.Character:FindFirstChild("HumanoidRootPart")
for Entity, Object in EntityClass.Main.Cache do
if tick() - Object.LastUpdate > 0.0145 then
Object.LastUpdate = tick();
Object:Update()
end;
local Core = Object.CoreInformation
if not (Core and Core.Root and Object.Character and Entity ~= Client) then continue end
if not (Core.OnScreen and not Object.Friendly and AimbotEnabled) then continue end
local TargetingFlag = Library.Flags["Target" .. Object.ClassType]
if not (TargetingFlag and TargetingFlag.Value and (ActivationActive or AlwaysTarget)) then continue end
local Distance = Visuals.GetDistanceFromCenter(Core.Root)
if Distance >= LastDistance or Distance > DynamicFOVRadius then continue end
local TargetPart
if UseVisibleCheck and Core.Visible then
TargetPart = Core.VisiblePart
elseif not UseVisibleCheck then
TargetPart = Object.Character:FindFirstChild(AimbotPart)
end
if Core.Visible and RandomizeHitPart then
local Parts = {}
for _, Part in ipairs(Object.Character:GetChildren()) do
if Part:IsA("BasePart") and Visuals.IsPartVisible(Part) then
table.insert(Parts, Part)
end
end
if #Parts > 0 then
TargetPart = Parts[math.random(1, #Parts)]
end
end
if Object.Character.Name == "BTR" then
TargetPart = Object.Character:FindFirstChild("HumanoidRootPart")
end
if ManipulationActive and ClientRoot and TargetPart and not Core.Visible then
local StartPos = ClientRoot.CFrame
local VisiblePos = EntityClass.Global.FindVisiblePosition(StartPos, TargetPart)
if VisiblePos then
Manipulated = true
ManipulatedPart = TargetPart
ManipulatedPosition = VisiblePos
ManipulatedPlayer = Entity
end
end
if TargetPart then
ClosestTarget = TargetPart
EntityCharacter = Object.Character
EntityData = Object
EntityInstance = Entity
LastDistance = Distance
end
end
EntityClass.Manipulated = Manipulated
EntityClass.ManipulatedPart = ManipulatedPart
EntityClass.ManipulatedPosition = ManipulatedPosition
EntityClass.ManipulatedPlayer = ManipulatedPlayer
EntityClass.TargetPart = ClosestTarget
EntityClass.TargetData = EntityData
EntityClass.TargetInstance = EntityInstance
EntityClass.TargetCharacter = EntityCharacter
if ClosestTarget and Library.Flags.AimbotMode.Value == "Memory" then
Camera.CFrame = CFrame.new(Camera.CFrame.Position, ClosestTarget.Position)
end
local ArmorPanel = Library.Window.ArmorPanel
if EntityData and EntityData.CachedArmor and Library.Flags.ArmorViewer.Value then
if tick() - Globals.LastArmorCheck > 0.2 then
local seen = {}
for _, armor in pairs(EntityData.CachedArmor) do
if armor.Name and armor.Skin then
local key = armor.Name .. "_" .. armor.Skin
seen[key] = true
ArmorPanel:Add(armor.Name, armor.Skin)
end
end
for _, child in ipairs(ArmorPanel.Components.ArmorList:GetChildren()) do
if child:IsA("Frame") and not seen[child.Name] then
ArmorPanel:UpdateArmor(child.Name, nil, true)
end
end
Globals.LastArmorCheck = tick()
end
else
ArmorPanel:ClearAll()
end
local KillAuraTarget = EntityClass.TargetInstance
if KillAuraTarget and Library.Flags.KillauraToggle.Value and Library.Flags["Killaura Activation"].Active then
--[[
Globals.VMNetworkPointer(
'Fire',
'd\147e\1R\169#o\249,9\133\153`B4q^W\6',
'#\250)\215\28\1U\143\237}\154\218\231Cl-\15H\1\147',
Workspace:GetServerTimeNow(),
Weapon
);
local Time = Workspace:GetServerTimeNow()
Swing(Remote, Hash, { Weapon.Name, Time })
Globals.VMNetworkPointer(
"Fire",
'd\147e\1R\169#o\249,9\133\153`B4q^W\6',
"\160\29\229\248\31\16pJ\140]\137-\250\171Z_\1\135\223#",
);
]]
--[[]]
local Weapon = Workspace.VFX.VMs:GetChildren()[1]
local WeaponData = Weapon and Globals.ToolInfo[Weapon.Name]
if KillAuraTarget:IsA("Player") then
KillAuraTarget = KillAuraTarget.Character
end
if Client.Character and KillAuraTarget and WeaponData and rawget(WeaponData, "Weapon") and rawget(WeaponData, "Melee") and rawget(WeaponData.Weapon, "Cooldown") then
local Root = Client.Character:FindFirstChild("HumanoidRootPart")
local Cooldown = WeaponData.Weapon.Cooldown
local Tip = Weapon:FindFirstChild("Weapon") and Weapon.Weapon:FindFirstChild("Main") or Weapon.Weapon:FindFirstChild("Handle")
local Target = KillAuraTarget:FindFirstChild("Head")
local AttackCFrame = CFrame.new(Root.Position + Vector3.new(0, 3, 0), Target.Position)
if Target and (Root.CFrame.p - Target.CFrame.p).Magnitude <= 12 and tick() - LastSwing > Cooldown then
LastSwing = tick()
task.spawn(function()
local Time = Workspace:GetServerTimeNow()
-- Library:Notify("Attempting to hit") -- not needed tbh
local RootToTip = Root.CFrame:PointToObjectSpace(Tip.Position)
local Angle = (Client.Character.Head.Position - Target.Position).Unit
if Library.Flags.ThirdPerson.Value and Library.Flags["Third Person Activation"].Active then
local WorldModel = Client.Character:FindFirstChild(Weapon.Name)
Tip = WorldModel and WorldModel:FindFirstChild("Handle")
if not Tip then
return
end
RootToTip = Root.CFrame:PointToObjectSpace(Tip.Position) / 10
end
if AttackCFrame and Target and Angle and RootToTip then
Library:Notify("Kill aura attempt!")
doKillaura({ 3, AttackCFrame, Target, Angle, RootToTip, "Plastic", Weapon.Name })
end
end)
end
end
--]]
end;
end), "Entities")
local VisualsThread = Threads.New("Visuals Handler", LPH_NO_VIRTUALIZE(function()
--// Crosshair
Visuals.CrosshairHolder.Visible = Library.Flags.Crosshair.Value
if Visuals.CrosshairHolder.Visible then
local Length = Library.Flags.CrosshairLength.Value
local Width = Library.Flags.CrosshairWidth.Value
local Gap = Library.Flags.CrosshairGap.Value;
Visuals.CrosshairTop.Size = UDim2.new(0, Width, 0, Length);
Visuals.CrosshairBottom.Size = UDim2.new(0, Width, 0, Length);
Visuals.CrosshairRight.Size = UDim2.new(0, Length, 0, Width);
Visuals.CrosshairLeft.Size = UDim2.new(0, Length, 0, Width);
Visuals.CrosshairTop.Position = UDim2.new(0.5, 0, 0.5, -Gap - Length / 2)
Visuals.CrosshairBottom.Position = UDim2.new(0.5, 0, 0.5, Gap + Length / 2)
Visuals.CrosshairLeft.Position = UDim2.new(0.5, -Gap - Length / 2, 0.5, 0)
Visuals.CrosshairRight.Position = UDim2.new(0.5, Gap + Length / 2, 0.5, 0)
Globals:Tween(Visuals.CrosshairTop, TweenInfo.new(0.15, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {
BackgroundColor3 = EntityClass.TargetPart and Library.Flags.SyncToLockColor.Value and Library.Flags.TargetColor.Value[1] or Library.Flags.CrosshairColor.Value[1]
});
Globals:Tween(Visuals.CrosshairBottom, TweenInfo.new(0.15, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {
BackgroundColor3 = EntityClass.TargetPart and Library.Flags.SyncToLockColor.Value and Library.Flags.TargetColor.Value[1] or Library.Flags.CrosshairColor.Value[1]
});
Globals:Tween(Visuals.CrosshairLeft, TweenInfo.new(0.15, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {
BackgroundColor3 = EntityClass.TargetPart and Library.Flags.SyncToLockColor.Value and Library.Flags.TargetColor.Value[1] or Library.Flags.CrosshairColor.Value[1]
});
Globals:Tween(Visuals.CrosshairRight, TweenInfo.new(0.15, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {
BackgroundColor3 = EntityClass.TargetPart and Library.Flags.SyncToLockColor.Value and Library.Flags.TargetColor.Value[1] or Library.Flags.CrosshairColor.Value[1]
});
if Library.Flags.RotateCrosshair.Value then
Visuals.CrosshairHolder.Rotation = Visuals.CrosshairHolder.Rotation + 0.5
else
Visuals.CrosshairHolder.Rotation = 0
end;
if Library.Flags.StickToTarget.Value and EntityClass.TargetPart then
local Position, OnScreen = Camera:WorldToViewportPoint(EntityClass.TargetPart.Position)
if OnScreen then
Globals:Tween(Visuals.CrosshairHolder, TweenInfo.new(0.05, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {
Position = UDim2.new(0, Position.X, 0, Position.Y)
})
end
else
local ScreenSize = Camera.ViewportSize
Globals:Tween(Visuals.CrosshairHolder, TweenInfo.new(0.05, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {
Position = UDim2.new(0, ScreenSize.X / 2, 0, ScreenSize.Y / 2)
})
end
end;
--
--// Skin changer
if Library.Flags.SkinChanger.Value and tick() - LastArmorTick > 3 then
LastArmorTick = tick();
local ArmorSleeves = Client:GetAttribute("ArmorSleeves") or ""
local Split = string.split(ArmorSleeves, "^");
if type(Split) == "table" and Split[1] then
local ShirtSplit = Split[1]:split("/")
local GloveSplit = Split[2] and Split[2]:split("/") or {}
local Shirt = ShirtSplit[1] or ""
local ShirtSkin = ShirtSplit[2] or "Default"
local Glove = GloveSplit[1] or ""
local GloveSkin = GloveSplit[2] or "Default"
if Library.Flags["EnableSkin_"..Shirt] and Library.Flags["EnableSkin_"..Shirt].Value then
local ClientSkin = Library.Flags["Skin_"..Shirt].Value;
local SleeveFolder = ReplicatedStorage.Sleeves:FindFirstChild(Shirt)
if SleeveFolder and SleeveFolder:FindFirstChild(ClientSkin) then
ShirtSkin = ClientSkin
end
end
if Library.Flags["EnableSkin_"..Glove] and Library.Flags["EnableSkin_"..Glove].Value then
local ClientSkin = Library.Flags["Skin_"..Glove].Value;
local SleeveFolder = ReplicatedStorage.Sleeves:FindFirstChild(Glove)
if SleeveFolder and SleeveFolder:FindFirstChild(ClientSkin) then
GloveSkin = ClientSkin
end
end
local NewArmor = ""
if Shirt ~= "" then
NewArmor = Shirt.."/"..ShirtSkin;
end;
if Glove ~= "" then
if Shirt ~= "" then
NewArmor = NewArmor.."^"
end;
NewArmor = NewArmor.. Glove.."/"..GloveSkin
end;
if NewArmor ~= "/^/" then
Client:SetAttribute("ArmorSleeves", NewArmor)
end;
end;
end;
--
--// Hitmarkers
for Index, Data in Visuals.Hitmarkers do
if not Data.Hitmarker then continue end;
local ScreenPos, OnScreen = Camera:WorldToViewportPoint(Data.Position);
if not OnScreen then
Data.Hitmarker.Visible = false;
continue
end;
Data.Hitmarker.Position = UDim2.new(0, ScreenPos.X, 0, ScreenPos.Y);
Data.Hitmarker.Visible = true;
end;
--
if Library.Flags.ChangeTime.Value then
Lighting.ClockTime = Library.Flags.Time.Value
end;
end), "Render");
local MiscLoop = Threads.New("Misc entity loop", LPH_NO_VIRTUALIZE(function()
local SmartESP = Library.Flags.SmartESP.Value
local CombatHide = Library.Flags.CombatHide.Active
local FadeRadius = Library.Flags.FadeRadius.Value
local Font = EntityClass.Font
local FontSize = EntityClass.FontSize
if not CombatHide then
Visuals.MiscSpace.Enabled = true
for Entity, Data in EntityClass.Misc.Cache do
local Listener = Data.Listener
local Components = Data.Components
local Object = Entity
if not Object or not Components or not Components.Name then
if Components and Components.Name then Components.Name:Destroy() end
continue
end
local Flag = Listener.Flag
local EnabledFlag = Library.Flags["ESP" .. Flag]
local MaxDistanceFlag = Library.Flags[Flag .. "Distance"]
if CombatHide or not EnabledFlag or not EnabledFlag.Value or not Listener.Validate(Data) then
Components.Name.Visible = false
continue
end
local Position = Listener.GetPosition(Data)
if not Position then
Components.Name.Visible = false
continue
end
local Distance = Listener.GetDistance(Data)
if not Distance or Distance > MaxDistanceFlag.Value then
Components.Name.Visible = false
continue
end
local ScreenPos, OnScreen = Camera:WorldToViewportPoint(Position)
if not OnScreen then
Components.Name.Visible = false
continue
end
local Name = Listener.GetName(Data)
local NameColor = Listener.GetColor(Data)
local Alpha = Listener.GetAlpha(Data)
Components.Name.Text = Name;
Components.Name.TextColor3 = NameColor;
Components.Name.Position = UDim2.new(0, ScreenPos.X, 0, ScreenPos.Y)
Components.Name.Name = Name
Components.Name.FontFace = Font
Components.Name.TextSize = FontSize
Components.Name.Visible = true
if SmartESP then
local CenterDist = Visuals.GetDistanceFromCenter(Position)
local Fade = math.clamp(CenterDist / FadeRadius, 0, 1)
Components.Name.TextTransparency = Fade
Components.Name.UIStroke.Transparency = Fade
else
Components.Name.TextTransparency = Alpha
Components.Name.UIStroke.Transparency = Alpha
end
end
else
Visuals.MiscSpace.Enabled = false
end;
end), "Render")
local MainCharacterThread = Threads.New("Character thread", LPH_NO_VIRTUALIZE(function()
local Character = Client.Character;
local Root = Character and Character:FindFirstChild("HumanoidRootPart");
local Humanoid = Character and Character:FindFirstChild("Humanoid")
if Humanoid and Root then
--// Third person
if Library.Flags.ThirdPerson.Value and Library.Flags["Third Person Activation"].Active then
Client.CameraMaxZoomDistance = Library.Flags.ThirdPersonDistance.Value
Client.CameraMinZoomDistance = Library.Flags.ThirdPersonDistance.Value
Client.CameraMode = Enum.CameraMode.Classic
if Library.Flags.AntiAim and not Library.Flags.AntiAim.Value then
local LookVector = Camera.CFrame.LookVector
local Angle = -math.atan2(LookVector.Z, LookVector.X) + math.rad(-90)
local Angled = CFrame.new(Root.Position) * CFrame.Angles(0, Angle, 0)
local _, Y, _ = Angled:ToOrientation()
Globals.AntiAimAngle = CFrame.new(Angled.Position) * CFrame.Angles(0, Y, 0)
Root.CFrame = Globals.AntiAimAngle
Humanoid.AutoRotate = false
end
else
Client.CameraMode = Enum.CameraMode.LockFirstPerson
if not (Library.Flags.AntiAim and Library.Flags.AntiAim.Value) then
Humanoid.AutoRotate = true
end
end
--
--// AntiAim
if Library.Flags.AntiAim and Library.Flags.AntiAim.Value then
--// Yaw calculation
local LookVector = Camera.CFrame.LookVector
local Angle = -math.atan2(LookVector.Z, LookVector.X) + math.rad(-90)
if Library.Flags.YawBase.Value == "Random" then
Angle = -math.atan2(LookVector.Z, LookVector.X + math.rad(math.random(-180, 120)))
elseif Library.Flags.YawBase.Value == "Spin" then
Angle = -math.atan2(LookVector.Z, LookVector.X) + (tick() * 10) % 360
elseif Library.Flags.YawBase.Value == "None" then
Angle = -math.atan2(LookVector.Z, LookVector.X) + math.rad(-90)
end
local Offset = math.rad(Library.Flags.YawModifier.Value)
local Angled = CFrame.new(Root.Position) * CFrame.Angles(0, Angle + Offset, 0)
if (Library.Flags.YawBase.Value == "Targets") and EntityClass.TargetPart then
Angled = CFrame.new(Root.Position, EntityClass.TargetPart.Position) * CFrame.Angles(0, Offset, 0)
end
local _, Y, _ = Angled:ToOrientation()
Globals.AntiAimAngle = CFrame.new(Angled.Position) * CFrame.Angles(0, Y, 0)
Root.CFrame = Globals.AntiAimAngle
Humanoid.AutoRotate = false
--
--// Pitch calculation
local Pitch = Library.Flags.PitchModifier.Value
local PitchBase = Library.Flags.PitchBase.Value
if PitchBase == "Down" then
Pitch = 0.7
elseif PitchBase == "Up" then
Pitch = -0.7
elseif PitchBase == "Nod" then
Pitch = math.sin(tick() * 3)
elseif PitchBase == "Random" then
Pitch = math.random() / 10
end
Pitch = math.clamp(Pitch, -0.7, 0.7)
local TorsoController = Client.Character:FindFirstChild("TorsoController")
local Look = TorsoController and TorsoController:FindFirstChild("Look")
if Look then
Look:FireServer(Pitch, 0)
end
--
else
if Client.Character:FindFirstChild("CameraController") and not Client.Character.CameraController:GetAttribute("FreeLooking") then
Humanoid.AutoRotate = true
end;
end
--
--// Bunny hop
if Library.Flags.Bunnyhop.Value then
local Jump = Humanoid.Jump
local FloorMaterial = Humanoid.FloorMaterial
if tostring(FloorMaterial) ~= "Air" and UserInputService:IsKeyDown(Enum.KeyCode.Space) then
Humanoid.Jump = true
end;
end;
--// Omnisprint
if Globals.DirectionTable and Library.Flags.Omnisprint.Value and UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then
--// Direction setting
Globals.DirectionTable.Left, Globals.DirectionTable.Right, Globals.DirectionTable.Backward, Globals.DirectionTable.Crouch = false, false, false, false
Globals.DirectionTable.Forward, Globals.DirectionTable.Sprint = true, true
Globals.DirectionTable.BackwardLeft, Globals.DirectionTable.BackwardRight = false, false
Globals.DirectionTable.ForwardLeft, Globals.DirectionTable.ForwardRight = false, false
--
Humanoid.WalkSpeed = 19
if Character:FindFirstChild("StateController") then
Character.StateController:SetAttribute("IsSprint", true);
Character.StateController:SetAttribute("Direction", "Forward");
end;
end
--// Debug Camera
local IsFlying = Library.Flags.Fly.Value and Library.Flags["Fly Activation"].Value
if Library.Flags.DebugCamera.Value and Library.Flags["Debug Camera Activation"].Active and not IsFlying then
task.spawn(function()
if not Globals.DebugStarted then
Globals.DebugStarted = tick()
end
Globals.NeedToReturn = true
local CameraLookVector = Camera.CFrame.LookVector
local NormalCameraLookVector = CameraLookVector
if not Globals.SavedPosition then
Globals.SavedPosition = Humanoid.RootPart.CFrame
end
sethiddenproperty(Humanoid.RootPart, "NetworkIsSleeping", true);
local UpPos = Vector3.new(0, 1, 0)
local DownPos = Vector3.new(0, -1, 0)
local NonePos = Vector3.new(0, 0, 0)
local BaseCFrame = Humanoid.RootPart.CFrame
local IsUpPressed = UserInputService:IsKeyDown(Enum.KeyCode.E)
local IsDownPressed = UserInputService:IsKeyDown(Enum.KeyCode.Q)
local IsForwardPressed = UserInputService:IsKeyDown(119) -- W
local IsBackwardPressed = UserInputService:IsKeyDown(115) -- S
Humanoid.RootPart.Anchored = true
Humanoid.RootPart.Velocity = NonePos
local Delta = Globals.Delta * Library.Flags.DebugCameraSpeed.Value * 3
local MovementVector = (
Humanoid.MoveDirection +
(IsUpPressed and UpPos or NonePos) +
(IsDownPressed and DownPos or NonePos) +
(IsForwardPressed and Vector3.new(0, NormalCameraLookVector.Y, 0) or NonePos) +
(IsBackwardPressed and Vector3.new(0, -NormalCameraLookVector.Y, 0) or NonePos)
) * Delta
BaseCFrame += MovementVector
local Position = BaseCFrame.p
Humanoid.RootPart.CFrame = CFrame.new(Position, Position + Vector3.new(CameraLookVector.X, 0, CameraLookVector.Z))
Humanoid.AutoRotate = false
end)
else
Globals.DebugStarted = nil
if Globals.NeedToReturn then
Humanoid.AutoRotate = true
Globals.NeedToReturn = false
sethiddenproperty(Humanoid.RootPart, "NetworkIsSleeping", false)
for _, Value in pairs(Character:GetChildren()) do
if Value:IsA("BasePart") then
sethiddenproperty(Value, "NetworkIsSleeping", false)
end
end
Humanoid.RootPart.CFrame = Globals.SavedPosition
Humanoid.RootPart.Anchored = false
Globals.SavedPosition = nil
end
end
--
end;
end), "Character");
local CharacterHeartbeat = RunService.Heartbeat:Connect(LPH_NO_VIRTUALIZE(function(Delta)
local Character = Client.Character;
local Root = Character and Character:FindFirstChild("HumanoidRootPart");
local Humanoid = Character and Character:FindFirstChild("Humanoid")
local IsFlying;
if Humanoid and Root then
--// Fly
if Library.Flags.Fly.Value and Library.Flags["Fly Activation"].Active then
task.spawn(function()
IsFlying = true;
if Humanoid and Humanoid.Health > 0 then
local Delta = Delta * Library.Flags.FlySpeed.Value * 3
local MoveVector = Humanoid.MoveDirection
if UserInputService:IsKeyDown(Enum.KeyCode.E) then
MoveVector += Vector3.new(0, 1, 0)
end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then
MoveVector += Vector3.new(0, -1, 0)
end
if UserInputService:IsKeyDown(119) then
MoveVector += Vector3.new(0, Camera.CFrame.LookVector.Y, 0)
end
if UserInputService:IsKeyDown(115) then
MoveVector += Vector3.new(0, -Camera.CFrame.LookVector.Y, 0)
end
local MovementDelta = MoveVector * Delta
local Position = Root.CFrame.Position + MovementDelta
Humanoid.PlatformStand = false
Root.Velocity = Vector3.zero
Root.CFrame = CFrame.new(Position, Position + Vector3.new(Camera.CFrame.LookVector.X, 0, Camera.CFrame.LookVector.Z))
end
end)
end
--// Infinite Fly Fall Correction
if Library.Flags.InfiniteFly.Value and IsFlying then
local Origin = Root.Position;
local Result = Workspace:Raycast(Origin, Vector3.new(0, -1000, 0), Globals.RaycastParams);
if Result and Result.Distance > 4 then
task.spawn(function()
local OldVel = Root.Velocity;
for _, Part in Character:GetChildren() do
if Part:IsA("BasePart") or Part:IsA("MeshPart") then
Part.Velocity = Vector3.new(0, -9999, 0);
end;
end;
RunService.RenderStepped:Wait()
for _, Part in Character:GetChildren() do
if Part:IsA("BasePart") or Part:IsA("MeshPart") then
Part.Velocity = OldVel;
end;
end;
end);
end;
end;
--// NoFall
if Library.Flags.NoFall.Value and not IsFlying then
local Origin = Root.Position;
local Result = Workspace:Raycast(Origin, Vector3.new(0, -1000, 0), Globals.RaycastParams);
if Result and Result.Distance > 10 then
task.spawn(function()
local OldVel = Root.Velocity;
for _, Part in Character:GetChildren() do
if Part:IsA("BasePart") or Part:IsA("MeshPart") then
Part.Velocity = Vector3.new(0, 9999, 0);
end;
end;
RunService.RenderStepped:Wait()
for _, Part in Character:GetChildren() do
if Part:IsA("BasePart") or Part:IsA("MeshPart") then
Part.Velocity = OldVel;
end;
end;
end);
end;
end;
end;
end));
Log("Loaded threads.")
--#endregion Threads
--#region RunService
RunService.RenderStepped:Connect(LPH_NO_VIRTUALIZE(function(Delta)
Globals.Delta = Delta
for Index, Thread in Threads.Input do
local Error = Thread:Run()
end
for Index, Thread in Threads.Entities do
local Error = Thread:Run()
end
for Index, Thread in Threads.Character do
local Error = Thread:Run()
end
for Index, Thread in Threads.Render do
local Error = Thread:Run()
end
end))
Log("Loaded run service connections")
--#endregion RunService
--#region Hooks
local Modules = ReplicatedStorage:FindFirstChild("Modules");
if Modules then
local VFX = require(Modules.VFXModule);
local ItemsModule = require(Modules.Items);
local RaycastUtil = require(Modules.RaycastUtil);
local SoundModule = require(Modules.SoundModule)
--// Bindable Events
local HitEvent = Instance.new("BindableEvent", ReplicatedStorage.ClientSignals);
local TracerEvent = Instance.new("BindableEvent", ReplicatedStorage.ClientSignals);
TracerEvent.Event:Connect(function(Origin, Destination, IsEnemy)
local Color = (not IsEnemy and Library.Flags.TracerColor.Value[1]) or Library.Flags.EnemyTracerColor.Value[1]
local TracerModel = Instance.new("Model", Workspace)
TracerModel.Name = "TracerModel"
--// Attachments
local function CreateAnchorPart(position)
local part = Instance.new("Part")
part.Name = "Anchor"
part.Size = Vector3.new(0.0001, 0.0001, 0.0001)
part.Position = position
part.Anchored = true
part.CanCollide = false
part.CanQuery = false
part.Transparency = 1
part.Parent = TracerModel
return part
end
local Part0 = CreateAnchorPart(Origin)
local Part1 = CreateAnchorPart(Origin)
local Attachment0 = Instance.new("Attachment", Part0)
local Attachment1 = Instance.new("Attachment", Part1)
--// Beam setup
local Beam = Instance.new("Beam")
Beam.Name = "MainBeam"
Beam.Attachment0 = Attachment0
Beam.Attachment1 = Attachment1
Beam.FaceCamera = true
Beam.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0.0, Color),
ColorSequenceKeypoint.new(0.5, Color3.new(1, 1, 1)),
ColorSequenceKeypoint.new(1.0, Color),
})
Beam.Width0 = 0.3
Beam.Width1 = 0.3
Beam.LightEmission = 1
Beam.LightInfluence = 0
Beam.Brightness = Library.Flags.TracerBrightness.Value
Beam.Texture = "rbxassetid://12788927812"
Beam.TextureLength = 10
Beam.TextureMode = Enum.TextureMode.Wrap
Beam.TextureSpeed = 1
Beam.Parent = TracerModel
local TextureType = Library.Flags.BeamTexture.Value
local Beam2, Beam3
if TextureType == "Lightning" then
Beam.Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(1, 0)
})
Beam.Texture = "rbxassetid://12781800668"
Beam.TextureLength = 4
Beam.TextureSpeed = 10
Beam.Width0 = 0.5
Beam.Width1 = 0.5
local SpeedTween = TweenService:Create(Beam, TweenInfo.new(0.6, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut, 2, true), {
TextureSpeed = 2
})
SpeedTween:Play()
elseif TextureType == "Dark" then
Beam.Texture = "rbxassetid://12781848822"
Beam.TextureLength = 20
Beam.TextureSpeed = 0.9
Beam.TextureMode = Enum.TextureMode.Static
Beam.LightInfluence = 1
Beam.LightEmission = 0.25
Beam.Width0 = 0.5
Beam.Width1 = 0.5
Beam2 = Beam:Clone()
Beam2.Name = "DarkBeam2"
Beam2.Parent = TracerModel
Beam2.Attachment0 = Attachment0
Beam2.Attachment1 = Attachment1
Beam3 = Beam:Clone()
Beam3.Name = "DarkBeam3"
Beam3.Parent = TracerModel
Beam3.Attachment0 = Attachment0
Beam3.Attachment1 = Attachment1
end
local ReferenceDistance = 30
local ReferenceTime = ReferenceDistance / Library.Flags.ReferenceTime.Value
local Distance = (Destination - Origin).Magnitude
local TravelTime = (Distance / ReferenceDistance) * ReferenceTime
local MoveTween = TweenService:Create(Part1, TweenInfo.new(TravelTime, Enum.EasingStyle.Linear), {
Position = Destination
})
MoveTween:Play()
local PulseTween = TweenService:Create(Beam, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, 2, true), {
Width0 = 0.35,
Width1 = 0.35
})
PulseTween:Play()
Delay(Library.Flags.TracerLifetime.Value, function()
local FadeTween = TweenService:Create(Beam, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {
Width0 = 0,
Width1 = 0,
TextureSpeed = 0,
Brightness = 0
})
FadeTween:Play()
if Beam2 and Beam3 then
local Fade2 = TweenService:Create(Beam2, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {
Width0 = 0,
Width1 = 0,
TextureSpeed = 0,
Brightness = 0
})
local Fade3 = TweenService:Create(Beam3, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {
Width0 = 0,
Width1 = 0,
TextureSpeed = 0,
Brightness = 0
})
Fade2:Play()
Fade3:Play()
end
FadeTween.Completed:Wait()
TracerModel:Destroy()
end)
end)
HitEvent.Event:Connect(LPH_NO_VIRTUALIZE(function(HitData)
if Library.Flags.Hitmarkers.Value then
local HitPart = HitData[1];
local HitPos = HitData[2];
local HitMaterial = HitData[4];
if HitMaterial == Enum.Material.Plastic then
Visuals.CreateHitmarker(HitPart, HitPos);
end;
end;
end));
local RaidEvent = Instance.new("BindableEvent", ReplicatedStorage.ClientSignals);
RaidEvent.Event:Connect(LPH_NO_VIRTUALIZE(function(Type, CFrame)
local Time = tick();
local Part = Instance.new("Part", CoreGui.Raids);
Part.CanCollide = false;
Part.CanQuery = false;
Part.CanTouch = false;
Part.Transparency = 1;
Part.CFrame = CFrame;
Part.Name = Type;
local StartedAt = Instance.new("IntValue", Part);
StartedAt.Name = "StartedAt";
StartedAt.Value = Time
Part:SetAttribute("StartedAt", Time);
Part:SetAttribute("Type", Type);
Delay(600, function()
Part:Destroy();
end);
if Library.Flags.RaidNotifications.Value then
local Pos = CFrame.p
local Coordinates = tostring(math.floor(Pos.X)) .. ", ".. tostring(math.floor(Pos.Y)) ..", ".. tostring(math.floor(Pos.Z))
Library:Notify("A potential raid has started using "..Type.. " at "..Coordinates, 10, Library.Flags.RaidsMiscColor.Value[1])
end;
end));
--
--// Hooks
local InitHooks = LPH_JIT_MAX(function()
local CreateProjectile; CreateProjectile = hookfunction(VFX.CreateProjectile, LPH_NO_UPVALUES(function(self, ...)
local Args = {...}
local Traceback = debug.traceback();
if Traceback:find("ViewmodelController") and Args[1].StepFunction ~= "FakeStepFunc" and Args[1].HitFunction ~= "FakeHitFunc" and not tostring(Args[1].HitFunction):find("Ignore") then
if debug.isvalidlevel(3) then
local HitFunction; HitFunction = Args[1].HitFunction;
Args[1].HitFunction = function(...)
local Arguments = {...};
HitEvent:Fire(Arguments)
return HitFunction(...)
end;
local Stack = debug.getstack(3);
local Recoil = rawget(Stack, 25);
if Recoil and typeof(Recoil) == "table" and rawget(Recoil, "FinishStart") and rawget(Recoil, "RecoilStart") and rawget(Recoil, "RecoilFinish") and Library.Flags.RemoveRecoil.Value then
local RecoilStart = Recoil.RecoilStart
local RecoilFinish = Recoil.RecoilFinish
Recoil.RecoilStart = function(...)
--local X, Y = RecoilStart(...)
return 0, 0
end
Recoil.RecoilFinish = function(...)
--local X, Y = RecoilFinish(...)
return 0, 0
end
Recoil.Shake.X = {0, 0}
Recoil.Shake.Y = {0, 0}
end;
local CameraStack = rawget(Stack, 45);
local FlashpartStack = rawget(Stack, 51);
local HRPStack = rawget(Stack, 52);
local MouseHitStack = rawget(Stack, 52)
local SpreadStack = rawget(Stack, 62);
if CameraStack and FlashpartStack and HRPStack and MouseHitStack and EntityClass.TargetPart and Library.Flags.AimbotMode.Value == "Silent" then
local HitPosition = EntityClass.TargetPart.CFrame.p;
local CameraPosition = CameraStack.p;
if Library.Flags.InstantBullet.Value then
local Speed, Gravity = Args[1].Speed, Args[1].Gravity
local Distance = (Camera.CFrame.Position - HitPosition).Magnitude
local TimeToHit = Distance / Speed
local G = Gravity * -195
local Drop = -0.5 * G * TimeToHit * TimeToHit
if tostring(Drop):find("nan") then Drop = 0 end
HitPosition = HitPosition + Vector3.new(0, Drop, 0)
end
local FakeCameraCFrame = CFrame.new(CameraPosition, HitPosition)
local FakeHRPCFrame = CFrame.new(HRPStack.p, HitPosition);
local OriginalFlashOffset = FlashpartStack - CameraPosition
local NewFlashpartPosition = CFrame.new(FlashpartStack, HitPosition).p
if EntityClass.ManipulatedPosition then
NewFlashpartPosition = CFrame.new(EntityClass.ManipulatedPosition, HitPosition).p;
local FlashpartOffsetCamera = CameraPosition - FlashpartStack;
local FlashpartOffsetHRP = HRPStack.p - FlashpartStack;
local NewCameraPos = NewFlashpartPosition + FlashpartOffsetCamera
local NewHRPPos = NewFlashpartPosition + FlashpartOffsetHRP
FakeCameraCFrame = CFrame.new(NewCameraPos, HitPosition);
FakeHRPCFrame = CFrame.new(NewHRPPos, HitPosition);
end;
debug.setstack(3, 45, FakeCameraCFrame);
debug.setstack(3, 54, HitPosition);
debug.setstack(3, 52, FakeHRPCFrame)
debug.setstack(3, 51, NewFlashpartPosition)
end;
if Library.Flags.ShootOnTP.Value and Library.Flags["Teleport Activation"].Active then
Client.Character.HumanoidRootPart.CFrame = Mouse.Hit;
end;
end;
if Library.Flags.InstantBullet.Value then
Args[1].Speed = 9e9;
end;
if EntityClass.TargetPart and Library.Flags.AimbotMode.Value == "Silent" then
local HitPosition = EntityClass.TargetPart.CFrame.p;
local Origin = Args[1].Position;
local Direction = (HitPosition - Origin).Unit
local CorrectedPosition = CFrame.new(Origin, HitPosition).Position
if EntityClass.ManipulatedPosition then
Direction = (HitPosition - EntityClass.ManipulatedPosition).Unit;
CorrectedPosition = CFrame.new(EntityClass.ManipulatedPosition, HitPosition).p;
end;
Args[1].Position = CorrectedPosition
if Args[1].PositionFirst then
Args[1].PositionFirst = CorrectedPosition
end;
Args[1].DirectionFirst = Direction
Args[1].Direction = Direction
Globals.BulletOrigin = CorrectedPosition;
end;
end;
task.spawn(function()
if Library.Flags.BulletTracers.Value and (Args[1].Position - Camera.CFrame.Position).Magnitude < 1200 then
local IsEnemy = (
Args[1].StepFunction == "FakeStepFunc" or
Args[1].HitFunction == "FakeHitFunc" or
tostring(Args[1].HitFunction):find("Ignore")
)
if IsEnemy and not Library.Flags.ShowEnemyTracers.Value then
return
end;
local Ray = Workspace:Raycast(
Args[1].Position,
Args[1].Direction * Args[1].MaxRange,
Globals.RaycastParams
)
if Ray and Ray.Position then
TracerEvent:Fire(Args[1].Position, Ray.Position, IsEnemy)
end
end
end)
return CreateProjectile(self, unpack(Args));
end));
Log("Initialized projectiles.")
local CreateExplosion; CreateExplosion = hookfunction(VFX.CreateExplosion, LPH_NO_UPVALUES(function(...)
local Arguments = {...};
local Type = tostring(Arguments[5]);
local CFrame = Arguments[2];
task.spawn(function() RaidEvent:Fire(Type, CFrame) end)
return CreateExplosion(...)
end));
Log("Initialized raids")
local OldRaycast; OldRaycast = hookfunction(RaycastUtil.Raycast, LPH_NO_UPVALUES(function(self, ...)
local Arguments = {...};
if not checkcaller() then
local Traceback = debug.traceback();
if Traceback and Traceback:find("ViewmodelController") and Library.Flags.Reach.Value then
Arguments[2] = Arguments[2] * 10
end;
if Library.Flags.PerfectFarm.Value then
local Output = {OldRaycast(self, ...)}
local HitInstance = Output[1]
local HitPosition = Output[2]
if not HitInstance or typeof(HitInstance) ~= "Instance" then
return unpack(Output)
end
if not HitPosition or typeof(HitPosition) ~= "Vector3" then
return unpack(Output)
end
local Model = HitInstance.Parent
if not Model or (not Model:IsA("Model")) then
return unpack(Output)
end
local Folder = Model.Parent
if Folder and (Folder.Name == "Trees" or Folder.Name == "Nodes") and Folder:IsA("Folder") then
local CriticalPart = Model:FindFirstChild("NodeSpark") or Model:FindFirstChild("TreeX")
if CriticalPart and typeof(CriticalPart) == "Instance" and CriticalPart:IsA("Model") and CriticalPart.PrimaryPart then
Output[1] = CriticalPart.PrimaryPart
return unpack(Output)
end;
end;
end;
end;
return OldRaycast(self, unpack(Arguments));
end))
Log("Initialized raycast")
local ToggleFootstep; ToggleFootstep = hookfunction(SoundModule.ToggleFootstep, LPH_NO_UPVALUES(function(...)
local Arguments = {...};
if Library.Flags.SilentStep.Value and Arguments[3] then
return SoundModule:StopSound(Arguments[3])
end;
return ToggleFootstep(...);
end));
local PlaySound; PlaySound = hookfunction(SoundModule.PlaySound, LPH_NO_UPVALUES(function(...)
local Arguments = {...};
if Library.Flags.SilentStep.Value and Arguments[2] and Arguments[2].Name == "WalkWater" then
return SoundModule:StopSound(Arguments[2]);
end;
return PlaySound(...)
end));
Log("Initialized sounds")
Log("Primary hooks initialized!")
end);
InitHooks();
--
local HooksOnCharacterAdded = LPH_JIT_MAX(function()
Globals.QuickStackFunctions = {};
for _, Function in getgc(false) do
if type(Function) ~= "function" then continue end
if not islclosure(Function) then continue end;
if isexecutorclosure(Function) then continue end;
if isfunctionhooked(Function) then continue end;
local Constants = debug.getconstants(Function);
local Upvalues = debug.getupvalues(Function)
local Info = debug.getinfo(Function);
local Source = Info.source;
if Source:find("ViewmodelController") then
if table.find(Constants, "CameraOffset") then
local Old; Old = hookfunction(Function, LPH_NO_UPVALUES(function(...)
if Library.Flags.RemoveCameraBobbing.Value then
return
end;
return Old(...)
end))
end;
if table.find(Constants, "Landed") then
local Old; Old = hookfunction(Function, LPH_NO_UPVALUES(function(OldState, NewState)
if Library.Flags.AlwaysGrounded.Value then
OldState = Enum.HumanoidStateType.Running;
NewState = Enum.HumanoidStateType.Running;
end;
return Old(OldState, NewState)
end));
end;
-- yea followed ur coding style aswell
if table.find(Constants, "CreateBlood") then
for index, value in pairs(Upvalues) do
if type(value) == "function" and debug.info(value, "s"):find("AssetContainer") then
Globals.VMNetworkPointer = value;
break;
end;
end;
end;
end;
if Source:find("InventoryController") then
local Upvalues = debug.getupvalues(Function);
if type(Upvalues[1]) == "table" and type(Upvalues[2]) == "table" and type(Upvalues[3]) == "table" then
local Old; Old = hookfunction(Function, LPH_NO_UPVALUES(function()
local InventoryTable, _, _2 = Old()
local Toolbar = InventoryTable.Toolbar;
if Toolbar and Library.Flags.SkinChanger.Value then
for ItemIndex, ItemData in Toolbar do
if type(ItemData) ~= "table" then
continue
end;
local ItemName = ItemsModule[ItemData.ID].Name;
local SKIN = Library.Flags["EnableSkin_"..ItemName]
if SKIN and SKIN.Value then
local ClientSkin = Library.Flags["Skin_"..ItemName].Value;
ItemData.Skin = ClientSkin;
else
continue
end;
end;
end;
return InventoryTable, _, _2
end));
end;
if Constants[1] == "ArmorEquip" and Constants[5] == "GetAttribute" then
if Library.Flags.InstantLoot.Value then
debug.setconstant(Function, 19, 0) -- 0.9
debug.setconstant(Function, 20, 0) -- 0.3
debug.setconstant(Function, 21, 0) -- 0.1
end;
table.insert(Globals.QuickStackFunctions, Function)
end
end;
if Source:find("StateController") then
if table.find(Constants, "Forward") then
if type(Upvalues[1]) == "table" and (Upvalues[1].Forward == false or Upvalues[1].Forward == true) then
Globals.DirectionTable = debug.getupvalue(Function, 1)
end
end;
end;
if Info.source:find("BuildController") then
if type(Upvalues[16]) == "function" then
local BuildEvent = debug.getupvalue(Function, 16);
Globals.BuildingNetworkPointer = BuildEvent;
end
end;
end;
repeat task.wait() until Client.Character ~= nil
local Character = Client.Character;
local StateController = Character:WaitForChild("StateController", 5);
if StateController then
StateController:GetAttributeChangedSignal("IsSprint"):Connect(function()
if Library.Flags.Omnisprint.Value and UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then
StateController:SetAttribute("IsSprint", true);
end;
end);
StateController:GetAttributeChangedSignal("Direction"):Connect(function()
if Library.Flags.Omnisprint.Value and UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then
StateController:SetAttribute("Direction", "Forward");
end;
end);
end;
end);
repeat task.wait() until Client.Character
HooksOnCharacterAdded();
Client.CharacterAdded:Connect(function()
task.wait(3);
HooksOnCharacterAdded();
end);
end;
Log("All hooks loaded!")
--#endregion Hooks



cost robux to play the game. I wouldnt use this script you'll just be banned. I bought the game just to test the script out. Its decent but if you dont want to spend your money on alt accounts just to get banned, dont use scripts on paid games
source pls 🥺🥺🥺🥺🥺🥺🥺🥺🥺🥺🥺🥺🥺
@depso yes
can i have it too
i would but it wouldnt fit
@altacc34123 lemme get source
@akselzaki its in the script js scrtol down
doesnt work at all on velocity.
Deosnt Work on Volcano
this script is probably outdated and doesnt work, just use amoungushook its better than most scripts.
топовый софт всем советую! забанило когда заинжектил ваще бомба