0% found this document useful (0 votes)
494 views51 pages

Unnamed ESP Script for Roblox

Uploaded by

Gaming Flank46
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)
494 views51 pages

Unnamed ESP Script for Roblox

Uploaded by

Gaming Flank46
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

assert(Drawing, 'exploit not supported')

if not syn and not PROTOSMASHER_LOADED then print'Unnamed ESP only officially
supports Synapse and Protosmasher! If you\'re an exploit developer and have added
drawing API to your exploit, try setting syn as true then checking if that works,
otherwise, DM me on discord @ [Link]#1968 or add an issue to the Unnamed ESP
Github Repository and I\'ll see it through email!' end

if not cloneref then cloneref = function(o) return o end end

local UserInputService = cloneref(game:GetService'UserInputService')


local HttpService = cloneref(game:GetService'HttpService')
local TweenService = cloneref(game:GetService'TweenService')
local RunService = cloneref(game:GetService'RunService')
local Players = game:GetService'Players'
local LocalPlayer = [Link]
local Camera = [Link]
local Mouse = LocalPlayer:GetMouse()
local V2New = [Link]
local V3New = [Link]
local WTVP = [Link]
local WorldToViewport = function(...) return WTVP(Camera, ...) end
local Menu = {}
local MouseHeld = false
local LastRefresh = 0
local OptionsFile = 'IC3_ESP_SETTINGS.dat'
local Binding = false
local BindedKey = nil
local OIndex = 0
local LineBox = {}
local UIButtons = {}
local Sliders = {}
local ColorPicker = { Loading = false, LastGenerated = 0 }
local Dragging = false
local DraggingUI = false
local Rainbow = false
local DragOffset = V2New()
local DraggingWhat = nil
local OldData = {}
local IgnoreList = {}
local EnemyColor = [Link](1, 0, 0)
local TeamColor = [Link](0, 1, 0)
local MenuLoaded = false
local ErrorLogging = false
local TracerPosition = V2New([Link].X / 2, [Link].Y -
135)
local DragTracerPosition = false
local SubMenu = {}
local IsSynapse = syn and not PROTOSMASHER_LOADED
local Connections = { Active = {} }
local Signal = {} Signal.__index = Signal
local GetCharacter, CurrentColorPicker, Spectating

local QUAD_SUPPORTED_EXPLOIT = pcall(function() [Link]('Quad'):Remove() end)

[Link] = [Link] or { Instances = {} }


[Link] = [Link] or {}
[Link] = [Link] or ('UnnamedESP_by_ic3-' ..
HttpService:GenerateGUID(false))
local GetDataName = [Link] .. '-GetData'
local UpdateName = [Link] .. '-Update'

local Debounce = setmetatable({}, {


__index = function(t, i)
return rawget(t, i) or false
end
})

if shared.UESP_InputChangedCon then shared.UESP_InputChangedCon:Disconnect() end


if shared.UESP_InputBeganCon then shared.UESP_InputBeganCon:Disconnect() end
if shared.UESP_InputEndedCon then shared.UESP_InputEndedCon:Disconnect() end
if [Link] then [Link]:Dispose() end

local function IsStringEmpty(String)


if type(String) == 'string' then
return String:match'^%s+$' ~= nil or #String == 0 or String == '' or
false;
end

return false;
end

local function Set(t, i, v) t[i] = v end

local Teams = {};


local CustomTeams = { -- Games that don't use roblox's team system
[2563455047] = {
Initialize = function()
[Link] = {}; -- prevent big error
[Link] = {}; -- prevent big error
local Func =
game:GetService'ReplicatedStorage':WaitForChild('RogueFunc', 1);
local Event =
game:GetService'ReplicatedStorage':WaitForChild('RogueEvent', 1);
local S, B = Func:InvokeServer'AllTeamData';

[Link] = S;
[Link] = B;

[Link]:Connect(function(id, PlayerName, Team,


Remove) -- stolen straight from decompiled src lul
if id == 'UpdateTeam' then
local TeamTable, NotTeamTable
if Team == 'Bandits' then
TeamTable = [Link]
NotTeamTable = [Link]
else
TeamTable = [Link]
NotTeamTable = [Link]
end
if Remove then
TeamTable[PlayerName] = nil
else
TeamTable[PlayerName] = true
NotTeamTable[PlayerName] = nil
end
if PlayerName == [Link] then
[Link] = TeamTable
[Link] = NotTeamTable
end
end
end)
end;
CheckTeam = function(Player)
local LocalTeam = [Link][[Link]] and
[Link] or [Link];

return LocalTeam[[Link]] and true or false;


end;
};
[5208655184] = {
CheckTeam = function(Player)
local LocalLastName = LocalPlayer:GetAttribute'LastName' if not
LocalLastName or IsStringEmpty(LocalLastName) then return true end
local PlayerLastName = Player:GetAttribute'LastName' if not
PlayerLastName then return false end

return PlayerLastName == LocalLastName


end
};
[3541987450] = {
CheckTeam = function(Player)
local LocalStats = LocalPlayer:FindFirstChild'leaderstats';
local LocalLastName = LocalStats and
LocalStats:FindFirstChild'LastName'; if not LocalLastName or
IsStringEmpty([Link]) then return true; end
local PlayerStats = Player:FindFirstChild'leaderstats';
local PlayerLastName = PlayerStats and
PlayerStats:FindFirstChild'LastName'; if not PlayerLastName then return false; end

return [Link] == [Link];


end;
};
[6032399813] = {
CheckTeam = function(Player)
local LocalStats = LocalPlayer:FindFirstChild'leaderstats';
local LocalGuildName = LocalStats and
LocalStats:FindFirstChild'Guild'; if not LocalGuildName or
IsStringEmpty([Link]) then return true; end
local PlayerStats = Player:FindFirstChild'leaderstats';
local PlayerGuildName = PlayerStats and
PlayerStats:FindFirstChild'Guild'; if not PlayerGuildName then return false; end

return [Link] == [Link];


end;
};
[5735553160] = {
CheckTeam = function(Player)
local LocalStats = LocalPlayer:FindFirstChild'leaderstats';
local LocalGuildName = LocalStats and
LocalStats:FindFirstChild'Guild'; if not LocalGuildName or
IsStringEmpty([Link]) then return true; end
local PlayerStats = Player:FindFirstChild'leaderstats';
local PlayerGuildName = PlayerStats and
PlayerStats:FindFirstChild'Guild'; if not PlayerGuildName then return false; end
return [Link] == [Link];
end;
};
};

local RenderList = {Instances = {}};

function RenderList:AddOrUpdateInstance(Instance, Obj2Draw, Text, Color)


[Link][Instance] = { ParentInstance = Instance; Instance =
Obj2Draw; Text = Text; Color = Color };
return [Link][Instance];
end

local CustomPlayerTag;
local CustomESP;
local CustomCharacter;
local GetHealth;
local GetAliveState;
local CustomRootPartName;

