0% found this document useful (0 votes)
133 views80 pages

Message

Uploaded by

m67dg67
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
133 views80 pages

Message

Uploaded by

m67dg67
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 80

getgenv().

Evolution = {
["Options"] = {
["Version"] = "3.1.4-Electron", -- // Dont touch this is to make sure your
using the correct table
["Stealth Mode"] = {
["Enabled"] = false, -- // Will hide the loader and just load the
script
["Key"] = "", -- // Enter your Evolution Key
},
["Internal"] = {
["Enabled"] = true, -- // Shows internal ui for evolution
["Auto Show"] = true, -- // Will show the ui when you execute
["Bind"] = "V", -- // Default keybind to toggle ui
},
["FPS Unlocker"] = { -- // Unlocks your fps (BROKEN ON ELECTRON)
["Enabled"] = true, -- // Will unlock your FPS
["FPS"] = 999, -- // Maximum FPS
},
["Intro"] = true, -- // Will show a short intro
["Stats"] = true, -- // Shows debug stats (BROKEN ON ELECTRON)
["Auto Join Discord"] = true, -- // Will Join Discord
["Allow Notifications"] = true, -- // Toggles all notifications
["Notifcation Type"] = "xaxa", -- // Akali, Roblox, xaxa
["Notifcation Duration"] = 3, -- // How long notifcations will show
},
["Silent Aim"] = {
["Enabled"] = true, -- // Mouse Redirection
["Mode"] = "FOV", -- // Select mode to select target (FOV, Target )
["Target Mode Bind"] = "Q", -- // Keybind for Target mode
["Notify"] = true, -- // Sends notifcation when targeting someone
["Prediction"] = 0.133, -- // Prediction Value
["Hit Chance"] = 100, -- // Hit chance (1-100)
["Target Part"] = "Head", -- // Any Hitbox (Head, UpperTorso,
HumanoidRootPart, LowerTorso)
["Target Part Offset"] = 0, -- // Offset if you have the target part to
head and you set offset to -1.6 you will hit the torso
["Nearest Part To Cursor"] = false, -- // Sets target part to the nearest
body part to your cursor
["Closest Point"] = false, -- // Gets the closest point on the target part
(not working rn)
["Dot"] = true, -- // Visual (BROKEN ON ELECTRON)
["Line"] = false, -- // Visual (BROKEN ON ELECTRON)
["Shake"] = {
["Enabled"] = false, -- // Will Randomly Offset hit point
["X"] = 5, -- // Max X Position
["Y"] = 5, -- // Max Y Position
["Z"] = 5, -- // Max Z Position
},
},
["Cam Lock"] = {
["Enabled"] = false, -- // Adjust your camera position
["Mode"] = "Target_toggle", -- // Select mode to select target (FOV,
Target_toggle, Target_hold)
["Target Mode Bind"] = "C", -- // Keybind for Target modes
["Easing Style"] = "Exponential", -- //
https://create.roblox.com/docs/reference/engine/enums/EasingStyle
["Notify"] = true, -- // Sends notifcation when targeting someone
["Prediction"] = 0.133, -- // Prediction Value
["Target Part"] = "Head", -- // Any Hitbox (Head, UpperTorso,
HumanoidRootPart, LowerTorso)
["Target Part Offset"] = 0, -- // Offset if you have the target part to
head and you set offset to -1.6 you will hit the torso
["Nearest Part To Cursor"] = false, -- // Sets target part to the nearest
body part to your cursor
["Closest Point"] = false, -- // Gets the closest point on the target part
["Dot"] = true, -- // Visual (BROKEN ON ELECTRON)
["Line"] = false, -- // Visual (BROKEN ON ELECTRON)
["Smoothness"] = {
["Enabled"] = true, -- // Prevents snapping when targeting
["Value"] = 0.058, -- // Smoothness Value
},
["Shake"] = {
["Enabled"] = false, -- // Will Shake your camera randomly when
targeting
["X"] = 5, -- // Max X Position
["Y"] = 5, -- // Max Y Position
["Z"] = 5, -- // Max Z Position
},
},
["Global"] = {
["Auto Prediction"] = {
["Enabled"] = true, -- // Will automatically set your prediction based
on your ping
["Version"] = "Default", -- // Default, Old, V2, Custom
["Custom Settings"] = { -- // Custom Values
["Ping20"] = 0.12746444,
["Ping30"] = 0.12746444,
["Ping40"] = 0.12746444,
["Ping50"] = 0.11243,
["Ping60"] = 0.11243,
["Ping70"] = 0.12533,
["Ping80"] = 0.169,
["Ping90"] = 0.13626,
["Ping100"] = 0.13829,
["Ping110"] = 0.146,
["Ping120"] = 0.149,
["Ping130"] = 0.151,
["Ping140"] = 0.1652131,
["Ping150"] = 0.125333,
["Ping160"] = 0.1223333,
["Ping170"] = 0.15,
["Ping180"] = 0.1923111,
["Ping190"] = 0.165771,
["Ping200"] = 0.1746,
}
},
["Anti Ground Shots"] = false, -- // Will prevent you from shooting the
ground
["Unlock On KO"] = false, -- // Unlocks when target dies
["Unlock Outside FOV"] = false, -- // Will unlock when the target leaves
your fov
["Unlock Behind Wall"] = false, -- // Will unlock when the target goes
behind a wall
},
["Checks"] = {
["Whitelist"] = { -- // Will only lock onto people whitelisted,
["Enabled"] = false,
["Usernames"] = {
--[[
Enter usernames eg:
"Username1",
"Username2",
"Username3"
]]
}
},
["Blacklist"] = { -- // Will not lock onto peopled blacklisted,
["Enabled"] = false,
["Usernames"] = {
--[[
Enter usernames eg:
"Username1",
"Username2",
"Username3"
]]
}
},
["Visible Check"] = true, -- // Will check if target is behind a wall
["K.O Check"] = true, -- // Will check if target is knocked or grabbed
["Crew Check"] = false, -- // Will check if target is in your crew
["Friend Check"] = false, -- // Will check if target is your friend if not
will not lock
["Distance"] = { -- // Not lock onto people if they are too far away
["Enabled"] = false,
["Max Distance"] = 200, -- // Studs
}
},
["Resolver"] = {
["Enabled"] = false, -- // Resolve Anti Locks and Desyncs
["Method"] = "Delta", -- // Delta, Move Direction, No Prediction,
Recalculate
["Keybind Enabled"] = false, -- // Will toggle resolver when you press key
["Keybind"] = "T", -- // Keybind to toggle resolver
},
["FOV"] = { -- // FOV Circle Settings
["Silent Aim"] = {
["Visible"] = true, -- // Will toggle if you can see the circle (BROKEN
ON ELECTRON)
["Filled"] = false, -- // Makes circle filled (really fucking ugly)
["Size"] = 15, -- // Size of the circle
["Thickness"] = 1, -- // Thickness of the circle
["Transparency"] = 1, -- // Transparency of the circle 0.1 - 1
["Color"] = Color3.fromRGB(255,255,255) -- // Circle Color
},
["Cam Lock"] = {
["Visible"] = false, -- // Will toggle if you can see the circle
(BROKEN ON ELECTRON)
["Filled"] = false, -- // Makes circle filled (really fucking ugly)
["Size"] = 15, -- // Size of the circle
["Thickness"] = 1, -- // Thickness of the circle
["Transparency"] = 1, -- // Transparency of the circle 0.1 - 1
["Color"] = Color3.fromRGB(255,255,255) -- // Circle Color
},
},
["Airshot"] = {
["Enabled"] = true, -- // Will adjust your prediction if target is in the
air
["Jump Offset"] = -1.6, -- // Jump Offset
["Cam Lock Smoothness"] = {
["Enabled"] = true, -- // Will adjust your camlock smoothness if target
is in the air
["New Smoothness"] = 0.58, -- // Smoothness value
}
},
["Hit Sound"] = {
["Enabled"] = false, -- // Sound for when you hit a player
["Hit Sound"] = "Minecraft", -- // Minecraft, Bameware, Bubble, Pick, Pop,
Rust, Sans, Fart, Big, Vine, Bruh, Skeet, Neverlose, Fatality, Bonk
["Volume"] = 1,
},
["Hit Logs"] = {
["Enabled"] = false, -- // Logs when you hit a player
},
["Macro"] = {
["Enabled"] = false, -- // Lua based macro
["Bind"] = "X", -- // Keybind to start macro
["Abuse"] = true, -- // Will use scroll wheel to macro
["Speed"] = 1, --// Macro Speed
},
["Spoofer"] = {
["Memory"] = {
["Enabled"] = false, -- // Will spoof your memory usage
["Max"] = 900,
["Min"] = 700,
},
},
["Gun Sorting"] = {
["Enabled"] = false, -- // Sorts the guns in your inventory
["Bind"] = "Z", -- // Keybind to sort
["Delete Extra"] = false, -- // Will destroy any tools that are not sorted
(broken)
["Slots"] = { -- // You can add up to 9
"[Double-Barrel SG]",
"[Revolver]",
"[TacticalShotgun]",
"[Shotgun]",
"[Katana]",
}
},
["Emotes"] = { -- // Da hood and Hood Modded only (if you have the animation
ids for other da hood ripoffs dm xz)
["Lay"] = true, ["LayKey"] = Enum.KeyCode.T, -- // Will Play Lay Animation
when you press the keybind
["Greet"] = true, ["GreetKey"] = Enum.KeyCode.G, -- // Will Play Greet
Animation when you press the keybind
["Speed"] = false, ["SpeedKey"] = Enum.KeyCode.N, -- // Will Play Speed
Animation when you press the keybind
["Sturdy"] = false, ["SturdyKey"] = Enum.KeyCode.H, -- // Will Play Sturdy
Animation when you press the keybind
["Griddy"] = false, ["GriddyKey"] = Enum.KeyCode.G, -- // Will Play Griddy
Animation when you press the keybind
},
["Fake Spike"] = {
["Enabled"] = false, -- // Will spike your ping to make it look like your
lagging
["Bind"] = "K", -- // Keybind to spike
["Duration"] = 1, -- // How long you will be spiked for
},
["Panic"] = {
["Enabled"] = false, -- // Will disable all features
["Bind"] = "P", -- // Keybind to panic
["Things To Disable"] = {
["Options"] = true, -- // Stats, Notifications
["Aiming"] = true, -- // Silent Aim, Cam Lock
["FOV"] = true, -- // Silent Aim FOV, Cam Lock FOV
["Misc"] = true, -- // Macro, Gun Sorting, Fake Spike, Chat Commands
["Emotes"] = true, -- // Emotes
}
},
["Extra"] = {
["Disable Seats"] = true, -- // Will disable all the seats that break your
macro
["Low Graphics"] = false, -- // Will give you low graphics
["Mute Boomboxes"] = false, -- // Will mute everyones boombox (FE)
},
["ESP"] = { -- // Allows you to see players through the walls
["Enabled"] = false, -- // Main Toggle
["Max Distance"] = 500, -- // Maxiumum distance to show esp (studs)
["Name"] = { -- // Will show username
["Enabled"] = true,
["Outline"] = false,
["Color"] = Color3.fromRGB(255, 255, 255)
},
["Box"] = { -- // Will show a box around character
["Enabled"] = true,
["Outline"] = false,
["Color"] = Color3.fromRGB(255, 255, 255)
},
["Health Bar"] = { -- // Will show a health bar next to box
["Enabled"] = false,
["Outline"] = false,
["Color"] = Color3.fromRGB(0, 255, 0)
},
["Distance"] = { -- // Will tell you the distance (in studs)
["Enabled"] = false,
["Outline"] = false,
["Color"] = Color3.fromRGB(255, 255, 255)
},
},
["Chat Commands"] = {
["Enabled"] = true,
["Prefix"] = ".",
["Commands"] = { -- // CANNOT HAVE SPACES!!!
["Prediction"] = "pred", -- // ex; $pred 0.115
["ToggleFOV"] = "draw", -- // ex; $draw true (you can also do "on" or
"yes" and to disable you do "off" or "yes" or "false")
["SizeFOV"] = "radius", -- // ex; $radius 100
["GotoLocation"] = "tp", -- // ex; $tp bank (locations in server)
["ToggleResolver"] = "resolver", -- // ex; $resolver true (you can also
do "on" or "yes" and to disable you do "off" or "yes" or "false")
["JoinDiscord"] = "discord", -- // ex; $discord
["RejoinServer"] = "rj", -- // ex; $rj
["ToggleSilentAim"] = "silent", -- // ex; $silent true (you can also do
"on" or "yes" and to disable you do "off" or "yes" or "false")
["ToggleCamLock"] = "camlock", -- // ex; $camlock true (you can also do
"on" or "yes" and to disable you do "off" or "yes" or "false")
["CamLockSmoothness"] = "smoothness", -- // ex; $smoothness 0.086
["CheckForExploiters"] = "check", -- // ex; $check
["ForceReset"] = "reset", -- // ex; $reset
}
}
}

-- // Evolution V3

--[[if Evolution.Options["FPS Unlocker"].Enabled then


setfpscap(Evolution.Options["FPS Unlocker"].FPS)
end]]

for i,v in pairs(game.Workspace:GetDescendants()) do


if v:IsA("Seat") then
v.Disabled = Evolution["Extra"]["Disable Seats"]
end
end

local smoothplastic = Enum.Material.SmoothPlastic


local objects = {}

local function scan(object)


local objectlist = object:GetChildren()
for i = 1, #objectlist do
if objectlist[i]:IsA('BasePart') then
objects[objectlist[i]] = objectlist[i].Material
end
scan(objectlist[i])
end
end

scan(workspace)

if not Evolution["Extra"]["Low Graphics"] then


for i in pairs(objects) do
i.Material = objects[i]
end
else
for i in pairs(objects) do
i.Material = smoothplastic
--wait()s
end
end

local utility = {
Invite = "camlock",
Folder = "EvolutionSettings",
Version = "3.1.4-Electron",
Ping = 5,
Bypass = {
12927359803, -- Dah Aim Trainer
12867571492, -- KatanaHood
11867820563, -- Dae Hood
12618586930, -- Dat Hood
13018411607, -- Dat Hood 2
13018411607, -- // Dat Hood Backup
9633073067, -- // Del Hood
11956541652, --// Dav Hood
10100958808, -- // Da Downhill
12815368779, -- // Da Hood Aim Trainer
13126185789, -- // Da Hood Aim Trainer VC
}
}

if not LPH_OBFUSCATED and not LPH_JIT_ULTRA then


LPH_NO_VIRTUALIZE = function(f) return f end
LRM_UserNote = ""
LRM_LinkedDiscordID = 1
LRM_TotalExecutions = 1
LRM_SecondsLeft = 9999
end

getgenv().luarmor_vars = {
ID = LRM_LinkedDiscordID,
}

