Unnamed ESP Script for Roblox
Unnamed ESP Script for Roblox
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
return false;
end
[Link] = S;
[Link] = B;
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
[Link] =
[Link]:Connect(function()
local CharacterList = {}
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
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
-- 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
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
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 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
return Name;
end;
};
if Character then
local Blood, Armor = Character:FindFirstChild('Blood'),
Character:FindFirstChild('Armor');
return Name;
end;
};
if Character then
local Blood, Armor =
Character:FindFirstChild('Blood'), Character:FindFirstChild('Armor');
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 [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
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
[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
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
[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;
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);
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
writefile(OptionsFile, HttpService:JSONEncode(COptions));
end, 3);
Load(1);
function LineBox:Create(Properties)
local Box = { Visible = true }; -- prevent errors not really though dont
worry bout the Visible = true thing
for i, v in pairs(Parts) do
-- if not v:IsA'BasePart' then continue end
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
for i, v in pairs(AllCorners) do
local Position, V = WorldToViewport(v);
return
end
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);
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: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));
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
-- 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
return true;
end
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)
return self.__Objects[Index];
end
return Object;
end
local Images = {}
spawn(function()
[Link] = '[Link]
[Link] = '[Link]
end)
[Link] = [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
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
[Link] = false
[Link] = Drawings
return self
end
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);
function SubMenu:Hide()
[Link] = false;
for i, v in pairs([Link]) do
if i:sub(1, 3) == 'Sub' then
[Link] = false;
CurrentColorPicker = nil;
end
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;
});
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];
});
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;
[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;
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;
});
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
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;
if Head then
local Distance = ([Link] -
[Link]).Magnitude;
if Distance > [Link] then
continue; end
local DP = Direction:Dot(Unit);
if DP > HD then
HD = DP;
LPlayer = Player;
LCharacter = Character;
end
end
end
end
[Link]:GetPropertyChangedSignal'ViewportSize':Connect(function()
TracerPosition = V2New([Link].X / 2, [Link].Y
- 135);
end);
end
CameraCon();
[Link](RayIgnoreList)
[Link](RayIgnoreList, [Link])
[Link](RayIgnoreList, Camera)
return Pass;
end
CheckTeam = [Link];
end
[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;
};
if Pass then
local ScreenPosition, Vis =
WorldToViewport([Link]);
local Color = [Link];
local OPos =
[Link]:pointToObjectSpace([Link]);
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 [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
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 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 [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
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;
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;
local Values = {
[Link].X;
[Link].Y;
[Link].X + [Link].X;
[Link].Y + [Link].Y;
};
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);