local Modules = {
[292439477] = {
Initialize = function()
if not create_comm_channel or not get_comm_channel then return
end

local run_on_actor = runonactor or run_on_actor


local EventID, Event = create_comm_channel()
[Link]:Connect(function(List)
PF_CharList = List
end)

for Index, Actor in pairs(getactors()) do


run_on_actor(Actor, [[
local Event = get_comm_channel(...)

if not getrenv().[Link] then return end

local RunService = game:GetService'RunService'


local Cache =
[Link](getrenv().[Link])[1]._cache if not Cache then return end
local ReplicationInterface = rawget(rawget(Cache,
'ReplicationInterface'), 'module') if not ReplicationInterface then return end
local getEntry = rawget(ReplicationInterface,
'getEntry')

if [Link] then [Link]:Disconnect() end

[Link] =
[Link]:Connect(function()
local CharacterList = {}

for Player, Entry in


pairs([Link](getEntry)[1]) do
local TPO = rawget(Entry,
'_thirdPersonObject') if not TPO then continue end
local Character = rawget(TPO,
'_characterHash') if not Character then continue end
local Torso = rawget(Character, 'Torso')
if not Torso then continue end
local HealthState = rawget(Entry,
'_healthstate')

CharacterList[[Link]] = {
Head = [Link],
Torso = [Link],
Health = HealthState and
rawget(HealthState, 'health0') or 100,
Alive = rawget(Entry, '_alive')
}
end

Event:Fire(CharacterList)
end)
]], EventID)
end
end,

CustomCharacter = function(Player)
if not shared.PF_CharMT then
shared.PF_CharMT = {}
shared.PF_CharMT.__index = shared.PF_CharMT

function shared.PF_CharMT:FindFirstChild(Name)
return rawget(self, Name)
end

function shared.PF_CharMT:FindFirstChildOfClass() end


end

if PF_CharList and PF_CharList[[Link]] then


local Character = PF_CharList[[Link]]

setmetatable(Character, shared.PF_CharMT)

return Character
end
end,

GetHealth = function(Player)
if PF_CharList and PF_CharList[[Link]] then
return PF_CharList[[Link]].Health
end
end,

GetAliveState = function(Player)
if PF_CharList and PF_CharList[[Link]] then
return PF_CharList[[Link]].Alive
end
end,

CustomRootPartName = 'Torso',
};
[2950983942] = {
CustomCharacter = function(Player)
if workspace:FindFirstChild'Players' then
return [Link]:FindFirstChild([Link]);
end
end
};
[2262441883] = {
CustomPlayerTag = function(Player)
return Player:FindFirstChild'Job' and (' [' ..
[Link] .. ']') or '';
end;
CustomESP = function()
if workspace:FindFirstChild'MoneyPrinters' then
for i, v in pairs([Link]:GetChildren()) do
local Main = v:FindFirstChild'Main';
local Owner = v:FindFirstChild'TrueOwner';
local Money = v:FindFirstChild'Int' and
[Link]:FindFirstChild'Money' or nil;
if Main and Owner and Money then
local O = tostring([Link]);
local M = tostring([Link]);

pcall([Link],
RenderList, v, Main, [Link]('Money Printer\nOwned by %s\n[%s]', O, M),
[Link](13, 255, 227));
end
end
end
end;
};
-- [4581966615] = {
-- CustomESP = function()
-- if workspace:FindFirstChild'Entities' then
-- for i, v in pairs([Link]:GetChildren()) do
-- if not [Link]:match'Printer' then continue end

-- local Properties = v:FindFirstChild'Properties' if


not Properties then continue end
-- local Main = v:FindFirstChild'hitbox';
-- local Owner = Properties:FindFirstChild'Owner';
-- local Money =
Properties:FindFirstChild'CurrentPrinted'

-- if Main and Owner and Money then


-- local O = [Link] and tostring([Link])
or 'no one';
-- local M = tostring([Link]);

-- pcall([Link],
RenderList, v, Main, [Link]('Money Printer\nOwned by %s\n[%s]', O, M),
[Link](13, 255, 227));
-- end
-- end
-- end
-- end;
-- };
[4801598506] = {
CustomESP = function()
if workspace:FindFirstChild'Mobs' and
[Link]:FindFirstChild'Forest1' then
for i, v in pairs([Link].Forest1:GetChildren()) do
local Main = v:FindFirstChild'Head';
local Hum = v:FindFirstChild'Mob';
if Main and Hum then
pcall([Link],
RenderList, v, Main, [Link]('[%s] [%s/%s]', [Link], [Link],
[Link]), [Link](13, 255, 227));
end
end
end
end;
};
[2555873122] = {
CustomESP = function()
if workspace:FindFirstChild'WoodPlanks' then
for i, v in pairs(workspace:GetChildren()) do
if [Link] == 'WoodPlanks' then
local Main = v:FindFirstChild'Wood';

if Main then
pcall([Link],
RenderList, v, Main, 'Wood Planks', [Link](13, 255, 227));
end
end
end
end
end;
};
[5208655184] = {
CustomESP = function()
-- if workspace:FindFirstChild'Live' then
-- for i, v in pairs([Link]:GetChildren()) do
-- if [Link]:sub(1, 1) == '.' then
-- local Main = v:FindFirstChild'Head';

-- if Main then
-- pcall([Link],
RenderList, v, Main, [Link]:sub(2), [Link](250, 50, 40));
-- end
-- end
-- end
-- end
end;
CustomPlayerTag = function(Player)
if [Link] < 457 then return '' end

local Name = '';


local FirstName = Player:GetAttribute'FirstName'

if typeof(FirstName) == 'string' and #FirstName > 0 then


local Prefix = '';
local Extra = {};
Name = Name .. '\n[';

if Player:GetAttribute'Prestige' > 0 then


Name = Name .. '#' ..
tostring(Player:GetAttribute'Prestige') .. ' ';
end
if not IsStringEmpty(Player:GetAttribute'HouseRank') then
Prefix = Player:GetAttribute'HouseRank' == 'Owner'
and (Player:GetAttribute'Gender' == 'Female' and 'Lady ' or 'Lord ') or '';
end
if not IsStringEmpty(FirstName) then
Name = Name .. '' .. Prefix .. FirstName;
end
if not IsStringEmpty(Player:GetAttribute'LastName') then
Name = Name .. ' ' .. Player:GetAttribute'LastName';
end

if not IsStringEmpty(Name) then Name = Name .. ']'; end

local Character = GetCharacter(Player);

if Character then
if Character and Character:FindFirstChild'Danger'
then [Link](Extra, 'D'); end
if Character:FindFirstChild'ManaAbilities' and
[Link]:FindFirstChild'ManaSprint' then [Link](Extra, 'D1');
end

if Character:FindFirstChild'Mana' then
[Link](Extra, 'M' .. [Link]([Link])); end
if Character:FindFirstChild'Vampirism' then
[Link](Extra, 'V'); end
if Character:FindFirstChild'Observe' then
[Link](Extra, 'ILL'); end
if Character:FindFirstChild'Inferi' then
[Link](Extra, 'NEC'); end
if Character:FindFirstChild'World\'s Pulse' then
[Link](Extra, 'DZIN'); end
if Character:FindFirstChild'Shift' then
[Link](Extra, 'MAD'); end
if Character:FindFirstChild'Head' and
[Link]:FindFirstChild'FacialMarking' then
local FM =
[Link]:FindFirstChild'FacialMarking';
if [Link] == '[Link]
id=4072968006' then
[Link](Extra, 'HEALER');
elseif [Link] ==
'[Link] then
[Link](Extra, 'SEER');
elseif [Link] ==
'[Link] then
[Link](Extra, 'JESTER');
elseif [Link] ==
'[Link] then
[Link](Extra, 'BLADE');
end
end
end
if Player:FindFirstChild'Backpack' then
if [Link]:FindFirstChild'Observe'
then [Link](Extra, 'ILL'); end
if [Link]:FindFirstChild'Inferi'
then [Link](Extra, 'NEC'); end
if [Link]:FindFirstChild'World\'s Pulse'
then [Link](Extra, 'DZIN'); end
if [Link]:FindFirstChild'Shift'
then [Link](Extra, 'MAD'); end
end

if #Extra > 0 then Name = Name .. ' [' ..


[Link](Extra, '-') .. ']'; end
end

return Name;
end;
};
[3541987450] = {
CustomPlayerTag = function(Player)
local Name = '';

if Player:FindFirstChild'leaderstats' then
Name = Name .. '\n[';
local Prefix = '';
local Extra = {};
if [Link]:FindFirstChild'Prestige' and
[Link] == 'IntValue' and
[Link] > 0 then
Name = Name .. '#' ..
tostring([Link]) .. ' ';
end
if [Link]:FindFirstChild'HouseRank' and
[Link]:FindFirstChild'Gender' and
[Link] == 'StringValue' and not
IsStringEmpty([Link]) then
Prefix = [Link] ==
'Owner' and ([Link] == 'Female' and 'Lady ' or 'Lord ') or
'';
end
if [Link]:FindFirstChild'FirstName' and
[Link] == 'StringValue' and not
IsStringEmpty([Link]) then
Name = Name .. '' .. Prefix ..
[Link];
end
if [Link]:FindFirstChild'LastName' and
[Link] == 'StringValue' and not
IsStringEmpty([Link]) then
Name = Name .. ' ' ..
[Link];
end
if [Link]:FindFirstChild'UberTitle' and
[Link] == 'StringValue' and not
IsStringEmpty([Link]) then
Name = Name .. ', ' ..
[Link];
end

if not IsStringEmpty(Name) then Name = Name .. ']'; end

local Character = GetCharacter(Player);

if Character then
if Character and Character:FindFirstChild'Danger'
then [Link](Extra, 'D'); end
if Character:FindFirstChild'ManaAbilities' and
[Link]:FindFirstChild'ManaSprint' then [Link](Extra, 'D1');
end

if Character:FindFirstChild'Mana' then
[Link](Extra, 'M' .. [Link]([Link])); end
if Character:FindFirstChild'Vampirism' then
[Link](Extra, 'V'); end
if Character:FindFirstChild'Observe'
then [Link](Extra, 'ILL'); end
if Character:FindFirstChild'Inferi' then
[Link](Extra, 'NEC'); end

if Character:FindFirstChild'World\'s Pulse' then


[Link](Extra, 'DZIN'); end
if Character:FindFirstChild'Head' and
[Link]:FindFirstChild'FacialMarking' then
local FM =
[Link]:FindFirstChild'FacialMarking';
if [Link] == '[Link]
id=4072968006' then
[Link](Extra, 'HEALER');
elseif [Link] ==
'[Link] then
[Link](Extra, 'SEER');
elseif [Link] ==
'[Link] then
[Link](Extra, 'JESTER');
end
end
end
if Player:FindFirstChild'Backpack' then
if [Link]:FindFirstChild'Observe'
then [Link](Extra, 'ILL'); end
if [Link]:FindFirstChild'Inferi'
then [Link](Extra, 'NEC'); end
if [Link]:FindFirstChild'World\'s Pulse'
then [Link](Extra, 'DZIN'); end
end

if #Extra > 0 then Name = Name .. ' [' ..


[Link](Extra, '-') .. ']'; end
end

return Name;
end;
};

[4691401390] = { -- Vast Realm


CustomCharacter = function(Player)
if workspace:FindFirstChild'Players' then
return [Link]:FindFirstChild([Link]);
end
end
};

[6032399813] = { -- Deepwoken [Etrean]


CustomPlayerTag = function(Player)
local Name = '';
CharacterName = Player:GetAttribute'CharacterName'; -- could use
leaderstats but lazy
if not IsStringEmpty(CharacterName) then
Name = ('\n[%s]'):format(CharacterName);
local Character = GetCharacter(Player);
local Extra = {};

if Character then
local Blood, Armor = Character:FindFirstChild('Blood'),
Character:FindFirstChild('Armor');

if Blood and [Link] == 'DoubleConstrainedValue' then


[Link](Extra, ('B%d'):format([Link]));
end

if Armor and [Link] == 'DoubleConstrainedValue' then


[Link](Extra, ('A%d'):format([Link]([Link] /
10)));
end
end

local BackpackChildren = [Link]:GetChildren()

for index = 1, #BackpackChildren do


local Oath = BackpackChildren[index]
if [Link] == 'Folder' and [Link]:find('Talent:Oath')
then
local OathName = [Link]:gsub('Talent:Oath: ', '')
[Link](Extra, OathName);
end
end

if #Extra > 0 then Name = Name .. ' [' .. [Link](Extra,


'-') .. ']'; end
end

return Name;
end;
};