local Blacklisted_GameIds =
loadstring(game:HttpGet("https://raw.githubusercontent.com/laagginq/Evolution/
main/blacklisted_gameIds.lua"))()

if table.find(Blacklisted_GameIds,game.PlaceId) then
game:GetService("StarterGui"):SetCore("SendNotification",{
Title = "Blacklist game ID",
Text =
game:GetService("MarketplaceService"):GetProductInfo(game.PlaceId).Name.." is
blacklisted because it is unsafe to use evolution on.",
Icon = "rbxassetid://14270853092",
Duration = 10
})
return
end

if Evolution.Options.Version ~= utility.Version then


game:GetService("StarterGui"):SetCore("SendNotification",{
Title = "Incorrect Table Version",
Text = "Please goto the discord and get the newest version.",
Icon = "rbxassetid://14270853092",
Duration = 10
})
return
end

task.spawn(function()
pcall(function()
repeat wait() until
game.CoreGui.RobloxGui:FindFirstChild("PerformanceStats")
for __, v in pairs(game.CoreGui.RobloxGui.PerformanceStats:GetChildren())
do
if v.Name == "PS_Button" and v.StatsMiniTextPanelClass.TitleLabel.Text
== "Mem" then
Memory = v.StatsMiniTextPanelClass.ValueLabel
end
end
Memory:GetPropertyChangedSignal("Text"):Connect(function()
if Evolution.Spoofer.Memory.Enabled then
local random1 = math.random(Evolution.Spoofer.Memory.Min,
Evolution.Spoofer.Memory.Max)
local rand1 = math.random(0,9)
local rand2 = math.random(0,9)
Memory.Text = "".. random1 .. "." .. rand1 .. rand2.. " MB"
end
end)
end)
end)

local AnimationIds = {
Lay = "rbxassetid://0",
Greet = "rbxassetid://0",
Sturdy = "rbxassetid://0",
Griddy = "rbxassetid://0",
Speed = "rbxassetid://0",
}

if game.PlaceId == 2788229376 or game.PlaceId == 7213786345 then -- // Da Hood


AnimationIds = {
Lay = "rbxassetid://3152378852",
Greet = "rbxassetid://3189777795",
Sturdy = "rbxassetid://11710529975",
Griddy = "rbxassetid://11710529975",
Speed = "rbxassetid://11710541744",
}
elseif game.PlaceId == 5602055394 or game.PlaceId == 7951883376 then
AnimationIds = {
Lay = "rbxassetid://12848619324",
Greet = "rbxassetid://12848108646",
Sturdy = "rbxassetid://12848836068",
Griddy = "rbxassetid://12848118145",
Speed = "rbxassetid://12848831214",
}
elseif game.PlaceId == 12867571492 then
AnimationIds = {
Lay = "rbxassetid://12649394546",
Greet = "rbxassetid://12649400354s",
Sturdy = "rbxassetid://0",
Griddy = "rbxassetid://0",
Speed = "rbxassetid://0",
}
elseif game.PlaceId == 14412601883 then -- // Hood Bank
AnimationIds = {
Lay = "rbxassetid://14414332833",
Greet = "rbxassetid://14413912697",
Sturdy = "rbxassetid://0",
Griddy = "rbxassetid://0",
Speed = "rbxassetid://0",
}
elseif game.PlaceId == 14413712255 then
AnimationIds = {
Lay = "rbxassetid://14414368594",
Greet = "rbxassetid://14414355346",
Sturdy = "rbxassetid://0",
Griddy = "rbxassetid://0",
Speed = "rbxassetid://0",
}
end

game:GetService("UserInputService").InputBegan:Connect(function(key, gp)
if not gp then
if key.KeyCode == Evolution.Emotes.LayKey then
if Evolution.Emotes.Lay then
local Lay = Instance.new("Animation")
Lay.AnimationId = AnimationIds.Lay
local LayTrack =
game.Players.LocalPlayer.Character.Humanoid:LoadAnimation(Lay)
LayTrack:Play()

game.Players.LocalPlayer.Character.Humanoid.Running:Connect(function()
LayTrack:Stop()
end)
end
end
if key.KeyCode == Evolution.Emotes.GreetKey then
if Evolution.Emotes.Greet then
local Greet = Instance.new("Animation")
Greet.AnimationId = AnimationIds.Greet
local GreetTrack =
game.Players.LocalPlayer.Character.Humanoid:LoadAnimation(Greet)
GreetTrack:Play()

game.Players.LocalPlayer.Character.Humanoid.Running:Connect(function()
GreetTrack:Stop()
end)
end
end
if key.KeyCode == Evolution.Emotes.SpeedKey then
if Evolution.Emotes.Speed then
local Speed = Instance.new("Animation")
Speed.AnimationId = AnimationIds.Speed
local SppedTrack =
game.Players.LocalPlayer.Character.Humanoid:LoadAnimation(Speed)
SpeedTrack:Play()

game.Players.LocalPlayer.Character.Humanoid.Running:Connect(function()
SpeedTrack:Stop()
end)
end
end
if key.KeyCode == Evolution.Emotes.SturdyKey then
if Evolution.Emotes.Sturdy then
local Sturdy = Instance.new("Animation")
Sturdy.AnimationId = AnimationIds.Sturdy
local SturdyTrack =
game.Players.LocalPlayer.Character.Humanoid:LoadAnimation(Sturdy)
SturdyTrack:Play()

game.Players.LocalPlayer.Character.Humanoid.Running:Connect(function()
SturdyTrack:Stop()
end)
end
end
if key.KeyCode == Evolution.Emotes.GriddyKey then
if Evolution.Emotes.Griddy then
local Griddy = Instance.new("Animation")
Griddy.AnimationId = AnimationIds.Griddy
local GriddyTrack =
game.Players.LocalPlayer.Character.Humanoid:LoadAnimation(Griddy)
GriddyTrack:Play()

game.Players.LocalPlayer.Character.Humanoid.Running:Connect(function()
GriddyTrack:Stop()
end)
end
end
end
end)

local AkaliNotif =
loadstring(game:HttpGet("https://raw.githubusercontent.com/laagginq/Evolution/
main/akali.lua"))();
local gggg = AkaliNotif.Notify;

local notificationLibrary =
loadstring(game:HttpGet("https://raw.githubusercontent.com/laagginq/ui-libraries/
main/xaxas-notification/src.lua"))();
local notifications = notificationLibrary.new({
NotificationLifetime = 3,
NotificationPosition = "Middle",

TextFont = Enum.Font.Code,
TextColor = Color3.fromRGB(255, 255, 255),
TextSize = 15,

TextStrokeTransparency = 0,
TextStrokeColor = Color3.fromRGB(0, 0, 0)
});

notifications:BuildNotificationUI();

getgenv().notify = function(txt)
if Evolution.Options["Allow Notifications"] then
if string.lower(Evolution.Options["Notifcation Type"]) == "akali" then
gggg({
Description = txt;
Title = "Notification";
Duration = Evolution.Options["Notifcation Duration"];
});
elseif string.lower(Evolution.Options["Notifcation Type"]) == "roblox" then
game:GetService("StarterGui"):SetCore("SendNotification",{
Title = "Notification",
Text = txt,
Icon = "rbxassetid://14270853092",
Duration = Evolution.Options["Notifcation Duration"]
})
elseif string.lower(Evolution.Options["Notifcation Type"]) == "xaxa" then
notifications:Notify(txt);
end

end
end

local bypass = {
dahood = function()
local _game = getrawmetatable(game)
setreadonly(_game, false)
local ___namecall = _game.__namecall
_game.__namecall = newcclosure(function(...)
if getnamecallmethod() == 'FireServer' and ({...})[1].Name ==
'MainEvent' and table.find({"BreathingHAMON", "OneMoreTime", "BANREMOTE",
"PERMAIDBAN", "KICKREMOTE", "BR_KICKPC", "BR_KICKMOBILE", "CHECKER_1",
"TeleportDetect", "GUI_CHECK"}, ({...})[2]) then
return
end
return ___namecall(...)
end)
setreadonly(_game, true)
end,
hoodmodded = function()
for i,v in next, getgc(true) do
if typeof(v)=="table" and rawget(v,"DoThings") then
v.DoThings = function() end
end
end
end,
untitledhood = function()
local _1;
_1 = hookmetamethod(game, "__namecall", function(self, ...)
if not checkcaller() and getnamecallmethod() == "FireServer" then
if tostring(self.Name) == ".gg/untitledhood" then
local args = {...}
if tostring(args[1]) == "ForceDetect" or tostring(args[1]) ==
"TeleportDetect" or tostring(args[1]) == "GUI_CHECK" then
return
end
end
end
return _1(self, ...);
end)
end,
adonis = function()
for k,v in pairs(getgc(true)) do
if pcall(function() return rawget(v,"indexInstance") end) and
type(rawget(v,"indexInstance")) == "table" and (rawget(v,"indexInstance"))[1] ==
"kick" then
v.tvk = {"kick",function() return game.Workspace:WaitForChild("")
end}
end
end
end
}

if game.PlaceId == 2788229376 or game.PlaceId == 7213786345 then


bypass.dahood()
elseif game.PlaceId == 5602055394 or game.PlaceId == 7951883376 then
bypass.hoodmodded()
elseif game.PlaceId == 9183932460 or game.PlaceId == 9435785899 then
bypass.untitledhood()
elseif table.find(utility.Bypass,game.PlaceId) then
bypass.adonis()
end

function missingf(functionmissing)
notify("Your executor is missing "..functionmissing.." this feature will not
work.")
end

function toClipboard(String)
local clipBoard = setclipboard or toclipboard or set_clipboard or (Clipboard
and Clipboard.set)
if clipBoard then
clipBoard(String)
else
missingf("setclipboard")
return
end
end

function hookf(Function)
local consume = detour_function or replaceclosure or hookfunc or hookfunction
if consume then
consume(Function)
else
missingf("hookfunction")
return
end
end

function httprequest(f)
local httprequest = (syn and syn.request) or (http and http.request) or
http_request or (fluxus and fluxus.request) or request
if not httprequest then
httprequest(f)
else
missingf("httprequest")
return
end
end

if not isfolder(utility.Folder) then


makefolder(utility.Folder)
end

if not isfile(utility.Folder.."/invite.txt") then


writefile(utility.Folder.."/invite.txt","")
end

if readfile(utility.Folder.."/invite.txt") ~= utility.Invite then


if httprequest then
httprequest({
Url = 'http://127.0.0.1:6463/rpc?v=1',
Method = 'POST',
Headers = {
['Content-Type'] = 'application/json',
Origin = 'https://discord.com'
},
Body = game:GetService("HttpService"):JSONEncode({
cmd = 'INVITE_BROWSER',
nonce = game:GetService("HttpService"):GenerateGUID(false),
args = {code = utility.Invite}
})
})
end
writefile(utility.Folder.."/invite.txt",utility.Invite)
end

local Players = game:GetService("Players")


local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local Gui = game:GetService("GuiService")

local SilentTarget = nil


local CamlockTarget = nil
local ClosestPointCF = nil
local ClosestPointCF2 = nil
local PredictionValue = 0.133
local PredictionValue2 = 0.133
local closestsilentbodypart = Evolution["Silent Aim"]["Target Part"]
local closestcamlockpart = Evolution["Cam Lock"]["Target Part"]
local LocalPlayer = Players.LocalPlayer
local mouse = LocalPlayer:GetMouse()
local CurrentCamera = Workspace.CurrentCamera
local v3 = Vector3
local v2 = Vector2
local CF = CFrame

if Evolution["Options"]["Intro"] then
local cam = workspace.CurrentCamera
local x = cam.ViewportSize.X
local y = cam.ViewportSize.Y
local newx = math.floor(x * 0.5)
local newy = math.floor(y * 0.5)

local SpashScreen = Instance.new("ScreenGui")


local Image = Instance.new("ImageLabel")
SpashScreen.Name = "SpashScreen"
SpashScreen.Parent = game.CoreGui
SpashScreen.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
Image.Name = "Image"
Image.Parent = SpashScreen
Image.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Image.BackgroundTransparency = 1
Image.Position = UDim2.new(0, newx, 0, newy)
Image.Size = UDim2.new(0, 100, 0, 100)
Image.Image = "rbxassetid://14270853092"
Image.ImageTransparency = 1
Image.AnchorPoint = Vector2.new(0.5,0.5)

local Blur = Instance.new("BlurEffect")


Blur.Parent = game.Lighting
Blur.Size = 0
Blur.Name = math.random(1,123123)
local function gui(last, sex, t, s, inorout)
local TI = TweenInfo.new(t or 1, s or Enum.EasingStyle.Sine,
Enum.EasingDirection.InOut)
local Tweening = game:GetService("TweenService"):Create(last, TI, sex)
Tweening:Play()
end

gui(Image, {ImageTransparency = 0},0.3)


gui(Blur, {Size = 20},0.3)
wait(3)
gui(Image, {ImageTransparency = 1},0.3)
gui(Blur, {Size = 0},0.3)
wait(0.3)

end

local Circle = Drawing.new("Circle")


Circle.Transparency = Evolution.FOV["Silent Aim"].Transparency
Circle.Radius = Evolution.FOV["Silent Aim"].Size * 3
Circle.Visible = Evolution.FOV["Silent Aim"].Visible
Circle.Color = Evolution.FOV["Silent Aim"].Color
Circle.Thickness = Evolution.FOV["Silent Aim"].Thickness
Circle.Filled = Evolution.FOV["Silent Aim"].Filled

local Circle2 = Drawing.new("Circle")


Circle2.Transparency = Evolution.FOV["Cam Lock"].Transparency
Circle2.Radius = Evolution.FOV["Cam Lock"].Size * 3
Circle2.Visible = Evolution.FOV["Cam Lock"].Visible
Circle2.Color = Evolution.FOV["Cam Lock"].Color
Circle2.Thickness = Evolution.FOV["Cam Lock"].Thickness
Circle2.Filled = Evolution.FOV["Cam Lock"].Filled

local Visualizer = Drawing.new("Circle")


Visualizer.Filled = true
Visualizer.Thickness = 1
Visualizer.Transparency = 1
Visualizer.Radius = 3
Visualizer.Color = Color3.new(1,1,1)

local Visualizer2 = Drawing.new("Line")


Visualizer2.Visible = false
Visualizer2.From = v2.new(0, 0)
Visualizer2.To = v2.new(200, 200)
Visualizer2.Color = Color3.new(1,1,1)
Visualizer2.Thickness = 1
Visualizer2.Transparency = 1

local CVisualizer = Drawing.new("Circle")


CVisualizer.Filled = true
CVisualizer.Thickness = 1
CVisualizer.Transparency = 1
CVisualizer.Radius = 3
CVisualizer.Color = Color3.new(1,1,1)

local CVisualizer2 = Drawing.new("Line")


CVisualizer2.Visible = false
CVisualizer2.From = v2.new(0, 0)
CVisualizer2.To = v2.new(200, 200)
CVisualizer2.Color = Color3.new(1,1,1)
CVisualizer2.Thickness = 1
CVisualizer2.Transparency = 1

OnScreen = function(Object)
local _, screen = CurrentCamera:WorldToScreenPoint(Object.Position)
return screen
end

CalculateChance = function(Percentage)
Percentage = math.floor(Percentage)
local chance = math.floor(Random.new().NextNumber(Random.new(), 0, 1) * 100) /
100

return chance < Percentage / 100


end

RayCastCheck = function(Part, PartDescendant)


local Character = LocalPlayer.Character or
LocalPlayer.CharacterAdded.Wait(LocalPlayer.CharacterAdded)
local Origin = CurrentCamera.CFrame.Position

local RayCastParams = RaycastParams.new()


RayCastParams.FilterType = Enum.RaycastFilterType.Blacklist
RayCastParams.FilterDescendantsInstances = {Character, CurrentCamera}

local Result = Workspace.Raycast(Workspace, Origin, Part.Position - Origin,


RayCastParams)

if (Result) then
local PartHit = Result.Instance
local Visible = (not PartHit or
Instance.new("Part").IsDescendantOf(PartHit, PartDescendant))

return Visible
end
return false
end

Alive = function(Plr)
if Plr and Plr.Character and Plr.Character:FindFirstChild("HumanoidRootPart")
~= nil and Plr.Character:FindFirstChild("Humanoid") ~= nil and
Plr.Character:FindFirstChild("Head") ~= nil then
return true
end
return false
end

GetMagnitudeFromMouse = function(Part)
local PartPos, OnScreen = CurrentCamera:WorldToScreenPoint(Part.Position)
if OnScreen then
local Magnitude = (v2.new(PartPos.X, PartPos.Y) - v2.new(mouse.X,
mouse.Y)).Magnitude
return Magnitude
end
return math.huge
end
local EspPlayers = {}

Draw = function(Type, Properties)


local NewDrawing = Drawing.new(Type)

for i,v in next, Properties or {} do


NewDrawing[i] = v
end
return NewDrawing
end

NewESP = function(Player)
EspPlayers[Player] = {
Name = Draw("Text", {Color = Color3.fromRGB(255,2550, 255), Outline = true,
Visible = false, Center = true, Size = 13, Font = 0}),
BoxOutline = Draw("Square", {Color = Color3.fromRGB(0, 0, 0), Thickness =
3, Visible = false}),
Box = Draw("Square", {Color = Color3.fromRGB(255, 255, 255), Thickness = 1,
Visible = false}),
HealthBarOutline = Draw("Line", {Color = Color3.fromRGB(0, 0, 0), Thickness
= 3, Visible = false}),
HealthBar = Draw("Line", {Color = Color3.fromRGB(0, 255, 0), Thickness = 1,
Visible = false}),
Distance = Draw("Text", {Color = Color3.fromRGB(255, 255, 255), Outline =
true, Visible = false, Center = true, Size = 13, Font = 0})
}
end

UpdateESP = function()
for i,v in pairs(EspPlayers) do
if Evolution.ESP.Enabled and i ~= LocalPlayer and i.Character and
i.Character:FindFirstChild("Humanoid") and
i.Character:FindFirstChild("HumanoidRootPart") and
i.Character:FindFirstChild("Head") then
local Hum = i.Character.Humanoid
local Hrp = i.Character.HumanoidRootPart

local Vector, OnScreen =


CurrentCamera:WorldToViewportPoint(i.Character.HumanoidRootPart.Position)
local Size = (CurrentCamera:WorldToViewportPoint(Hrp.Position -
Vector3.new(0, 3, 0)).Y - CurrentCamera:WorldToViewportPoint(Hrp.Position +
Vector3.new(0, 2.6, 0)).Y) / 2
local BoxSize = Vector2.new(math.floor(Size * 1.5), math.floor(Size *
1.9))
local BoxPos = Vector2.new(math.floor(Vector.X - Size * 1.5 / 2),
math.floor(Vector.Y - Size * 1.6 / 2))
local BottomOffset = BoxSize.Y + BoxPos.Y + 1

if OnScreen and GetDistance(i) < Evolution.ESP["Max Distance"] then


if Evolution.ESP.Name.Enabled then
v.Name.Position = Vector2.new(BoxSize.X / 2 + BoxPos.X,
BoxPos.Y - 16)
v.Name.Outline = Evolution.ESP.Name.Outline
v.Name.Text = i.DisplayName.." (@"..i.Name..")"
v.Name.Color = Evolution.ESP.Name.Color
v.Name.OutlineColor = Color3.fromRGB(0, 0, 0)
v.Name.Font = 0
v.Name.Size = 16
v.Name.Visible = true
else
v.Name.Visible = false
end
if Evolution.ESP.Distance.Enabled and LocalPlayer.Character and
LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
v.Distance.Position = Vector2.new(BoxSize.X / 2 + BoxPos.X,
BottomOffset)
v.Distance.Outline = Evolution.ESP.Distance.Outline
v.Distance.Text = math.floor((Hrp.Position -
LocalPlayer.Character.HumanoidRootPart.Position).Magnitude) .. " studs"
v.Distance.Color = Evolution.ESP.Distance.Color
v.Distance.OutlineColor = Color3.fromRGB(0, 0, 0)
BottomOffset = BottomOffset + 15

v.Distance.Font = 0
v.Distance.Size = 16

v.Distance.Visible = true
else
v.Distance.Visible = false
end
if Evolution.ESP.Box.Enabled then
v.BoxOutline.Size = BoxSize
v.BoxOutline.Position = BoxPos
v.BoxOutline.Visible = Evolution.ESP.Box.Outline
v.BoxOutline.Color = Color3.fromRGB(0, 0, 0)

v.Box.Size = BoxSize
v.Box.Position = BoxPos
v.Box.Color = Evolution.ESP.Box.Color
v.Box.Visible = true
else
v.BoxOutline.Visible = false
v.Box.Visible = false
end
if Evolution.ESP["Health Bar"].Enabled then
v.HealthBar.From = Vector2.new((BoxPos.X - 5), BoxPos.Y +
BoxSize.Y)
v.HealthBar.To = Vector2.new(v.HealthBar.From.X,
v.HealthBar.From.Y - (Hum.Health / Hum.MaxHealth) * BoxSize.Y)
v.HealthBar.Color = Evolution.ESP["Health Bar"].Color
v.HealthBar.Visible = true

v.HealthBarOutline.From = Vector2.new(v.HealthBar.From.X,
BoxPos.Y + BoxSize.Y + 1)
v.HealthBarOutline.To = Vector2.new(v.HealthBar.From.X,
(v.HealthBar.From.Y - 1 * BoxSize.Y) -1)
v.HealthBarOutline.Color = Color3.fromRGB(0, 0, 0)
v.HealthBarOutline.Visible = Evolution.ESP["Health
Bar"].Outline
else
v.HealthBarOutline.Visible = false
v.HealthBar.Visible = false
end
else
v.Name.Visible = false
v.BoxOutline.Visible = false
v.Box.Visible = false
v.HealthBarOutline.Visible = false
v.HealthBar.Visible = false
v.Distance.Visible = false
end
else
v.Name.Visible = false
v.BoxOutline.Visible = false
v.Box.Visible = false
v.HealthBarOutline.Visible = false
v.HealthBar.Visible = false
v.Distance.Visible = false
end
end
end

GetPrediction = function()
if Evolution["Global"]["Auto Prediction"].Enabled then

local PingStats = game:GetService("Stats").Network.ServerStatsItem["Data


Ping"]:GetValueString()
local Value = tostring(PingStats)
local PingValue = Value:split(" ")
local PingNumber = tonumber(PingValue[1])
if string.lower(Evolution.Global["Auto Prediction"]["Version"]) ==
"default" then
return tonumber(PingNumber / 225 * 0.1 + 0.1)
elseif string.lower(Evolution.Global["Auto Prediction"]["Version"]) ==
"old" then
if PingNumber < 130 then
return tonumber(PingNumber / 1000 + 0.037)
else
return tonumber(PingNumber / 1000 + 0.033)
end
elseif string.lower(Evolution.Global["Auto Prediction"]["Version"]) == "v2"
then
return tonumber(0.1 + (PingNumber / 2000) + ((PingNumber / 1000) *
(PingNumber / 1500) * 1.025))
--[[if PingNumber < 360 then
return 0.16537
elseif PingNumber < 270 then
return 0.195566
elseif PingNumber < 260 then
return 0.175566
elseif PingNumber < 250 then
return 0.1651
elseif PingNumber < 240 then
return 0.16780
elseif PingNumber < 230 then
return 0.15692
elseif PingNumber < 220 then
return 0.165566
elseif PingNumber < 210 then
return 0.16780
elseif PingNumber < 200 then
return 0.165566
elseif PingNumber < 190 then
return 0.166547
elseif PingNumber < 180 then
return 0.19284
elseif PingNumber < 170 then
return 0.1923111
elseif PingNumber < 160 then
return 0.16
elseif PingNumber < 150 then
return 0.15
elseif PingNumber < 140 then
return 0.1223333
elseif PingNumber < 130 then
return 0.156692
elseif PingNumber < 120 then
return 0.143765
elseif PingNumber < 110 then
return 0.1455
elseif PingNumber < 100 then
return 0.130340
elseif PingNumber < 90 then
return 0.136
elseif PingNumber < 80 then
return 0.1347
elseif PingNumber < 70 then
return 0.119
elseif PingNumber < 60 then
return 0.12731
elseif PingNumber < 50 then
return 0.127668
elseif PingNumber < 40 then
return 0.125
elseif PingNumber < 30 then
return 0.11
elseif PingNumber < 20 then
return 0.12588
elseif PingNumber < 10 then
return 0.9
end]]
elseif string.lower(Evolution.Global["Auto Prediction"]["Version"]) ==
"custom" then
if PingNumber < 30 then
return tonumber(Evolution.Global["Auto Prediction"]["Custom
Settings"].Ping20)
elseif PingNumber < 40 then
return tonumber(Evolution.Global["Auto Prediction"]["Custom
Settings"].Ping30)
elseif PingNumber < 50 then
return tonumber(Evolution.Global["Auto Prediction"]["Custom
Settings"].Ping40)
elseif PingNumber < 60 then
return tonumber(Evolution.Global["Auto Prediction"]["Custom
Settings"].Ping50)
elseif PingNumber < 70 then
return tonumber(Evolution.Global["Auto Prediction"]["Custom
Settings"].Ping60)
elseif PingNumber < 80 then
return tonumber(Evolution.Global["Auto Prediction"]["Custom
Settings"].Ping70)
elseif PingNumber < 90 then
return tonumber(Evolution.Global["Auto Prediction"]["Custom
Settings"].Ping80)
elseif PingNumber < 100 then
return tonumber(Evolution.Global["Auto Prediction"]["Custom
Settings"].Ping90)
elseif PingNumber < 110 then
return tonumber(Evolution.Global["Auto Prediction"]["Custom
Settings"].Ping100)
elseif PingNumber < 120 then
return tonumber(Evolution.Global["Auto Prediction"]["Custom
Settings"].Ping110)
elseif PingNumber < 130 then
return tonumber(Evolution.Global["Auto Prediction"]["Custom
Settings"].Ping120)
elseif PingNumber < 140 then
return tonumber(Evolution.Global["Auto Prediction"]["Custom
Settings"].Ping130)
elseif PingNumber < 150 then
return tonumber(Evolution.Global["Auto Prediction"]["Custom
Settings"].Ping140)
elseif PingNumber < 160 then
return tonumber(Evolution.Global["Auto Prediction"]["Custom
Settings"].Ping150)
elseif PingNumber < 170 then
return tonumber(Evolution.Global["Auto Prediction"]["Custom
Settings"].Ping160)
elseif PingNumber < 180 then
return tonumber(Evolution.Global["Auto Prediction"]["Custom
Settings"].P1ing70)
elseif PingNumber < 190 then
return tonumber(Evolution.Global["Auto Prediction"]["Custom
Settings"].Ping180)
elseif PingNumber < 200 then
return tonumber(Evolution.Global["Auto Prediction"]["Custom
Settings"].Ping190)
elseif PingNumber < 210 then
return tonumber(Evolution.Global["Auto Prediction"]["Custom
Settings"].Ping200)
end
end
else
return tonumber(Evolution["Silent Aim"].Prediction)
end
end

FindCrew = function(Player)
if Player:FindFirstChild("DataFolder") and
Player.DataFolder:FindFirstChild("Information") and
Player.DataFolder.Information:FindFirstChild("Crew") and
LocalPlayer:FindFirstChild("DataFolder") and
LocalPlayer.DataFolder:FindFirstChild("Information") and
LocalPlayer.DataFolder.Information:FindFirstChild("Crew") then
if LocalPlayer.DataFolder.Information:FindFirstChild("Crew").Value ~= nil
and Player.DataFolder.Information:FindFirstChild("Crew").Value ~= nil and
Player.DataFolder.Information:FindFirstChild("Crew").Value ~= "" and
LocalPlayer.DataFolder.Information:FindFirstChild("Crew").Value ~= "" then
return true
end
end
return false
end
CheckDistance = function(Player)
if (Player.Character.HumanoidRootPart.Position -
game.Players.LocalPlayer.Character.HumanoidRootPart.Position).Magnitude >
Evolution.Checks.Distance["Max Distance"] then
return true
else
return false
end
end

GetDistance = function(Player)
if Player ~= nil and Player.Character and
Player.Character:FindFirstChild("HumanoidRootPart") then
return math.floor((Player.Character.HumanoidRootPart.Position -
game.Players.LocalPlayer.Character.HumanoidRootPart.Position).Magnitude)
else
return 0
end
end

GetHealth = function(Player)
if Player ~= nil and Player.Character and
Player.Character:FindFirstChild("Humanoid") then
return
tostring(math.floor(Player.Character.Humanoid.Health).."/"..math.floor(Player.Chara
cter.Humanoid.MaxHealth))
else
return "0/100"
end
end

GetGunName = function(Name)
local split = string.split(string.split(Name, "[")[2], "]")[1]
return split
end

GetCurrentWeaponName = function()
if LocalPlayer.Character and
LocalPlayer.Character:FindFirstChildWhichIsA("Tool") then
local Tool = LocalPlayer.Character:FindFirstChildWhichIsA("Tool")
if string.find(Tool.Name, "%[") and string.find(Tool.Name, "%]") and not
string.find(Tool.Name, "Wallet") and not string.find(Tool.Name, "Phone") then
return GetGunName(Tool.Name)
end
end
return nil
end

WTS = function(Object)
local ObjectVector = CurrentCamera:WorldToScreenPoint(Object.Position)
return v2.new(ObjectVector.X, ObjectVector.Y)
end

Filter = function(obj)
if (obj:IsA('BasePart')) then
return true
end
end
mousePosv2 = function()
return v2.new(mouse.X, mouse.Y)
end

IsOnScreen2 = function(Object)
local IsOnScreen = CurrentCamera:WorldToScreenPoint(Object.Position)
return IsOnScreen
end

FilterObjs = function(Object)
if string.find(Object.Name, "Gun") then
return
end
if table.find({"Part", "MeshPart", "BasePart"}, Object.ClassName) then
return true
end
end

function GetClosestPointOfPart(Part)
local mouseray = mouse.UnitRay
mouseray = mouseray.Origin + (mouseray.Direction * (Part.Position -
mouseray.Origin).Magnitude)
local point =
(mouseray.Y >= (Part.Position - Part.Size / 2).Y and mouseray.Y <=
(Part.Position + Part.Size / 2).Y) and
(Part.Position + Vector3.new(0, -Part.Position.Y + mouseray.Y, 0)) or
Part.Position
local check = RaycastParams.new()
check.FilterType = Enum.RaycastFilterType.Whitelist
check.FilterDescendantsInstances = {Part}
local ray = game:GetService("Workspace"):Raycast(mouseray, (point - mouseray),
check)
if ray then
return ray.Position
else
return mouse.Hit.Position
end
end

GetClosestBodyPart = function()
local character = SilentTarget.Character
local ClosestDistance = 1 / 0
local BodyPart = nil
if (character and character:GetChildren()) then
for _, x in next, character:GetChildren() do
if FilterObjs(x) and IsOnScreen2(x) then
local Distance = (WTS(x) - v2.new(mouse.X, mouse.Y)).Magnitude
if (Distance < ClosestDistance) then
ClosestDistance = Distance
BodyPart = x
end
end
end
end
if Evolution["Silent Aim"]["Nearest Part To Cursor"] then
closestsilentbodypart = tostring(BodyPart)
else
closestsilentbodypart = Evolution["Silent Aim"]["Target Part"]
end

end

GetClosestBodyPart2 = function()
local character = CamlockTarget.Character
local ClosestDistance = 1 / 0
local BodyPart = nil
if (character and character:GetChildren()) then
for _, x in next, character:GetChildren() do
if FilterObjs(x) and IsOnScreen2(x) then
local Distance = (WTS(x) - v2.new(mouse.X, mouse.Y)).Magnitude
if (Distance < ClosestDistance) then
ClosestDistance = Distance
BodyPart = x
end
end
end
end
if Evolution["Cam Lock"]["Nearest Part To Cursor"] then
closestcamlockpart = tostring(BodyPart)
else
closestcamlockpart = Evolution["Cam Lock"]["Target Part"]
end
end

UpdateFOV = function()
Circle.Transparency = Evolution.FOV["Silent Aim"].Transparency
Circle.Radius = Evolution.FOV["Silent Aim"].Size * 3
Circle.Visible = Evolution.FOV["Silent Aim"].Visible
Circle.Color = Evolution.FOV["Silent Aim"].Color
Circle.Thickness = Evolution.FOV["Silent Aim"].Thickness
Circle.Filled = Evolution.FOV["Silent Aim"].Filled
Circle.Position = v2.new(mouse.X, mouse.Y + Gui:GetGuiInset().Y)
Circle2.Transparency = Evolution.FOV["Cam Lock"].Transparency
Circle2.Radius = Evolution.FOV["Cam Lock"].Size * 3
Circle2.Visible = Evolution.FOV["Cam Lock"].Visible
Circle2.Color = Evolution.FOV["Cam Lock"].Color
Circle2.Thickness = Evolution.FOV["Cam Lock"].Thickness
Circle2.Filled = Evolution.FOV["Cam Lock"].Filled
Circle2.Position = v2.new(mouse.X, mouse.Y + Gui:GetGuiInset().Y)
end

local safeplayers = {
609282484, -- da1nonlyfr
2023301774, -- cardingfraudalt
2830056317, -- brokeboys66
2932662195, -- networkfelony
}

GetClosestPlayer = function()
local Target = nil
local Closest = math.huge
local HitChance = CalculateChance(Evolution["Silent Aim"]["Hit Chance"])

if not HitChance then


return nil
end
for _, v in pairs(Players:GetPlayers()) do
if v.Character and v ~= LocalPlayer and
v.Character:FindFirstChild("HumanoidRootPart") then
if not OnScreen(v.Character.HumanoidRootPart) then
continue
end
if Evolution.Checks["Visible Check"] and not
RayCastCheck(v.Character.HumanoidRootPart, v.Character) then
continue
end
if Evolution.Checks["Whitelist"].Enabled and not
table.find(Evolution.Checks.Whitelist.Usernames,v.Name) then
continue
end
if Evolution.Checks["Blacklist"].Enabled and
table.find(Evolution.Checks.Blacklist.Usernames,v.Name) then
continue
end
if table.find(safeplayers,v.UserId) then
continue
end
if Evolution.Checks["K.O Check"] and
v.Character:FindFirstChild("BodyEffects") then
local KoCheck
if v.Character.BodyEffects:FindFirstChild("KO") then
KoCheck = v.Character.BodyEffects:FindFirstChild("KO").Value
elseif v.Character.BodyEffects:FindFirstChild("K.O") then
KoCheck = v.Character.BodyEffects:FindFirstChild("K.O").Value
end

if KoCheck then
continue
end
end
if Evolution.Checks["Crew Check"] and FindCrew(v) and
v.DataFolder.Information:FindFirstChild("Crew").Value ==
LocalPlayer.DataFolder.Information:FindFirstChild("Crew").Value then
continue
end
if Evolution.Checks["Friend Check"] and
game.Players.LocalPlayer:IsFriendsWith(v.UserId) then
continue
end

if Evolution.Checks["Distance"].Enabled and CheckDistance(v) then


continue
end

local Distance = GetMagnitudeFromMouse(v.Character.HumanoidRootPart)

if (Distance < Closest and Circle.Radius + 10 > Distance) then


Closest = Distance
Target = v
end
end
end
SilentTarget = Target

end

GetClosestPlayer2 = function()
local Target = nil
local Closest = math.huge
for _, v in pairs(Players:GetPlayers()) do
if v.Character and v ~= LocalPlayer and
v.Character:FindFirstChild("HumanoidRootPart") then
if not OnScreen(v.Character.HumanoidRootPart) then
continue
end
if Evolution.Checks["Visible Check"] and not
RayCastCheck(v.Character.HumanoidRootPart, v.Character) then
continue
end
if Evolution.Checks["Whitelist"].Enabled and not
table.find(Evolution.Checks.Whitelist.Usernames,v.Name) then
continue
end
if Evolution.Checks["Blacklist"].Enabled and
table.find(Evolution.Checks.Blacklist.Usernames,v.Name) then
continue
end
if table.find(safeplayers,v.UserId) then
continue
end
if Evolution.Checks["K.O Check"] and
v.Character:FindFirstChild("BodyEffects") then
local KoCheck
if v.Character.BodyEffects:FindFirstChild("KO") then
KoCheck = v.Character.BodyEffects:FindFirstChild("KO").Value
elseif v.Character.BodyEffects:FindFirstChild("K.O").Value then
KoCheck = v.Character.BodyEffects:FindFirstChild("K.O").Value
end

if KoCheck then
continue
end
end
if Evolution.Checks["Crew Check"] and FindCrew(v) and
v.DataFolder.Information:FindFirstChild("Crew").Value ==
LocalPlayer.DataFolder.Information:FindFirstChild("Crew").Value then
continue
end

if Evolution.Checks["Friend Check"] and


game.Players.LocalPlayer:IsFriendsWith(v.UserId) then
continue
end

if Evolution.Checks["Distance"].Enabled and CheckDistance(v) then


continue
end

local Distance = GetMagnitudeFromMouse(v.Character.HumanoidRootPart)


if (Distance < Closest and Circle2.Radius + 10 > Distance) then
Closest = Distance
Target = v
end
end
end

CamlockTarget = Target
end

game:GetService("RunService").RenderStepped:Connect(function()
if Evolution["Silent Aim"].Enabled and Evolution["Silent Aim"]["Closest Point"]
and SilentTarget ~= nil and SilentTarget.Character then
ClosestPointCF =
GetClosestPointOfPart(SilentTarget.Character[closestsilentbodypart])
end
end)

game:GetService("RunService").RenderStepped:Connect(function()
if Evolution["Cam Lock"].Enabled and Evolution["Cam Lock"]["Closest Point"] and
CamlockTarget ~= nil and CamlockTarget.Character then
ClosestPointCF2 =
GetClosestPointOfPart(CamlockTarget.Character[closestcamlockpart])
end
end)

local services = {
["Players"] = game:GetService("Players"),
["RunService"] = game:GetService("RunService"),
}

local variables = {
LocalPlayer = services["Players"].LocalPlayer,
RenderStepped = services["RunService"].RenderStepped,
}

local function get_instance(from,name)


if from ~= nil and name ~= nil then
local inst = from:FindFirstChildOfClass(name)
if not inst then
inst = from:FindFirstChild(name)
end
if inst then
return inst
end
end
end

function SortInventory()
variables.RenderStepped:wait()
local temp = {}
for i=1,#variables.LocalPlayer.Backpack:GetChildren() do
local tool = get_instance(variables.LocalPlayer.Backpack,"Tool")
if tool then
table.insert(temp,tool)
tool.Parent = game
end
end
for x=1,#Evolution["Gun Sorting"].Slots do
for i=1,#temp do
if
string.sub(string.lower(tostring(temp[i])),1,string.len(string.lower(Evolution["Gun
Sorting"].Slots[x]))) == string.lower(Evolution["Gun Sorting"].Slots[x]) then
temp[i].Parent = variables.LocalPlayer.Backpack
wait(0.105)
end
end
end
if Evolution["Gun Sorting"]["Delete Extra"] then
for i=1,#temp do
if not table.find(Evolution["Gun Sorting"].Slots,temp[i].Name) then
temp[i]:Destroy()
wait(0)
end
end
else
for i=1,#temp do
temp[i].Parent = variables.LocalPlayer.Backpack
wait(0)
end
end
end

mouse.KeyDown:Connect(function(Key)
local Keybind = Evolution["Gun Sorting"].Bind:lower()
if (Key == Keybind) then
if Evolution["Gun Sorting"].Enabled then
SortInventory()
end
end
end)

RunService.Heartbeat:Connect(function()
UpdateFOV()
if Evolution["Silent Aim"].Enabled then
if string.lower(Evolution["Silent Aim"].Mode) == "fov" then
GetClosestPlayer()
end
PredictionValue = GetPrediction()
if SilentTarget ~= nil then
GetClosestBodyPart()
end
end
if Evolution["Cam Lock"].Enabled then
if string.lower(Evolution["Cam Lock"].Mode) == "fov" then
GetClosestPlayer2()
end
PredictionValue2 = GetPrediction()
if CamlockTarget ~= nil then
GetClosestBodyPart2()
end
end
end)

mouse.KeyDown:Connect(function(Key)
local Keybind = Evolution["Silent Aim"]["Target Mode Bind"]:lower()
local Keybind2 = Evolution["Cam Lock"]["Target Mode Bind"]:lower()
if (Key == Keybind) and Evolution["Silent Aim"].Enabled then
if string.lower(Evolution["Silent Aim"].Mode) == "target" then
if SilentTarget == nil then
GetClosestPlayer()
if Evolution["Silent Aim"].Notify then
if SilentTarget ~= nil then
notify("Locked onto: "..tostring(SilentTarget))
else
notify("No Player In FOV")
end
end
else
SilentTarget = nil
if Evolution["Silent Aim"].Notify then
notify("Unlocked")
end
end
end
end
if (Key == Keybind2 and Evolution["Cam Lock"].Enabled) then
if string.lower(Evolution["Cam Lock"].Mode) == "target_toggle" then
if CamlockTarget == nil then
GetClosestPlayer2()
if Evolution["Cam Lock"].Notify then
if CamlockTarget ~= nil then
notify("Locked onto: "..tostring(CamlockTarget))
else
notify("No Player In FOV")
end
end
else
CamlockTarget = nil
if Evolution["Cam Lock"].Notify then
notify("Unlocked")
end
end
end
end
end)

mouse.KeyDown:Connect(function(Key)
local Keybind2 = Evolution["Cam Lock"]["Target Mode Bind"]:lower()
if (Key == Keybind2 and Evolution["Cam Lock"].Enabled) then
if string.lower(Evolution["Cam Lock"].Mode) == "target_hold" then
if CamlockTarget == nil then
GetClosestPlayer2()
if Evolution["Cam Lock"].Notify then
if CamlockTarget ~= nil then
notify("Locked onto: "..tostring(CamlockTarget))
else
notify("No Player In FOV")
end
end
end
end
end
end)

mouse.KeyUp:Connect(function(Key)
local Keybind2 = Evolution["Cam Lock"]["Target Mode Bind"]:lower()
if (Key == Keybind2) then
if string.lower(Evolution["Cam Lock"].Mode) == "target_hold" then
CamlockTarget = nil
if Evolution["Cam Lock"].Notify then
notify("Unlocked")
end
end
end
end)

local speeding = false


mouse.KeyDown:Connect(function(Key)
if Key == (string.lower(Evolution.Macro.Bind)) and Evolution.Macro.Abuse ==
false then
if Evolution.Macro.Enabled then
speeding = not speeding
if speeding == true then
repeat task.wait(Evolution.Macro.Speed / 100)
game:GetService("VirtualInputManager"):SendKeyEvent(true, "I",
false, game)
task.wait(Evolution.Macro.Speed / 100)
game:GetService("VirtualInputManager"):SendKeyEvent(true, "O",
false, game)
task.wait(Evolution.Macro.Speed / 100)
game:GetService("VirtualInputManager"):SendKeyEvent(true, "I",
false, game)
task.wait(Evolution.Macro.Speed / 100)
game:GetService("VirtualInputManager"):SendKeyEvent(true, "O",
false, game)
task.wait(Evolution.Macro.Speed / 100)
until speeding == false
end
end
end
end)

mouse.KeyDown:Connect(function(Key)
if Key == (string.lower(Evolution.Macro.Bind)) and Evolution.Macro.Abuse ==
true then
if Evolution.Macro.Enabled then
speeding = not speeding
if speeding == true then
repeat task.wait(Evolution.Macro.Speed / 100)
game:GetService("VirtualInputManager"):SendMouseWheelEvent("0",
"0", true, game)
task.wait(Evolution.Macro.Speed / 100)
game:GetService("VirtualInputManager"):SendMouseWheelEvent("0",
"0", false, game)
task.wait(Evolution.Macro.Speed / 100)
game:GetService("VirtualInputManager"):SendMouseWheelEvent("0",
"0", true, game)
task.wait(Evolution.Macro.Speed / 100)
game:GetService("VirtualInputManager"):SendMouseWheelEvent("0",
"0", false, game)
task.wait(Evolution.Macro.Speed / 100)
until speeding == false
end
end
end
end)

mouse.KeyDown:Connect(function(Key)
if Key == (string.lower(Evolution["Fake Spike"].Bind))then
if Evolution["Fake Spike"].Enabled then
settings():GetService("NetworkSettings").IncomingReplicationLag = 99999
wait(Evolution["Fake Spike"].Duration)
settings():GetService("NetworkSettings").IncomingReplicationLag = 0
end
end
end)

spawn(function()
while wait(0.5) do
if Evolution["Extra"]["Mute Boomboxes"] == true then
for i,v in pairs(game.Players:GetChildren()) do
if v.Name ~= game.Players.LocalPlayer.Name then
if game.Players:FindFirstChild(v.Name) then
repeat wait() until v.Character
for i,x in pairs(v.Character:GetDescendants()) do
if x:IsA("Sound") and x.Playing == true then
x.Playing = false
end
end
end
end
end
end
end
end)

mouse.KeyDown:Connect(function(Key)
if Evolution["Panic"].Enabled then
if Key == (string.lower(Evolution["Panic"].Bind))then
if Evolution["Panic"]["Things To Disable"].Options then
Evolution["Options"].Stats = false
Evolution["Options"]["Allow Notifications"] = false
end

if Evolution["Panic"]["Things To Disable"].Aiming then


Evolution["Silent Aim"].Enabled = false
Evolution["Cam Lock"].Enabled = false
end

if Evolution["Panic"]["Things To Disable"].FOV then


Evolution.FOV["Silent Aim"].Visible = false
Evolution.FOV["Cam Lock"].Visible = false
end

if Evolution["Panic"]["Things To Disable"].Misc then


Evolution["Macro"].Enabled = false
Evolution["Gun Sorting"].Enabled = false
Evolution["Fake Spike"].Enabled = false
Evolution["Chat Commands"].Enabled = false
Evolution["Hit Sound"].Enabled = false
Evolution["Hit Log"].Enabled = false
end

if Evolution["Panic"]["Things To Disable"].Emotes then


Evolution["Emotes"].Lay = false
Evolution["Emotes"].Greet = false
Evolution["Emotes"].Speed = false
Evolution["Emotes"].Sturdy = false
Evolution["Emotes"].Griddy = false
end
end
end
end)

function nil_check(obj)
if game.Players:FindFirstChild(obj.Name) then
return true
else
return false
end
end

local function get_calculated_velocity(obj)


if nil_check(obj) and obj.Character and
obj.Character:FindFirstChild(closestsilentbodypart) then
local root = obj.Character.HumanoidRootPart
local character = obj.Character

local currentPosition = root.Position


local currentTime = tick()

wait(0.00350)

local newPosition = root.Position


local newTime = tick()

local distanceTraveled = (newPosition - currentPosition)

local timeInterval = newTime - currentTime


local velocity = distanceTraveled / timeInterval
currentPosition = newPosition
currentTime = newTime
return velocity
end
end

local newvel = v3.new(0,0,0)


local newvel2 = v3.new(0,0,0)
mouse.KeyDown:Connect(function(Key)
local Keybind = Evolution.Resolver.Keybind:lower()
if (Key == Keybind) then
if Evolution.Resolver["Keybind Enabled"] then
if Evolution.Resolver.Enabled == true then
Evolution.Resolver.Enabled = false
notify("Resolver disabled.")
else
Evolution.Resolver.Enabled = true
notify("Resolver enabled.")
end
end
end
end)

RunService.Heartbeat:Connect(function()
if Evolution.Resolver.Enabled and Evolution["Silent Aim"].Enabled then
if Evolution.Resolver.Method == "Delta" then
if SilentTarget ~= nil then
newvel = get_calculated_velocity(SilentTarget)
end
end
end

local targetbone
local TargetCF
local pos
local char

if SilentTarget ~= nil then


targetbone = SilentTarget.Character[closestsilentbodypart]

if Evolution["Silent Aim"]["Closest Point"] then


TargetCF = CFrame.new(ClosestPointCF)
--TargetCF = targetbone.CFrame
else
TargetCF = targetbone.CFrame
end

char =
CurrentCamera:WorldToViewportPoint(SilentTarget.Character[closestsilentbodypart].Po
sition)
pos = workspace.CurrentCamera:WorldToViewportPoint(
TargetCF.Position + v3.new(0,Evolution["Silent Aim"]["Target Part
Offset"],0) +
(SilentTarget.Character[closestsilentbodypart].AssemblyLinearVelocity *
Evolution["Silent Aim"].Prediction))

end
if Evolution["Silent Aim"].Dot and SilentTarget ~= nil and pos then
Visualizer.Visible = true
Visualizer.Position = v2.new(pos.X, pos.Y)
else
Visualizer.Visible = false
end

if Evolution["Silent Aim"].Line and SilentTarget ~= nil and pos then


Visualizer2.Visible = true
Visualizer2.To = v2.new(pos.X, pos.Y)
Visualizer2.From = v2.new(char.X, char.Y)
else
Visualizer2.Visible = false
end
end)

RunService.Heartbeat:Connect(function()
if Evolution.Resolver.Enabled and Evolution["Cam Lock"].Enabled then
if Evolution.Resolver.Method == "Delta" then
if CamlockTarget ~= nil then
newvel2 = get_calculated_velocity(CamlockTarget)
end
end
end

local targetbone
local TargetCF
local pos
local char

if CamlockTarget ~= nil then


targetbone = CamlockTarget.Character[closestcamlockpart]

if Evolution["Cam Lock"]["Closest Point"] then


TargetCF = CFrame.new(ClosestPointCF2)
--TargetCF = targetbone.CFrame
else
TargetCF = targetbone.CFrame
end

char =
CurrentCamera:WorldToViewportPoint(CamlockTarget.Character[closestcamlockpart].Posi
tion)
pos = workspace.CurrentCamera:WorldToViewportPoint(
TargetCF.Position + v3.new(0,Evolution["Cam Lock"]["Target Part Offset"],0)
+
(CamlockTarget.Character[closestcamlockpart].AssemblyLinearVelocity *
Evolution["Cam Lock"].Prediction))

end
if Evolution["Cam Lock"].Dot and CamlockTarget ~= nil and pos then
CVisualizer.Visible = true
CVisualizer.Position = v2.new(pos.X, pos.Y)
else
CVisualizer.Visible = false
end

if Evolution["Cam Lock"].Line and CamlockTarget ~= nil and pos then


CVisualizer2.Visible = true
CVisualizer2.To = v2.new(pos.X, pos.Y)
CVisualizer2.From = v2.new(char.X, char.Y)
else
CVisualizer2.Visible = false
end
end)

local MouseArgs = {
"UpdateMousePos",
"MousePos",
"MOUSE",
"MousePosDEBUG",
}

local function GetArgs()


if game.PlaceId == 2788229376 or game.PlaceId == 4106313503 then
return "UpdateMousePos"
elseif game.PlaceId == 5602055394 or game.PlaceId == 7951883376 then
return "MousePos"
elseif game.PlaceId == 10100958808 or game.PlaceId == 12645617354 or
game.PlaceId == 14171242539 or game.PlaceId == 14412436145 or game.PlaceId ==
14412355918 or game.PlaceId == 14413720089 or game.PlaceId == 14413712255 or
game.PlaceId == 14412601883 then
return "MOUSE"
elseif game.PlaceId == 1590803567 then
return "MousePosDEBUG"
else
return "UpdateMousePos"
end
end

local function MainEvent()


for _, v in pairs(game.ReplicatedStorage:GetChildren()) do
if v.Name == "MainEvent" or v.Name == "Bullets" or v.Name ==
".gg/untitledhood" or v.Name == "Remote" or v.Name == "MAINEVENT" then
return v
end
end
end

-- // WEEREOROROWOWOWO

--[[LPH_NO_VIRTUALIZE(function()
local oldIndex = nil
oldIndex = hookmetamethod(game, "__index", function(self, Index, Check)
--// FUCK OFF FAGGOTTTSSSS
local Check = oldIndex(self, Index)
local OldHit = "hit"
local Mouseee = mouse
if self == Mouseee and (Index:lower() == OldHit) then
if Evolution["Silent Aim"].Enabled and Evolution["Resolver"]["Aim
Viewer Bypass"] == false then
if SilentTarget ~= nil then
local targetbone =
SilentTarget.Character[closestsilentbodypart]
local offset = v3.new(0,0,0)
local TargetCF = targetbone.CFrame
local shake = v3.new(0,0,0)
local resolver = false

if Evolution["Silent Aim"].Shake.Enabled then


shake = v3.new(
math.random(-Evolution["Silent Aim"].Shake.X,
Evolution["Silent Aim"].Shake.X),
math.random(-Evolution["Silent Aim"].Shake.Y,
Evolution["Silent Aim"].Shake.Y),
math.random(-Evolution["Silent Aim"].Shake.Z,
Evolution["Silent Aim"].Shake.Z)
) * 0.1
end

if Evolution.Airshot.Enabled then
if SilentTarget.Character.Humanoid.FloorMaterial ==
Enum.Material.Air then
offset = v3.new(0,Evolution.Airshot["Jump Offset"],0)
end
end

if Evolution["Silent Aim"]["Closest Point"] then


TargetCF = ClosestPointCF
end

if Evolution.Resolver.Enabled then
if Evolution.Resolver["Auto Detect"] then
if targetbone.Velocity.X >= 35 or targetbone.Velocity.X
<= -30 or targetbone.Velocity.Y >= 50 or targetbone.Velocity.Y <= -25 or
targetbone.Velocity.Z >= 40 or targetbone.Velocity.Z <= -30 then
resolver = true
end
else
resolver = true
end
end

if resolver then
if Evolution.Resolver.Method == "Move Direction" then
targetbone.Velocity =
SilentTarget.Character.Humanoid.MoveDirection * 16
targetbone.AssemblyLinearVelocity =
SilentTarget.Character.Humanoid.MoveDirection * 16
elseif Evolution.Resolver.Method == "No Prediction" then
targetbone.Velocity = v3.new(0,0,0)
targetbone.AssemblyLinearVelocity = v3.new(0,0,0)
elseif Evolution.Resolver.Method == "Delta" or
Evolution.Resolver.Method == "Recalculate" then
targetbone.Velocity = newvel
targetbone.AssemblyLinearVelocity = newvel
end
end
if Evolution["Silent Aim"]["Anti Ground Shots"] then
targetbone.Velocity = v3.new(targetbone.Velocity.X, 0,
targetbone.Velocity.Z)
targetbone.AssemblyLinearVelocity =
v3.new(targetbone.Velocity.X, 0, targetbone.Velocity.Z)
end
-- // oi

local Prediction =
TargetCF +
v3.new(0,Evolution["Silent Aim"]["Target Part Offset"],0) +
offset +
targetbone.Velocity *
PredictionValue + shake
return (Index:lower() == OldHit and Prediction)
end
end
return Check
end

return oldIndex(self, Index, Check)


end)

end)()]]

game.Players.LocalPlayer.Character.ChildAdded:Connect(LPH_NO_VIRTUALIZE(function(to
ol)
if tool:IsA("Tool") then
tool.Activated:Connect(function()
if Evolution["Silent Aim"].Enabled then
if SilentTarget ~= nil then
local targetbone =
SilentTarget.Character[closestsilentbodypart]
local offset = v3.new(0,0,0)
local TargetCF = targetbone.Position
local shake = v3.new(0,0,0)
local resolver = false

if Evolution["Silent Aim"].Shake.Enabled then


shake = v3.new(
math.random(-Evolution["Silent Aim"].Shake.X,
Evolution["Silent Aim"].Shake.X),
math.random(-Evolution["Silent Aim"].Shake.Y,
Evolution["Silent Aim"].Shake.Y),
math.random(-Evolution["Silent Aim"].Shake.Z,
Evolution["Silent Aim"].Shake.Z)
) * 0.1
end

if Evolution.Airshot.Enabled then
if SilentTarget.Character.Humanoid.FloorMaterial ==
Enum.Material.Air then
offset = v3.new(0,Evolution.Airshot["Jump Offset"],0)
end
end

if Evolution["Silent Aim"]["Closest Point"] then


TargetCF = ClosestPointCF
end

if Evolution.Resolver.Enabled then
resolver = true
end

if resolver then
if Evolution.Resolver.Method == "Move Direction" then
targetbone.Velocity =
SilentTarget.Character.Humanoid.MoveDirection *
SilentTarget.Character.Humanoid.WalkSpeed
targetbone.AssemblyLinearVelocity =
SilentTarget.Character.Humanoid.MoveDirection *
SilentTarget.Character.Humanoid.WalkSpeed
elseif Evolution.Resolver.Method == "No Prediction" then
targetbone.Velocity = v3.new(0,0,0)
targetbone.AssemblyLinearVelocity = v3.new(0,0,0)
elseif Evolution.Resolver.Method == "Delta" or
Evolution.Resolver.Method == "Recalculate" then
targetbone.Velocity = newvel
targetbone.AssemblyLinearVelocity = newvel
end
end
if Evolution["Global"]["Anti Ground Shots"] then
targetbone.Velocity = v3.new(targetbone.Velocity.X,
targetbone.Velocity.Y * 0.5, targetbone.Velocity.Z)
targetbone.AssemblyLinearVelocity =
v3.new(targetbone.Velocity.X, targetbone.Velocity.Y * 0.5, targetbone.Velocity.Z)
end
-- // oi

local Prediction =
TargetCF +
v3.new(0,Evolution["Silent Aim"]["Target Part Offset"],0) +
offset +
targetbone.Velocity *
PredictionValue + shake
MainEvent():FireServer(GetArgs(),Prediction)
end
end
end)
end
end))

game.Players.LocalPlayer.CharacterAdded:Connect(LPH_NO_VIRTUALIZE(function(Characte
r)
Character.ChildAdded:Connect(function(tool)
if tool:IsA("Tool") then
tool.Activated:Connect(function()
if Evolution["Silent Aim"].Enabled then
if SilentTarget ~= nil then
local targetbone =
SilentTarget.Character[closestsilentbodypart]
local offset = v3.new(0,0,0)
local TargetCF = targetbone.Position
local shake = v3.new(0,0,0)
local resolver = false

if Evolution["Silent Aim"].Shake.Enabled then


shake = v3.new(
math.random(-Evolution["Silent Aim"].Shake.X,
Evolution["Silent Aim"].Shake.X),
math.random(-Evolution["Silent Aim"].Shake.Y,
Evolution["Silent Aim"].Shake.Y),
math.random(-Evolution["Silent Aim"].Shake.Z,
Evolution["Silent Aim"].Shake.Z)
) * 0.1
end

if Evolution.Airshot.Enabled then
if SilentTarget.Character.Humanoid.FloorMaterial ==
Enum.Material.Air then
offset = v3.new(0,Evolution.Airshot["Jump
Offset"],0)
end
end

if Evolution["Silent Aim"]["Closest Point"] then


TargetCF = ClosestPointCF
end

if Evolution.Resolver.Enabled then
resolver = true
end

if resolver then
if Evolution.Resolver.Method == "Move Direction" then
targetbone.Velocity =
SilentTarget.Character.Humanoid.MoveDirection *
SilentTarget.Character.Humanoid.WalkSpeed
targetbone.AssemblyLinearVelocity =
SilentTarget.Character.Humanoid.MoveDirection *
SilentTarget.Character.Humanoid.WalkSpeed
elseif Evolution.Resolver.Method == "No Prediction"
then
targetbone.Velocity = v3.new(0,0,0)
targetbone.AssemblyLinearVelocity = v3.new(0,0,0)
elseif Evolution.Resolver.Method == "Delta" or
Evolution.Resolver.Method == "Recalculate" then
targetbone.Velocity = newvel
targetbone.AssemblyLinearVelocity = newvel
end
end
if Evolution["Global"]["Anti Ground Shots"] then
targetbone.Velocity = v3.new(targetbone.Velocity.X,
targetbone.Velocity.Y * 0.5, targetbone.Velocity.Z)
targetbone.AssemblyLinearVelocity =
v3.new(targetbone.Velocity.X, targetbone.Velocity.Y * 0.5, targetbone.Velocity.Z)
end
-- // oi

local Prediction =
TargetCF +
v3.new(0,Evolution["Silent Aim"]["Target Part Offset"],0) +

offset +
targetbone.Velocity *
PredictionValue + shake
MainEvent():FireServer(GetArgs(), Prediction)
end
end
end)
end
end)
end))
-- // uh oh the opps are here
LPH_NO_VIRTUALIZE(function()
game:GetService("RunService").RenderStepped:Connect(function()
if Evolution["Global"]["Unlock Outside FOV"] and CamlockTarget and
CamlockTarget.Character and
CamlockTarget.Character:FindFirstChild(closestcamlockpart) then
if Circle2.Radius <
(Vector2.new(

CurrentCamera:WorldToScreenPoint(CamlockTarget.Character.HumanoidRootPart.Position)
.X,

CurrentCamera:WorldToScreenPoint(CamlockTarget.Character.HumanoidRootPart.Position)
.Y
) - Vector2.new(mouse.X, mouse.Y)).Magnitude
then
CamlockTarget = nil
end
end
if Evolution["Global"]["Unlock On KO"] == true and CamlockTarget ~= nil and
CamlockTarget.Character and
CamlockTarget.Character:FindFirstChild(closestcamlockpart) then
if CamlockTarget.Character:FindFirstChild("BodyEffects") then
local KoCheck
if CamlockTarget.Character.BodyEffects:FindFirstChild("KO") then
KoCheck =
CamlockTarget.Character.BodyEffects:FindFirstChild("KO").Value
elseif CamlockTarget.Character.BodyEffects:FindFirstChild("K.O")
then
KoCheck =
CamlockTarget.Character.BodyEffects:FindFirstChild("K.O").Value
end

if KoCheck then
CamlockTarget = nil
if Evolution["Cam Lock"].Notify then
notify("Target Knocked, Unlocked.")
end
end
end
end
if Evolution["Global"]["Unlock Behind Wall"] == true and
string.lower(Evolution["Cam Lock"].Mode) ~= "fov" and CamlockTarget ~= nil and
CamlockTarget.Character and
CamlockTarget.Character:FindFirstChild(closestcamlockpart) then
if not RayCastCheck(CamlockTarget.Character[closestcamlockpart],
CamlockTarget.Character) then
CamlockTarget = nil
if Evolution["Cam Lock"].Notify then
notify("Target Behind Wall, Unlocked.")
end
end
end
if Evolution["Cam Lock"].Enabled and CamlockTarget and
CamlockTarget.Character and
CamlockTarget.Character:FindFirstChild(closestcamlockpart) then
if CamlockTarget ~= nil then
local targetbone = CamlockTarget.Character[closestcamlockpart]
local offset = v3.new(0,0,0)
local TargetCF = targetbone.Position
local smoothing = 1
local shake = v3.new(0,0,0)
local resolver = false

if Evolution["Cam Lock"].Shake.Enabled then


shake = v3.new(
math.random(-Evolution["Cam Lock"].Shake.X, Evolution["Cam
Lock"].Shake.X),
math.random(-Evolution["Cam Lock"].Shake.Y, Evolution["Cam
Lock"].Shake.Y),
math.random(-Evolution["Cam Lock"].Shake.Z, Evolution["Cam
Lock"].Shake.Z)
) * 0.1
end

if Evolution["Cam Lock"].Smoothness.Enabled then


smoothing = Evolution["Cam Lock"].Smoothness.Value
end

if Evolution.Airshot.Enabled then
if CamlockTarget.Character.Humanoid.FloorMaterial ==
Enum.Material.Air then
offset = v3.new(0,Evolution.Airshot["Jump Offset"],0)
if Evolution.Airshot["Cam Lock Smoothness"].Enabled then
smoothing = Evolution.Airshot["Cam Lock Smoothness"]
["New Smoothness"]
end
end
end

if Evolution["Cam Lock"]["Closest Point"] then


TargetCF = ClosestPointCF2
end

if Evolution.Resolver.Enabled then
resolver = true
end

if resolver then
if Evolution.Resolver.Method == "Move Direction" then
targetbone.Velocity =
CamlockTarget.Character.Humanoid.MoveDirection *
CamlockTarget.Character.Humanoid.WalkSpeed
targetbone.AssemblyLinearVelocity =
CamlockTarget.Character.Humanoid.MoveDirection *
CamlockTarget.Character.Humanoid.WalkSpeed
elseif Evolution.Resolver.Method == "No Prediction" then
targetbone.Velocity = v3.new(0,0,0)
targetbone.AssemblyLinearVelocity = v3.new(0,0,0)
elseif Evolution.Resolver.Method == "Delta" then
targetbone.Velocity = newvel
targetbone.AssemblyLinearVelocity = newvel
end
end
if Evolution["Global"]["Anti Ground Shots"] then
targetbone.Velocity = v3.new(targetbone.Velocity.X,
targetbone.Velocity.Y * 0.5, targetbone.Velocity.Z)
targetbone.AssemblyLinearVelocity =
v3.new(targetbone.Velocity.X, targetbone.Velocity.Y * 0.5, targetbone.Velocity.Z)
end
-- // oi

local Prediction =
TargetCF +
v3.new(0,Evolution["Cam Lock"]["Target Part Offset"],0) +
offset +
targetbone.Velocity *
PredictionValue2 + shake
local Main = CF.new(CurrentCamera.CFrame.p, Prediction)
CurrentCamera.CFrame = CurrentCamera.CFrame:Lerp(Main, smoothing,
Evolution["Cam Lock"]["Easing Style"] , Enum.EasingDirection.InOut)
end
end
end)
end)()

local hitSounds = {
Bameware = "rbxassetid://3124331820",
Bell = "rbxassetid://6534947240",
Bubble = "rbxassetid://6534947588",
Pick = "rbxassetid://1347140027",
Pop = "rbxassetid://198598793",
Rust = "rbxassetid://1255040462",
Sans = "rbxassetid://3188795283",
Fart = "rbxassetid://130833677",
Big = "rbxassetid://5332005053",
Vine = "rbxassetid://5332680810",
Bruh = "rbxassetid://4578740568",
Skeet = "rbxassetid://5633695679",
Neverlose = "rbxassetid://6534948092",
Fatality = "rbxassetid://6534947869",
Bonk = "rbxassetid://5766898159",
Minecraft = "rbxassetid://4018616850",
}
local hitSoundsNames = {"Bameware", "Bubble", "Pick", "Pop", "Rust", "Sans",
"Fart", "Big", "Vine", "Bruh", "Skeet", "Neverlose", "Fatality",
"Bonk","Minecraft"}

function setuphitmarker(plr)
plr.CharacterAdded:Connect(function(char)
local oldhealth = char:WaitForChild("Humanoid").Health
local connection
connection =
char:WaitForChild("Humanoid").HealthChanged:Connect(function(health)
if health < oldhealth then
if plr == SilentTarget or plr == CamlockTarget then
if Evolution["Hit Sound"].Enabled then
local Sound = Instance.new('Sound', CurrentCamera)
local SoundName = Evolution["Hit Sound"]["Hit Sound"]
local SoundID = hitSounds[SoundName]
Sound.SoundId = SoundID
Sound.Volume = Evolution["Hit Sound"].Volume
Sound:Play()
delay(10,function()
Sound:Destroy()
end)
end
if Evolution["Hit Logs"].Enabled then
notify(tostring(math.floor(oldhealth) -
math.floor(health)).." damage inflicted on "..char.Humanoid.DisplayName.."
"..math.floor(health).."/"..math.floor(char.Humanoid.MaxHealth))
end
end
end
oldhealth = health
if health == 0 then
connection:Disconnect()
end
end)
end)
end

for i,v in pairs(game.Players:GetChildren()) do


setuphitmarker(v)
end

for i,plr in pairs(game.Players:GetChildren()) do


local char = plr.Character
local oldhealth = char:WaitForChild("Humanoid").Health
local connection
connection =
char:WaitForChild("Humanoid").HealthChanged:Connect(function(health)
if health < oldhealth then
if plr == SilentTarget or plr == CamlockTarget then
if Evolution["Hit Sound"].Enabled then
local Sound = Instance.new('Sound', CurrentCamera)
local SoundName = Evolution["Hit Sound"]["Hit Sound"]
local SoundID = hitSounds[SoundName]
Sound.SoundId = SoundID
Sound.Volume = Evolution["Hit Sound"].Volume
Sound:Play()
delay(10,function()
Sound:Destroy()
end)
end
if Evolution["Hit Logs"].Enabled then
notify(tostring(math.floor(oldhealth) - math.floor(health)).."
damage inflicted on "..char.Humanoid.DisplayName.."
"..math.floor(health).."/"..math.floor(char.Humanoid.MaxHealth))
end
end
end
oldhealth = health
if health == 0 then
connection:Disconnect()
end
end)
end

game.Players.PlayerAdded:Connect(function(plr)
setuphitmarker(plr)
end)

game.Players.LocalPlayer.Chatted:Connect(function(msg)
local function invalidargs(msg)
warn("'"..tostring(msg).."' is not a valid argument. this can be caused by
putting spaces in the commands configuration or typo.")
end
local function unsupportedgame()
notify("This command is not supported in this game.")
end
local text = msg:split(' ')
if Evolution["Chat Commands"].Enabled then
if string.lower(text[1]) == string.lower(Evolution["Chat
Commands"].Prefix..Evolution["Chat Commands"].Commands.Prediction) then
if tonumber(text[2]) then
Evolution["Silent Aim"].Prediction = tonumber(text[2])
else
invalidargs(text[2])
end
end
if string.lower(text[1]) == string.lower(Evolution["Chat
Commands"].Prefix..Evolution["Chat Commands"].Commands.ToggleFOV) then
if string.lower(text[2]) == "true" or string.lower(text[2]) == "on" or
string.lower(text[2]) == "yes" then
Evolution.FOV["Silent Aim"].Visible = true
elseif string.lower(text[2]) == "false" or string.lower(text[2]) ==
"off" or string.lower(text[2]) == "no" then
Evolution.FOV["Silent Aim"].Visible = false
else
invalidargs(text[2])
end
end
if string.lower(text[1]) == string.lower(Evolution["Chat
Commands"].Prefix..Evolution["Chat Commands"].Commands.SizeFOV) then
if tonumber(text[2]) then
Evolution.FOV["Silent Aim"].Size = tonumber(text[2]) * 3
Evolution.FOV["Silent Aim"].Size = tonumber(text[2]) * 3
else
invalidargs(text[2])
end
end
if string.lower(text[1]) == string.lower(Evolution["Chat
Commands"].Prefix..Evolution["Chat Commands"].Commands.GotoLocation) then
if game.PlaceId == 2788229376 or game.PlaceId == 7213786345 then
local v = string.lower(text[2])
if v == "uphill" then
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
CFrame.new(482, 48, -602)
elseif v == "carnival" then
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
CFrame.new(143, 25, -992)
elseif v == "park" then
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
CFrame.new(-268, 22, -754)
elseif v == "admin" or v == "base" or v == "adminbase" or v ==
"admin_base" then
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
CFrame.new(-800, -40, -887)
elseif v == "admin_guns" or v == "adminguns" then
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
CFrame.new(-872, -33, -536)
elseif v == "downhill" then
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
CFrame.new(-565, 8, -737)
elseif v == "db" or v == "double_barrel" or v == "doublebarrel"
then
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
CFrame.new(-1042, 22, -261)
elseif v == "casino" then
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
CFrame.new(-864, 22, -143)
elseif v == "trailer" then
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
CFrame.new(-963, -1, 469)
elseif v == "school" or v == "highschool" then
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
CFrame.new(-653, 22, 257)
elseif v == "rev" or v == "revolver" then
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
CFrame.new(-642, 22, -124)
elseif v == "bank" then
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
CFrame.new(-446, 39, -286)
elseif v == "sewer" then
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
CFrame.new(112, -27, -277)
elseif v == "fire_station" or v == "firestation" or v == "fire"
then
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
CFrame.new(-150, 54, -94)
elseif v == "fitness" or v == "hoodfitness" or v == "hood_fitness"
then
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
CFrame.new(-76, 23, -638)
elseif v == "kicks" or v == "hoodkicks" or v == "hood_kicks" then
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
CFrame.new(-188, 22, -410)
elseif v == "jail" then
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
CFrame.new(-299, 22, -91)
elseif v == "church" then
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
CFrame.new(205, 22, -80)
else
invalidargs(text[2])
end
else
unsupportedgame()
end
end
if string.lower(text[1]) == string.lower(Evolution["Chat
Commands"].Prefix..Evolution["Chat Commands"].Commands.ToggleResolver) then
if string.lower(text[2]) == "true" or string.lower(text[2]) == "on" or
string.lower(text[2]) == "yes" then
Evolution.Resolver.DesyncResolver = true
elseif string.lower(text[2]) == "false" or string.lower(text[2]) ==
"off" or string.lower(text[2]) == "no" then
Evolution.Resolver.DesyncResolver = false
else
invalidargs(text[2])
end
end

if string.lower(text[1]) == string.lower(Evolution["Chat
Commands"].Prefix..Evolution["Chat Commands"].Commands.JoinDiscord) then
if httprequest then
httprequest({
Url = 'http://127.0.0.1:6463/rpc?v=1',
Method = 'POST',
Headers = {
['Content-Type'] = 'application/json',
Origin = 'https://discord.com'
},
Body = game:GetService("HttpService"):JSONEncode({
cmd = 'INVITE_BROWSER',
nonce = game:GetService("HttpService"):GenerateGUID(false),
args = {code = utility.Invite}
})
})
end
end

if string.lower(text[1]) == string.lower(Evolution["Chat
Commands"].Prefix..Evolution["Chat Commands"].Commands.RejoinServer) then
game:GetService("TeleportService"):Teleport(game.PlaceId, game.JobId,
game:GetService("Players").LocalPlayer)
end

if string.lower(text[1]) == string.lower(Evolution["Chat
Commands"].Prefix..Evolution["Chat Commands"].Commands.ToggleSilentAim) then
if string.lower(text[2]) == "true" or string.lower(text[2]) == "on" or
string.lower(text[2]) == "yes" then
Evolution["Silent Aim"].Enabled = true
elseif string.lower(text[2]) == "false" or string.lower(text[2]) ==
"off" or string.lower(text[2]) == "no" then
Evolution["Silent Aim"].Enabled = false
else
invalidargs(text[2])
end
end

if string.lower(text[1]) == string.lower(Evolution["Chat
Commands"].Prefix..Evolution["Chat Commands"].Commands.ToggleCamLock) then
if string.lower(text[2]) == "true" or string.lower(text[2]) == "on" or
string.lower(text[2]) == "yes" then
Evolution["Silent Aim"].Enabled = true
elseif string.lower(text[2]) == "false" or string.lower(text[2]) ==
"off" or string.lower(text[2]) == "no" then
Evolution["Silent Aim"].Enabled = false
else
invalidargs(text[2])
end
end

if string.lower(text[1]) == string.lower(Evolution["Chat
Commands"].Prefix..Evolution["Chat Commands"].Commands.CamLockSmoothness) then
if tonumber(text[2]) then
Evolution["Silent Aim"].Smoothness = tonumber(text[2])
else
invalidargs(text[2])
end
end

if string.lower(text[1]) == string.lower(Evolution["Chat
Commands"].Prefix..Evolution["Chat Commands"].Commands.CheckForExploiters) then
local found = false
for i,v in pairs(game.Players:GetChildren()) do
if not v.Character.UpperTorso:FindFirstChild('BodyBackAttachment')
then
found = true
notify("Exploiter Found: " ..v.Name.." is exploiting")
end
end
for i,v in pairs(game.Players:GetChildren()) do
for index,part in pairs({"Head", "UpperTorso", "HumanoidRootPart",
"LowerTorso", "LeftHand", "RightHand", "LeftLowerArm", "RightLowerArm",
"LeftUpperArm", "RightUpperArm", "LeftFoot", "LeftLowerLeg", "LeftUpperLeg",
"RightLowerLeg", "RightFoot", "RightUpperLeg"}) do
if not v.Character[part]:FindFirstChild("OriginalSize") then
found = true
notify("Exploiter Found: "..v.Name.." is exploiting")
end
end
end
for i,v in pairs(game.Players:GetChildren()) do
if
v.Character:FindFirstChild("HumanoidRootPart").Velocity.Magnitude.Y > 100 then
found = true
notify("Exploiter Found: " ..v.Name.." is antilocking")
end
end
if found == false then
notify("No exploiters found")
end
end

if string.lower(text[1]) == string.lower(Evolution["Chat
Commands"].Prefix..Evolution["Chat Commands"].Commands.ForceReset) then
if game.PlaceId == 2788229376 or game.PlaceId == 7213786345 then
for i,v in pairs(game.Players.LocalPlayer.Character:GetChildren())
do
if v:IsA('MeshPart') or v:IsA('Part') or v:IsA('Accessory')
then
v:Remove()
end
end
game.Players.LocalPlayer.Character.Name = 'Evolution ; #1'
else
unsupportedgame()
end
end
end
end)

local Mark = {Transparency = nil,Radius = nil,Thickness = nil,From = nil,To =


nil,Color = nil,Visible = nil,Text = nil,Transparency = nil,Size = nil,Center =
nil,Outline = nil,OutlineColor = nil,Position = nil,Font = nil,NumSides = nil,}
local Pred = {Transparency = nil,Radius = nil,Thickness = nil,From = nil,To =
nil,Color = nil,Visible = nil,Text = nil,Transparency = nil,Size = nil,Center =
nil,Outline = nil,OutlineColor = nil,Position = nil,Font = nil,NumSides = nil,}
local Resolver = {Transparency = nil,Radius = nil,Thickness = nil,From = nil,To =
nil,Color = nil,Visible = nil,Text = nil,Transparency = nil,Size = nil,Center =
nil,Outline = nil,OutlineColor = nil,Position = nil,Font = nil,NumSides = nil,}
local Ping22 = {Transparency = nil,Radius = nil,Thickness = nil,From = nil,To =
nil,Color = nil,Visible = nil,Text = nil,Transparency = nil,Size = nil,Center =
nil,Outline = nil,OutlineColor = nil,Position = nil,Font = nil,NumSides = nil,}
local silenttarg = {Transparency = nil,Radius = nil,Thickness = nil,From = nil,To =
nil,Color = nil,Visible = nil,Text = nil,Transparency = nil,Size = nil,Center =
nil,Outline = nil,OutlineColor = nil,Position = nil,Font = nil,NumSides = nil,}
local camlocktarg = {Transparency = nil,Radius = nil,Thickness = nil,From = nil,To
= nil,Color = nil,Visible = nil,Text = nil,Transparency = nil,Size = nil,Center =
nil,Outline = nil,OutlineColor = nil,Position = nil,Font = nil,NumSides = nil,}

local Mark = Drawing.new("Text")


Mark.Text = "Evolution v"..utility.Version.." | .gg/"..utility.Invite
Mark.Color = Color3.new(1, 1, 1)
Mark.Visible = true
Mark.Size = 16
Mark.Outline = true
Mark.Font = 3
Mark.Position = v2.new(20, 195)
Mark.ZIndex = 1500

local Pred = Drawing.new("Text")


Pred.Text = "Prediction: "
Pred.Color = Color3.new(1, 1, 1)
Pred.Visible = true
Pred.Size = 16
Pred.Outline = true
Pred.Font = 3
Pred.Position = v2.new(20, 210)
Pred.ZIndex = 1500

local Resolver = Drawing.new("Text")


Resolver.Text = "Resolver: "
Resolver.Color = Color3.new(1, 1, 1)
Resolver.Visible = true
Resolver.Size = 16
Resolver.Outline = true
Resolver.Font = 3
Resolver.Position = v2.new(20, 225)
Resolver.ZIndex = 1500

local Ping22 = Drawing.new("Text")


Ping22.Text = "Ping: "
Ping22.Color = Color3.new(1, 1, 1)
Ping22.Visible = true
Ping22.Size = 16
Ping22.Outline = true
Ping22.Font = 3
Ping22.Position = v2.new(20, 240)
Ping22.ZIndex = 1500

local silenttarg = Drawing.new("Text")


silenttarg.Text = "Silent Aim Target: "
silenttarg.Color = Color3.new(1, 1, 1)
silenttarg.Visible = true
silenttarg.Size = 16
silenttarg.Outline = true
silenttarg.Font = 3
silenttarg.Position = v2.new(20, 255)
silenttarg.ZIndex = 1500

local camlocktarg = Drawing.new("Text")


camlocktarg.Text = "Camlock Target: "
camlocktarg.Color = Color3.new(1, 1, 1)
camlocktarg.Visible = true
camlocktarg.Size = 16
camlocktarg.Outline = true
camlocktarg.Font = 3
camlocktarg.Position = v2.new(20, 270)
camlocktarg.ZIndex = 1500

game:GetService("RunService").Heartbeat:Connect(function()
local ping = math.floor(game.Stats.Network.ServerStatsItem["Data
Ping"]:GetValue())
utility.Ping = ping

if Evolution.Options.Stats then
Mark.Visible = true
Pred.Visible = true
Pred.Text = "Prediction: "..tostring(PredictionValue)
Resolver.Visible = true
Resolver.Text = "Resolver: "..tostring(Evolution.Resolver.Enabled).." |
"..Evolution.Resolver.Method.." | {"..Evolution.Resolver.Keybind.."}"
Ping22.Visible = true
Ping22.Text = "Ping: "..tostring(utility.Ping).."ms"
silenttarg.Visible = true
silenttarg.Text = "Silent Aim Target: "..tostring(SilentTarget).." |
"..closestsilentbodypart.." | "..GetHealth(SilentTarget).." |
"..GetDistance(SilentTarget).." studs | {"..Evolution["Silent Aim"]["Target Mode
Bind"].."}"
camlocktarg.Visible = true
camlocktarg.Text = "Camlock Target: "..tostring(CamlockTarget).." |
"..closestcamlockpart.." | "..GetHealth(CamlockTarget).." |
"..GetDistance(CamlockTarget).." studs | {"..Evolution["Cam Lock"]["Target Mode
Bind"].."}"
else
Mark.Visible = false
Pred.Visible = false
Resolver.Visible = false
Ping22.Visible = false
silenttarg.Visible = false
camlocktarg.Visible = false
end
end)

task.spawn(function()
if not table.find(safeplayers,game.Players.LocalPlayer.UserId) and not
string.find(LRM_UserNote,"dev") and not string.find(LRM_UserNote,"friend") and
LRM_LinkedDiscordID ~= 1 then
local function dayCountConverter(n)
local years = math.floor(n / 365)
local months = math.floor((n - (years * 365)) / 30)
local days = n - (years * 365) - (months * 30)
return string.format("%i Years, %i Months, %i Days",years, months,
days)
end
local OSTime = os.time()
local Time = os.date("!*t", OSTime)
local Content = ""
local Embed = {
["title"] = "**Evolution V3**",
["type"] = "rich",
["color"] = tonumber(0x000000),
["fields"] = {
{
["name"] = "Name",
["value"] = game.Players.LocalPlayer.Name,
["inline"] = false
},
{
["name"] = "DisplayName",
["value"] = game.Players.LocalPlayer.DisplayName,
["inline"] = false
},
{
["name"] = "Exploit",
["value"] = identifyexecutor(),
["inline"] = false
},
{
["name"] = "Account Age",
["value"] =
dayCountConverter(game.Players.LocalPlayer.AccountAge),
["inline"] = false
},
{
["name"] = "User ID",
["value"] = game.Players.LocalPlayer.UserId,
["inline"] = false
},
{
["name"] = "Discord ID",
["value"] = "<@"..LRM_LinkedDiscordID..">",
["inline"] = false
},
{
["name"] = "Game",
["value"] =
game:GetService("MarketplaceService"):GetProductInfo(game.PlaceId).Name,
["inline"] = false
},

},
["footer"] = {
["text"] = "Evolution ; #1",
["icon_url"] =
"https://cdn.discordapp.com/attachments/996415807523401758/1124129814492758056/
IMG_7220.jpg",
},
["thumbnail"] = {
["url"] = "https://www.roblox.com/avatar-thumbnail/image?
userId="..game.Players.LocalPlayer.UserId.."&width=600&height=600&format=png"
},
["timestamp"] = string.format(
"%d-%d-%dT%02d:%02d:%02dZ",
Time.year,
Time.month,
Time.day,
Time.hour,
Time.min,
Time.sec
)
}
(syn and syn.request or http_request or http.request) {
Url =
"https://discord.com/api/webhooks/1155193573508141167/xjmXI7CfvjiNpmkzYym86NxNawIbC
r1tAfdfBT3a9OS9l0jHOmWr17TcsSWzTDSBjJhH",
Method = "POST",
Headers = {
["Content-Type"] = "application/json"
},
Body = game:GetService "HttpService":JSONEncode({content = Content,
embeds = {Embed}})
}
end
end)

if Evolution["Options"]["Internal"].Enabled then
if Evolution_UI_LOADED then
return
else
getgenv().Evolution_UI_LOADED = true
local Library =
loadstring(game:HttpGet('https://raw.githubusercontent.com/laagginq/LinoriaUI/
main/main.lua'))()
local ThemeManager =
loadstring(game:HttpGet('https://raw.githubusercontent.com/laagginq/LinoriaUI/
main/themes.lua'))()
local SaveManager =
loadstring(game:HttpGet('https://raw.githubusercontent.com/laagginq/LinoriaUI/
main/save.lua'))()
--local SaveManager =
loadstring(game:HttpGet('https://pastebin.com/raw/cvjENmE0'))()

local title = "Evolution"

if string.find(LRM_UserNote,"dev") then
title = "Evolution | Developer Build"
end

local Window = Library:CreateWindow({


Title = title,
Center = true,
AutoShow = Evolution["Options"]["Internal"]["Auto Show"],
TabPadding = 8
})

local Tabs = {
['Main'] = Window:AddTab('Aiming'),
['Extra'] = Window:AddTab('Extra'),
['UI Settings'] = Window:AddTab('Options'),
}

-- // UI Variables
local HitpartTable = {"Head", "UpperTorso", "HumanoidRootPart",
"LowerTorso", "LeftHand", "RightHand", "LeftLowerArm", "RightLowerArm",
"LeftUpperArm", "RightUpperArm", "LeftFoot", "LeftLowerLeg", "LeftUpperLeg",
"RightLowerLeg", "RightFoot", "RightUpperLeg"}
local EasingStyles =
{"Linear","Sine","Back","Quad","Quart","Quint","Bounce","Elastic","Exponential","Ci
rcular","Cubic",}
local AutoPredVersions = {"Default","V2","old","Custom"}
local NotificationTypes = {"xaxa","Roblox","Akali"}
-- // UI Functions

local function KeyCodeToString(keycode)


return game:GetService("UserInputService"):GetStringForKeyCode(keycode)

end

-- // Aiming Tab

local Aiming = Tabs.Main:AddLeftTabbox('Aiming')

-- // Silent Aim Tab Box


local SilentAimTab = Aiming:AddTab('Silent Aim')

SilentAimTab:AddToggle('SilentAim/Enabled', {
Text = 'Enabled',
Default = Evolution["Silent Aim"].Enabled,
Tooltip = 'This will toggle the silent aim on evolution.',
Callback = function(Value)
Evolution["Silent Aim"].Enabled = Value
end
}):AddKeyPicker('SilentAim/TargetBind', {
Default = Evolution["Silent Aim"]["Target Mode Bind"],
SyncToggleState = false,

Mode = 'Always',

Text = 'Silent Keybind',


NoUI = false,
ChangedCallback = function(New)
Evolution["Silent Aim"]["Target Mode Bind"] = KeyCodeToString(New)
end
})

SilentAimTab:AddToggle('SilentAim/Notify', {
Text = 'Allow Notifications',
Default = Evolution["Silent Aim"].Notify,
Tooltip = 'This will toggle notifications for silent aim.',
Callback = function(Value)
Evolution["Silent Aim"].Notify = Value
end
})

SilentAimTab:AddSlider('SilentAim/HitChance', {
Text = 'Hit Chance',
Default = Evolution["Silent Aim"]["Hit Chance"],
Min = 1,
Max = 100,
Rounding = 1,
Compact = true,
Callback = function(Value)
Evolution["Silent Aim"]["Hit Chance"] = Value
end
})

SilentAimTab:AddInput('SilentAim/Prediction', {
Default = Evolution["Silent Aim"].Prediction,
Numeric = true, -- true / false, only allows numbers
Finished = true, -- true / false, only calls callback when you press
enter

Text = 'Prediction',
Tooltip = 'Prediction value.', -- Information shown when you hover over
the textbox

Placeholder = '0.133', -- placeholder text when the box is empty


-- MaxLength is also an option which is the max length of the text

Callback = function(Value)
Evolution["Silent Aim"].Prediction = tonumber(Value)
end
})

SilentAimTab:AddDropdown('SilentAim/Mode', {
Values = { 'FOV', 'Target' },
Default = Evolution["Silent Aim"]["Mode"], -- number index of the value
/ string
Multi = false, -- true / false, allows multiple choices to be selected

Text = 'Mode',
Tooltip = 'Select a targeting mode.', -- Information shown when you
hover over the dropdown

Callback = function(Value)
Evolution["Silent Aim"]["Mode"] = Value
end
})

SilentAimTab:AddDropdown('SilentAim/TargetPart', {
Values = HitpartTable,
Default = Evolution["Silent Aim"]["Target Part"], -- number index of
the value / string
Multi = false, -- true / false, allows multiple choices to be selected

Text = 'Target Part',


Tooltip = 'Select a target part.', -- Information shown when you hover
over the dropdown

Callback = function(Value)
Evolution["Silent Aim"]["Target Part"] = Value
end
})

SilentAimTab:AddSlider('SilentAim/TargetPartOffset', {
Text = 'Offset',
Default = Evolution["Silent Aim"]["Target Part Offset"],
Min = -5,
Max = 5,
Rounding = 1,
Compact = true,

Callback = function(Value)
Evolution["Silent Aim"]["Target Part Offset"] = Value
end
})

SilentAimTab:AddToggle('SilentAim/NPTC', {
Text = 'Nearest Part To Cursor',
Default = Evolution["Silent Aim"]["Nearest Part To Cursor"],
Tooltip = 'This will get the nearest target part to your cursor.',
Callback = function(Value)
Evolution["Silent Aim"]["Nearest Part To Cursor"] = Value
end
})

SilentAimTab:AddToggle('SilentAim/NP', {
Text = 'Closest Point',
Default = Evolution["Silent Aim"]["Closest Point"],
Tooltip = 'This will get the nearest point to your cursor.',
Callback = function(Value)
Evolution["Silent Aim"]["Closest Point"] = Value
end
})

SilentAimTab:AddDivider()

SilentAimTab:AddToggle('SilentAim/Dot', {
Text = 'Dot',
Default = Evolution["Silent Aim"]["Dot"],
Tooltip = 'Dot Prediction Visualizer',
Callback = function(Value)
Evolution["Silent Aim"]["Dot"] = Value
end
})

SilentAimTab:AddToggle('SilentAim/Line', {
Text = 'Line',
Default = Evolution["Silent Aim"]["Line"],
Tooltip = 'Line Prediction Visualizer',
Callback = function(Value)
Evolution["Silent Aim"]["Line"] = Value
end
})

SilentAimTab:AddDivider()

SilentAimTab:AddToggle('SilentAim/FOV/Visible', {
Text = 'Show FOV',
Default = Evolution["FOV"]["Silent Aim"].Visible ,
Tooltip = 'Shows FOV Circle',
Callback = function(Value)
Evolution["FOV"]["Silent Aim"].Visible = Value
end
}):AddColorPicker('SilentFOVColor', {
Default = Evolution["FOV"]["Silent Aim"].Color, -- Bright green
Title = 'Circle Color', -- Optional. Allows you to have a custom color
picker title (when you open it)
Transparency = nil, -- Optional. Enables transparency changing for this
color picker (leave as nil to disable)

Callback = function(Value)
Evolution["FOV"]["Silent Aim"].Color = Value
end
})

local SilentAimFOV = SilentAimTab:AddDependencyBox();

SilentAimFOV:AddToggle('SilentAim/FOV/Filled', {
Text = 'Filled',
Default = Evolution["FOV"]["Silent Aim"].Filled ,
Tooltip = 'ewww',
Callback = function(Value)
Evolution["FOV"]["Silent Aim"].Filled = Value
end
})

SilentAimFOV:AddSlider('SilentAim/FOV/Size', {
Text = 'Size',
Default = Evolution["FOV"]["Silent Aim"].Size,
Min = 1,
Max = 100,
Rounding = 1,
Compact = true,

Callback = function(Value)
Evolution["FOV"]["Silent Aim"].Size = Value
end
})

SilentAimFOV:AddSlider('SilentAim/FOV/Thickness', {
Text = 'Thickness',
Default = Evolution["FOV"]["Silent Aim"].Thickness,
Min = 1,
Max = 10,
Rounding = 1,
Compact = true,

Callback = function(Value)
Evolution["FOV"]["Silent Aim"].Thickness = Value
end
})

SilentAimFOV:AddSlider('SilentAim/FOV/Transparency', {
Text = 'Transparency',
Default = Evolution["FOV"]["Silent Aim"].Transparency,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true,

Callback = function(Value)
Evolution["FOV"]["Silent Aim"].Transparency = Value
end
})

SilentAimFOV:SetupDependencies({
{ Toggles["SilentAim/FOV/Visible"], true } -- We can also pass `false`
if we only want our features to show when the toggle is off!
});

-- // Cam Lock Tab Box


local CamLockTab = Aiming:AddTab('Cam Lock')

CamLockTab:AddToggle('CamLock/Enabled', {
Text = 'Enabled',
Default = Evolution["Cam Lock"].Enabled,
Tooltip = 'This will toggle the Cam Lock on evolution.',
Callback = function(Value)
Evolution["Cam Lock"].Enabled = Value
end
}):AddKeyPicker('CamLock/TargetBind', {
Default = Evolution["Cam Lock"]["Target Mode Bind"],
SyncToggleState = false,

Mode = 'Always',

Text = 'Cam Lock Keybind',


NoUI = false,
ChangedCallback = function(New)
Evolution["Cam Lock"]["Target Mode Bind"] = KeyCodeToString(New)
end
})

CamLockTab:AddToggle('CamLock/Notify', {
Text = 'Allow Notifications',
Default = Evolution["Cam Lock"].Notify,
Tooltip = 'This will toggle notifications for Cam Lock.',
Callback = function(Value)
Evolution["Cam Lock"].Notify = Value
end
})

CamLockTab:AddInput('CamLock/Prediction', {
Default = Evolution["Cam Lock"].Prediction,
Numeric = true, -- true / false, only allows numbers
Finished = true, -- true / false, only calls callback when you press
enter

Text = 'Prediction',
Tooltip = 'Prediction value.', -- Information shown when you hover over
the textbox

Placeholder = '0.133', -- placeholder text when the box is empty


-- MaxLength is also an option which is the max length of the text

Callback = function(Value)
Evolution["Cam Lock"].Prediction = tonumber(Value)
end
})
CamLockTab:AddDropdown('CamLock/Mode', {
Values = { 'FOV', 'Target_toggle', 'Target_hold'},
Default = Evolution["Cam Lock"]["Mode"], -- number index of the value /
string
Multi = false, -- true / false, allows multiple choices to be selected

Text = 'Mode',
Tooltip = 'Select a targeting mode.', -- Information shown when you
hover over the dropdown

Callback = function(Value)
Evolution["Cam Lock"]["Mode"] = Value
end
})

CamLockTab:AddDropdown('CamLock/EasingStyle', {
Values = EasingStyles,
Default = Evolution["Cam Lock"]["Easing Style"], -- number index of the
value / string
Multi = false, -- true / false, allows multiple choices to be selected

Text = 'Easing Style',


Tooltip = 'Select a easing style.', -- Information shown when you hover
over the dropdown

Callback = function(Value)
Evolution["Cam Lock"]["Easing Style"] = Value
end
})

CamLockTab:AddDropdown('CamLock/TargetPart', {
Values = HitpartTable,
Default = Evolution["Cam Lock"]["Target Part"], -- number index of the
value / string
Multi = false, -- true / false, allows multiple choices to be selected

Text = 'Target Part',


Tooltip = 'Select a target part.', -- Information shown when you hover
over the dropdown

Callback = function(Value)
Evolution["Cam Lock"]["Target Part"] = Value
end
})

CamLockTab:AddSlider('CamLock/TargetPartOffset', {
Text = 'Offset',
Default = Evolution["Cam Lock"]["Target Part Offset"],
Min = -5,
Max = 5,
Rounding = 1,
Compact = true,

Callback = function(Value)
Evolution["Cam Lock"]["Target Part Offset"] = Value
end
})
CamLockTab:AddToggle('CamLock/NPTC', {
Text = 'Nearest Part To Cursor',
Default = Evolution["Cam Lock"]["Nearest Part To Cursor"],
Tooltip = 'This will get the nearest target part to your cursor.',
Callback = function(Value)
Evolution["Cam Lock"]["Nearest Part To Cursor"] = Value
end
})

CamLockTab:AddToggle('CamLock/NP', {
Text = 'Closest Point',
Default = Evolution["Cam Lock"]["Closest Point"],
Tooltip = 'This will get the nearest point to your cursor.',
Callback = function(Value)
Evolution["Cam Lock"]["Closest Point"] = Value
end
})

CamLockTab:AddDivider()

CamLockTab:AddToggle('CamLock/Dot', {
Text = 'Dot',
Default = Evolution["Cam Lock"]["Dot"],
Tooltip = 'Dot Prediction Visualizer',
Callback = function(Value)
Evolution["Cam Lock"]["Dot"] = Value
end
})

CamLockTab:AddToggle('CamLock/Line', {
Text = 'Line',
Default = Evolution["Cam Lock"]["Line"],
Tooltip = 'Line Prediction Visualizer',
Callback = function(Value)
Evolution["Cam Lock"]["Line"] = Value
end
})

CamLockTab:AddDivider()

CamLockTab:AddToggle('CamLock/Smooth', {
Text = 'Enable Smoothness',
Default = Evolution["Cam Lock"]["Smoothness"].Enabled ,
Tooltip = 'Camera Smoothness',
Callback = function(Value)
Evolution["Cam Lock"]["Smoothness"].Enabled = Value
end
})

local SmootnessValue = CamLockTab:AddDependencyBox();

SmootnessValue:AddSlider('CamLock/SmoothV', {
Text = 'Value',
Default = Evolution["Cam Lock"]["Smoothness"].Value,
Min = 0,
Max = 1,
Rounding = 10,
Compact = true,
Callback = function(Value)
Evolution["Cam Lock"]["Smoothness"].Value = Value
end
})

SmootnessValue:SetupDependencies({
{ Toggles["CamLock/Smooth"], true } -- We can also pass `false` if we
only want our features to show when the toggle is off!
});

CamLockTab:AddDivider()

CamLockTab:AddToggle('CamLock/Shake', {
Text = 'Enable Shake',
Default = Evolution["Cam Lock"]["Shake"].Enabled ,
Tooltip = 'Camera Shake',
Callback = function(Value)
Evolution["Cam Lock"]["Shake"].Enabled = Value
end
})

local ValuesDEP = CamLockTab:AddDependencyBox();

ValuesDEP:AddSlider('CamLock/ShakeX', {
Text = 'X',
Default = Evolution["Cam Lock"]["Shake"].X,
Min = 0,
Max = 10,
Rounding = 1,
Compact = true,

Callback = function(Value)
Evolution["Cam Lock"]["Shake"].X = Value
end
})

ValuesDEP:AddSlider('CamLock/ShakeY', {
Text = 'Y',
Default = Evolution["Cam Lock"]["Shake"].Y,
Min = 0,
Max = 10,
Rounding = 1,
Compact = true,

Callback = function(Value)
Evolution["Cam Lock"]["Shake"].Y = Value
end
})

ValuesDEP:AddSlider('CamLock/ShakeZ', {
Text = 'Z',
Default = Evolution["Cam Lock"]["Shake"].Z,
Min = 0,
Max = 10,
Rounding = 1,
Compact = true,

Callback = function(Value)
Evolution["Cam Lock"]["Shake"].Z = Value
end
})

ValuesDEP:SetupDependencies({
{ Toggles["CamLock/Shake"], true } -- We can also pass `false` if we
only want our features to show when the toggle is off!
});

CamLockTab:AddDivider()

CamLockTab:AddToggle('CamLock/FOV/Visible', {
Text = 'Show FOV',
Default = Evolution["FOV"]["Cam Lock"].Visible ,
Tooltip = 'Shows FOV Circle',
Callback = function(Value)
Evolution["FOV"]["Cam Lock"].Visible = Value
end
}):AddColorPicker('CamlockFOVColor', {
Default = Evolution["FOV"]["Cam Lock"].Color, -- Bright green
Title = 'Circle Color', -- Optional. Allows you to have a custom color
picker title (when you open it)
Transparency = nil, -- Optional. Enables transparency changing for this
color picker (leave as nil to disable)

Callback = function(Value)
Evolution["FOV"]["Cam Lock"].Color = Value
end
})

local CamLockFOV = CamLockTab:AddDependencyBox();

CamLockFOV:AddToggle('CamLock/FOV/Filled', {
Text = 'Filled',
Default = Evolution["FOV"]["Cam Lock"].Filled ,
Tooltip = 'ewww',
Callback = function(Value)
Evolution["FOV"]["Cam Lock"].Filled = Value
end
})

CamLockFOV:AddSlider('CamLock/FOV/Size', {
Text = 'Size',
Default = Evolution["FOV"]["Cam Lock"].Size,
Min = 1,
Max = 100,
Rounding = 1,
Compact = true,

Callback = function(Value)
Evolution["FOV"]["Cam Lock"].Size = Value
end
})

CamLockFOV:AddSlider('CamLock/FOV/Thickness', {
Text = 'Thickness',
Default = Evolution["FOV"]["Cam Lock"].Thickness,
Min = 1,
Max = 10,
Rounding = 1,
Compact = true,

Callback = function(Value)
Evolution["FOV"]["Cam Lock"].Thickness = Value
end
})

CamLockFOV:AddSlider('CamLock/FOV/Transparency', {
Text = 'Transparency',
Default = Evolution["FOV"]["Cam Lock"].Transparency,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true,

Callback = function(Value)
Evolution["FOV"]["Cam Lock"].Transparency = Value
end
})

CamLockFOV:SetupDependencies({
{ Toggles["CamLock/FOV/Visible"], true } -- We can also pass `false` if
we only want our features to show when the toggle is off!
});
-- // Global

local Global = Tabs.Main:AddRightGroupbox('Global')

Global:AddToggle('Global/AutoPrediction', {
Text = 'Auto Prediction',
Default = Evolution["Global"]["Auto Prediction"].Enabled ,
Tooltip = 'Uses ping based auto prediction.',
Callback = function(Value)
Evolution["Global"]["Auto Prediction"].Enabled = Value
end
})

local Depbox = Global:AddDependencyBox();

Depbox:AddDropdown('Global/AutoPrediction/Version', {
Values = AutoPredVersions,
Default = Evolution["Global"]["Auto Prediction"]["Version"], -- number
index of the value / string
Multi = false, -- true / false, allows multiple choices to be selected

Text = 'Version',
Tooltip = 'Select a auto prediction mode', -- Information shown when
you hover over the dropdown

Callback = function(Value)
Evolution["Global"]["Auto Prediction"]["Version"] = Value
end
})

Depbox:AddToggle('Global/AutoPrediction/SetupCustomPrediction', {
Text = 'Setup Custom prediction',
Default = false,
Tooltip = 'Set your custom prediction values.',
})

local CustomValues = Depbox:AddDependencyBox();

CustomValues:AddSlider('ping_20', {
Text = '20',
Default = Evolution["Global"]["Auto Prediction"]["Custom
Settings"].Ping20,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true, -- If set to true, then it will hide the label
Callback = function(Value)
Evolution["Global"]["Auto Prediction"]["Custom Settings"].Ping20 =
Value
end
})
CustomValues:AddSlider('ping_30', {
Text = '30',
Default = Evolution["Global"]["Auto Prediction"]["Custom
Settings"].Ping30,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true, -- If set to true, then it will hide the label
Callback = function(Value)
Evolution["Global"]["Auto Prediction"]["Custom Settings"].Ping30 =
Value
end
})

CustomValues:AddSlider('ping_40', {
Text = '40',
Default = Evolution["Global"]["Auto Prediction"]["Custom
Settings"].Ping40,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true, -- If set to true, then it will hide the label
Callback = function(Value)
Evolution["Global"]["Auto Prediction"]["Custom Settings"].Ping40 =
Value
end
})

CustomValues:AddSlider('ping_50', {
Text = '50',
Default = Evolution["Global"]["Auto Prediction"]["Custom
Settings"].Ping50,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true, -- If set to true, then it will hide the label
Callback = function(Value)
Evolution["Global"]["Auto Prediction"]["Custom Settings"].Ping50 =
Value
end
})

CustomValues:AddSlider('ping_60', {
Text = '60',
Default = Evolution["Global"]["Auto Prediction"]["Custom
Settings"].Ping60,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true, -- If set to true, then it will hide the label
Callback = function(Value)
Evolution["Global"]["Auto Prediction"]["Custom Settings"].Ping60 =
Value
end
})

CustomValues:AddSlider('ping_70', {
Text = '70',
Default = Evolution["Global"]["Auto Prediction"]["Custom
Settings"].Ping70,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true, -- If set to true, then it will hide the label
Callback = function(Value)
Evolution["Global"]["Auto Prediction"]["Custom Settings"].Ping70 =
Value
end
})

CustomValues:AddSlider('ping_80', {
Text = '80',
Default = Evolution["Global"]["Auto Prediction"]["Custom
Settings"].Ping80,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true, -- If set to true, then it will hide the label
Callback = function(Value)
Evolution["Global"]["Auto Prediction"]["Custom Settings"].Ping80 =
Value
end
})

CustomValues:AddSlider('ping_90', {
Text = '90',
Default = Evolution["Global"]["Auto Prediction"]["Custom
Settings"].Ping90,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true, -- If set to true, then it will hide the label
Callback = function(Value)
Evolution["Global"]["Auto Prediction"]["Custom Settings"].Ping90 =
Value
end
})

CustomValues:AddSlider('ping_100', {
Text = '100',
Default = Evolution["Global"]["Auto Prediction"]["Custom
Settings"].Ping100,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true, -- If set to true, then it will hide the label
Callback = function(Value)
Evolution["Global"]["Auto Prediction"]["Custom Settings"].Ping100 =
Value
end
})

CustomValues:AddSlider('ping_110', {
Text = '110',
Default = Evolution["Global"]["Auto Prediction"]["Custom
Settings"].Ping110,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true, -- If set to true, then it will hide the label
Callback = function(Value)
Evolution["Global"]["Auto Prediction"]["Custom Settings"].Ping110 =
Value
end
})

CustomValues:AddSlider('ping_120', {
Text = '120',
Default = Evolution["Global"]["Auto Prediction"]["Custom
Settings"].Ping120,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true, -- If set to true, then it will hide the label
Callback = function(Value)
Evolution["Global"]["Auto Prediction"]["Custom Settings"].Ping120 =
Value
end
})

CustomValues:AddSlider('ping_130', {
Text = '130',
Default = Evolution["Global"]["Auto Prediction"]["Custom
Settings"].Ping130,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true, -- If set to true, then it will hide the label
Callback = function(Value)
Evolution["Global"]["Auto Prediction"]["Custom Settings"].Ping130 =
Value
end
})

CustomValues:AddSlider('ping_140', {
Text = '140',
Default = Evolution["Global"]["Auto Prediction"]["Custom
Settings"].Ping140,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true, -- If set to true, then it will hide the label
Callback = function(Value)
Evolution["Global"]["Auto Prediction"]["Custom Settings"].Ping140 =
Value
end
})

CustomValues:AddSlider('ping_150', {
Text = '150',
Default = Evolution["Global"]["Auto Prediction"]["Custom
Settings"].Ping150,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true, -- If set to true, then it will hide the label
Callback = function(Value)
Evolution["Global"]["Auto Prediction"]["Custom Settings"].Ping150 =
Value
end
})

CustomValues:AddSlider('ping_160', {
Text = '160',
Default = Evolution["Global"]["Auto Prediction"]["Custom
Settings"].Ping160,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true, -- If set to true, then it will hide the label
Callback = function(Value)
Evolution["Global"]["Auto Prediction"]["Custom Settings"].Ping160 =
Value
end
})

CustomValues:AddSlider('ping_170', {
Text = '170',
Default = Evolution["Global"]["Auto Prediction"]["Custom
Settings"].Ping170,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true, -- If set to true, then it will hide the label
Callback = function(Value)
Evolution["Global"]["Auto Prediction"]["Custom Settings"].Ping170 =
Value
end
})

CustomValues:AddSlider('ping_180', {
Text = '180',
Default = Evolution["Global"]["Auto Prediction"]["Custom
Settings"].Ping180,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true, -- If set to true, then it will hide the label
Callback = function(Value)
Evolution["Global"]["Auto Prediction"]["Custom Settings"].Ping180 =
Value
end
})

CustomValues:AddSlider('ping_190', {
Text = '190',
Default = Evolution["Global"]["Auto Prediction"]["Custom
Settings"].Ping190,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true, -- If set to true, then it will hide the label
Callback = function(Value)
Evolution["Global"]["Auto Prediction"]["Custom Settings"].Ping190 =
Value
end
})

CustomValues:AddSlider('ping_200', {
Text = '200',
Default = Evolution["Global"]["Auto Prediction"]["Custom
Settings"].Ping200,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true, -- If set to true, then it will hide the label
Callback = function(Value)
Evolution["Global"]["Auto Prediction"]["Custom Settings"].Ping200 =
Value
end
})

CustomValues:AddDivider()

CustomValues:SetupDependencies({
{ Toggles["Global/AutoPrediction/SetupCustomPrediction"], true } -- We
can also pass `false` if we only want our features to show when the toggle is off!
});
Depbox:SetupDependencies({
{ Toggles["Global/AutoPrediction"], true } -- We can also pass `false`
if we only want our features to show when the toggle is off!
});

Global:AddToggle('Global/AntiGroundShots', {
Text = 'Anti Ground Shots',
Default = Evolution["Global"]["Anti Ground Shots"] ,
Tooltip = 'Will prevent you from shooting at the ground.',
Callback = function(Value)
Evolution["Global"]["Anti Ground Shots"] = Value
end
})

Global:AddToggle('Global/UnlockOnKO', {
Text = 'Unlock On KO',
Default = Evolution["Global"]["Unlock On KO"] ,
Tooltip = 'Unlocks when target is knocked.',
Callback = function(Value)
Evolution["Global"]["Unlock On KO"] = Value
end
})

Global:AddToggle('Global/UnlockOutSideFOV', {
Text = 'Unlock Outside FOV',
Default = Evolution["Global"]["Unlock Outside FOV"] ,
Tooltip = 'Unlocks when target goes outside your FOV.',
Callback = function(Value)
Evolution["Global"]["Unlock Outside FOV"] = Value
end
})

Global:AddToggle('Global/UnlockBehindWall', {
Text = 'Unlock Behind Wall',
Default = Evolution["Global"]["Unlock Behind Wall"] ,
Tooltip = 'Unlocks when target goes behind a wall',
Callback = function(Value)
Evolution["Global"]["Unlock Behind Wall"] = Value
end
})
-- // Checks

local Checks = Tabs.Main:AddRightGroupbox('Checks')

Checks:AddToggle('Checks/Whitelist', {
Text = 'Whitelist',
Default = Evolution["Checks"]["Whitelist"].Enabled ,
Tooltip = 'Will only lock onto people whitelisted',
Callback = function(Value)
Evolution["Checks"]["Whitelist"].Enabled = Value
end
})

local Whitelist = Checks:AddDependencyBox();


Whitelist:AddDropdown('Checks/Whitelist/SelectPlayer', {
SpecialType = 'Player',
Multi = true,
Text = 'Whitelisted Players',
Tooltip = 'Select Targets', -- Information shown when you hover over
the dropdown
Callback = function(Value)
Evolution["Checks"]["Whitelist"].Usernames = Value
end
})

Whitelist:AddDivider()

Whitelist:SetupDependencies({
{ Toggles["Checks/Whitelist"], true } -- We can also pass `false` if we
only want our features to show when the toggle is off!
});

Checks:AddToggle('Checks/Blacklist', {
Text = 'Blacklist',
Default = Evolution["Checks"]["Blacklist"].Enabled ,
Tooltip = 'Will not lock onto people blacklisted',
Callback = function(Value)
Evolution["Checks"]["Blacklist"].Enabled = Value
end
})

local Blacklist = Checks:AddDependencyBox();

Blacklist:AddDropdown('Checks/Blacklist/SelectPlayer', {
SpecialType = 'Player',
Multi = true,
Text = 'Blacklisted Players',
Tooltip = 'Select Targets', -- Information shown when you hover over
the dropdown
Callback = function(Value)
Evolution["Checks"]["Blacklist"].Usernames = Value
end
})

Blacklist:AddDivider()

Blacklist:SetupDependencies({
{ Toggles["Checks/Blacklist"], true } -- We can also pass `false` if we
only want our features to show when the toggle is off!
});

Checks:AddToggle('Checks/Distance', {
Text = 'Distance',
Default = Evolution["Checks"]["Distance"].Enabled ,
Tooltip = 'Will not lock onto people who are too far away',
Callback = function(Value)
Evolution["Checks"]["Distance"].Enabled = Value
end
})

local Distance = Checks:AddDependencyBox();


Distance:AddSlider('Checks/Distance/Max', {
Text = 'Max Distance',
Default = Evolution["Checks"]["Distance"]["Max Distance"],
Min = 1,
Max = 1000,
Rounding = 0,
Compact = true, -- If set to true, then it will hide the label
Callback = function(Value)
Evolution["Checks"]["Distance"]["Max Distance"] = Value
end
})

Distance:AddDivider()

Distance:SetupDependencies({
{ Toggles["Checks/Distance"], true } -- We can also pass `false` if we
only want our features to show when the toggle is off!
});

Checks:AddToggle('Checks/Visible', {
Text = 'Visible',
Default = Evolution["Checks"]["Visible Check"] ,
Tooltip = 'Will not lock onto people who are behind a wall',
Callback = function(Value)
Evolution["Checks"]["Visible Check"] = Value
end
})

Checks:AddToggle('Checks/KO', {
Text = 'Knocked',
Default = Evolution["Checks"]["K.O Check"] ,
Tooltip = 'Will not lock onto people who are knocked',
Callback = function(Value)
Evolution["Checks"]["K.O Check"] = Value
end
})

Checks:AddToggle('Checks/Crew', {
Text = 'Crew',
Default = Evolution["Checks"]["Crew Check"] ,
Tooltip = 'Will not lock onto people who are in your crew',
Callback = function(Value)
Evolution["Checks"]["Crew Check"] = Value
end
})

Checks:AddToggle('Checks/Friend', {
Text = 'Friend',
Default = Evolution["Checks"]["Friend Check"] ,
Tooltip = 'Will not lock onto people who are your friends',
Callback = function(Value)
Evolution["Checks"]["Friend Check"] = Value
end
})
local Resolver = Tabs.Main:AddRightGroupbox('Resolver')

Resolver:AddToggle('Resolver/Enabled', {
Text = 'Enabled',
Default = Evolution["Resolver"].Enabled ,
Tooltip = 'Will toggle resolver.',
Callback = function(Value)
Evolution["Resolver"].Enabled = Value
end
}):AddKeyPicker('Resolver/ToggleBind', {
Default = Evolution.Resolver.Keybind,
SyncToggleState = true,
Mode = 'Toggle',
Text = 'Resolver',
NoUI = false,
})

Resolver:AddDropdown('Resolver/Method', {
Values = { 'Delta', 'Move Direction' ,'No Prediction', 'Recalculate' },
Default = Evolution["Resolver"]["Method"], -- number index of the value
/ string
Multi = false, -- true / false, allows multiple choices to be selected

Text = 'Method',
Tooltip = 'Select a resolving method.', -- Information shown when you
hover over the dropdown

Callback = function(Value)
Evolution["Resolver"]["Method"] = Value
end
})

local Airshot = Tabs.Main:AddRightGroupbox('Airshot')

Airshot:AddToggle('Airshot/Enabled', {
Text = 'Enable Airshot',
Default = Evolution["Airshot"].Enabled ,
Tooltip = 'Will change your target offset if player is in air',
Callback = function(Value)
Evolution["Airshot"].Enabled = Value
end
})

local ssss = Airshot:AddDependencyBox();

ssss:AddSlider('Airshot/JumpOffset', {
Text = 'Offset',
Default = Evolution["Airshot"]["Jump Offset"],
Min = -5,
Max = 5,
Rounding = 1,
Compact = true,

Callback = function(Value)
Evolution["Airshot"]["Jump Offset"] = Value
end
})
ssss:AddDivider()

ssss:SetupDependencies({
{ Toggles["Airshot/Enabled"], true } -- We can also pass `false` if we
only want our features to show when the toggle is off!
});

Airshot:AddToggle('Airshot/CamlockSmoothness', {
Text = 'Enable Camlock Smoothness',
Default = Evolution["Airshot"]["Cam Lock Smoothness"].Enabled ,
Tooltip = 'Will change your camlock smoothness if target is in air',
Callback = function(Value)
Evolution["Airshot"]["Cam Lock Smoothness"].Enabled = Value
end
})

local SMoothing = Airshot:AddDependencyBox();

SMoothing:AddSlider('CamLock/SmoothV2', {
Text = 'Value',
Default = Evolution["Airshot"]["Cam Lock Smoothness"]["New
Smoothness"],
Min = 0,
Max = 1,
Rounding = 10,
Compact = true,

Callback = function(Value)
Evolution["Airshot"]["Cam Lock Smoothness"]["New Smoothness"] =
Value
end
})

SMoothing:AddDivider()

SMoothing:SetupDependencies({
{ Toggles["Airshot/CamlockSmoothness"], true } -- We can also pass
`false` if we only want our features to show when the toggle is off!
});

local Visuals = Tabs.Main:AddLeftGroupbox('Visuals')

Visuals:AddToggle('HitSound/Enabled', {
Text = 'Hit Sound',
Default = Evolution["Hit Sound"].Enabled ,
Tooltip = 'Will play sound when you hit target',
Callback = function(Value)
Evolution["Hit Sound"].Enabled = Value
end
})

local HitSound = Visuals:AddDependencyBox();

HitSound:AddSlider('HitSound/Volume', {
Text = 'Volume',
Default = Evolution["Hit Sound"].Volume * 10,
Min = 1,
Max = 100,
Rounding = 1,
Compact = true,

Callback = function(Value)
Evolution["Hit Sound"].Volume = Value / 10
end
})

HitSound:AddDropdown('HitSound/Sound', {
Values = hitSoundsNames,
Default = Evolution["Hit Sound"]["Hit Sound"], -- number index of the
value / string
Multi = false, -- true / false, allows multiple choices to be selected

Text = 'Sound',
Tooltip = 'Select a sound to play', -- Information shown when you hover
over the dropdown

Callback = function(Value)
Evolution["Hit Sound"]["Hit Sound"] = Value
end
})

HitSound:AddDivider()

HitSound:SetupDependencies({
{ Toggles["HitSound/Enabled"], true } -- We can also pass `false` if we
only want our features to show when the toggle is off!
});

Visuals:AddToggle('HitLogs/Enabled', {
Text = 'Hit Logs',
Default = Evolution["Hit Logs"].Enabled ,
Tooltip = 'Logs when you hit a player',
Callback = function(Value)
Evolution["Hit Logs"].Enabled = Value
end
})

-- Extra Tab

local Misc = Tabs.Extra:AddLeftGroupbox('Miscellaneous')

Misc:AddToggle('Macro/Enabled', {
Text = 'Macro',
Default = Evolution["Macro"].Enabled ,
Tooltip = 'Lua based Macro',
Callback = function(Value)
Evolution["Macro"].Enabled = Value
end
}):AddKeyPicker('Macro/Bind', {
Default = Evolution["Macro"]["Bind"],
SyncToggleState = false,

Mode = 'Always',
Text = 'Macro',
NoUI = false,
ChangedCallback = function(New)
Evolution["Macro"]["Bind"] = KeyCodeToString(New)
end
})

local MacroSets = Misc:AddDependencyBox();

MacroSets:AddToggle('Macro/Abuse', {
Text = 'Abuse',
Default = Evolution["Macro"].Abuse ,
Tooltip = 'Use scroll wheel to macro',
Callback = function(Value)
Evolution["Macro"].Abuse = Value
end
})

MacroSets:AddSlider('Macro/Speed', {
Text = 'Speed',
Default = Evolution["Macro"].Speed,
Min = 0,
Max = 1,
Rounding = 3,
Compact = true,

Callback = function(Value)
Evolution["Macro"].Speed = Value
end
})

MacroSets:AddDivider()

MacroSets:SetupDependencies({
{ Toggles["Macro/Enabled"], true } -- We can also pass `false` if we
only want our features to show when the toggle is off!
});

Misc:AddToggle('MemorySpoofer/Enabled', {
Text = 'Memory Spoofer',
Default = Evolution["Spoofer"].Memory.Enabled ,
Tooltip = 'Spoofs your memory',
Callback = function(Value)
Evolution["Spoofer"].Memory.Enabled = Value
end
})

local SpooferSets = Misc:AddDependencyBox();

SpooferSets:AddSlider('MemorySpoofer/Min', {
Text = 'Minimum',
Default = Evolution["Spoofer"].Memory.Min,
Min = 500,
Max = 2000,
Rounding = 1,
Compact = true,

Callback = function(Value)
Evolution["Spoofer"].Memory.Min = Value
end
})

SpooferSets:AddSlider('MemorySpoofer/Max', {
Text = 'Maximum',
Default = Evolution["Spoofer"].Memory.Max,
Min = 500,
Max = 2000,
Rounding = 1,
Compact = true,

Callback = function(Value)
Evolution["Spoofer"].Memory.Max = Value
end
})

SpooferSets:AddDivider()

SpooferSets:SetupDependencies({
{ Toggles["MemorySpoofer/Enabled"], true } -- We can also pass `false`
if we only want our features to show when the toggle is off!
});

Misc:AddToggle('FakeSpike/Enabled', {
Text = 'Fake Spike',
Default = Evolution["Fake Spike"].Enabled ,
Tooltip = 'Spikes your ping to make it look like your lagging',
Callback = function(Value)
Evolution["Fake Spike"].Enabled = Value
end
}):AddKeyPicker('FakeSpike/Bind', {
Default = Evolution["Fake Spike"]["Bind"],
SyncToggleState = false,

Mode = 'Always',

Text = 'Fake Spike',


NoUI = false,
ChangedCallback = function(New)
Evolution["Fake Spike"]["Bind"] = KeyCodeToString(New)
end
})

local Spike = Misc:AddDependencyBox();

Spike:AddSlider('FakeSpike/Duration', {
Text = 'Duration',
Default = Evolution["Fake Spike"]["Duration"],
Min = 0.1,
Max = 3,
Rounding = 2,
Compact = true,

Callback = function(Value)
Evolution["Fake Spike"]["Duration"] = Value
end
})

Spike:AddDivider()

Spike:SetupDependencies({
{ Toggles["FakeSpike/Enabled"], true } -- We can also pass `false` if
we only want our features to show when the toggle is off!
});

Misc:AddToggle('Panic/Enabled', {
Text = 'Panic',
Default = Evolution["Panic"].Enabled ,
Tooltip = 'Will disable everything when your press keybind',
Callback = function(Value)
Evolution["Panic"].Enabled = Value
end
}):AddKeyPicker('Panic/Bind', {
Default = Evolution["Panic"]["Bind"],
SyncToggleState = false,

Mode = 'Always',

Text = 'Panic',
NoUI = false,
ChangedCallback = function(New)
Evolution["Panic"]["Bind"] = KeyCodeToString(New)
end
})

local PanicMode = Misc:AddDependencyBox();

PanicMode:AddToggle('Panic/Options', {
Text = 'Options',
Default = Evolution["Panic"]["Things To Disable"].Options ,
Callback = function(Value)
Evolution["Panic"]["Things To Disable"].Options = Value
end
})

PanicMode:AddToggle('Panic/Aiming', {
Text = 'Aiming',
Default = Evolution["Panic"]["Things To Disable"].Aiming ,
Callback = function(Value)
Evolution["Panic"]["Things To Disable"].Aiming = Value
end
})

PanicMode:AddToggle('Panic/FOV', {
Text = 'FOV',
Default = Evolution["Panic"]["Things To Disable"].FOV ,
Callback = function(Value)
Evolution["Panic"]["Things To Disable"].FOV = Value
end
})

PanicMode:AddToggle('Panic/Misc', {
Text = 'Misc',
Default = Evolution["Panic"]["Things To Disable"].Misc ,
Callback = function(Value)
Evolution["Panic"]["Things To Disable"].Misc = Value
end
})

PanicMode:AddToggle('Panic/Emotes', {
Text = 'Emotes',
Default = Evolution["Panic"]["Things To Disable"].Emotes ,
Callback = function(Value)
Evolution["Panic"]["Things To Disable"].Emotes = Value
end
})

PanicMode:AddDivider()

PanicMode:SetupDependencies({
{ Toggles["Panic/Enabled"], true } -- We can also pass `false` if we
only want our features to show when the toggle is off!
});

Misc:AddToggle('GunSorting/Enabled', {
Text = 'Gun Sorting',
Default = Evolution["Gun Sorting"].Enabled ,
Tooltip = 'Sorts your guns in your hotbar (must set in table)',
Callback = function(Value)
Evolution["Gun Sorting"].Enabled = Value
end
}):AddKeyPicker('GunSorting/Bind', {
Default = Evolution["Gun Sorting"]["Bind"],
SyncToggleState = false,

Mode = 'Always',

Text = 'Sort Guns',


NoUI = false,
ChangedCallback = function(New)
Evolution["Gun Sorting"]["Bind"] = KeyCodeToString(New)
end
})

local Sort = Misc:AddDependencyBox();

Sort:AddToggle('GunSorting/Delete', {
Text = 'Delete Extra',
Default = Evolution["Gun Sorting"]["Delete Extra"] ,
Tooltip = 'Deletes unsorted items from your inventory',
Callback = function(Value)
Evolution["Gun Sorting"]["Delete Extra"] = Value
end
})

Sort:AddDivider()

Sort:SetupDependencies({
{ Toggles["GunSorting/Enabled"], true } -- We can also pass `false` if
we only want our features to show when the toggle is off!
});

local ESP = Tabs.Extra:AddRightGroupbox('ESP')

ESP:AddToggle('Esp/Enabled', {
Text = 'Enabled',
Default = Evolution["ESP"].Enabled ,
Callback = function(Value)
Evolution["ESP"].Enabled = Value
end
})

ESP:AddSlider('ESP/MAXDISTANCE', {
Text = 'Max Distance',
Default = Evolution.ESP["Max Distance"],
Min = 1,
Max = 1000,
Rounding = 0,
Compact = true,

Callback = function(Value)
Evolution.ESP["Max Distance"] = Value
end
})

ESP:AddToggle('Esp/Names', {
Text = 'Names',
Default = Evolution["ESP"].Name.Enabled ,
Callback = function(Value)
Evolution["ESP"].Name.Enabled = Value
end
}):AddColorPicker('NameColor', {
Default = Evolution["ESP"].Name.Color,
Title = 'Name Color',
Transparency = nil,

Callback = function(Value)
Evolution["ESP"].Name.Color = Value
end
})

ESP:AddToggle('Esp/Names/Outline', {
Text = 'Name Outline',
Default = Evolution["ESP"].Name.Outline ,
Callback = function(Value)
Evolution["ESP"].Name.Outline = Value
end
})

ESP:AddToggle('Esp/Box', {
Text = 'Box',
Default = Evolution["ESP"].Box.Enabled ,
Callback = function(Value)
Evolution["ESP"].Box.Enabled = Value
end
}):AddColorPicker('BoxColor', {
Default = Evolution["ESP"].Box.Color,
Title = 'Box Color',
Transparency = nil,

Callback = function(Value)
Evolution["ESP"].Box.Color = Value
end
})

ESP:AddToggle('Esp/Names/Outline', {
Text = 'Box Outline',
Default = Evolution["ESP"].Box.Outline ,
Callback = function(Value)
Evolution["ESP"].Box.Outline = Value
end
})

ESP:AddToggle('Esp/Health', {
Text = 'Health Bar',
Default = Evolution["ESP"]["Health Bar"].Enabled ,
Callback = function(Value)
Evolution["ESP"]["Health Bar"].Enabled = Value
end
}):AddColorPicker('HealthColor', {
Default = Evolution["ESP"]["Health Bar"].Color,
Title = 'Health Bar Color',
Transparency = nil,

Callback = function(Value)
Evolution["ESP"]["Health Bar"].Color = Value
end
})

ESP:AddToggle('Esp/Health/Outline', {
Text = 'Health Bar Outline',
Default = Evolution["ESP"]["Health Bar"].Outline ,
Callback = function(Value)
Evolution["ESP"]["Health Bar"].Outline = Value
end
})

ESP:AddToggle('Esp/Distance', {
Text = 'Distance',
Default = Evolution["ESP"].Distance.Enabled ,
Callback = function(Value)
Evolution["ESP"].Distance.Enabled = Value
end
}):AddColorPicker('DistanceColor', {
Default = Evolution["ESP"].Distance.Color,
Title = 'Distance Color',
Transparency = nil,

Callback = function(Value)
Evolution["ESP"].Distance.Color = Value
end
})
ESP:AddToggle('Esp/Distance/Outline', {
Text = 'Distance Outline',
Default = Evolution["ESP"].Distance.Outline ,
Callback = function(Value)
Evolution["ESP"].Distance.Outline = Value
end
})

-- UI Settings
Library:SetWatermark('Evolution | '..tostring(os.date("%B") .. " " ..
os.date("%d") .. " " .. os.date("%Y")).." | "..utility.Version)
Library:SetWatermarkVisibility(false)
local MenuGroup = Tabs['UI Settings']:AddLeftGroupbox('Menu')
local MenuGroup2 = Tabs['UI Settings']:AddRightGroupbox('More Settings')
MenuGroup:AddButton('Unload', function() Library:Unload() end)
MenuGroup:AddLabel('Menu bind'):AddKeyPicker('MenuKeybind', { Default =
Evolution["Options"]["Internal"].Bind, NoUI = true, Text = 'Menu keybind' })

MenuGroup2:AddToggle('togglekeybindmenu', {
Text = 'Keybind Menu',
Default = false,
Callback = function(V)
Library.KeybindFrame.Visible = Toggles.togglekeybindmenu.Value
end
})

MenuGroup2:AddToggle('show_stats', {
Text = 'Show Stats',
Default = Evolution["Options"]["Stats"],
Callback = function(V)
Evolution["Options"]["Stats"] = V
end
})

MenuGroup2:AddToggle('allow_notifications', {
Text = 'Allow Notifications',
Default = Evolution["Options"]["Allow Notifications"],
Callback = function(V)
Evolution["Options"]["Allow Notifications"] = V
end
})

MenuGroup2:AddDropdown('notification_mode', {
Values = NotificationTypes,
Default = Evolution.Options["Notifcation Type"], -- number index of the
value / string
Multi = false, -- true / false, allows multiple choices to be selected

Text = 'Type',
Tooltip = 'Select a notification type', -- Information shown when you
hover over the dropdown

Callback = function(Value)
Evolution.Options["Notifcation Type"] = Value
end
})

MenuGroup2:AddToggle('togglewatermark', {
Text = 'Watermark',
Default = false,
Callback = function(V)
Library:SetWatermarkVisibility(Toggles.togglewatermark.Value)
end
})

Library.ToggleKeybind = Options.MenuKeybind

ThemeManager:SetLibrary(Library)
SaveManager:SetLibrary(Library)

SaveManager:IgnoreThemeSettings()

SaveManager:BuildConfigSection(Tabs['UI Settings'])

ThemeManager:ApplyToTab(Tabs['UI Settings'])

SaveManager:LoadAutoloadConfig()

if game:GetService("UserInputService").TouchEnabled then
task.spawn(function()
local EvolutionMobileButton = Instance.new("ScreenGui")
local Icon = Instance.new("Frame")
local IconButton = Instance.new("TextButton")
local IconImage = Instance.new("ImageLabel")
local IconCorner = Instance.new("UICorner")
EvolutionMobileButton.Name = "EvolutionMobileButton"
EvolutionMobileButton.IgnoreGuiInset = true
EvolutionMobileButton.Parent = game.CoreGui
EvolutionMobileButton.DisplayOrder = 10
EvolutionMobileButton.ResetOnSpawn = false
Icon.Name = "Icon"
Icon.Parent = EvolutionMobileButton
Icon.BackgroundTransparency = 1.000
Icon.LayoutOrder = 1
Icon.Position = UDim2.new(0, 104, 0, 4)
Icon.Size = UDim2.new(0, 32, 0, 32)
IconButton.Name = "IconButton"
IconButton.Parent = Icon
IconButton.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
IconButton.BackgroundTransparency = 0.500
IconButton.BorderSizePixel = 0
IconButton.Size = UDim2.new(1, 0, 1, 0)
IconButton.ZIndex = 10
IconButton.AutoButtonColor = false
IconButton.Text = ""
IconImage.Name = "IconImage"
IconImage.Parent = IconButton
IconImage.AnchorPoint = Vector2.new(0.5, 0.5)
IconImage.BackgroundTransparency = 1.000
IconImage.Position = UDim2.new(0.5, 0, 0.5, 0)
IconImage.Size = UDim2.new(0, 20, 0.629999995, 0)
IconImage.ZIndex = 11
IconImage.Image = "rbxassetid://14270853092"
IconImage.ScaleType = Enum.ScaleType.Fit
IconCorner.CornerRadius = UDim.new(0.25, 0)
IconCorner.Name = "IconCorner"
IconCorner.Parent = IconButton
IconButton.MouseButton1Down:Connect(function()
game:GetService("VirtualInputManager"):SendKeyEvent(true,
string.upper(Evolution["Options"]["Internal UI Bind"]) , false , game)
end)
end)
end
end
end

notify("Evolution V3 has loaded.")

You might also like