· 6 years ago · Sep 15, 2019, 07:18 AM
1-- Made by JivanK777
2local ScreenGui = Instance.new("ScreenGui")
3local frame = Instance.new("Frame")
4local open = Instance.new("TextButton")
5local main = Instance.new("Frame")
6local bypass = Instance.new("TextButton")
7local esp = Instance.new("TextButton")
8local hitboxextender = Instance.new("TextButton")
9local title = Instance.new("TextBox")
10local credits = Instance.new("TextBox")
11local close = Instance.new("TextButton")
12--Properties:
13ScreenGui.Parent = game.CoreGui
14
15frame.Name = "frame"
16frame.Parent = ScreenGui
17frame.BackgroundColor3 = Color3.new(1, 1, 1)
18frame.BorderColor3 = Color3.new(1, 0, 0.0156863)
19frame.BorderSizePixel = 2
20frame.Position = UDim2.new(0.010863401, 0, 0.25081706, 0)
21frame.Size = UDim2.new(0, 100, 0, 24)
22
23open.Name = "open"
24open.Parent = frame
25open.BackgroundColor3 = Color3.new(1, 1, 1)
26open.BorderSizePixel = 0
27open.Position = UDim2.new(2.38418579e-07, 0, 0.0833334923, 0)
28open.Size = UDim2.new(0, 99, 0, 20)
29open.Font = Enum.Font.SourceSans
30open.Text = "Open"
31open.TextColor3 = Color3.new(1, 0, 0.0156863)
32open.TextSize = 14
33open.MouseButton1Down:connect(function()
34main.Visible = true
35frame.Visible = false
36end)
37
38main.Name = "main"
39main.Parent = ScreenGui
40main.BackgroundColor3 = Color3.new(0.780392, 0.780392, 0.780392)
41main.BorderSizePixel = 2
42main.Position = UDim2.new(0.0974706933, 0, 0.178132683, 0)
43main.Size = UDim2.new(0, 426, 0, 141)
44main.Visible = false
45main.Active = true
46main.Draggable = true
47
48bypass.Name = "bypass"
49bypass.Parent = main
50bypass.BackgroundColor3 = Color3.new(1, 1, 1)
51bypass.BorderSizePixel = 0
52bypass.Position = UDim2.new(0.016009707, 0, 0.320057154, 0)
53bypass.Size = UDim2.new(0, 132, 0, 50)
54bypass.Font = Enum.Font.SourceSans
55bypass.Text = "Bypass (Press this First)"
56bypass.TextColor3 = Color3.new(1, 0, 0.0156863)
57bypass.TextSize = 14
58bypass.MouseButton1Down:connect(function()
59if not getgenv().if_globals_loaded then
60 getgenv().isBypassed = true
61 getgenv().global = true
62 getgenv().mt = true
63 getgenv().store = game.CoreGui
64
65 getgenv().if_globals_loaded = true
66end
67
68-- supported: synX, elysian, proto, and visenya
69local getreg = debug.getregistry or getreg or getregistry
70local getuv = getupvals or secret953 or debug.getupvalues or getupvalues
71local setuv = setupval or secret500 or debug.setupvalue or setupvalue
72local srd = make_writeable or setreadonly or fullaccess
73
74local newcclosure = newcclosure or coroutine.wrap
75local hkf = replaceclosure or hookfunction
76local cc = checkcaller or is_protosmasher_caller
77local unicode ={"\226\132\162","\195\184","\226\128\176","\226\128\162","\194\176","\195\159","\194\189","\194\191","\226\128\161","\194\179"}
78
79assert((getrawmetatable and (getreg and getuv and setuv)), "ISLANDFRICKER : Bypass Failure | Only SynapseX, Elysian, Visenya, and Protosmasher are Supported")
80
81function checkUnicode(str)
82 if str then
83 for i,v in pairs(unicode) do
84 if string.find(str, v) then
85 return true
86 end
87 end
88 end
89 return false
90end
91
92-- hookfunction
93if hkf then
94 srd(getrawmetatable(game), false)
95 function FireServer_Repl(self, ...)
96 if typeof(self) ~= "Instance" then
97 return error(select(2, pcall(getrawmetatable(game).__index, self))) -- stolen from 3dsboy08 / autumn
98 end
99 local args = {...}
100
101 -- anti ban
102 if checkUnicode(self.Name) then
103 getgenv().isBypassed = true
104 return wait(9e9)
105 end
106
107 if self.Name == 'Fire_Shot' then
108 for i,v in pairs(args) do warn(i,v) end
109 end
110
111 -- anti fall damage
112 if self.Name == 'Do_State' then
113 return wait(9e9)
114 end
115
116 return saved(self, ...)
117 end
118
119 if not getgenv().saved then
120 getgenv().saved = hkf(Instance.new('RemoteEvent').FireServer, FireServer_Repl)
121 end
122
123 FireServer_Repl = newcclosure(FireServer_Repl)
124end
125
126-- debug
127for i,v in pairs(getreg()) do
128 if type(v) == 'function' then
129 local orig = v
130 local suc, uvs = pcall(getuv, v)
131 if uvs and type(uvs) == 'table' then
132 for x,c in pairs(uvs) do
133 if type(c) == 'string' and checkUnicode(c) then
134 for i,v in pairs(uvs) do
135 if type(v) == 'function' then
136 getgenv().isBypassed = true
137 setuv(orig, i, newcclosure(function() return wait(9e9) end))
138 elseif type(v) == 'number' then
139 setuv(orig, i, -math.huge)
140 end
141 end
142 getfenv(orig).script.Parent = workspace
143 end
144 end
145 end
146 end
147end
148
149-- meta
150local mt = getrawmetatable(game)
151local nc = mt.__namecall
152local id = mt.__index
153srd(mt, false)
154
155if not getgenv().mt then
156 getgenv().mt = true
157 mt.__namecall = function(...)
158 local args = {...}
159 if args[#args] == 'Kick' and not checkcaller() then
160 return function(msg) return wait(9e9) end
161 elseif args[#args] == '______________' then
162 return 'hi dad'
163 end
164 return nc(...)
165 end
166
167 mt.__index = function(inst, str)
168 if inst == nil or str == nil then return end
169 if string.find(inst:GetFullName(), 'CoreGui') and not cc() then
170 return workspace
171 end
172 return id(inst, str)
173 end
174end
175
176
177if getgenv().isBypassed ~= true then
178 game.Players.LocalPlayer:Kick('Anti-Ban')
179end
180end)
181
182esp.Name = "esp"
183esp.Parent = main
184esp.BackgroundColor3 = Color3.new(1, 1, 1)
185esp.BorderSizePixel = 0
186esp.Position = UDim2.new(0.675716162, 0, 0.320057124, 0)
187esp.Size = UDim2.new(0, 132, 0, 50)
188esp.Font = Enum.Font.SourceSans
189esp.Text = "ESP"
190esp.TextColor3 = Color3.new(1, 0, 0.0156863)
191esp.TextSize = 14
192esp.MouseButton1Down:connect(function()
193assert(Drawing, 'exploit not supported')
194
195local UserInputService = game:GetService'UserInputService';
196local HttpService = game:GetService'HttpService';
197local GUIService = game:GetService'GuiService';
198local RunService = game:GetService'RunService';
199local Players = game:GetService'Players';
200local LocalPlayer = Players.LocalPlayer;
201local Camera = workspace.CurrentCamera
202local Mouse = LocalPlayer:GetMouse();
203local Menu = {};
204local MouseHeld = false;
205local LastRefresh = 0;
206local OptionsFile = 'IC3_ESP_SETTINGS.dat';
207local Binding = false;
208local BindedKey = nil;
209local OIndex = 0;
210local LineBox = {};
211local UIButtons = {};
212local Sliders = {};
213local Dragging = false;
214local DraggingUI = false;
215local DragOffset = Vector2.new();
216local DraggingWhat = nil;
217local OldData = {};
218local IgnoreList = {};
219local Red = Color3.new(1, 0, 0);
220local Green = Color3.new(0, 1, 0);
221local MenuLoaded = false;
222
223shared.MenuDrawingData = shared.MenuDrawingData or { Instances = {} };
224shared.InstanceData = shared.InstanceData or {};
225shared.RSName = shared.RSName or ('UnnamedESP' .. HttpService:GenerateGUID(false));
226
227local GetDataName = shared.RSName .. '-GetData';
228local UpdateName = shared.RSName .. '-Update';
229
230local Debounce = setmetatable({}, {
231 __index = function(t, i)
232 return rawget(t, i) or false
233 end;
234});
235
236pcall(function() shared.InputBeganCon:disconnect() end);
237pcall(function() shared.InputEndedCon:disconnect() end);
238
239local RealPrint, LastPrintTick = print, 0;
240local LatestPrints = setmetatable({}, {
241 __index = function(t, i)
242 return rawget(t, i) or 0;
243 end
244});
245
246local function print(...)
247 local Content = unpack{...};
248 local print = RealPrint;
249
250 if tick() - LatestPrints[Content] > 5 then
251 LatestPrints[Content] = tick();
252 print(Content);
253 end
254end
255
256local Teams = {};
257local CustomTeams = { -- Games that don't use roblox's team system
258 [2563455047] = {
259 Initialize = function()
260 Teams.Sheriffs = {}; -- prevent big error
261 Teams.Bandits = {}; -- prevent big error
262 local Func = game:GetService'ReplicatedStorage':WaitForChild('RogueFunc', 1);
263 local Event = game:GetService'ReplicatedStorage':WaitForChild('RogueEvent', 1);
264 local S, B = Func:InvokeServer'AllTeamData';
265
266 Teams.Sheriffs = S;
267 Teams.Bandits = B;
268
269 Event.OnClientEvent:connect(function(id, PlayerName, Team, Remove) -- stolen straight from decompiled src lul
270 if id == 'UpdateTeam' then
271 local TeamTable, NotTeamTable
272 if Team == 'Bandits' then
273 TeamTable = TDM.Bandits
274 NotTeamTable = TDM.Sheriffs
275 else
276 TeamTable = TDM.Sheriffs
277 NotTeamTable = TDM.Bandits
278 end
279 if Remove then
280 TeamTable[PlayerName] = nil
281 else
282 TeamTable[PlayerName] = true
283 NotTeamTable[PlayerName] = nil
284 end
285 if PlayerName == LocalPlayer.Name then
286 TDM.Friendlys = TeamTable
287 TDM.Enemies = NotTeamTable
288 end
289 end
290 end)
291 end;
292 CheckTeam = function(Player)
293 local LocalTeam = Teams.Sheriffs[LocalPlayer.Name] and Teams.Sheriffs or Teams.Bandits;
294
295 return LocalTeam[Player.Name] and true or false;
296 end;
297 };
298}
299
300local RenderList = {Instances = {}};
301function RenderList:AddOrUpdateInstance(Instance, Obj2Draw, Text, Color)
302 -- print(Instance, Obj2Draw, Text, Color);
303 RenderList.Instances[Instance] = { ParentInstance = Instance; Instance = Obj2Draw; Text = Text; Color = Color };
304 return RenderList.Instances[Instance];
305end
306
307if bind then
308 bind('f2', function()
309 print(RenderList:AddOrUpdateInstance(LocalPlayer.Character, LocalPlayer.Character.Head, 'nigger', Color3.fromRGB(255, 255, 0)));
310 end)
311 bind('f3', function()
312 print(tableToString(RenderList));
313 end)
314end
315
316local CustomPlayerTag;
317local CustomESP;
318
319local Modules = {
320 [2262441883] = {
321 CustomPlayerTag = function(Player)
322 return Player:FindFirstChild'Job' and (' [' .. Player.Job.Value .. ']') or '';
323 end;
324 CustomESP = function()
325 if workspace:FindFirstChild'MoneyPrinters' then
326 for i, v in pairs(workspace.MoneyPrinters:GetChildren()) do
327 local Main = v:FindFirstChild'Main';
328 local Owner = v:FindFirstChild'TrueOwner';
329 local Money = v:FindFirstChild'Int' and v.Int:FindFirstChild'Money' or nil;
330 if Main and Owner and Money then
331 local O = tostring(Owner.Value);
332 local M = tostring(Money.Value);
333 -- print(O, M);
334 pcall(RenderList:AddOrUpdateInstance(v, Main, string.format('Money Printer\nOwned by %s\n[%s]', O, M), Color3.fromRGB(13, 255, 227)));
335 end
336 end
337 end
338 end;
339 }
340}
341
342if Modules[game.PlaceId] ~= nil then
343 local Module = Modules[game.PlaceId];
344 CustomPlayerTag = Module.CustomPlayerTag or nil;
345 CustomESP = Module.CustomESP or nil;
346end
347
348function GetMouseLocation()
349 return UserInputService:GetMouseLocation();
350end
351
352function MouseHoveringOver(Values)
353 local X1, Y1, X2, Y2 = Values[1], Values[2], Values[3], Values[4]
354 local MLocation = GetMouseLocation();
355 return (MLocation.x >= X1 and MLocation.x <= (X1 + (X2 - X1))) and (MLocation.y >= Y1 and MLocation.y <= (Y1 + (Y2 - Y1)));
356end
357
358function GetTableData(t) -- basically table.foreach i dont even know why i made this
359 if typeof(t) ~= 'table' then return end
360 return setmetatable(t, {
361 __call = function(t, func)
362 if typeof(func) ~= 'function' then return end;
363 for i, v in pairs(t) do
364 pcall(func, i, v);
365 end
366 end;
367 });
368end
369local function Format(format, ...)
370 return string.format(format, ...);
371end
372function CalculateValue(Min, Max, Percent)
373 return Min + math.floor(((Max - Min) * Percent) + .5);
374end
375
376local Options = setmetatable({}, {
377 __call = function(t, ...)
378 local Arguments = {...};
379 local Name = Arguments[1];
380 OIndex = OIndex + 1; -- (typeof(Arguments[3]) == 'boolean' and 1 or 0);
381 rawset(t, Name, setmetatable({
382 Name = Arguments[1];
383 Text = Arguments[2];
384 Value = Arguments[3];
385 DefaultValue = Arguments[3];
386 AllArgs = Arguments;
387 Index = OIndex;
388 }, {
389 __call = function(t, v)
390 if typeof(t.Value) == 'function' then
391 t.Value();
392 elseif typeof(t.Value) == 'EnumItem' then
393 local BT = Menu:GetInstance(Format('%s_BindText', t.Name));
394 Binding = true;
395 local Val = 0
396 while Binding do
397 wait();
398 Val = (Val + 1) % 17;
399 BT.Text = Val <= 8 and '|' or '';
400 end
401 t.Value = BindedKey;
402 BT.Text = tostring(t.Value):match'%w+%.%w+%.(.+)';
403 BT.Position = t.BasePosition + Vector2.new(t.BaseSize.X - BT.TextBounds.X - 20, -10);
404 else
405 local NewValue = v;
406 if NewValue == nil then NewValue = not t.Value; end
407 rawset(t, 'Value', NewValue);
408 if Arguments[2] ~= nil then
409 if typeof(Arguments[3]) == 'number' then
410 local AMT = Menu:GetInstance(Format('%s_AmountText', t.Name));
411 AMT.Text = tostring(t.Value);
412 AMT.Position = t.BasePosition + Vector2.new(t.BaseSize.X - AMT.TextBounds.X - 10, -10);
413 else
414 local Inner = Menu:GetInstance(Format('%s_InnerCircle', t.Name));
415 Inner.Visible = t.Value;
416 end
417 end
418 end
419 end;
420 }));
421 end;
422})
423
424function Load()
425 local _, Result = pcall(readfile, OptionsFile);
426 if _ then -- extremely ugly code yea i know but i dont care p.s. i hate pcall
427 local _, Table = pcall(HttpService.JSONDecode, HttpService, Result);
428 if _ then
429 for i, v in pairs(Table) do
430 if Options[i] ~= nil and Options[i].Value ~= nil and (typeof(Options[i].Value) == 'boolean' or typeof(Options[i].Value) == 'number') then
431 Options[i].Value = v.Value;
432 pcall(Options[i], v.Value);
433 end
434 end
435 end
436 end
437end
438
439Options('Enabled', 'ESP Enabled', true);
440Options('ShowTeam', 'Show Team', false);
441Options('ShowTeamColor', 'Show Team Color', false);
442Options('ShowName', 'Show Names', true);
443Options('ShowDistance', 'Show Distance', true);
444Options('ShowHealth', 'Show Health', true);
445Options('ShowBoxes', 'Show Boxes', true);
446Options('ShowTracers', 'Show Tracers', true);
447Options('ShowDot', 'Show Head Dot', false);
448Options('VisCheck', 'Visibility Check', false);
449Options('Crosshair', 'Crosshair', false);
450Options('TextOutline', 'Text Outline', true);
451Options('TextSize', 'Text Size', syn and 18 or 14, 10, 24); -- cuz synapse fonts look weird???
452Options('MaxDistance', 'Max Distance', 2500, 100, 25000);
453Options('RefreshRate', 'Refresh Rate (ms)', 5, 1, 200);
454Options('MenuKey', 'Menu Key', Enum.KeyCode.F4, 1);
455Options('ResetSettings', 'Reset Settings', function()
456 for i, v in pairs(Options) do
457 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') then
458 Options[i](Options[i].DefaultValue);
459 end
460 end
461end, 4);
462Options('LoadSettings', 'Load Settings', Load, 3);
463Options('SaveSettings', 'Save Settings', function()
464 writefile(OptionsFile, HttpService:JSONEncode(Options));
465end, 2)
466-- Options.SaveSettings.Value();
467
468Load();
469
470Options('MenuOpen', nil, true);
471
472local function Set(t, i, v)
473 t[i] = v;
474end
475local function Combine(...)
476 local Output = {};
477 for i, v in pairs{...} do
478 if typeof(v) == 'table' then
479 table.foreach(v, function(i, v)
480 Output[i] = v;
481 end)
482 end
483 end
484 return Output
485end
486function IsStringEmpty(String)
487 if type(String) == 'string' then
488 return String:match'^%s+$' ~= nil or #String == 0 or String == '' or false;
489 end
490 return false
491end
492
493function NewDrawing(InstanceName)
494 local Instance = Drawing.new(InstanceName);
495 return (function(Properties)
496 for i, v in pairs(Properties) do
497 pcall(Set, Instance, i, v);
498 end
499 return Instance;
500 end)
501end
502
503function Menu:AddMenuInstace(Name, Instance)
504 if shared.MenuDrawingData.Instances[Name] ~= nil then
505 shared.MenuDrawingData.Instances[Name]:Remove();
506 end
507 shared.MenuDrawingData.Instances[Name] = Instance;
508 return Instance;
509end
510function Menu:UpdateMenuInstance(Name)
511 local Instance = shared.MenuDrawingData.Instances[Name];
512 if Instance ~= nil then
513 return (function(Properties)
514 for i, v in pairs(Properties) do
515 -- print(Format('%s %s -> %s', Name, tostring(i), tostring(v)));
516 pcall(Set, Instance, i, v);
517 end
518 return Instance;
519 end)
520 end
521end
522function Menu:GetInstance(Name)
523 return shared.MenuDrawingData.Instances[Name];
524end
525
526function LineBox:Create(Properties)
527 local Box = { Visible = true }; -- prevent errors not really though dont worry bout the Visible = true thing
528
529 local Properties = Combine({
530 Transparency = 1;
531 Thickness = 1;
532 Visible = true;
533 }, Properties);
534
535 Box['TopLeft'] = NewDrawing'Line'(Properties);
536 Box['TopRight'] = NewDrawing'Line'(Properties);
537 Box['BottomLeft'] = NewDrawing'Line'(Properties);
538 Box['BottomRight'] = NewDrawing'Line'(Properties);
539
540 function Box:Update(CF, Size, Color, Properties)
541 if not CF or not Size then return end
542
543 local TLPos, Visible1 = Camera:WorldToViewportPoint((CF * CFrame.new( Size.X, Size.Y, 0)).p);
544 local TRPos, Visible2 = Camera:WorldToViewportPoint((CF * CFrame.new(-Size.X, Size.Y, 0)).p);
545 local BLPos, Visible3 = Camera:WorldToViewportPoint((CF * CFrame.new( Size.X, -Size.Y, 0)).p);
546 local BRPos, Visible4 = Camera:WorldToViewportPoint((CF * CFrame.new(-Size.X, -Size.Y, 0)).p);
547
548 Visible1 = TLPos.Z > 0;
549 Visible2 = TRPos.Z > 0;
550 Visible3 = BLPos.Z > 0;
551 Visible4 = BRPos.Z > 0;
552
553 -- ## BEGIN UGLY CODE
554 if Visible1 then
555 Box['TopLeft'].Visible = true;
556 Box['TopLeft'].Color = Color;
557 Box['TopLeft'].From = Vector2.new(TLPos.X, TLPos.Y);
558 Box['TopLeft'].To = Vector2.new(TRPos.X, TRPos.Y);
559 else
560 Box['TopLeft'].Visible = false;
561 end
562 if Visible2 then
563 Box['TopRight'].Visible = true;
564 Box['TopRight'].Color = Color;
565 Box['TopRight'].From = Vector2.new(TRPos.X, TRPos.Y);
566 Box['TopRight'].To = Vector2.new(BRPos.X, BRPos.Y);
567 else
568 Box['TopRight'].Visible = false;
569 end
570 if Visible3 then
571 Box['BottomLeft'].Visible = true;
572 Box['BottomLeft'].Color = Color;
573 Box['BottomLeft'].From = Vector2.new(BLPos.X, BLPos.Y);
574 Box['BottomLeft'].To = Vector2.new(TLPos.X, TLPos.Y);
575 else
576 Box['BottomLeft'].Visible = false;
577 end
578 if Visible4 then
579 Box['BottomRight'].Visible = true;
580 Box['BottomRight'].Color = Color;
581 Box['BottomRight'].From = Vector2.new(BRPos.X, BRPos.Y);
582 Box['BottomRight'].To = Vector2.new(BLPos.X, BLPos.Y);
583 else
584 Box['BottomRight'].Visible = false;
585 end
586 -- ## END UGLY CODE
587 if Properties then
588 GetTableData(Properties)(function(i, v)
589 pcall(Set, Box['TopLeft'], i, v);
590 pcall(Set, Box['TopRight'], i, v);
591 pcall(Set, Box['BottomLeft'], i, v);
592 pcall(Set, Box['BottomRight'], i, v);
593 end)
594 end
595 end
596 function Box:SetVisible(bool)
597 pcall(Set, Box['TopLeft'], 'Visible', bool);
598 pcall(Set, Box['TopRight'], 'Visible', bool);
599 pcall(Set, Box['BottomLeft'], 'Visible', bool);
600 pcall(Set, Box['BottomRight'], 'Visible', bool);
601 end
602 function Box:Remove()
603 self:SetVisible(false);
604 Box['TopLeft']:Remove();
605 Box['TopRight']:Remove();
606 Box['BottomLeft']:Remove();
607 Box['BottomRight']:Remove();
608 end
609
610 return Box;
611end
612
613function CreateMenu(NewPosition) -- Create Menu
614 local function FromHex(HEX)
615 HEX = HEX:gsub('#', '');
616 return Color3.fromRGB(tonumber('0x' .. HEX:sub(1, 2)), tonumber('0x' .. HEX:sub(3, 4)), tonumber('0x' .. HEX:sub(5, 6)));
617 end
618
619 local Colors = {
620 Primary = {
621 Main = FromHex'424242';
622 Light = FromHex'6d6d6d';
623 Dark = FromHex'1b1b1b';
624 };
625 Secondary = {
626 Main = FromHex'e0e0e0';
627 Light = FromHex'ffffff';
628 Dark = FromHex'aeaeae';
629 };
630 };
631
632 MenuLoaded = false;
633
634 GetTableData(UIButtons)(function(i, v)
635 v.Instance.Visible = false;
636 v.Instance:Remove();
637 end)
638 GetTableData(Sliders)(function(i, v)
639 v.Instance.Visible = false;
640 v.Instance:Remove();
641 end)
642
643 UIButtons = {};
644 Sliders = {};
645
646 local BaseSize = Vector2.new(300, 605);
647 local BasePosition = NewPosition or Vector2.new(Camera.ViewportSize.X / 8 - (BaseSize.X / 2), Camera.ViewportSize.Y / 2 - (BaseSize.Y / 2));
648
649 Menu:AddMenuInstace('CrosshairX', NewDrawing'Line'{
650 Visible = false;
651 Color = Color3.new(0, 1, 0);
652 Transparency = 1;
653 Thickness = 1;
654 });
655 Menu:AddMenuInstace('CrosshairY', NewDrawing'Line'{
656 Visible = false;
657 Color = Color3.new(0, 1, 0);
658 Transparency = 1;
659 Thickness = 1;
660 });
661
662 delay(.025, function() -- since zindex doesnt exist
663 Menu:AddMenuInstace('Main', NewDrawing'Square'{
664 Size = BaseSize;
665 Position = BasePosition;
666 Filled = false;
667 Color = Colors.Primary.Main;
668 Thickness = 3;
669 Visible = true;
670 });
671 end);
672 Menu:AddMenuInstace('TopBar', NewDrawing'Square'{
673 Position = BasePosition;
674 Size = Vector2.new(BaseSize.X, 25);
675 Color = Colors.Primary.Dark;
676 Filled = true;
677 Visible = true;
678 });
679 Menu:AddMenuInstace('TopBarTwo', NewDrawing'Square'{
680 Position = BasePosition + Vector2.new(0, 25);
681 Size = Vector2.new(BaseSize.X, 60);
682 Color = Colors.Primary.Main;
683 Filled = true;
684 Visible = true;
685 });
686 Menu:AddMenuInstace('TopBarText', NewDrawing'Text'{
687 Size = 25;
688 Position = shared.MenuDrawingData.Instances.TopBarTwo.Position + Vector2.new(25, 15);
689 Text = 'Unnamed ESP';
690 Color = Colors.Secondary.Light;
691 Visible = true;
692 });
693 Menu:AddMenuInstace('TopBarTextBR', NewDrawing'Text'{
694 Size = 15;
695 Position = shared.MenuDrawingData.Instances.TopBarTwo.Position + Vector2.new(BaseSize.X - 65, 40);
696 Text = '';
697 Color = Colors.Secondary.Dark;
698 Visible = true;
699 });
700 Menu:AddMenuInstace('Filling', NewDrawing'Square'{
701 Size = BaseSize - Vector2.new(0, 85);
702 Position = BasePosition + Vector2.new(0, 85);
703 Filled = true;
704 Color = Colors.Secondary.Main;
705 Transparency= .5;
706 Visible = true;
707 });
708
709 local CPos = 0;
710
711 GetTableData(Options)(function(i, v)
712 if typeof(v.Value) == 'boolean' and not IsStringEmpty(v.Text) and v.Text ~= nil then
713 CPos = CPos + 25;
714 local BaseSize = Vector2.new(BaseSize.X, 30);
715 local BasePosition = shared.MenuDrawingData.Instances.Filling.Position + Vector2.new(30, v.Index * 25 - 10);
716 UIButtons[#UIButtons + 1] = {
717 Option = v;
718 Instance = Menu:AddMenuInstace(Format('%s_Hitbox', v.Name), NewDrawing'Square'{
719 Position = BasePosition - Vector2.new(30, 15);
720 Size = BaseSize;
721 Visible = false;
722 });
723 };
724 Menu:AddMenuInstace(Format('%s_OuterCircle', v.Name), NewDrawing'Circle'{
725 Radius = 10;
726 Position = BasePosition;
727 Color = Colors.Secondary.Light;
728 Filled = true;
729 Visible = true;
730 });
731 Menu:AddMenuInstace(Format('%s_InnerCircle', v.Name), NewDrawing'Circle'{
732 Radius = 7;
733 Position = BasePosition;
734 Color = Colors.Secondary.Dark;
735 Filled = true;
736 Visible = v.Value;
737 });
738 Menu:AddMenuInstace(Format('%s_Text', v.Name), NewDrawing'Text'{
739 Text = v.Text;
740 Size = 20;
741 Position = BasePosition + Vector2.new(20, -10);
742 Visible = true;
743 Color = Colors.Primary.Dark;
744 });
745 end
746 end)
747 GetTableData(Options)(function(i, v) -- just to make sure certain things are drawn before or after others, too lazy to actually sort table
748 if typeof(v.Value) == 'number' then
749 CPos = CPos + 25;
750
751 local BaseSize = Vector2.new(BaseSize.X, 30);
752 local BasePosition = shared.MenuDrawingData.Instances.Filling.Position + Vector2.new(0, CPos - 10);
753
754 local Text = Menu:AddMenuInstace(Format('%s_Text', v.Name), NewDrawing'Text'{
755 Text = v.Text;
756 Size = 20;
757 Position = BasePosition + Vector2.new(20, -10);
758 Visible = true;
759 Color = Colors.Primary.Dark;
760 });
761 local AMT = Menu:AddMenuInstace(Format('%s_AmountText', v.Name), NewDrawing'Text'{
762 Text = tostring(v.Value);
763 Size = 20;
764 Position = BasePosition;
765 Visible = true;
766 Color = Colors.Primary.Dark;
767 });
768 local Line = Menu:AddMenuInstace(Format('%s_SliderLine', v.Name), NewDrawing'Line'{
769 Transparency = 1;
770 Color = Colors.Primary.Dark;
771 Thickness = 3;
772 Visible = true;
773 From = BasePosition + Vector2.new(20, 20);
774 To = BasePosition + Vector2.new(BaseSize.X - 10, 20);
775 });
776 CPos = CPos + 10;
777 local Slider = Menu:AddMenuInstace(Format('%s_Slider', v.Name), NewDrawing'Circle'{
778 Visible = true;
779 Filled = true;
780 Radius = 6;
781 Color = Colors.Secondary.Dark;
782 Position = BasePosition + Vector2.new(35, 20);
783 })
784
785 local CSlider = {Slider = Slider; Line = Line; Min = v.AllArgs[4]; Max = v.AllArgs[5]; Option = v};
786 Sliders[#Sliders + 1] = CSlider;
787
788 -- local Percent = (v.Value / CSlider.Max) * 100;
789 -- local Size = math.abs(Line.From.X - Line.To.X);
790 -- local Value = Size * (Percent / 100); -- this shit's inaccurate but fuck it i'm not even gonna bother fixing it
791
792 Slider.Position = BasePosition + Vector2.new(40, 20);
793
794 v.BaseSize = BaseSize;
795 v.BasePosition = BasePosition;
796 AMT.Position = BasePosition + Vector2.new(BaseSize.X - AMT.TextBounds.X - 10, -10)
797 end
798 end)
799 GetTableData(Options)(function(i, v) -- just to make sure certain things are drawn before or after others, too lazy to actually sort table
800 if typeof(v.Value) == 'EnumItem' then
801 CPos = CPos + 30;
802
803 local BaseSize = Vector2.new(BaseSize.X, 30);
804 local BasePosition = shared.MenuDrawingData.Instances.Filling.Position + Vector2.new(0, CPos - 10);
805
806 UIButtons[#UIButtons + 1] = {
807 Option = v;
808 Instance = Menu:AddMenuInstace(Format('%s_Hitbox', v.Name), NewDrawing'Square'{
809 Size = Vector2.new(BaseSize.X, 20) - Vector2.new(30, 0);
810 Visible = true;
811 Transparency= .5;
812 Position = BasePosition + Vector2.new(15, -10);
813 Color = Colors.Secondary.Light;
814 Filled = true;
815 });
816 };
817 local Text = Menu:AddMenuInstace(Format('%s_Text', v.Name), NewDrawing'Text'{
818 Text = v.Text;
819 Size = 20;
820 Position = BasePosition + Vector2.new(20, -10);
821 Visible = true;
822 Color = Colors.Primary.Dark;
823 });
824 local BindText = Menu:AddMenuInstace(Format('%s_BindText', v.Name), NewDrawing'Text'{
825 Text = tostring(v.Value):match'%w+%.%w+%.(.+)';
826 Size = 20;
827 Position = BasePosition;
828 Visible = true;
829 Color = Colors.Primary.Dark;
830 });
831
832 Options[i].BaseSize = BaseSize;
833 Options[i].BasePosition = BasePosition;
834 BindText.Position = BasePosition + Vector2.new(BaseSize.X - BindText.TextBounds.X - 20, -10);
835 end
836 end)
837 GetTableData(Options)(function(i, v) -- just to make sure certain things are drawn before or after others, too lazy to actually sort table
838 if typeof(v.Value) == 'function' then
839 local BaseSize = Vector2.new(BaseSize.X, 30);
840 local BasePosition = shared.MenuDrawingData.Instances.Filling.Position + Vector2.new(0, CPos + (25 * v.AllArgs[4]) - 35);
841
842 UIButtons[#UIButtons + 1] = {
843 Option = v;
844 Instance = Menu:AddMenuInstace(Format('%s_Hitbox', v.Name), NewDrawing'Square'{
845 Size = Vector2.new(BaseSize.X, 20) - Vector2.new(30, 0);
846 Visible = true;
847 Transparency= .5;
848 Position = BasePosition + Vector2.new(15, -10);
849 Color = Colors.Secondary.Light;
850 Filled = true;
851 });
852 };
853 local Text = Menu:AddMenuInstace(Format('%s_Text', v.Name), NewDrawing'Text'{
854 Text = v.Text;
855 Size = 20;
856 Position = BasePosition + Vector2.new(20, -10);
857 Visible = true;
858 Color = Colors.Primary.Dark;
859 });
860
861 -- BindText.Position = BasePosition + Vector2.new(BaseSize.X - BindText.TextBounds.X - 10, -10);
862 end
863 end)
864
865 delay(.1, function()
866 MenuLoaded = true;
867 end);
868
869 -- this has to be at the bottom cuz proto drawing api doesnt have zindex :triumph:
870 Menu:AddMenuInstace('Cursor1', NewDrawing'Line'{
871 Visible = false;
872 Color = Color3.new(1, 0, 0);
873 Transparency = 1;
874 Thickness = 2;
875 });
876 Menu:AddMenuInstace('Cursor2', NewDrawing'Line'{
877 Visible = false;
878 Color = Color3.new(1, 0, 0);
879 Transparency = 1;
880 Thickness = 2;
881 });
882 Menu:AddMenuInstace('Cursor3', NewDrawing'Line'{
883 Visible = false;
884 Color = Color3.new(1, 0, 0);
885 Transparency = 1;
886 Thickness = 2;
887 });
888end
889
890CreateMenu();
891
892shared.InputBeganCon = UserInputService.InputBegan:connect(function(input)
893 if input.UserInputType.Name == 'MouseButton1' and Options.MenuOpen.Value then
894 MouseHeld = true;
895 local Bar = Menu:GetInstance'TopBar';
896 local Values = {
897 Bar.Position.X;
898 Bar.Position.Y;
899 Bar.Position.X + Bar.Size.X;
900 Bar.Position.Y + Bar.Size.Y;
901 }
902 if MouseHoveringOver(Values) and not syn then -- disable dragging for synapse cuz idk why it breaks
903 DraggingUI = true;
904 DragOffset = Menu:GetInstance'Main'.Position - GetMouseLocation();
905 else
906 for i, v in pairs(Sliders) do
907 local Values = {
908 v.Line.From.X - (v.Slider.Radius);
909 v.Line.From.Y - (v.Slider.Radius);
910 v.Line.To.X + (v.Slider.Radius);
911 v.Line.To.Y + (v.Slider.Radius);
912 };
913 if MouseHoveringOver(Values) then
914 DraggingWhat = v;
915 Dragging = true;
916 break
917 end
918 end
919 end
920 end
921end)
922shared.InputEndedCon = UserInputService.InputEnded:connect(function(input)
923 if input.UserInputType.Name == 'MouseButton1' and Options.MenuOpen.Value then
924 MouseHeld = false;
925 for i, v in pairs(UIButtons) do
926 local Values = {
927 v.Instance.Position.X;
928 v.Instance.Position.Y;
929 v.Instance.Position.X + v.Instance.Size.X;
930 v.Instance.Position.Y + v.Instance.Size.Y;
931 };
932 if MouseHoveringOver(Values) then
933 v.Option();
934 break -- prevent clicking 2 options
935 end
936 end
937 elseif input.UserInputType.Name == 'Keyboard' then
938 if Binding then
939 BindedKey = input.KeyCode;
940 Binding = false;
941 elseif input.KeyCode == Options.MenuKey.Value or (input.KeyCode == Enum.KeyCode.Home and UserInputService:IsKeyDown(Enum.KeyCode.LeftControl)) then
942 Options.MenuOpen();
943 end
944 end
945end)
946
947function ToggleMenu()
948 if Options.MenuOpen.Value then
949 GetTableData(shared.MenuDrawingData.Instances)(function(i, v)
950 if OldData[v] then
951 pcall(Set, v, 'Visible', true);
952 end
953 end)
954 else
955 -- GUIService:SetMenuIsOpen(false);
956 GetTableData(shared.MenuDrawingData.Instances)(function(i, v)
957 if v.Visible == true then
958 OldData[v] = true;
959 pcall(Set, v, 'Visible', false);
960 end
961 end)
962 end
963end
964
965function CheckRay(Instance, Distance, Position, Unit)
966 local Pass = true;
967 local Model = Instance;
968
969 if Distance > 999 then return false; end
970
971 if Instance:IsA'Player' and not Instance.Character then
972 return false;
973 elseif Instance:IsA'Player' and Instance.Character then
974 Model = Instance.Character
975 else
976 Model = Instance.Parent;
977 if Model.Parent == workspace then
978 Model = Instance;
979 end
980 end
981
982 local _Ray = Ray.new(Position, Unit * Distance);
983
984 local List = {LocalPlayer.Character, Camera, Mouse.TargetFilter};
985
986 for i,v in pairs(IgnoreList) do table.insert(List, v); end;
987
988 local Hit = workspace:FindPartOnRayWithIgnoreList(_Ray, List);
989
990 if Hit and not Hit:IsDescendantOf(Model) then
991 Pass = false;
992 if Hit.Transparency >= .3 or not Hit.CanCollide and Hit.ClassName ~= Terrain then -- Detect invisible walls
993 IgnoreList[#IgnoreList + 1] = Hit;
994 end
995 end
996
997 return Pass;
998end
999
1000function CheckTeam(Player)
1001 if Player.Neutral and LocalPlayer.Neutral then return true; end
1002 return Player.TeamColor == LocalPlayer.TeamColor;
1003end
1004
1005local CustomTeam = CustomTeams[game.PlaceId];
1006
1007if CustomTeam ~= nil then
1008 ypcall(CustomTeam.Initialize);
1009 CheckTeam = CustomTeam.CheckTeam;
1010end
1011
1012function CheckPlayer(Player)
1013 if not Options.Enabled.Value then return false end
1014
1015 local Pass = true;
1016 local Distance = 0;
1017
1018 if Player ~= LocalPlayer and Player.Character then
1019 if not Options.ShowTeam.Value and CheckTeam(Player) then
1020 Pass = false;
1021 end
1022
1023 local Head = Player.Character:FindFirstChild'Head';
1024
1025 if Pass and Player.Character and Head then
1026 Distance = (Camera.CFrame.p - Head.Position).magnitude;
1027 if Options.VisCheck.Value then
1028 Pass = CheckRay(Player, Distance, Camera.CFrame.p, (Head.Position - Camera.CFrame.p).unit);
1029 end
1030 if Distance > Options.MaxDistance.Value then
1031 Pass = false;
1032 end
1033 end
1034 else
1035 Pass = false;
1036 end
1037
1038 return Pass, Distance;
1039end
1040
1041function CheckDistance(Instance)
1042 if not Options.Enabled.Value then return false end
1043
1044 local Pass = true;
1045 local Distance = 0;
1046
1047 if Instance ~= nil then
1048 Distance = (Camera.CFrame.p - Instance.Position).magnitude;
1049 if Options.VisCheck.Value then
1050 Pass = CheckRay(Instance, Distance, Camera.CFrame.p, (Instance.Position - Camera.CFrame.p).unit);
1051 end
1052 if Distance > Options.MaxDistance.Value then
1053 Pass = false;
1054 end
1055 else
1056 Pass = false;
1057 end
1058
1059 return Pass, Distance;
1060end
1061
1062function UpdatePlayerData()
1063 if (tick() - LastRefresh) > (Options.RefreshRate.Value / 1000) then
1064 LastRefresh = tick();
1065 if CustomESP and Options.Enabled.Value then
1066 pcall(CustomESP);
1067 end
1068 for i, v in pairs(RenderList.Instances) do
1069 if v.Instance ~= nil and v.Instance.Parent ~= nil and v.Instance:IsA'BasePart' then
1070 local Data = shared.InstanceData[v.Instance:GetDebugId()] or { Instances = {}; DontDelete = true };
1071
1072 Data.Instance = v.Instance;
1073
1074 Data.Instances['Tracer'] = Data.Instances['Tracer'] or NewDrawing'Line'{
1075 Transparency = 1;
1076 Thickness = 2;
1077 }
1078 Data.Instances['NameTag'] = Data.Instances['NameTag'] or NewDrawing'Text'{
1079 Size = Options.TextSize.Value;
1080 Center = true;
1081 Outline = Options.TextOutline.Value;
1082 Visible = true;
1083 };
1084 Data.Instances['DistanceTag'] = Data.Instances['DistanceTag'] or NewDrawing'Text'{
1085 Size = Options.TextSize.Value - 1;
1086 Center = true;
1087 Outline = Options.TextOutline.Value;
1088 Visible = true;
1089 };
1090
1091 local NameTag = Data.Instances['NameTag'];
1092 local DistanceTag = Data.Instances['DistanceTag'];
1093 local Tracer = Data.Instances['Tracer'];
1094
1095 local Pass, Distance = CheckDistance(v.Instance);
1096
1097 if Pass then
1098 local ScreenPosition, Vis = Camera:WorldToViewportPoint(v.Instance.Position);
1099
1100 if ScreenPosition.Z > 0 then
1101 local Color = v.Color;
1102
1103 local ScreenPositionUpper = ScreenPosition
1104 -- Camera:WorldToViewportPoint((v.Instance.CFrame * CFrame.new(0, v.Instance.Size.Y, 0)).p);
1105
1106 if Options.ShowName.Value then
1107 LocalPlayer.NameDisplayDistance = 0;
1108 NameTag.Visible = true;
1109 NameTag.Text = v.Text;
1110 NameTag.Size = Options.TextSize.Value;
1111 NameTag.Outline = Options.TextOutline.Value;
1112 NameTag.Position = Vector2.new(ScreenPositionUpper.X, ScreenPositionUpper.Y);
1113 NameTag.Color = Color;
1114 if Drawing.Fonts then -- CURRENTLY SYNAPSE ONLY :MEGAHOLY:
1115 NameTag.Font = Drawing.Fonts.UI;
1116 end
1117 else
1118 LocalPlayer.NameDisplayDistance = 100;
1119 NameTag.Visible = false;
1120 end
1121 if Options.ShowDistance.Value or Options.ShowHealth.Value then
1122 DistanceTag.Visible = true;
1123 DistanceTag.Size = Options.TextSize.Value - 1;
1124 DistanceTag.Outline = Options.TextOutline.Value;
1125 DistanceTag.Color = Color3.new(1, 1, 1);
1126 if Drawing.Fonts then -- CURRENTLY SYNAPSE ONLY :MEGAHOLY:
1127 NameTag.Font = Drawing.Fonts.UI;
1128 end
1129
1130 local Str = '';
1131
1132 if Options.ShowDistance.Value then
1133 Str = Str .. Format('[%d] ', Distance);
1134 end
1135
1136 DistanceTag.Text = Str;
1137 DistanceTag.Position = Vector2.new(ScreenPositionUpper.X, ScreenPositionUpper.Y) + Vector2.new(0, NameTag.TextBounds.Y);
1138 else
1139 DistanceTag.Visible = false;
1140 end
1141 if Options.ShowTracers.Value then
1142 Tracer.Visible = true;
1143 Tracer.From = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y);
1144 Tracer.To = Vector2.new(ScreenPosition.X, ScreenPosition.Y);
1145 Tracer.Color = Color;
1146 else
1147 Tracer.Visible = false;
1148 end
1149 else
1150 NameTag.Visible = false;
1151 DistanceTag.Visible = false;
1152 Tracer.Visible = false;
1153 end
1154 else
1155 NameTag.Visible = false;
1156 DistanceTag.Visible = false;
1157 Tracer.Visible = false;
1158 end
1159
1160 Data.Instances['NameTag'] = NameTag;
1161 Data.Instances['DistanceTag'] = DistanceTag;
1162 Data.Instances['Tracer'] = Tracer;
1163
1164 shared.InstanceData[v.Instance:GetDebugId()] = Data;
1165 end
1166 end
1167 for i, v in pairs(Players:GetPlayers()) do
1168 local Data = shared.InstanceData[v.Name] or { Instances = {}; };
1169
1170 Data.Instances['Box'] = Data.Instances['Box'] or LineBox:Create{Thickness = 3};
1171 Data.Instances['Tracer'] = Data.Instances['Tracer'] or NewDrawing'Line'{
1172 Transparency = 1;
1173 Thickness = 2;
1174 }
1175 Data.Instances['HeadDot'] = Data.Instances['HeadDot'] or NewDrawing'Circle'{
1176 Filled = true;
1177 NumSides = 30;
1178 }
1179 Data.Instances['NameTag'] = Data.Instances['NameTag'] or NewDrawing'Text'{
1180 Size = Options.TextSize.Value;
1181 Center = true;
1182 Outline = Options.TextOutline.Value;
1183 Visible = true;
1184 };
1185 Data.Instances['DistanceHealthTag'] = Data.Instances['DistanceHealthTag'] or NewDrawing'Text'{
1186 Size = Options.TextSize.Value - 1;
1187 Center = true;
1188 Outline = Options.TextOutline.Value;
1189 Visible = true;
1190 };
1191
1192 local NameTag = Data.Instances['NameTag'];
1193 local DistanceTag = Data.Instances['DistanceHealthTag'];
1194 local Tracer = Data.Instances['Tracer'];
1195 local HeadDot = Data.Instances['HeadDot'];
1196 local Box = Data.Instances['Box'];
1197
1198 local Pass, Distance = CheckPlayer(v);
1199
1200 if Pass and v.Character then
1201 local Humanoid = v.Character:FindFirstChildOfClass'Humanoid';
1202 local Head = v.Character:FindFirstChild'Head';
1203 local HumanoidRootPart = v.Character:FindFirstChild'HumanoidRootPart';
1204 if v.Character ~= nil and Head then
1205 local ScreenPosition, Vis = Camera:WorldToViewportPoint(Head.Position);
1206
1207 if ScreenPosition.Z > 0 then
1208 local Color = CheckTeam(v) and Green or Red;
1209
1210 if (Options.ShowTeamColor.Value) then Color = v.TeamColor.Color; end
1211
1212 local ScreenPositionUpper = Camera:WorldToViewportPoint(Head.CFrame * CFrame.new(0, Head.Size.Y, 0).p);
1213 local Scale = Head.Size.Y / 2;
1214
1215 if Options.ShowName.Value then
1216 NameTag.Visible = true;
1217 NameTag.Text = v.Name .. (CustomPlayerTag and CustomPlayerTag(v) or '');
1218 NameTag.Size = Options.TextSize.Value;
1219 NameTag.Outline = Options.TextOutline.Value;
1220 NameTag.Position = Vector2.new(ScreenPositionUpper.X, ScreenPositionUpper.Y);
1221 NameTag.Color = Color;
1222 if Drawing.Fonts then -- CURRENTLY SYNAPSE ONLY :MEGAHOLY:
1223 NameTag.Font = Drawing.Fonts.UI;
1224 end
1225 else
1226 NameTag.Visible = false;
1227 end
1228 if Options.ShowDistance.Value or Options.ShowHealth.Value then
1229 DistanceTag.Visible = true;
1230 DistanceTag.Size = Options.TextSize.Value - 1;
1231 DistanceTag.Outline = Options.TextOutline.Value;
1232 DistanceTag.Color = Color3.new(1, 1, 1);
1233 if Drawing.Fonts then -- CURRENTLY SYNAPSE ONLY :MEGAHOLY:
1234 NameTag.Font = Drawing.Fonts.UI;
1235 end
1236
1237 local Str = '';
1238
1239 if Options.ShowDistance.Value then
1240 Str = Str .. Format('[%d] ', Distance);
1241 end
1242 if Options.ShowHealth.Value and Humanoid then
1243 Str = Str .. Format('[%d/100]', Humanoid.Health / Humanoid.MaxHealth * 100);
1244 end
1245
1246 DistanceTag.Text = Str;
1247 DistanceTag.Position = Vector2.new(ScreenPositionUpper.X, ScreenPositionUpper.Y) + Vector2.new(0, NameTag.Size);
1248 else
1249 DistanceTag.Visible = false;
1250 end
1251 if Options.ShowDot.Value then
1252 local Top = Camera:WorldToViewportPoint((Head.CFrame * CFrame.new(0, Scale, 0)).p);
1253 local Bottom = Camera:WorldToViewportPoint((Head.CFrame * CFrame.new(0, -Scale, 0)).p);
1254 local Radius = (Top - Bottom).y;
1255
1256 HeadDot.Visible = true;
1257 HeadDot.Color = Color;
1258 HeadDot.Position = Vector2.new(ScreenPosition.X, ScreenPosition.Y);
1259 HeadDot.Radius = Radius;
1260 else
1261 HeadDot.Visible = false;
1262 end
1263 if Options.ShowTracers.Value then
1264 Tracer.Visible = true;
1265 Tracer.From = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y);
1266 Tracer.To = Vector2.new(ScreenPosition.X, ScreenPosition.Y);
1267 Tracer.Color = Color;
1268 else
1269 Tracer.Visible = false;
1270 end
1271 if Options.ShowBoxes.Value and HumanoidRootPart then
1272 Box:Update(HumanoidRootPart.CFrame, Vector3.new(2, 3, 0) * (Scale * 2), Color);
1273 else
1274 Box:SetVisible(false);
1275 end
1276 else
1277 NameTag.Visible = false;
1278 DistanceTag.Visible = false;
1279 Tracer.Visible = false;
1280 HeadDot.Visible = false;
1281
1282 Box:SetVisible(false);
1283 end
1284 end
1285 else
1286 NameTag.Visible = false;
1287 DistanceTag.Visible = false;
1288 Tracer.Visible = false;
1289 HeadDot.Visible = false;
1290
1291 Box:SetVisible(false);
1292 end
1293
1294 shared.InstanceData[v.Name] = Data;
1295 end
1296 end
1297end
1298
1299function Update()
1300 if tick() % .5 < .01 then
1301 for i, v in pairs(shared.InstanceData) do
1302 if not Players:FindFirstChild(tostring(i)) then
1303 if not shared.InstanceData[i].DontDelete then
1304 GetTableData(v.Instances)(function(i, obj)
1305 obj.Visible = false;
1306 obj:Remove();
1307 v.Instances[i] = nil;
1308 end)
1309 shared.InstanceData[i] = nil;
1310 else
1311 if shared.InstanceData[i].Instance == nil or shared.InstanceData[i].Instance.Parent == nil then
1312 GetTableData(v.Instances)(function(i, obj)
1313 obj.Visible = false;
1314 obj:Remove();
1315 v.Instances[i] = nil;
1316 end)
1317 shared.InstanceData[i] = nil;
1318 end
1319 end
1320 end
1321 end
1322 end
1323
1324 local CX = Menu:GetInstance'CrosshairX';
1325 local CY = Menu:GetInstance'CrosshairY';
1326
1327 if Options.Crosshair.Value then
1328 CX.Visible = true;
1329 CY.Visible = true;
1330
1331 CX.To = Vector2.new((Camera.ViewportSize.X / 2) - 8, (Camera.ViewportSize.Y / 2));
1332 CX.From = Vector2.new((Camera.ViewportSize.X / 2) + 8, (Camera.ViewportSize.Y / 2));
1333 CY.To = Vector2.new((Camera.ViewportSize.X / 2), (Camera.ViewportSize.Y / 2) - 8);
1334 CY.From = Vector2.new((Camera.ViewportSize.X / 2), (Camera.ViewportSize.Y / 2) + 8);
1335 else
1336 CX.Visible = false;
1337 CY.Visible = false;
1338 end
1339
1340 if Options.MenuOpen.Value and MenuLoaded then
1341 local MLocation = GetMouseLocation();
1342 shared.MenuDrawingData.Instances.Main.Color = Color3.fromHSV(tick() * 24 % 255/255, 1, 1);
1343 local MainInstance = Menu:GetInstance'Main';
1344 local Values = {
1345 MainInstance.Position.X;
1346 MainInstance.Position.Y;
1347 MainInstance.Position.X + MainInstance.Size.X;
1348 MainInstance.Position.Y + MainInstance.Size.Y;
1349 };
1350 if MainInstance and MouseHoveringOver(Values) then
1351 Debounce.CursorVis = true;
1352 -- GUIService:SetMenuIsOpen(true);
1353 Menu:UpdateMenuInstance'Cursor1'{
1354 Visible = true;
1355 From = Vector2.new(MLocation.x, MLocation.y);
1356 To = Vector2.new(MLocation.x + 5, MLocation.y + 6);
1357 }
1358 Menu:UpdateMenuInstance'Cursor2'{
1359 Visible = true;
1360 From = Vector2.new(MLocation.x, MLocation.y);
1361 To = Vector2.new(MLocation.x, MLocation.y + 8);
1362 }
1363 Menu:UpdateMenuInstance'Cursor3'{
1364 Visible = true;
1365 From = Vector2.new(MLocation.x, MLocation.y + 6);
1366 To = Vector2.new(MLocation.x + 5, MLocation.y + 5);
1367 }
1368 else
1369 if Debounce.CursorVis then
1370 Debounce.CursorVis = false;
1371 -- GUIService:SetMenuIsOpen(false);
1372 Menu:UpdateMenuInstance'Cursor1'{Visible = false};
1373 Menu:UpdateMenuInstance'Cursor2'{Visible = false};
1374 Menu:UpdateMenuInstance'Cursor3'{Visible = false};
1375 end
1376 end
1377 if MouseHeld then
1378 if Dragging then
1379 DraggingWhat.Slider.Position = Vector2.new(math.clamp(MLocation.X, DraggingWhat.Line.From.X, DraggingWhat.Line.To.X), DraggingWhat.Slider.Position.Y);
1380 local Percent = (DraggingWhat.Slider.Position.X - DraggingWhat.Line.From.X) / ((DraggingWhat.Line.To.X - DraggingWhat.Line.From.X));
1381 local Value = CalculateValue(DraggingWhat.Min, DraggingWhat.Max, Percent);
1382 DraggingWhat.Option(Value);
1383 elseif DraggingUI then
1384 Debounce.UIDrag = true;
1385 local Main = Menu:GetInstance'Main';
1386 local MousePos = GetMouseLocation();
1387 Main.Position = MousePos + DragOffset;
1388 end
1389 else
1390 Dragging = false;
1391 if DraggingUI and Debounce.UIDrag then
1392 Debounce.UIDrag = false;
1393 DraggingUI = false;
1394 CreateMenu(Menu:GetInstance'Main'.Position);
1395 end
1396 end
1397 if not Debounce.Menu then
1398 Debounce.Menu = true;
1399 ToggleMenu();
1400 end
1401 elseif Debounce.Menu and not Options.MenuOpen.Value then
1402 Debounce.Menu = false;
1403 ToggleMenu();
1404 end
1405end
1406
1407RunService:UnbindFromRenderStep(GetDataName);
1408RunService:UnbindFromRenderStep(UpdateName);
1409
1410RunService:BindToRenderStep(GetDataName, 1, UpdatePlayerData);
1411RunService:BindToRenderStep(UpdateName, 1, Update);
1412end)
1413
1414hitboxextender.Name = "hitboxextender"
1415hitboxextender.Parent = main
1416hitboxextender.BackgroundColor3 = Color3.new(1, 1, 1)
1417hitboxextender.BorderSizePixel = 0
1418hitboxextender.Position = UDim2.new(0.344681054, 0, 0.320057154, 0)
1419hitboxextender.Size = UDim2.new(0, 132, 0, 50)
1420hitboxextender.Font = Enum.Font.SourceSans
1421hitboxextender.Text = "HitBox Extender"
1422hitboxextender.TextColor3 = Color3.new(1, 0, 0.0156863)
1423hitboxextender.TextSize = 14
1424hitboxextender.MouseButton1Down:connect(function()
1425_G.HeadSize = 40
1426_G.Disabled = true
1427
1428game:GetService('RunService').RenderStepped:connect(function()
1429if _G.Disabled then
1430for i,v in next, game:GetService('Players'):GetPlayers() do
1431if v.Name ~= game:GetService('Players').LocalPlayer.Name then
1432pcall(function()
1433v.Character.HumanoidRootPart.Size = Vector3.new(_G.HeadSize,_G.HeadSize,_G.HeadSize)
1434v.Character.HumanoidRootPart.Transparency = 0.7
1435v.Character.HumanoidRootPart.BrickColor = BrickColor.new("Really blue")
1436v.Character.HumanoidRootPart.Material = "Neon"
1437v.Character.HumanoidRootPart.CanCollide = false
1438end)
1439end
1440end
1441end
1442end)
1443end)
1444
1445title.Name = "title"
1446title.Parent = main
1447title.BackgroundColor3 = Color3.new(1, 0, 0)
1448title.BorderSizePixel = 0
1449title.Position = UDim2.new(-0.016431924, 0, -0.0496453904, 0)
1450title.Size = UDim2.new(0, 439, 0, 20)
1451title.ClearTextOnFocus = false
1452title.Font = Enum.Font.SourceSans
1453title.PlaceholderColor3 = Color3.new(1, 1, 1)
1454title.Text = "Island Royale GUI"
1455title.TextColor3 = Color3.new(1, 1, 1)
1456title.TextScaled = true
1457title.TextSize = 14
1458title.TextWrapped = true
1459
1460credits.Name = "credits"
1461credits.Parent = main
1462credits.BackgroundColor3 = Color3.new(1, 0, 0)
1463credits.BorderSizePixel = 0
1464credits.Position = UDim2.new(-0.016431924, 0, 0.914893627, 0)
1465credits.Size = UDim2.new(0, 439, 0, 20)
1466credits.ClearTextOnFocus = false
1467credits.Font = Enum.Font.SourceSans
1468credits.PlaceholderColor3 = Color3.new(1, 1, 1)
1469credits.Text = "Made by UbiquitousGaming#9383"
1470credits.TextColor3 = Color3.new(1, 1, 1)
1471credits.TextScaled = true
1472credits.TextSize = 14
1473credits.TextWrapped = true
1474
1475close.Name = "close"
1476close.Parent = main
1477close.BackgroundColor3 = Color3.new(1, 0, 0)
1478close.BorderSizePixel = 0
1479close.Position = UDim2.new(0.938967109, 0, -0.0496454984, 0)
1480close.Size = UDim2.new(0, 32, 0, 20)
1481close.Font = Enum.Font.SourceSans
1482close.Text = "X"
1483close.TextColor3 = Color3.new(1, 1, 1)
1484close.TextSize = 14
1485close.MouseButton1Down:connect(function()
1486frame.Visible = true
1487main.Visible = false
1488end)
1489function SCRIPT_CDTD81_FAKESCRIPT() -- frame.bordercolor
1490 local script = Instance.new('LocalScript')
1491 script.Parent = frame
1492 function zigzag(X) return math.acos(math.cos(X*math.pi))/math.pi end
1493 counter = 0
1494
1495 while wait(0.1) do
1496 script.Parent.BorderColor3 = Color3.fromHSV(zigzag(counter),1,1)
1497 counter = counter + 0.01
1498 end
1499
1500end
1501coroutine.resume(coroutine.create(SCRIPT_CDTD81_FAKESCRIPT))
1502function SCRIPT_EDQE88_FAKESCRIPT() -- main.border
1503 local script = Instance.new('LocalScript')
1504 script.Parent = main
1505 function zigzag(X) return math.acos(math.cos(X*math.pi))/math.pi end
1506 counter = 0
1507
1508 while wait(0.1) do
1509 script.Parent.BorderColor3 = Color3.fromHSV(zigzag(counter),1,1)
1510 counter = counter + 0.01
1511 end
1512
1513end
1514coroutine.resume(coroutine.create(SCRIPT_EDQE88_FAKESCRIPT))