[5735553160] = { -- Deepwoken [Depths]


CustomPlayerTag = function(Player)
local Name = '';
CharacterName = Player:GetAttribute'CharacterName'; -- could use
leaderstats but lazy

if not IsStringEmpty(CharacterName) then


Name = ('\n[%s]'):format(CharacterName);
local Character = GetCharacter(Player);
local Extra = {};

if Character then
local Blood, Armor =
Character:FindFirstChild('Blood'), Character:FindFirstChild('Armor');

if Blood and [Link] ==


'DoubleConstrainedValue' then
[Link](Extra, ('B
%d'):format([Link]));
end
if Armor and [Link] ==
'DoubleConstrainedValue' then
[Link](Extra, ('A
%d'):format([Link]([Link] / 10)));
end
end

local BackpackChildren = [Link]:GetChildren()

for index = 1, #BackpackChildren do


local Oath = BackpackChildren[index]
if [Link] == 'Folder' and
[Link]:find('Talent:Oath') then
local OathName = [Link]:gsub('Talent:Oath:
', '')
[Link](Extra, OathName);
end
end

if #Extra > 0 then Name = Name .. ' [' ..


[Link](Extra, '-') .. ']'; end
end

return Name;
end;
};

[3127094264] = {
CustomCharacter = function(Player)
if not _FIRST then
_FIRST = true

pcall(function()
local GPM =
rawget(require([Link]:WaitForChild('Client',
1e9):WaitForChild('Player', 1e9)), 'GetPlayerModel')
PList = [Link](GPM, 1)
end)
end

if PList then
local Player = rawget(PList, [Link])

if Player and [Link] then


return [Link]
end
end
end
}
};

if Modules[[Link]] ~= nil or Modules[[Link]] ~= nil then


local Module = Modules[[Link]] or Modules[[Link]]

if [Link] then
[Link]()
end
CustomPlayerTag = [Link] or nil
CustomESP = [Link] or nil
CustomCharacter = [Link] or nil
GetHealth = [Link] or nil
GetAliveState = [Link] or nil
CustomRootPartName = [Link] or nil
end

function GetCharacter(Player)
return CustomCharacter and CustomCharacter(Player) or [Link]
end

function GetMouseLocation()
return UserInputService:GetMouseLocation();
end

function MouseHoveringOver(Values)
local X1, Y1, X2, Y2 = Values[1], Values[2], Values[3], Values[4]
local MLocation = GetMouseLocation();
return (MLocation.x >= X1 and MLocation.x <= (X1 + (X2 - X1))) and
(MLocation.y >= Y1 and MLocation.y <= (Y1 + (Y2 - Y1)));
end

function GetTableData(t) -- basically [Link] i dont even know why i made


this
if typeof(t) ~= 'table' then return end

return setmetatable(t, {
__call = function(t, func)
if typeof(func) ~= 'function' then return end;
for i, v in pairs(t) do
pcall(func, i, v);
end
end;
});
end
local function Format(format, ...)
return [Link](format, ...);
end
function CalculateValue(Min, Max, Percent)
return Min + [Link](((Max - Min) * Percent) + .5);
end

function NewDrawing(InstanceName)
local Instance = [Link](InstanceName)

return (function(Properties)
for i, v in pairs(Properties) do
pcall(Set, Instance, i, v)
end

return Instance
end)
end

function Menu:AddMenuInstance(Name, DrawingType, Properties)


local Instance;

if [Link][Name] ~= nil then


Instance = [Link][Name];
for i, v in pairs(Properties) do
pcall(Set, Instance, i, v);
end
else
Instance = NewDrawing(DrawingType)(Properties);
end

[Link][Name] = Instance;

return Instance;
end
function Menu:UpdateMenuInstance(Name)
local Instance = [Link][Name];
if Instance ~= nil then
return (function(Properties)
for i, v in pairs(Properties) do
pcall(Set, Instance, i, v);
end
return Instance;
end)
end
end
function Menu:GetInstance(Name)
return [Link][Name];
end

local Options = setmetatable({}, {


__call = function(t, ...)
local Arguments = {...};
local Name = Arguments[1];
OIndex = OIndex + 1;
rawset(t, Name, setmetatable({
Name = Arguments[1];
Text = Arguments[2];
Value = Arguments[3];
DefaultValue = Arguments[3];
AllArgs = Arguments;
Index = OIndex;
}, {
__call = function(t, v, force)
local self = t;

if typeof([Link]) == 'function' then


[Link]();
elseif typeof([Link]) == 'EnumItem' then
local BT = Menu:GetInstance(Format('%s_BindText',
[Link]));
if not force then
Binding = true;
local Val = 0
while Binding do
wait();
Val = (Val + 1) % 17;
[Link] = Val <= 8 and '|' or '';
end
end
[Link] = force and v or BindedKey;
if BT and [Link] and [Link] then
[Link] = tostring([Link]):match'%w+%.%w+%.(.
+)';
[Link] = [Link] +
V2New([Link].X - [Link].X - 20, -10);
end
else
local NewValue = v;
if NewValue == nil then NewValue = not [Link]; end
rawset(t, 'Value', NewValue);

if Arguments[2] ~= nil and


Menu:GetInstance'TopBar'.Visible then
if typeof(Arguments[3]) == 'number' then
local AMT =
Menu:GetInstance(Format('%s_AmountText', [Link]));
if AMT then
[Link] = tostring([Link]);
end
else
local Inner =
Menu:GetInstance(Format('%s_InnerCircle', [Link]));
if Inner then [Link] = [Link];
end
end
end
end
end;
}));
end;
})

function Load()
local _, Result = pcall(readfile, OptionsFile);

if _ then -- extremely ugly code yea i know but i dont care p.s. i hate pcall
local _, Table = pcall([Link], HttpService, Result);
if _ and typeof(Table) == 'table' then
for i, v in pairs(Table) do
if typeof(Options[i]) == 'table' and Options[i].Value ~=
nil and (typeof(Options[i].Value) == 'boolean' or typeof(Options[i].Value) ==
'number') then
Options[i].Value = [Link];
pcall(Options[i], [Link]);
end
end

if [Link] then TeamColor = [Link]([Link].R,


[Link].G, [Link].B) end
if [Link] then EnemyColor =
[Link]([Link].R, [Link].G, [Link].B) end

if typeof([Link]) == 'string' then


[Link]([Link][[Link]], true) end
if typeof([Link]) == 'string' then
[Link]([Link][[Link]], true) end
end
end
end
Options('Enabled', 'ESP Enabled', true);
Options('ShowTeam', 'Show Team', true);
Options('ShowTeamColor', 'Show Team Color', false);
Options('ShowName', 'Show Names', true);
Options('ShowDistance', 'Show Distance', true);
Options('ShowHealth', 'Show Health', true);
Options('ShowBoxes', 'Show Boxes', true);
Options('ShowTracers', 'Show Tracers', true);
Options('ShowDot', 'Show Head Dot', false);
Options('VisCheck', 'Visibility Check', false);
Options('Crosshair', 'Crosshair', false);
Options('TextOutline', 'Text Outline', true);
-- Options('Rainbow', 'Rainbow Mode', false);
Options('TextSize', 'Text Size', syn and 18 or 14, 10, 24); -- cuz synapse fonts
look weird???
Options('MaxDistance', 'Max Distance', 2500, 100, 25000);
Options('RefreshRate', 'Refresh Rate (ms)', 5, 1, 200);
Options('YOffset', 'Y Offset', 0, -200, 200);
Options('MenuKey', 'Menu Key', [Link].F4, 1);
Options('ToggleKey', 'Toggle Key', [Link].F3, 1);
Options('ChangeColors', SENTINEL_LOADED and 'Sentinel Unsupported' or 'Change
Colors', function()
if SENTINEL_LOADED then return end

SubMenu:Show(GetMouseLocation(), 'Unnamed Colors', {


{
Type = 'Color'; Text = 'Team Color'; Color = TeamColor;

Function = function(Circ, Position)


if tick() - [Link] < 1 then return; end

if [Link] then
[Link]:Dispose() end
local ColorPicker = [Link](Position - V2New(-10,
50));
CurrentColorPicker = ColorPicker;
[Link] = CurrentColorPicker;
[Link]:Connect(function(Color) [Link]
= Color TeamColor = Color [Link] = Color end);
end
};
{
Type = 'Color'; Text = 'Enemy Color'; Color = EnemyColor;

Function = function(Circ, Position)


if tick() - [Link] < 1 then return; end

if [Link] then
[Link]:Dispose() end
local ColorPicker = [Link](Position - V2New(-10,
50));
CurrentColorPicker = ColorPicker;
[Link] = CurrentColorPicker;
[Link]:Connect(function(Color) [Link]
= Color EnemyColor = Color [Link] = Color end);
end
};
{
Type = 'Button'; Text = 'Reset Colors';
Function = function()
EnemyColor = [Link](1, 0, 0);
TeamColor = [Link](0, 1, 0);

local C1 = Menu:GetInstance'Sub-ColorPreview.1'; if C1 then


[Link] = TeamColor end
local C2 = Menu:GetInstance'Sub-ColorPreview.2'; if C2 then
[Link] = EnemyColor end
end
};
{
Type = 'Button'; Text = 'Rainbow Mode';

Function = function()
Rainbow = not Rainbow;
end
};
});
end, 2);
Options('ResetSettings', 'Reset Settings', function()
for i, v in pairs(Options) do
if Options[i] ~= nil and Options[i].Value ~= nil and Options[i].Text ~=
nil and (typeof(Options[i].Value) == 'boolean' or typeof(Options[i].Value) ==
'number' or typeof(Options[i].Value) == 'EnumItem') then
Options[i](Options[i].DefaultValue, true);
end
end
end, 5);
Options('LoadSettings', 'Load Settings', Load, 4);
Options('SaveSettings', 'Save Settings', function()
local COptions = {};

for i, v in pairs(Options) do
COptions[i] = v;
end

if typeof(TeamColor) == 'Color3' then [Link] = { R = TeamColor.R;


G = TeamColor.G; B = TeamColor.B } end
if typeof(EnemyColor) == 'Color3' then [Link] = { R =
EnemyColor.R; G = EnemyColor.G; B = EnemyColor.B } end

if typeof([Link]) == 'EnumItem' then [Link] =


[Link] end
if typeof([Link]) == 'EnumItem' then [Link] =
[Link] end

writefile(OptionsFile, HttpService:JSONEncode(COptions));
end, 3);

Load(1);

Options('MenuOpen', nil, true);

local function Combine(...)


local Output = {};
for i, v in pairs{...} do
if typeof(v) == 'table' then
[Link](v, function(i, v)
Output[i] = v;
end)
end
end
return Output
end

function LineBox:Create(Properties)
local Box = { Visible = true }; -- prevent errors not really though dont
worry bout the Visible = true thing

local Properties = Combine({


Transparency = 1;
Thickness = 3;
Visible = true;
}, Properties);

if shared.am_ic3 then -- sory just my preference, dynamic boxes will be


optional in unnamed esp v2
Box['OutlineSquare']= NewDrawing'Square'(Properties);
Box['Square'] = NewDrawing'Square'(Properties);
elseif QUAD_SUPPORTED_EXPLOIT then
Box['Quad'] = NewDrawing'Quad'(Properties);
else
Box['TopLeft'] = NewDrawing'Line'(Properties);
Box['TopRight'] = NewDrawing'Line'(Properties);
Box['BottomLeft'] = NewDrawing'Line'(Properties);
Box['BottomRight'] = NewDrawing'Line'(Properties);
end

function Box:Update(CF, Size, Color, Properties, Parts)


if not CF or not Size then return end

if shared.am_ic3 and typeof(Parts) == 'table' then


local AllCorners = {};

for i, v in pairs(Parts) do
-- if not v:IsA'BasePart' then continue end

local CF, Size = [Link], [Link];


-- CF, Size = [Link]:GetBoundingBox();

local Corners = {
[Link](CF.X + Size.X / 2, CF.Y + Size.Y / 2,
CF.Z + Size.Z / 2);
[Link](CF.X - Size.X / 2, CF.Y + Size.Y / 2,
CF.Z + Size.Z / 2);
[Link](CF.X - Size.X / 2, CF.Y - Size.Y / 2,
CF.Z - Size.Z / 2);
[Link](CF.X + Size.X / 2, CF.Y - Size.Y / 2,
CF.Z - Size.Z / 2);
[Link](CF.X - Size.X / 2, CF.Y + Size.Y / 2,
CF.Z - Size.Z / 2);
[Link](CF.X + Size.X / 2, CF.Y + Size.Y / 2,
CF.Z - Size.Z / 2);
[Link](CF.X - Size.X / 2, CF.Y - Size.Y / 2,
CF.Z + Size.Z / 2);
[Link](CF.X + Size.X / 2, CF.Y - Size.Y / 2,
CF.Z + Size.Z / 2);
};

for i, v in pairs(Corners) do
[Link](AllCorners, v);
end

-- break
end

local xMin, yMin = [Link].X, [Link].Y;


local xMax, yMax = 0, 0;
local Vs = true;

for i, v in pairs(AllCorners) do
local Position, V = WorldToViewport(v);

if VS and not V then Vs = false break end

if Position.X > xMax then


xMax = Position.X;
end
if Position.X < xMin then
xMin = Position.X;
end
if Position.Y > yMax then
yMax = Position.Y;
end
if Position.Y < yMin then
yMin = Position.Y;
end
end

local xSize, ySize = xMax - xMin, yMax - yMin;

local Outline = Box['OutlineSquare'];


local Square = Box['Square'];
[Link] = Vs;
[Link] = Vs;
[Link] = V2New(xMin, yMin);
[Link] = Color;
[Link] = [Link]([Link] * 0.3);
-- [Link] = V2New(xMin, yMin);
[Link] = V2New(xSize, ySize);
[Link] = [Link];
[Link] = [Link];
[Link] = [Link](0.12, 0.12, 0.12);
[Link] = 0.75;

return
end

local TLPos, Visible1 = WorldToViewport((CF * [Link]( Size.X,


Size.Y, 0)).Position);
local TRPos, Visible2 = WorldToViewport((CF * [Link](-Size.X,
Size.Y, 0)).Position);
local BLPos, Visible3 = WorldToViewport((CF * [Link]( Size.X, -
Size.Y, 0)).Position);
local BRPos, Visible4 = WorldToViewport((CF * [Link](-Size.X, -
Size.Y, 0)).Position);
local Quad = Box['Quad'];

if QUAD_SUPPORTED_EXPLOIT then
if Visible1 and Visible2 and Visible3 and Visible4 then
[Link] = true;
[Link] = Color;
[Link] = V2New(TLPos.X, TLPos.Y);
[Link] = V2New(TRPos.X, TRPos.Y);
[Link] = V2New(BRPos.X, BRPos.Y);
[Link] = V2New(BLPos.X, BLPos.Y);
else
Box['Quad'].Visible = false;
end
else
Visible1 = TLPos.Z > 0 -- (commented | reason: random flashes);
Visible2 = TRPos.Z > 0 -- (commented | reason: random flashes);
Visible3 = BLPos.Z > 0 -- (commented | reason: random flashes);
Visible4 = BRPos.Z > 0 -- (commented | reason: random flashes);

-- ## BEGIN UGLY CODE


if Visible1 then
Box['TopLeft'].Visible = true;
Box['TopLeft'].Color = Color;
Box['TopLeft'].From = V2New(TLPos.X,
TLPos.Y);
Box['TopLeft'].To = V2New(TRPos.X, TRPos.Y);
else
Box['TopLeft'].Visible = false;
end
if Visible2 then
Box['TopRight'].Visible = true;
Box['TopRight'].Color = Color;
Box['TopRight'].From = V2New(TRPos.X, TRPos.Y);
Box['TopRight'].To = V2New(BRPos.X,
BRPos.Y);
else
Box['TopRight'].Visible = false;
end
if Visible3 then
Box['BottomLeft'].Visible = true;
Box['BottomLeft'].Color = Color;
Box['BottomLeft'].From = V2New(BLPos.X, BLPos.Y);
Box['BottomLeft'].To = V2New(TLPos.X, TLPos.Y);
else
Box['BottomLeft'].Visible = false;
end
if Visible4 then
Box['BottomRight'].Visible = true;
Box['BottomRight'].Color = Color;
Box['BottomRight'].From = V2New(BRPos.X, BRPos.Y);
Box['BottomRight'].To = V2New(BLPos.X, BLPos.Y);
else
Box['BottomRight'].Visible = false;
end
if Properties and typeof(Properties) == 'table' then
GetTableData(Properties)(function(i, v)
pcall(Set, Box['TopLeft'], i, v);
pcall(Set, Box['TopRight'], i, v);
pcall(Set, Box['BottomLeft'], i, v);
pcall(Set, Box['BottomRight'], i, v);
end)
end
-- ## END UGLY CODE
end
end
function Box:SetVisible(bool)
if shared.am_ic3 then
Box['Square'].Visible = bool;
Box['OutlineSquare'].Visible = bool;
elseif [Link] then
[Link] = false
elseif [Link] and [Link] and [Link] and
[Link] then
[Link] = bool
[Link] = bool
[Link] = bool
[Link] = bool
end
end
function Box:Remove()
self:SetVisible(false)

if shared.am_ic3 then
Box['Square']:Remove()
Box['OutlineSquare']:Remove()
elseif [Link] then
Box['Quad']:Remove()
elseif [Link] and [Link] and [Link] and
[Link] then
[Link]:Remove()
[Link]:Remove()
[Link]:Remove()
[Link]:Remove()
end
end

return Box;
end

local Colors = {
White = [Link]'ffffff',
Primary = {
Main = [Link]'424242',
Light = [Link]'6d6d6d',
Dark = [Link]'1b1b1b'
},
Secondary = {
Main = [Link]'e0e0e0',
Light = [Link]'ffffff',
Dark = [Link]'aeaeae'
}
}

function Connections:Listen(Connection, Function)


local NewConnection = Connection:Connect(Function);
[Link]([Link], NewConnection);
return NewConnection;
end

function Connections:DisconnectAll()
for Index, Connection in pairs([Link]) do
if [Link] then
Connection:Disconnect();
end
end

[Link] = {};
end

function [Link]()
local self = setmetatable({ _BindableEvent = [Link]'BindableEvent' },
Signal);

return self;
end

function Signal:Connect(Callback)
assert(typeof(Callback) == 'function', 'function expected; got ' ..
typeof(Callback));

return self._BindableEvent.Event:Connect(function(...) Callback(...) end);


end

function Signal:Fire(...)
self._BindableEvent:Fire(...);
end

function Signal:Wait()
local Arguments = self._BindableEvent:Wait();

return Arguments;
end

function Signal:Disconnect()
if self._BindableEvent then
self._BindableEvent:Destroy();
end
end

local function GetMouseLocation()


return UserInputService:GetMouseLocation();
end

local function IsMouseOverDrawing(Drawing, MousePosition)


local TopLeft = [Link];
local BottomRight = [Link] + [Link];
local MousePosition = MousePosition or GetMouseLocation();

return MousePosition.X > TopLeft.X and MousePosition.Y > TopLeft.Y and


MousePosition.X < BottomRight.X and MousePosition.Y < BottomRight.Y;
end

local ImageCache = {};

local function SetImage(Drawing, Url)


local Data = IsSynapse and game:HttpGet(Url) or Url;
Drawing[IsSynapse and 'Data' or 'Uri'] = ImageCache[Url] or Data;
ImageCache[Url] = Data;

if not IsSynapse then repeat wait() until [Link]; end


end

-- oh god unnamed esp needs an entire rewrite, someone make a better one pls im too
lazy
-- btw the color picker was made seperately so it doesnt fit with the code of
unnamed esp

local function CreateDrawingsTable()


local Drawings = { __Objects = {} };
local Metatable = {};

function Metatable.__index(self, Index)


local Object = rawget(self.__Objects, Index);

if not Object or (IsSynapse and not Object.__SELF.__OBJECT_EXISTS) then


local Type = Index:sub(1, Index:find'-' - 1);

Success, Object = pcall([Link], Type);

if not Object or not Success then return function() end; end

self.__Objects[Index] = setmetatable({ __SELF = Object; Type = Type },


{
__call = function(self, Properties)
local Object = rawget(self, '__SELF'); if IsSynapse and not
Object.__OBJECT_EXISTS then return false, 'render object destroyed'; end

if Properties == false then


[Link] = false;
[Link] = 0;
Object:Remove();

return true;
end

if typeof(Properties) == 'table' then


for Property, Value in pairs(Properties) do
local CanSet = true;

if [Link] == 'Image' and not IsSynapse and Property


== 'Size' and typeof(Value) == 'Vector2' then
CanSet = false;

spawn(function()
repeat wait() until [Link];
if not [Link] then rawset(self,
'DefaultSize', [Link]) end

Property = 'ScaleFactor';
Value = Value.X / [Link].X;

Object[Property] = Value
end)
end
if CanSet then Object[Property] = Value end
end
end

return Object;
end
});

[Link] = true;
[Link] = 1; -- Transparency is really Opacity with drawing
api (1 being visible, 0 being invisible)

if Type == 'Text' then


if [Link] then [Link] = [Link] end
[Link] = 20;
[Link] = [Link](1, 1, 1);
[Link] = true;
[Link] = true;
OutlineOpacity = 0.5;
elseif Type == 'Square' or Type == 'Rectangle' then
[Link] = 2;
[Link] = false;
end

return self.__Objects[Index];
end

return Object;
end

function Metatable.__call(self, Delete, ...)


local Arguments = {Delete, ...};

if Delete == false then


for Index, Drawing in pairs(rawget(self, '__Objects')) do
Drawing(false);
end
end
end

return setmetatable(Drawings, Metatable);


end

local Images = {}

spawn(function()
[Link] = '[Link]
[Link] = '[Link]
end)

function [Link](Position, Size, Color)


[Link] = tick();
[Link] = true;

local self = { Color = Color or [Link](1, 1, 1); HSV = { H = 0, S = 1, V =


1 } };
local Drawings = CreateDrawingsTable();
local Position = Position or V2New();
local Size = Size or 150;
local Padding = { 10, 10, 10, 10 };

[Link] = [Link]();

local Background = Drawings['Square-Background'] {


Color = [Link](33, 33, 33);
Filled = false;
Visible = false;
Position = Position - V2New(Padding[4], Padding[1]);
Size = V2New(Size, Size) + V2New(Padding[4] + Padding[2], Padding[1] +
Padding[3]);
};
local ColorPreview = Drawings['Circle-Preview'] {
Position = Position + (V2New(Size, Size) / 2);
Radius = Size / 2 - 8;
Filled = true;
Thickness = 0;
NumSides = 20;
Color = [Link](1, 0, 0);
};
local Main = Drawings['Image-Main'] {
Position = Position;
Size = V2New(Size, Size);
}; SetImage(Main, [Link]);
local Preview = Drawings['Square-Preview'] {
Position = [Link] + ([Link] / 4.5);
Size = [Link] / 1.75;
Color = [Link](1, 0, 0);
Filled = true;
Thickness = 0;
};
local Overlay = Drawings['Image-Overlay'] {
Position = [Link];
Size = [Link];
Transparency = 1;
}; SetImage(Overlay, [Link]);
local CursorOutline = Drawings['Circle-CursorOutline'] {
Radius = 4;
Thickness = 2;
Filled = false;
Color = [Link](0.2, 0.2, 0.2);
Position = V2New([Link].X + [Link].X - 10, [Link].Y +
([Link].Y / 2));
};
local Cursor = Drawings['Circle-Cursor'] {
Radius = 3;
Transparency = 1;
Filled = true;
Color = [Link](1, 1, 1);
Position = [Link];
};
local CursorOutline = Drawings['Circle-CursorOutlineSquare'] {
Radius = 4;
Thickness = 2;
Filled = false;
Color = [Link](0.2, 0.2, 0.2);
Position = V2New([Link].X + [Link].X - 2,
[Link].Y + 2);
};
Drawings['Circle-CursorSquare'] {
Radius = 3;
Transparency = 1;
Filled = true;
Color = [Link](1, 1, 1);
Position = [Link];
};

function self:UpdatePosition(Input)
local MousePosition = V2New([Link].X, [Link].Y + 33);

if [Link] then
if [Link] == 'Ring' then
local Main = [Link]['Image-Main'] ();
local Preview = [Link]['Square-Preview'] ();
local Bounds = [Link] / 2;
local Center = [Link] + Bounds;
local Relative = MousePosition - Center;
local Direction = [Link];
local Position = Center + Direction * [Link].X / 2.15;
local H = (math.atan2(Position.Y - Center.Y, Position.X -
Center.X)) * 60;
if H < 0 then H = 360 + H; end
H = H / 360;
[Link].H = H;
local EndColor = [Link](H, [Link].S, [Link].V); if
EndColor ~= [Link] then [Link]:Fire([Link]); end
local Pointer = [Link]['Circle-Cursor'] { Position =
Position };
[Link]['Circle-CursorOutline'] { Position = [Link]
};
Bounds = Bounds * 2;
[Link] = [Link](H, 1, 1);
[Link] = EndColor;
[Link]['Circle-Preview'] { Color = EndColor };
elseif [Link] == 'HL' then
local Preview = [Link]['Square-Preview'] ();
local HSV = [Link];
local Position = V2New([Link](MousePosition.X,
[Link].X, [Link].X + [Link].X),
[Link](MousePosition.Y, [Link].Y, [Link].Y +
[Link].Y));
HSV.S = (Position.X - [Link].X) / [Link].X;
HSV.V = 1 - (Position.Y - [Link].Y) / [Link].Y;
local EndColor = [Link](HSV.H, HSV.S, HSV.V); if EndColor
~= [Link] then [Link]:Fire([Link]); end
[Link] = EndColor;
[Link]['Circle-Preview'] { Color = EndColor };
local Pointer = [Link]['Circle-CursorSquare'] { Position =
Position };
[Link]['Circle-CursorOutlineSquare'] { Position =
[Link] };
end
end
end

function self:HandleInput(Input, P, Type)


if Type == 'Began' then
if [Link] == 'MouseButton1' then
local Main = [Link]['Image-Main'] ();
local SquareSV = [Link]['Square-Preview'] ();
local MousePosition = V2New([Link].X, [Link].Y +
33);
[Link] = true;
local Bounds = [Link] / 2;
local Center = [Link] + Bounds;
local R = (MousePosition - Center);

if [Link] < Bounds.X and [Link] > Bounds.X - 20 then


[Link] = 'Ring';
end

if MousePosition.X > [Link].X and MousePosition.Y >


[Link].Y and MousePosition.X < [Link].X + [Link].X and
MousePosition.Y < [Link].Y + [Link].Y then
[Link] = 'HL';
end

self:UpdatePosition(Input, P);
end
elseif Type == 'Changed' then
if [Link] == 'MouseMovement' then
self:UpdatePosition(Input, P);
end
elseif Type == 'Ended' and [Link] == 'MouseButton1' then
[Link] = nil;
end
end

function self:Dispose()
[Link](false);
[Link] = nil;
[Link] = nil;
Connections:DisconnectAll(); -- scuffed tbh
end

Connections:Listen([Link], function(Input, Process)


self:HandleInput(Input, Process, 'Began');
end);
Connections:Listen([Link], function(Input, Process)
if [Link] == 'MouseMovement' then
local MousePosition = V2New([Link].X, [Link].Y +
33);
local Cursor = [Link]['Triangle-Cursor'] {
Filled = true;
Color = [Link](0.9, 0.9, 0.9);
PointA = MousePosition + V2New(0, 0);
PointB = MousePosition + V2New(12, 14);
PointC = MousePosition + V2New(0, 18);
Thickness = 0;
};
end
self:HandleInput(Input, Process, 'Changed');
end);
Connections:Listen([Link], function(Input, Process)
self:HandleInput(Input, Process, 'Ended');
if [Link] == 'MouseButton1' then
[Link] = false
end
end)

[Link] = false

[Link] = Drawings

return self
end

function SubMenu:Show(Position, Title, Options)


[Link] = true;

local Visible = true;


local BasePosition = Position;
local BaseSize = V2New(200, 140);
local End = BasePosition + BaseSize;

[Link] = { BasePosition.X, BasePosition.Y, End.X, End.Y };

delay(0.025, function()
if not [Link] then return; end

Menu:AddMenuInstance('Sub-Main', 'Square', {
Size = BaseSize;
Position = BasePosition;
Filled = false;
Color = [Link];
Thickness = 3;
Visible = Visible;
});
end);
Menu:AddMenuInstance('Sub-TopBar', 'Square', {
Position = BasePosition;
Size = V2New(BaseSize.X, 10);
Color = [Link];
Filled = true;
Visible = Visible;
});
Menu:AddMenuInstance('Sub-TopBarTwo', 'Square', {
Position = BasePosition + V2New(0, 10);
Size = V2New(BaseSize.X, 20);
Color = [Link];
Filled = true;
Visible = Visible;
});
Menu:AddMenuInstance('Sub-TopBarText', 'Text', {
Size = 20;
Position = [Link]['Sub-
TopBarTwo'].Position + V2New(15, -3);
Text = Title or '';
Color = [Link];
Visible = Visible;
});
Menu:AddMenuInstance('Sub-Filling', 'Square', {
Size = BaseSize - V2New(0, 30);
Position = BasePosition + V2New(0, 30);
Filled = true;
Color = [Link];
Transparency= .75;
Visible = Visible;
});

if Options then
for Index, Option in pairs(Options) do -- currently only supports color
and button(but color is a button so), planning on fully rewriting or something
local function GetName(Name) return ('Sub-%s.%d'):format(Name,
Index) end
local Position = [Link]['Sub-
Filling'].Position + V2New(20, Index * 25 - 10);
-- local BasePosition =
[Link] + V2New(30, [Link] * 25 - 10);

if [Link] == 'Color' then


local ColorPreview =
Menu:AddMenuInstance(GetName'ColorPreview', 'Circle', {
Position = Position;
Color = [Link];
Radius = IsSynapse and 10 or 10;
NumSides = 10;
Filled = true;
Visible = true;
});
local Text = Menu:AddMenuInstance(GetName'Text', 'Text', {
Text = [Link];
Position = [Link] + V2New(15, -8);
Size = 16;
Color = [Link];
Visible = true;
});
UIButtons[#UIButtons + 1] = {
FromSubMenu = true;
Option = function() return
[Link](ColorPreview, BasePosition + V2New(BaseSize.X, 0)) end;
Instance = Menu:AddMenuInstance(Format('%s_Hitbox',
GetName'Button'), 'Square', {
Position = Position - V2New(20, 12);
Size = V2New(BaseSize.X, 25);
Visible = false;
});
};
elseif [Link] == 'Button' then
UIButtons[#UIButtons + 1] = {
FromSubMenu = true;
Option = [Link];
Instance = Menu:AddMenuInstance(Format('%s_Hitbox',
GetName'Button'), 'Square', {
Size = V2New(BaseSize.X, 20) - V2New(20,
0);
Visible = true;
Transparency= .5;
Position = Position - V2New(10, 10);
Color = [Link];
Filled = true;
});
};
local Text = Menu:AddMenuInstance(Format('%s_Text',
GetName'Text'), 'Text', {
Text = [Link];
Size = 18;
Position = Position + V2New(5, -10);
Visible = true;
Color = [Link];
});
end
end
end
end

function SubMenu:Hide()
[Link] = false;

for i, v in pairs([Link]) do
if i:sub(1, 3) == 'Sub' then
[Link] = false;

if i:sub(4, 4) == ':' then -- ';' = Temporary so remove


v:Remove();
[Link][i] = nil;
end
end
end

for i, Button in pairs(UIButtons) do


if [Link] then
UIButtons[i] = nil;
end
end

spawn(function() -- stupid bug happens if i dont use this


for i = 1, 10 do
if [Link] then -- dont know why
'CurrentColorPicker' isnt a variable in this
[Link]:Dispose();
end
wait(0.1);
end
end)

CurrentColorPicker = nil;
end

function CreateMenu(NewPosition) -- Create Menu


MenuLoaded = false;
UIButtons = {};
Sliders = {};

local BaseSize = V2New(300, 625);


local BasePosition = NewPosition or V2New([Link].X / 8 -
(BaseSize.X / 2), [Link].Y / 2 - (BaseSize.Y / 2));

BasePosition = V2New([Link](BasePosition.X, 0, [Link].X),


[Link](BasePosition.Y, 0, [Link].Y));

Menu:AddMenuInstance('CrosshairX', 'Line', {
Visible = false;
Color = [Link](0, 1, 0);
Transparency = 1;
Thickness = 1;
});
Menu:AddMenuInstance('CrosshairY', 'Line', {
Visible = false;
Color = [Link](0, 1, 0);
Transparency = 1;
Thickness = 1;
});

delay(.025, function() -- since zindex doesnt exist


Menu:AddMenuInstance('Main', 'Square', {
Size = BaseSize;
Position = BasePosition;
Filled = false;
Color = [Link];
Thickness = 3;
Visible = true;
});
end);
Menu:AddMenuInstance('TopBar', 'Square', {
Position = BasePosition;
Size = V2New(BaseSize.X, 15);
Color = [Link];
Filled = true;
Visible = true;
});
Menu:AddMenuInstance('TopBarTwo', 'Square', {
Position = BasePosition + V2New(0, 15);
Size = V2New(BaseSize.X, 45);
Color = [Link];
Filled = true;
Visible = true;
});
Menu:AddMenuInstance('TopBarText', 'Text', {
Size = 25;
Position = [Link] +
V2New(25, 10);
Text = 'Unnamed ESP';
Color = [Link];
Visible = true;
Transparency= 1; -- proto outline fix
Outline = true;
OutlineOpacity = 0.5;
});
Menu:AddMenuInstance('TopBarTextBR', 'Text', {
Size = 18;
Position = [Link] +
V2New(BaseSize.X - 75, 25);
Text = 'by ic3w0lf';
Color = [Link];
Visible = true;
Transparency= 1;
Outline = true;
OutlineOpacity = 0.5;
});
Menu:AddMenuInstance('Filling', 'Square', {
Size = BaseSize - V2New(0, 60);
Position = BasePosition + V2New(0, 60);
Filled = true;
Color = [Link];
Transparency= .35;
Visible = true;
});

local CPos = 0;

GetTableData(Options)(function(i, v)
if typeof([Link]) == 'boolean' and not IsStringEmpty([Link]) and
[Link] ~= nil then
CPos = CPos + 25;
local BaseSize = V2New(BaseSize.X, 30);
local BasePosition =
[Link] + V2New(30, [Link] * 25 - 10);
UIButtons[#UIButtons + 1] = {
Option = v;
Instance = Menu:AddMenuInstance(Format('%s_Hitbox',
[Link]), 'Square', {
Position = BasePosition - V2New(30, 15);
Size = BaseSize;
Visible = false;
});
};
Menu:AddMenuInstance(Format('%s_OuterCircle', [Link]), 'Circle',
{
Radius = 10;
Position = BasePosition;
Color = [Link];
Filled = true;
Visible = true;
});
Menu:AddMenuInstance(Format('%s_InnerCircle', [Link]), 'Circle',
{
Radius = 7;
Position = BasePosition;
Color = [Link];
Filled = true;
Visible = [Link];
});
Menu:AddMenuInstance(Format('%s_Text', [Link]), 'Text', {
Text = [Link];
Size = 20;
Position = BasePosition + V2New(20, -10);
Visible = true;
Color = [Link];
Transparency= 1;
Outline = true;
OutlineOpacity = 0.5;
});
end
end)
GetTableData(Options)(function(i, v) -- just to make sure certain things are
drawn before or after others, too lazy to actually sort table
if typeof([Link]) == 'number' then
CPos = CPos + 25;
local BaseSize = V2New(BaseSize.X, 30);
local BasePosition =
[Link] + V2New(0, CPos - 10);

local Line =
Menu:AddMenuInstance(Format('%s_SliderLine', [Link]), 'Square', {
Transparency = 1;
Color = [Link];
-- Thickness = 3;
Filled = true;
Visible = true;
Position = BasePosition + V2New(15, -5);
Size = BaseSize - V2New(30, 10);
Transparency = 0.5;
});
local Slider =
Menu:AddMenuInstance(Format('%s_Slider', [Link]), 'Square', {
Visible = true;
Filled = true;
Color = [Link];
Size = V2New(5, [Link].Y);
Transparency = 0.5;
});
local Text = Menu:AddMenuInstance(Format('%s_Text',
[Link]), 'Text', {
Text = [Link];
Size = 20;
Center = true;
Transparency = 1;
Outline = true;
OutlineOpacity = 0.5;
Visible = true;
Color = [Link];
}); [Link] = [Link] + ([Link] / 2) - V2New(0,
[Link].Y / 1.75);
local AMT =
Menu:AddMenuInstance(Format('%s_AmountText', [Link]), 'Text', {
Text = tostring([Link]);
Size = 22;
Center = true;
Transparency = 1;
Outline = true;
OutlineOpacity = 0.5;
Visible = true;
Color = [Link];
Position = [Link];
});

local CSlider = {Slider = Slider; Line = Line; Min =


[Link][4]; Max = [Link][5]; Option = v};
local Dummy = [Link]'NumberValue';

Dummy:GetPropertyChangedSignal'Value':Connect(function()
[Link] = [Link];
-- [Link] = 1 - [Link];
[Link] = 1 - [Link];
end);

[Link] = 1;
function CSlider:ShowValue(Bool)
[Link] = Bool;

TweenService:Create(Dummy, [Link](0.5,
[Link], [Link]), { Value = Bool and 0 or
1 }):Play();
end

Sliders[#Sliders + 1] = CSlider;

-- local Percent = ([Link] / [Link]) * 100;


-- local Size = [Link]([Link].X - [Link].X);
-- local Value = Size * (Percent / 100); -- this shit's
inaccurate but fuck it i'm not even gonna bother fixing it

[Link] = [Link] + V2New(35, 0);

[Link] = BaseSize;
[Link] = BasePosition;
-- [Link] = BasePosition + V2New(BaseSize.X -
[Link].X - 10, -10)
end
end)
local FirstItem = false;
GetTableData(Options)(function(i, v) -- just to make sure certain things are
drawn before or after others, too lazy to actually sort table
if typeof([Link]) == 'EnumItem' then
CPos = CPos + (not FirstItem and 30 or 25);
FirstItem = true;

local BaseSize = V2New(BaseSize.X, FirstItem and 30 or


25);
local BasePosition =
[Link] + V2New(0, CPos - 10);

UIButtons[#UIButtons + 1] = {
Option = v;
Instance = Menu:AddMenuInstance(Format('%s_Hitbox',
[Link]), 'Square', {
Size = V2New(BaseSize.X, 20) - V2New(30, 0);
Visible = true;
Transparency= .5;
Position = BasePosition + V2New(15, -10);
Color = [Link];
Filled = true;
});
};
local Text = Menu:AddMenuInstance(Format('%s_Text',
[Link]), 'Text', {
Text = [Link];
Size = 20;
Position = BasePosition + V2New(20, -10);
Visible = true;
Color = [Link];
Transparency= 1;
Outline = true;
OutlineOpacity = 0.5;
});
local BindText = Menu:AddMenuInstance(Format('%s_BindText',
[Link]), 'Text', {
Text = tostring([Link]):match'%w+%.%w+%.(.+)';
Size = 20;
Position = BasePosition;
Visible = true;
Color = [Link];
Transparency= 1;
Outline = true;
OutlineOpacity = 0.5;
});

Options[i].BaseSize = BaseSize;
Options[i].BasePosition = BasePosition;
[Link] = BasePosition + V2New(BaseSize.X -
[Link].X - 20, -10);
end
end)
GetTableData(Options)(function(i, v) -- just to make sure certain things are
drawn before or after others, too lazy to actually sort table
if typeof([Link]) == 'function' then
local BaseSize = V2New(BaseSize.X, 30);
local BasePosition =
[Link] + V2New(0, CPos + (25 *
[Link][4]) - 35);

UIButtons[#UIButtons + 1] = {
Option = v;
Instance = Menu:AddMenuInstance(Format('%s_Hitbox',
[Link]), 'Square', {
Size = V2New(BaseSize.X, 20) - V2New(30, 0);
Visible = true;
Transparency= .5;
Position = BasePosition + V2New(15, -10);
Color = [Link];
Filled = true;
});
};
local Text = Menu:AddMenuInstance(Format('%s_Text',
[Link]), 'Text', {
Text = [Link];
Size = 20;
Position = BasePosition + V2New(20, -10);
Visible = true;
Color = [Link];
Transparency= 1;
Outline = true;
OutlineOpacity = 0.5;
});

-- [Link] = BasePosition + V2New(BaseSize.X -


[Link].X - 10, -10);
end
end)

delay(.1, function()
MenuLoaded = true;
end);
-- this has to be at the bottom cuz proto drawing api doesnt have
zindex :triumph:
Menu:AddMenuInstance('Cursor1', 'Line', {
Visible = false;
Color = [Link](1, 0, 0);
Transparency = 1;
Thickness = 2;
});
Menu:AddMenuInstance('Cursor2', 'Line', {
Visible = false;
Color = [Link](1, 0, 0);
Transparency = 1;
Thickness = 2;
});
Menu:AddMenuInstance('Cursor3', 'Line', {
Visible = false;
Color = [Link](1, 0, 0);
Transparency = 1;
Thickness = 2;
});
end

CreateMenu();
delay(0.1, function()
SubMenu:Show(V2New()); -- Create the submenu
SubMenu:Hide();
end);

shared.UESP_InputChangedCon = [Link]:Connect(function(input)
if [Link] == 'MouseMovement' and [Link]
then
for i, v in pairs(Sliders) do
local Values = {
[Link].X;
[Link].Y;
[Link].X + [Link].X;
[Link].Y + [Link].Y;
};
if MouseHoveringOver(Values) then
v:ShowValue(true);
else
if not MouseHeld then v:ShowValue(false); end
end
end
end
end)
shared.UESP_InputBeganCon = [Link]:Connect(function(input)
if [Link] == 'MouseButton1' and [Link] then
MouseHeld = true;
local Bar = Menu:GetInstance'TopBar';
local Values = {
[Link].X;
[Link].Y;
[Link].X + [Link].X;
[Link].Y + [Link].Y;
}
if MouseHoveringOver(Values) then
DraggingUI = true;
DragOffset = Menu:GetInstance'Main'.Position -
GetMouseLocation();
else
for i, v in pairs(Sliders) do
local Values = {
[Link].X;
[Link].Y;
[Link].X + [Link].X;
[Link].Y + [Link].Y;
-- [Link].X - ([Link]);
-- [Link].Y - ([Link]);
-- [Link].X + ([Link]);
-- [Link].Y + ([Link]);
};
if MouseHoveringOver(Values) then
DraggingWhat = v;
Dragging = true;
break
end
end

if not Dragging then


local Values = {
TracerPosition.X - 10;
TracerPosition.Y - 10;
TracerPosition.X + 10;
TracerPosition.Y + 10;
};
if MouseHoveringOver(Values) then
DragTracerPosition = true;
end
end
end
end
end)
shared.UESP_InputEndedCon = [Link]:Connect(function(input)
if [Link] == 'MouseButton1' and [Link] then
MouseHeld = false;
DragTracerPosition = false;
local IgnoreOtherInput = false;

if [Link] and not MouseHoveringOver([Link]) then


if CurrentColorPicker and
IsMouseOverDrawing([Link]['Square-Background']()) then
IgnoreOtherInput = true; end
if not IgnoreOtherInput then SubMenu:Hide() end
end

if not IgnoreOtherInput then


for i, v in pairs(UIButtons) do
if [Link] and MouseHoveringOver([Link]) and
not [Link] then continue end

local Values = {
[Link].X;
[Link].Y;
[Link].X + [Link].X;
[Link].Y + [Link].Y;
};
if MouseHoveringOver(Values) then
[Link]();
IgnoreOtherInput = true;
break -- prevent clicking 2 options
end
end
for i, v in pairs(Sliders) do
if IgnoreOtherInput then break end

local Values = {
[Link].X;
[Link].Y;
[Link].X + [Link].X;
[Link].Y + [Link].Y;
};
if not MouseHoveringOver(Values) then
v:ShowValue(false);
end
end
end
elseif [Link] == 'MouseButton2' and [Link]
and not DragTracerPosition then
local Values = {
TracerPosition.X - 10;
TracerPosition.Y - 10;
TracerPosition.X + 10;
TracerPosition.Y + 10;
}
if MouseHoveringOver(Values) then
DragTracerPosition = false;
TracerPosition = V2New([Link].X / 2,
[Link].Y - 135);
end
elseif [Link] == 'Keyboard' then
if Binding then
BindedKey = [Link];
Binding = false;
elseif [Link] == [Link] or ([Link] ==
[Link] and UserInputService:IsKeyDown([Link])) then
[Link]();
elseif [Link] == [Link] then
[Link]();
elseif [Link] == 'F1' and
UserInputService:IsMouseButtonPressed(1) and shared.am_ic3 then -- hehe hiden
spectate feature cuz why not
local HD, LPlayer, LCharacter = 0.95;

for i, Player in pairs(Players:GetPlayers()) do


local Character = GetCharacter(Player);

if Player ~= LocalPlayer and Player ~= Spectating and


Character and Character:FindFirstChild'HumanoidRootPart' then
local Head = Character:FindFirstChild'Head';
local Humanoid =
Character:FindFirstChildOfClass'Humanoid';

if Head then
local Distance = ([Link] -
[Link]).Magnitude;
if Distance > [Link] then
continue; end

local Direction = -([Link] -


[Link]).unit;
local Relative = [Link] -
[Link];
local Unit = [Link];

local DP = Direction:Dot(Unit);

if DP > HD then
HD = DP;
LPlayer = Player;
LCharacter = Character;
end
end
end
end

if LPlayer and LPlayer ~= Spectating and LCharacter then


[Link] = [Link];
Spectating = LPlayer;
else
if [Link] and
[Link]:FindFirstChildOfClass'Humanoid' then
[Link] =
[Link]:FindFirstChildOfClass'Humanoid';
Spectating = nil;
end
end
end
end
end)

local function CameraCon() -- unnamed esp v1 sucks

[Link]:GetPropertyChangedSignal'ViewportSize':Connect(function()
TracerPosition = V2New([Link].X / 2, [Link].Y
- 135);
end);
end

CameraCon();

local function ToggleMenu()


if [Link] then
GetTableData([Link])(function(i, v)
if OldData[v] then
pcall(Set, v, 'Visible', true);
end
end)
else
GetTableData([Link])(function(i, v)
OldData[v] = [Link];
if [Link] then
pcall(Set, v, 'Visible', false);
end
end)
end
end

local LastRayIgnoreUpdate, RayIgnoreList = 0, {}

local function CheckRay(Instance, Distance, Position, Unit)


local Pass = true;
local Model = Instance;

if Distance > 999 then return false; end

if [Link] == 'Player' then


Model = GetCharacter(Instance);
end

if not Model then


Model = [Link];

if [Link] == workspace then


Model = Instance;
end
end

if not Model then return false end

local _Ray = [Link](Position, Unit * Distance)

if tick() - LastRayIgnoreUpdate > 3 then


LastRayIgnoreUpdate = tick()

[Link](RayIgnoreList)

[Link](RayIgnoreList, [Link])
[Link](RayIgnoreList, Camera)

if [Link] then [Link](RayIgnoreList,


[Link]) end

if #IgnoreList > 64 then


while #IgnoreList > 64 do
[Link](IgnoreList, 1)
end
end

for i, v in pairs(IgnoreList) do [Link](RayIgnoreList, v) end


end

local Hit = workspace:FindPartOnRayWithIgnoreList(_Ray, RayIgnoreList)

if Hit and not Hit:IsDescendantOf(Model) then


Pass = false;
if [Link] >= .3 or not [Link] and [Link] ~=
Terrain then -- Detect invisible walls
[Link](IgnoreList, Hit)
-- IgnoreList[#IgnoreList + 1] = Hit;
end
end

return Pass;
end

local function CheckTeam(Player)


if [Link] and [Link] then return true; end
return [Link] == [Link];
end

local CustomTeam = CustomTeams[[Link]];

if CustomTeam ~= nil then


if [Link] then ypcall([Link]) end

CheckTeam = [Link];
end

local function CheckPlayer(Player, Character)


if not [Link] then return false end

local Pass = true;


local Distance = 0;

if Player ~= LocalPlayer and Character then


if not [Link] and CheckTeam(Player) then
Pass = false;
end

local Head = Character:FindFirstChild'Head';

if Pass and Character and Head then


Distance = ([Link] - [Link]).Magnitude;
if [Link] then
Pass = CheckRay(Player, Distance, [Link],
([Link] - [Link]).unit);
end
if Distance > [Link] then
Pass = false;
end
end
else
Pass = false;
end

return Pass, Distance;


end

local function CheckDistance(Instance)


if not [Link] then return false end

local Pass = true;


local Distance = 0;

if Instance ~= nil then


Distance = ([Link] - [Link]).Magnitude;
if [Link] then
Pass = CheckRay(Instance, Distance, [Link],
([Link] - [Link]).unit);
end
if Distance > [Link] then
Pass = false;
end
else
Pass = false;
end

return Pass, Distance;


end

local function UpdatePlayerData()


if (tick() - LastRefresh) > ([Link] / 1000) then
LastRefresh = tick();
if CustomESP and [Link] then
local a, b = pcall(CustomESP);
end
for i, v in pairs([Link]) do
if [Link] ~= nil and [Link] ~= nil and
[Link]:IsA'BasePart' then
local Data = [Link][[Link]:GetDebugId()]
or { Instances = {}; DontDelete = true };

[Link] = [Link];

[Link]['OutlineTracer'] =
[Link]['OutlineTracer'] or NewDrawing'Line'{
Transparency = 0.75;
Thickness = 5;
Color = [Link](0.1, 0.1, 0.1);
}
[Link]['Tracer'] = [Link]['Tracer'] or
NewDrawing'Line'{
Transparency = 1;
Thickness = 2;
}
[Link]['NameTag'] = [Link]['NameTag'] or
NewDrawing'Text'{
Size = [Link];
Center = true;
Outline = [Link];
Visible = true;
};
[Link]['DistanceTag'] =
[Link]['DistanceTag'] or NewDrawing'Text'{
Size = [Link] - 1;
Center = true;
Outline = [Link];
Visible = true;
};

local NameTag = [Link]['NameTag'];


local DistanceTag = [Link]['DistanceTag'];
local Tracer = [Link]['Tracer'];
local OutlineTracer = [Link]['OutlineTracer'];

local Pass, Distance = CheckDistance([Link]);

if Pass then
local ScreenPosition, Vis =
WorldToViewport([Link]);
local Color = [Link];
local OPos =
[Link]:pointToObjectSpace([Link]);

if ScreenPosition.Z < 0 then


local AT = math.atan2(OPos.Y, OPos.X) +
[Link];
OPos = [Link](0, 0,
AT):vectorToWorldSpace(([Link](0, [Link](89.9),
0):vectorToWorldSpace(V3New(0, 0, -1))));
end

local Position =
WorldToViewport([Link]:pointToWorldSpace(OPos));

if [Link] then
[Link] = [Link](Distance /
200, 0.45, 0.8);
[Link] = true;
[Link] = TracerPosition;
[Link] = V2New(Position.X,
Position.Y);
[Link] = Color;
[Link] = true;
[Link] =
[Link] - 0.1;
[Link] = [Link];
[Link] = [Link];
[Link] = [Link](0.1, 0.1,
0.1);
else
[Link] = false;
[Link] = false;
end

if ScreenPosition.Z > 0 then


local ScreenPositionUpper = ScreenPosition;

if [Link] then
[Link] = 0;
[Link] = true;
[Link] = [Link];
[Link] =
[Link];
[Link] =
[Link];
[Link] =
V2New(ScreenPositionUpper.X, ScreenPositionUpper.Y);
[Link] = Color;
if [Link] and shared.am_ic3 then
-- CURRENTLY SYNAPSE ONLY :MEGAHOLY:
[Link] =
[Link];
end
else
[Link] = 100;
[Link] = false;
end
if [Link] or
[Link] then
[Link] = true;
[Link] =
[Link] - 1;
[Link] =
[Link];
[Link] = [Link](1, 1,
1);
if [Link] and shared.am_ic3 then
-- CURRENTLY SYNAPSE ONLY :MEGAHOLY:
[Link] =
[Link];
end

local Str = '';

if [Link] then
Str = Str .. Format('[%d] ',
Distance);
end

[Link] = Str;
[Link] =
V2New(ScreenPositionUpper.X, ScreenPositionUpper.Y) + V2New(0,
[Link].Y);
else
[Link] = false;
end
else
[Link] = false;
[Link] = false;
end
else
[Link] = false;
[Link] = false;
[Link] = false;
[Link] = false;
end

[Link]['NameTag'] = NameTag;
[Link]['DistanceTag'] = DistanceTag;
[Link]['Tracer'] = Tracer;
[Link]['OutlineTracer'] = OutlineTracer;

[Link][[Link]:GetDebugId()] = Data;
end
end
for i, v in pairs(Players:GetPlayers()) do
local Data = [Link][[Link]] or { Instances = {}; };

[Link]['Box'] = [Link]['Box'] or
LineBox:Create{Thickness = 4};
[Link]['OutlineTracer'] = [Link]['OutlineTracer']
or NewDrawing'Line'{
Transparency = 1;
Thickness = 3;
Color = [Link](0.1, 0.1, 0.1);
}
[Link]['Tracer'] = [Link]['Tracer'] or
NewDrawing'Line'{
Transparency = 1;
Thickness = 1;
}
[Link]['HeadDot'] = [Link]['HeadDot'] or
NewDrawing'Circle'{
Filled = true;
NumSides = 30;
}
[Link]['NameTag'] = [Link]['NameTag'] or
NewDrawing'Text'{
Size = [Link];
Center = true;
Outline = [Link];
OutlineOpacity = 1;
Visible = true;
};
[Link]['DistanceHealthTag'] =
[Link]['DistanceHealthTag'] or NewDrawing'Text'{
Size = [Link] - 1;
Center = true;
Outline = [Link];
OutlineOpacity = 1;
Visible = true;
};

local NameTag = [Link]['NameTag'];


local DistanceTag = [Link]['DistanceHealthTag'];
local Tracer = [Link]['Tracer'];
local OutlineTracer = [Link]['OutlineTracer'];
local HeadDot = [Link]['HeadDot'];
local Box = [Link]['Box'];

local Character = GetCharacter(v);


local Pass, Distance = CheckPlayer(v, Character);

if Pass and Character then


local Humanoid = Character:FindFirstChildOfClass'Humanoid';
local Head = Character:FindFirstChild'Head';
local HumanoidRootPart =
Character:FindFirstChild(CustomRootPartName or 'HumanoidRootPart')

local Dead = (Humanoid and Humanoid:GetState().Name ==


'Dead')

if type(GetAliveState) == 'function' then


Dead = (not GetAliveState(v, Character))
end

if Character ~= nil and Head and HumanoidRootPart and not


Dead then
local ScreenPosition, Vis =
WorldToViewport([Link]);
local Color = Rainbow and [Link](tick() * 128
% 255/255, 1, 1) or (CheckTeam(v) and TeamColor or EnemyColor); Color =
[Link] and [Link] or Color;
local OPos =
[Link]:pointToObjectSpace([Link]);

if ScreenPosition.Z < 0 then


local AT = math.atan2(OPos.Y, OPos.X) +
[Link];
OPos = [Link](0, 0,
AT):vectorToWorldSpace(([Link](0, [Link](89.9),
0):vectorToWorldSpace(V3New(0, 0, -1))));
end

local Position =
WorldToViewport([Link]:pointToWorldSpace(OPos));

if [Link] then
if TracerPosition.X >= [Link].X or
TracerPosition.Y >= [Link].Y or TracerPosition.X < 0 or
TracerPosition.Y < 0 then
TracerPosition =
V2New([Link].X / 2, [Link].Y - 135);
end

[Link] = true;
[Link] = [Link](1 -
(Distance / 200), 0.25, 0.75);
[Link] = TracerPosition;
[Link] = V2New(Position.X,
Position.Y);
[Link] = Color;
[Link] = [Link];
[Link] = [Link];
[Link] =
[Link] - 0.15;
[Link] = true;
else
[Link] = false;
[Link] = false;
end

if ScreenPosition.Z > 0 then


local ScreenPositionUpper =
WorldToViewport((HumanoidRootPart:GetRenderCFrame() * [Link](0, [Link].Y +
[Link].Y + ([Link] / 25), 0)).Position);
local Scale =
[Link].Y / 2;

if [Link] then
[Link] = true;
[Link] = [Link] ..
(CustomPlayerTag and CustomPlayerTag(v) or '');
[Link] =
[Link];
[Link] =
[Link];
[Link] =
V2New(ScreenPositionUpper.X, ScreenPositionUpper.Y) - V2New(0,
[Link].Y);
[Link] = Color;
[Link] = Color;
[Link]= [Link](0.05,
0.05, 0.05);
[Link]= 0.85;
if [Link] and shared.am_ic3 then
-- CURRENTLY SYNAPSE ONLY :MEGAHOLY:
[Link] =
[Link];
end
else
[Link] = false;
end
if [Link] or
[Link] then
[Link] = true;
[Link] =
[Link] - 1;
[Link] =
[Link];
[Link] = [Link](1, 1,
1);
[Link]= 0.85;
if [Link] and shared.am_ic3 then
-- CURRENTLY SYNAPSE ONLY :MEGAHOLY:
[Link] =
[Link];
end

local Str = '';

if [Link] then
Str = Str .. Format('[%d] ',
Distance);
end
if [Link] then

if typeof(Humanoid) == 'Instance'
then
Str = Str .. Format('[%d/%d]
[%s%%]', [Link], [Link], [Link]([Link] /
[Link] * 100));
elseif type(GetHealth) ==
'function' then
local health, maxHealth =
GetHealth(v)

if type(health) == 'number'
and type(maxHealth) == 'number' then
Str = Str ..
Format('[%d/%d] [%s%%]', health, maxHealth, [Link](health / maxHealth * 100))
end
end
end

[Link] = Str;
[Link] =
[Link](0.05, 0.05, 0.05);
[Link] = ([Link]
and [Link] + V2New(0, [Link].Y) or
V2New(ScreenPositionUpper.X, ScreenPositionUpper.Y));
else
[Link] = false;
end
if [Link] and Vis then
local Top =
WorldToViewport(([Link] * [Link](0, Scale, 0)).Position);
local Bottom =
WorldToViewport(([Link] * [Link](0, -Scale, 0)).Position);
local Radius = [Link]((Top -
Bottom).Y);

[Link] = true;
[Link] = Color;
[Link] =
V2New(ScreenPosition.X, ScreenPosition.Y);
[Link] = Radius;
else
[Link] = false;
end
if [Link] and Vis and
HumanoidRootPart then
local Body = {
Head;
Character:FindFirstChild'Left Leg'
or Character:FindFirstChild'LeftLowerLeg';
Character:FindFirstChild'Right Leg'
or Character:FindFirstChild'RightLowerLeg';
Character:FindFirstChild'Left Arm'
or Character:FindFirstChild'LeftLowerArm';
Character:FindFirstChild'Right Arm'
or Character:FindFirstChild'RightLowerArm';
}
Box:Update([Link],
V3New(2, 3, 1) * (Scale * 2), Color, nil, shared.am_ic3 and Body);
else
Box:SetVisible(false);
end
else
[Link] = false;
[Link] = false;
[Link] = false;

Box:SetVisible(false);
end
else
[Link] = false;
[Link] = false;
[Link] = false;
[Link] = false;
[Link] = false;

Box:SetVisible(false);
end
else
[Link] = false;
[Link] = false;
[Link] = false;
[Link] = false;
[Link] = false;

Box:SetVisible(false);
end
[Link][[Link]] = Data;
end
end
end

local LastInvalidCheck = 0;

local function Update()


if tick() - LastInvalidCheck > 0.3 then
LastInvalidCheck = tick();

if [Link] ~= workspace then


Camera = [Link];
CameraCon();
WTVP = [Link];
end

for i, v in pairs([Link]) do
if not Players:FindFirstChild(tostring(i)) then
if not [Link][i].DontDelete then
GetTableData([Link])(function(i, obj)
[Link] = false;
obj:Remove();
[Link][i] = nil;
end)
[Link][i] = nil;
else
if [Link][i].Instance == nil or
[Link][i].[Link] == nil then
GetTableData([Link])(function(i, obj)
[Link] = false;
obj:Remove();
[Link][i] = nil;
end)
[Link][i] = nil;
end
end
end
end
end

local CX = Menu:GetInstance'CrosshairX';
local CY = Menu:GetInstance'CrosshairY';

if [Link] then
[Link] = true;
[Link] = true;

[Link] = V2New(([Link].X / 2) - 8, ([Link].Y /


2));
[Link] = V2New(([Link].X / 2) + 8, ([Link].Y
/ 2));
[Link] = V2New(([Link].X / 2), ([Link].Y / 2)
- 8);
[Link] = V2New(([Link].X / 2), ([Link].Y /
2) + 8);
else
[Link] = false;
[Link] = false;
end

if [Link] and MenuLoaded then


local MLocation = GetMouseLocation();
[Link] = [Link](tick() *
24 % 255/255, 1, 1);
local MainInstance = Menu:GetInstance'Main';

local Values = {
[Link].X;
[Link].Y;
[Link].X + [Link].X;
[Link].Y + [Link].Y;
};

if MainInstance and (MouseHoveringOver(Values) or ([Link] and


MouseHoveringOver([Link]))) then
[Link] = true;

Menu:UpdateMenuInstance'Cursor1'{
Visible = true;
From = V2New(MLocation.x, MLocation.y);
To = V2New(MLocation.x + 5, MLocation.y + 6);
}
Menu:UpdateMenuInstance'Cursor2'{
Visible = true;
From = V2New(MLocation.x, MLocation.y);
To = V2New(MLocation.x, MLocation.y + 8);
}
Menu:UpdateMenuInstance'Cursor3'{
Visible = true;
From = V2New(MLocation.x, MLocation.y + 6);
To = V2New(MLocation.x + 5, MLocation.y + 5);
}
else
if [Link] then
[Link] = false;

Menu:UpdateMenuInstance'Cursor1'{Visible = false};
Menu:UpdateMenuInstance'Cursor2'{Visible = false};
Menu:UpdateMenuInstance'Cursor3'{Visible = false};
end
end
if MouseHeld then
local MousePos = GetMouseLocation();

if Dragging then
[Link] = V2New([Link](MLocation.X
- [Link].X / 2, [Link].X,
[Link].X + [Link].X -
[Link].X), [Link].Y);
local Percent = ([Link].X -
[Link].X) / (([Link].X +
[Link].X - [Link].X) -
[Link].X);
local Value = CalculateValue([Link],
[Link], Percent);
[Link](Value);
elseif DraggingUI then
[Link] = true;
local Main = Menu:GetInstance'Main';
[Link] = MousePos + DragOffset;
elseif DragTracerPosition then
TracerPosition = MousePos;
end
else
Dragging = false;
DragTracerPosition = false;
if DraggingUI and [Link] then
[Link] = false;
DraggingUI = false;
CreateMenu(Menu:GetInstance'Main'.Position);
end
end
if not [Link] then
[Link] = true;
ToggleMenu();
end
elseif [Link] and not [Link] then
[Link] = false;
ToggleMenu();
end
end

RunService:UnbindFromRenderStep(GetDataName);
RunService:UnbindFromRenderStep(UpdateName);

RunService:BindToRenderStep(GetDataName, 300, UpdatePlayerData);


RunService:BindToRenderStep(UpdateName, 199, Update);

You might also like