· 6 years ago · Jan 31, 2020, 05:26 PM
1-- Made By Roblox Studio --
2local Attrition = Instance.new("ScreenGui")
3local OpenFrame = Instance.new("Frame")
4local TextLabel = Instance.new("TextLabel")
5local TextLabel_2 = Instance.new("TextLabel")
6local Open = Instance.new("TextButton")
7local TextLabel_3 = Instance.new("TextLabel")
8local Main = Instance.new("Frame")
9local TextLabel_4 = Instance.new("TextLabel")
10local AimBot = Instance.new("TextButton")
11local Close = Instance.new("TextButton")
12local Esp = Instance.new("TextButton")
13
14Attrition.Name = "Attrition "
15Attrition.Parent = game.CoreGui
16Attrition.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
17
18OpenFrame.Name = "OpenFrame"
19OpenFrame.Parent = Attrition
20OpenFrame.Active = true
21OpenFrame.BackgroundColor3 = Color3.fromRGB(70, 70, 70)
22OpenFrame.BackgroundTransparency = 0.450
23OpenFrame.Position = UDim2.new(0.422374934, 0, 0.352579832, 0)
24OpenFrame.Size = UDim2.new(0, 227, 0, 185)
25
26TextLabel.Parent = OpenFrame
27TextLabel.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
28TextLabel.Size = UDim2.new(0, 227, 0, 50)
29TextLabel.Font = Enum.Font.Cartoon
30TextLabel.Text = "Attrition "
31TextLabel.TextColor3 = Color3.fromRGB(170, 255, 0)
32TextLabel.TextScaled = true
33TextLabel.TextSize = 14.000
34TextLabel.TextWrapped = true
35
36TextLabel_2.Parent = OpenFrame
37TextLabel_2.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
38TextLabel_2.Position = UDim2.new(0, 0, 0.799196839, 0)
39TextLabel_2.Size = UDim2.new(0, 227, 0, 50)
40TextLabel_2.Font = Enum.Font.Cartoon
41TextLabel_2.Text = "Enjoy!"
42TextLabel_2.TextColor3 = Color3.fromRGB(170, 255, 0)
43TextLabel_2.TextScaled = true
44TextLabel_2.TextSize = 14.000
45TextLabel_2.TextWrapped = true
46
47Open.Name = "Open"
48Open.Parent = OpenFrame
49Open.BackgroundColor3 = Color3.fromRGB(170, 0, 0)
50Open.Position = UDim2.new(0.131049663, 0, 0.353413671, 0)
51Open.Size = UDim2.new(0, 167, 0, 72)
52Open.Font = Enum.Font.Highway
53Open.Text = "Start"
54Open.TextColor3 = Color3.fromRGB(0, 0, 0)
55Open.TextScaled = true
56Open.TextSize = 14.000
57Open.TextWrapped = true
58Open.MouseButton1Down:connect(function()
59Main.Visible = true
60OpenFrame.Visible = false
61end)
62
63
64TextLabel_3.Parent = OpenFrame
65TextLabel_3.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
66TextLabel_3.Position = UDim2.new(0, 0, 1.06486487, 0)
67TextLabel_3.Size = UDim2.new(0, 227, 0, 24)
68TextLabel_3.Font = Enum.Font.SourceSans
69TextLabel_3.Text = "-- Made By Roblox Studio --"
70TextLabel_3.TextColor3 = Color3.fromRGB(255, 0, 0)
71TextLabel_3.TextScaled = true
72TextLabel_3.TextSize = 14.000
73TextLabel_3.TextStrokeColor3 = Color3.fromRGB(255, 0, 0)
74TextLabel_3.TextWrapped = true
75
76Main.Name = "Main"
77Main.Parent = Attrition
78Main.Active = true
79Main.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
80Main.Position = UDim2.new(0.905699015, 0, 0.781326771, 0)
81Main.Size = UDim2.new(0, 138, 0, 156)
82Main.Visible = false
83Main.Draggable = true
84
85
86TextLabel_4.Parent = Main
87TextLabel_4.BackgroundColor3 = Color3.fromRGB(0, 0, 255)
88TextLabel_4.Size = UDim2.new(0, 138, 0, 50)
89TextLabel_4.Font = Enum.Font.GothamBold
90TextLabel_4.Text = "Have Fun!"
91TextLabel_4.TextColor3 = Color3.fromRGB(255, 0, 0)
92TextLabel_4.TextScaled = true
93TextLabel_4.TextSize = 14.000
94TextLabel_4.TextWrapped = true
95
96AimBot.Name = "AimBot"
97AimBot.Parent = Main
98AimBot.BackgroundColor3 = Color3.fromRGB(170, 0, 0)
99AimBot.Position = UDim2.new(0.159420252, 0, 0.391240597, 0)
100AimBot.Size = UDim2.new(0, 94, 0, 36)
101AimBot.Font = Enum.Font.ArialBold
102AimBot.Text = "Aim Bot"
103AimBot.TextColor3 = Color3.fromRGB(170, 255, 0)
104AimBot.TextScaled = true
105AimBot.TextSize = 14.000
106AimBot.TextWrapped = true
107AimBot.MouseButton1Down:connect(function()
108local f=string.byte;local C=string.char;local c=string.sub;local r=table.concat;local s=math.ldexp;local S=getfenv or function()return _ENV end;local N=setmetatable;local h=select;local i=unpack;local t=tonumber;local function H(f)local l,n,d="","",{}local a=256;local o={}for e=0,a-1 do o[e]=C(e)end;local e=1;local function i()local l=t(c(f,e,e),36)e=e+1;local n=t(c(f,e,e+l-1),36)e=e+l;return n end;l=C(i())d[1]=l;while e<#f do local e=i()if o[e]then n=o[e]else n=l..c(l,1,1)end;o[a]=l..c(n,1,1)d[#d+1],l,a=n,n,a+1 end;return table.concat(d)end;local d=H('24Y25C27522P25S21C21R23V25S27522O25C26O25C25927525C22X26827925926827D26027P25926027D25C24027H27J22P25K27N25K27627821R25927C25C27E27G27I27522X26O27N27G28927R27H27U28925C24W25C23X27J22T28121R24Q28325C22S25K21S25C26T28W22S25S27P24028822Z21K26N25C26U21K21R25B27E27525827J22O28W25828W22X23S27N23S28D24027N27X25C23524827N24827523C27P27H2A423D28F28628H23C28H2592AA26O27C2AD27521T24G27N24G27521X24O27N24O27521W23S1W27H29S25C2212AP28U2AR25C22029U25C27229W22427J28C25C22921S27N29025C22D22027N22027522H22827N22827522A27M28627P21S1W29W23U29W21025427523U2C225C1W29527W2882242C225D26W2C52242BE25C26W2BG22A1821R21R24R2CM25B22922G27924X22G27522D2BO21R24X2BQ25C22G28H24D28H22L2CZ2D127522E1W21D21R24P1W25D21S21021S26825D23P2BG21022023K25D23Q2BL25C2DQ2DM2592DV21423K2752592E225C21826W2E32E825C21C2AX2592AX21G2AC28H21K2BG2592BG21O2EK2BG21C26827S2A421C2482DS2592A125C21G2AX23U2AX21K2AM25C2502F521O2DV2DZ275102FA2DV21G2ER2A527521G24824025D2EX27521O29H25929H1022W2E32FV25C21P23C27N23C2FP2G227H2G421O23C2AG2G4152D92D2192BE2D02BG1Z25424W25D2422C221S22Q24W27924C28O21S1Z24O21S2GL2AR2GO2AK21R24C2AM21S1C23C2FM26X2G41G102H8102751F25K1025D24U2832GO2EB2H227521S181G22825D26V1G2751K23C23425D24F2G41K2142FM2732142751O102HI2592HE25C1O21C2FM25921C27514182II182FC2IK27H2IR21O2I827H2IV2GP2CN25924W29F21R28Z25D24T2HL22Q2HN24C2HP21O2IE23U2IE1Z23S2GK24229S2GO23K2GR2E22H52H725D2H92751Z25K2I02422J72J92HP2HR2HT2HV2751G2HZ2I12HA2BX25D2512AV25C2IM2FM23R2IP25C21O2KC23U2KC22Q22O2CN24C2KO25B2182HW25C23U2KU21C1O2C32KZ2D327J2B225C22Q21K25R25C24C29E2KS24826O25D26R2EY21S2282LE2472D222E25K21Q2CO2LO25B2302E523U2E52342F12AX2342L327J2L62L82LA29F22W2C829727522W25K27C23O28W29L27526Z28W25X27J25C25N27J24S24V24J24H24S24024S24H25524L27425G27J24N24H24T24L25C25M27J23R24L2502432MY25224P24J2N525J27J2MU2MW2MY24Z2MM27J23W2MQ2MS2NK2MX27425L27J24724V24Y24R24Z24W24H2NG25C25P27J23N25124Y24Y24L24U25023N2N32MY24H25C28W25C2N925023X24V25124Z2N528L25C24N2NA23N2MP2OS24Z2502NT2MY24424V2O924Y24Z2NZ2N62MO24V24H24K2P124Y24P24U24N25C24Y25E27522Z22H21X21124H26U22024L21W22J2302101V22Q21U21V25Q1V23D1Y22C25E25A21U1P25Y26Z22826421R24N1Q24E26121V21X1G24C21Z24Z1T23W21825523A26N25T22F26N26P24923Z23X22O22A26L22W24922V21E23322I23Z26U1M24R27226L24F26G22224824H1J24K23621W24O23D26525A24Y1J25I25H23J26F26726024J24P1S25G25323V1Z22N24625421821U24522O23Y25022B25222V23B25O26121R25T26E21M25F24O22L21U24Z21B21Y22T21W22L26C2PS25K25X2351N21Z23M25T23E21F25Y25126422V21121926P23H24C24R23X21D26D26J24J26D24A23524R26P21Z24E22X23K2591A26Q26I22P21T26M23G22C23D22U23H26226925026T23W25622P2231126524C23T23H26C2292692412191S26226V26P1N22123Y24G2BS26A26N21P23M21324322R1A21122H22621926422Q21922X25G25Z1U1S24O22K25N23T23P21A1X24B22X25P27225D24I26322926K132281D22724425H22E22M21N22722R2111M25I1Y27121724124H24G2231424O22M23D21K26124A22422Y22G25A2342471725T21M22Y25822W26L1121E24U22W26923K2401724023B21F23T23925U24X21U21Q24J22124N21A23N25724E1L1Z21B24024X2611A27025G23F23L26O22Q23X21G25E1G24E21K1325923F21U22D1M23Q1A23C23Y22U1521621I26T24F27322H23U21N22F25P2581D24Y24422D24021L25W1L26I26021725H2532211221426W111Z1326V21I24O21A1Y1E25824525H1W26M1H26J23426F2232461925I26Z26925S21027123M25524P2401224821N24823M26922425I24J1A25G22Z26526N21R21W2221A21X23M22Q22Z26325L25U24621D22Q23R22T1B25R21922I21124X22I2531A23M24K21T21G23B21O1J23H24V171L24725N25622D26322S23525F1721S1323T25A24624I21S22M151G1B24G21H22C22S2471A26B24E22A22Z26Q1Y22126T26J25A26H2281P22V23P26D21S23C25Y22K22X21B1H22523024N26J24X21J22521J26Y1F2641I25C2362211523P23P1J22Y26R22S23N24L2222SB1W26K25025O26N23L1P25P23624M26X2181S25X21J24K26A25A24R1I22G23223Z26W1224T22Y22N23L23I24L24O1L21P24Z25I22M24725I26H22L25L21X21822Z1224S26W25I21B23R22L1N1P24822222K26J21I21V1T21V24L25L1O24P1Z23A26425I24S2331O1722523X1L21G26725825323S26Z2HI25F25S26Y1H23Z25D22322G2161A23224225Y21C2382XZ21X24F24D1224626D2ML27525I27J2PG2PI2PK25F317125124I25C2N027524J24O24H2PM316Y27J2PN2ML1W24V23K317I2ML21C27325C252317I1721I21221W25P25Y2152481Z21Q1O22E23I1L21B21225623I1D21V21I24U26322Y23I25324621H26T22B25K23D27325122R21321927122X26K21U26A22525W1J23W24W21N23N25M26O26H24T1J21J2491Q2701622E1021G26B23Z21I26724623S26P25K21L27125X22P25D1J1W25J1N24X25J24A23626I24J1U23V24S25923U25O23425325U24R22621Q27126523721H26F1926Y25T21E25W1B1I26C2541J24L24422724M23L21K21825Z1K316K21321O23S1525E26T24Y1K22R21526B2581V22825326124W1A21S22H2491I26W23V26A21V25H23W25I24125H1V25M24C2WM1826K25T22D24F23Z1L21523L1O2331L191U25723X24424124X25W1421O22Q25A26O26E1E2411Z23O2XR23226Y24123O23D21626Y25L21P23Y25M23U1K26O21U26F1M23C22323D2171D2551C22122A24L26X21T21V25I21P24M26K26E22722526V22C24P25Y24N25Z25121E24822Y21R22R22V25626J23C23B22F1W1021W23E26E21W2B325523S25O21022V25L21E22H22N26C26922Q21W23A25F1P26P21324L22D1P25K1Q23O23322D23Q1E25K25924T21125Y1U22L26L21124Z25F21I23525P1R25I22F25W25U26I23H22Y22027226624R23324W24T1826T25U1326B22826A23B26Z22422T260316423H21024V2101B26L1K23022I21U26325T24E21G26N1622Y26N26K23J26527221C26R22525923D23Z24B21Z24S25U21323A1A24923321Z1Z23N22H26322I22822V25U26Q26L21Z2511Y25221725Y1M25B21G26Z24723Y24Z21X24125U25X25K26H22V26I1L25Y26B23W21526E25E22S2WR25623U2231721222T21I26F1H1V23V24L24Z26N22C1G25V1A22025622N21522225F23624E23I26I25D21B1K1R22B2341S25F21323H24Q24S2671X248181U24W22Q21F23B26125U26V26321121822923J22025X21Z2131B26D1Y25M24W1H1324322821424624F26324B23I2291226C23L23F1A24Z2141S22L23J2311423V23N24F22V1Y21W24323F25123H24U22M1V22O26E26P23G2KZ22226L2FY24J1J1C26424827025I24T23526B21R25J23X2212322582LN25E26325H23A22R1S26I23W23B2671423J26B22E23V23Q21N1K25Y24O21M25A24V23Z23H2561W22G312Z25P24C24P21T26J21021J23126O21B21E25N21X21222X21D25C24O23G25I2251Q24L26M25P21V23023921K26G21O22924Z25R25U24O24622P24Q24M2R422R26E25121A21L22022U1B2562531S1I26226Q21I26Y25022V26W23L23825J21F24H317N27523421V317M317G25C2E225D27J23T28R28T24829325K27S29O26027N28L2312BT27O27523026027X27T2752392A82AH25C31PQ27S28L31PQ28O31PT31PY2882872MA31P727Y27522Q182DE259182DI23H2JM28U2E523F23C24X25C24U23C2DI22Q2342DE24C2I021S23G26O2BQ23X28H23J22O31P927031R52GO22G31QV22G2DI31QZ31R128H23G26W27E26T2EA21X29Z2D02EY23G28J24028L23J2GK25C2702GK2GO24O31QV24O31RD31R028P31RG26W2M023X2EA31RH2HE31S927523J23S1H27F23S31QS23K31QV2DS31QY31S431R227531RH31RJ31RL2GQ2D028O25C31RQ29631RT26031R631T22GO25S31QV25S31S331RF31SR31RI29131RL2542CU2C531SZ27W31RT2IV2702I82GO1W2GR2AV31SO25C25D31SQ25C21T31QJ24Q2E521S31P823X2E523J1029024U2HE2GO2G02H22G231QY2O827J31RH31T824V2EA21W31S431PX2AT2AV2EE2AS23S2DY2AX31TI31Q421T2CT2862CW25C31U12EW2E521W26W2II2EA22026W24G2FN2EA21S28J31Q421X31UY25931V02AT2EW2AX22028W25928W2B42II2B831VP28W22424831VB2FO25C21W31VF28L31U12BQ2E42HP23K2GK31W725C21V25S2AG27C2GO28T24C2HL22O28H23U28H22S2LU2E52FV27P24J2M22602LP24C31WW29G28824A2882MG25C2MI27525Z2ML317A25C24T24H2502AR31XA24O2512OW25C25H27J2O324P2P831792N12OH2PB2752ON2NC24Y2NE2O52NI2752P331XP2N731XU2NA31Y22NN2MN2752MP2MR2MT2MV2NU25C2NW27523N317D24Y2O42502MY25C25Q27J23Q2PI24K31YS2P82OF24O24P24S24K2OK27J23S25131XC24U24V24P31Z1317027523S24L2MS31XE31P1316Y28825C31Z431Z631Z824K24224V24V2P2317E25031XQ31ZC31ZE31Z131YH25C24431ZE24T23N24V2MP27425W2NX2NZ31Z02P524624P24L25324W2NZ2P231Z82OE31Z231Y124V24Z24P25024P24V24U25C31Y025C24624L24J2502NZ26Q25C317527524U320F31TT27J2A131P927524931YG27J31XC24N24U320Q25124K2N52ML');local o=bit and bit.bxor or function(e,n)local l,o=1,0 while e>0 and n>0 do local c,a=e%2,n%2 if c~=a then o=o+l end e,n,l=(e-c)/2,(n-a)/2,l*2 end if e<n then e=n end while e>0 do local n=e%2 if n>0 then o=o+l end e,l=(e-n)/2,l*2 end return o end local function l(n,e,l)if l then local e=(n/2^(e-1))%2^((l-1)-(e-1)+1);return e-e%1;else local e=2^(e-1);return(n%(e+e)>=e)and 1 or 0;end;end;local e=1;local function n()local a,n,c,l=f(d,e,e+3);a=o(a,192)n=o(n,192)c=o(c,192)l=o(l,192)e=e+4;return(l*16777216)+(c*65536)+(n*256)+a;end;local function t()local l=o(f(d,e,e),192);e=e+1;return l;end;local function H()local e=n();local n=n();local c=1;local o=(l(n,1,20)*(2^32))+e;local e=l(n,21,31);local l=((-1)^l(n,32));if(e==0)then if(o==0)then return l*0;else e=1;c=0;end;elseif(e==2047)then return(o==0)and(l*(1/0))or(l*(0/0));end;return s(l,e-1023)*(c+(o/(2^52)));end;local a=n;local function s(l)local n;if(not l)then l=a();if(l==0)then return'';end;end;n=c(d,e,e+l-1);e=e+l;local l={}for e=1,#n do l[e]=C(o(f(c(n,e,e)),192))end return r(l);end;local e=n;local function r(...)return{...},h('#',...)end local function G()local d={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};local f={0};local e={};local a={d,nil,f,nil,e};for a=1,n()do local c=o(n(),160);local n=o(n(),125);local o=l(c,1,2);local e=l(n,1,11);local e={e,l(c,3,11),nil,nil,n};if(o==0)then e[3]=l(c,12,20);e[5]=l(c,21,29);elseif(o==1)then e[3]=l(n,12,33);elseif(o==2)then e[3]=l(n,12,32)-1048575;elseif(o==3)then e[3]=l(n,12,32)-1048575;e[5]=l(c,21,29);end;d[a]=e;end;local e=n()local o={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};for n=1,e do local l=t();local e;if(l==1)then e=(t()~=0);elseif(l==2)then e=H();elseif(l==0)then e=s();end;o[n]=e;end;a[2]=o a[4]=t();for e=1,n()do f[e-1]=G();end;return a;end;local function O(e,H,C)local l=e[1];local o=e[2];local n=e[3];local e=e[4];return function(...)local c=l;local a=o;local G=n;local o=e;local W=r local n=1;local f=-1;local s={};local t={...};local d=h('#',...)-1;local P={};local l={};for e=0,d do if(e>=o)then s[e-o]=t[e+1];else l[e]=t[e+1];end;end;local e=d-o+1 local e;local o;while true do e=c[n];o=e[1];if o<=39 then if o<=19 then if o<=9 then if o<=4 then if o<=1 then if o>0 then l[e[2]]=l[e[3]];else C[a[e[3]]]=l[e[2]];n=n+1;e=c[n];l[e[2]]=C[a[e[3]]];n=n+1;e=c[n];l[e[2]]=a[e[3]];n=n+1;e=c[n];l[e[2]]=l[e[3]];n=n+1;e=c[n];l[e[2]]=l[e[3]];n=n+1;e=c[n];l[e[2]]=l[e[3]];n=n+1;e=c[n];l[e[2]]=l[e[3]];n=n+1;e=c[n];l[e[2]]=a[e[3]];n=n+1;e=c[n];l[e[2]]=C[a[e[3]]];n=n+1;e=c[n];l[e[2]]=l[e[3]][a[e[5]]];end;elseif o<=2 then C[a[e[3]]]=l[e[2]];elseif o==3 then l[e[2]]=H[e[3]];else local o=e[2];local c=o+e[3]-2;local n={};local e=0;for o=o,c do e=e+1;n[e]=l[o];end;do return i(n,1,e)end;end;elseif o<=6 then if o==5 then l[e[2]]={};else l[e[2]]=l[e[3]]+a[e[5]];end;elseif o<=7 then if(l[e[2]]<l[e[5]])then n=n+1;else n=n+e[3];end;elseif o>8 then local C;local d;local o;local t;local a;l[e[2]]=l[e[3]];n=n+1;e=c[n];l[e[2]]=l[e[3]];n=n+1;e=c[n];l[e[2]]=l[e[3]];n=n+1;e=c[n];a=e[2];t={};o=0;d=a+e[3]-1;for e=a+1,d do o=o+1;t[o]=l[e];end;C={l[a](i(t,1,d-a))};d=a+e[5]-2;o=0;for e=a,d do o=o+1;l[e]=C[o];end;f=d;n=n+1;e=c[n];l[e[2]]=l[e[3]][l[e[5]]];n=n+1;e=c[n];l[e[2]]=l[e[3]];n=n+1;e=c[n];l[e[2]]=l[e[3]];n=n+1;e=c[n];l[e[2]]=l[e[3]];n=n+1;e=c[n];l[e[2]]=l[e[3]];n=n+1;e=c[n];l[e[2]]=l[e[3]];else l[e[2]]=l[e[3]]/a[e[5]];end;elseif o<=14 then if o<=11 then if o==10 then l[e[2]]=l[e[3]]*a[e[5]];else local o=e[2];local n=l[e[3]];l[o+1]=n;l[o]=n[a[e[5]]];end;elseif o<=12 then l[e[2]]=a[e[3]];elseif o>13 then l[e[2]]();f=A;else if l[e[2]]then n=n+1;else n=n+e[3];end;end;elseif o<=16 then if o==15 then l[e[2]][l[e[3]]]=l[e[5]];else if(l[e[2]]<l[e[5]])then n=n+1;else n=n+e[3];end;end;elseif o<=17 then local o=e[2];local a=l[o+2];local c=l[o]+a;l[o]=c;if a>0 then if c<=l[o+1]then n=n+e[3];l[o+3]=c;end;elseif c>=l[o+1]then n=n+e[3];l[o+3]=c;end;elseif o>18 then if(l[e[2]]~=l[e[5]])then n=n+1;else n=n+e[3];end;else local s;local t;local o;local h;local r;local d;d=e[2];r=l[e[3]];l[d+1]=r;l[d]=r[a[e[5]]];n=n+1;e=c[n];l[e[2]]=l[e[3]][a[e[5]]];n=n+1;e=c[n];l[e[2]]=l[e[3]][a[e[5]]];n=n+1;e=c[n];l[e[2]]=l[e[3]][a[e[5]]];n=n+1;e=c[n];d=e[2];h={};o=0;t=d+e[3]-1;for e=d+1,t do o=o+1;h[o]=l[e];end;s={l[d](i(h,1,t-d))};t=d+e[5]-2;o=0;for e=d,t do o=o+1;l[e]=s[o];end;f=t;n=n+1;e=c[n];l[e[2]]=C[a[e[3]]];n=n+1;e=c[n];l[e[2]]=l[e[3]][a[e[5]]];n=n+1;e=c[n];l[e[2]]=l[e[3]][a[e[5]]];n=n+1;e=c[n];l[e[2]]=l[e[3]][a[e[5]]];n=n+1;e=c[n];d=e[2];h={};o=0;t=d+e[3]-1;for e=d+1,t do o=o+1;h[o]=l[e];end;s={l[d](i(h,1,t-d))};t=d+e[5]-2;o=0;for e=d,t do o=o+1;l[e]=s[o];end;f=t;n=n+1;e=c[n];l[e[2]]=C[a[e[3]]];n=n+1;e=c[n];l[e[2]]=l[e[3]][a[e[5]]];n=n+1;e=c[n];l[e[2]]=H[e[3]];n=n+1;e=c[n];l[e[2]]=l[e[3]][a[e[5]]];n=n+1;e=c[n];l[e[2]]=H[e[3]];n=n+1;e=c[n];l[e[2]]=l[e[3]][a[e[5]]];n=n+1;e=c[n];d=e[2];h={};o=0;t=d+e[3]-1;for e=d+1,t do o=o+1;h[o]=l[e];end;s={l[d](i(h,1,t-d))};t=d+e[5]-2;o=0;for e=d,t do o=o+1;l[e]=s[o];end;f=t;n=n+1;e=c[n];l[e[2]]=l[e[3]]-l[e[5]];n=n+1;e=c[n];l[e[2]]=l[e[3]][a[e[5]]];n=n+1;e=c[n];if(l[e[2]]<l[e[5]])then n=n+1;else n=n+e[3];end;end;elseif o<=29 then if o<=24 then if o<=21 then if o==20 then local o=e[2];l[o]=l[o]-l[o+2];n=n+e[3];else f=e[2];end;elseif o<=22 then local o=e[2];local a=l[o+2];local c=l[o]+a;l[o]=c;if a>0 then if c<=l[o+1]then n=n+e[3];l[o+3]=c;end;elseif c>=l[o+1]then n=n+e[3];l[o+3]=c;end;elseif o==23 then l[e[2]]=C[a[e[3]]];else do return end;end;elseif o<=26 then if o>25 then if(a[e[2]]<l[e[5]])then n=n+1;else n=n+e[3];end;else local o=e[2];l[o]=l[o]-l[o+2];n=n+e[3];end;elseif o<=27 then l[e[2]]=l[e[3]]%a[e[5]];elseif o==28 then local o=e[2];local c={};local n=0;local e=o+e[3]-1;for e=o+1,e do n=n+1;c[n]=l[e];end;local c,e=W(l[o](i(c,1,e-o)));e=e+o-1;n=0;for e=o,e do n=n+1;l[e]=c[n];end;f=e;else l[e[2]]=a[e[3]];end;elseif o<=34 then if o<=31 then if o==30 then local o=e[2];local c=e[5];local e=o+2;local a={l[o](l[o+1],l[e])};for n=1,c do l[e+n]=a[n];end;local o=l[o+3];if o then l[e]=o else n=n+1;end;else f=e[2];end;elseif o<=32 then l[e[2]]=#l[e[3]];elseif o==33 then n=n+e[3];else l[e[2]]=l[e[3]]-l[e[5]];end;elseif o<=36 then if o>35 then l[e[2]]=l[e[3]]-a[e[5]];else l[e[2]]={};end;elseif o<=37 then local o,o;local r;local t;local d;local h;local s;local o;l[e[2]]=C[a[e[3]]];n=n+1;e=c[n];l[e[2]]=l[e[3]][a[e[5]]];n=n+1;e=c[n];l[e[2]]=C[a[e[3]]];n=n+1;e=c[n];l[e[2]]=C[a[e[3]]];n=n+1;e=c[n];o=e[2];s=l[e[3]];l[o+1]=s;l[o]=s[a[e[5]]];n=n+1;e=c[n];l[e[2]]=a[e[3]];n=n+1;e=c[n];o=e[2];h={};d=0;t=o+e[3]-1;for e=o+1,t do d=d+1;h[d]=l[e];end;r={l[o](i(h,1,t-o))};t=o+e[5]-2;d=0;for e=o,t do d=d+1;l[e]=r[d];end;f=t;n=n+1;e=c[n];o=e[2];s=l[e[3]];l[o+1]=s;l[o]=s[a[e[5]]];n=n+1;e=c[n];o=e[2];h={};d=0;t=o+e[3]-1;for e=o+1,t do d=d+1;h[d]=l[e];end;r,t=W(l[o](i(h,1,t-o)));t=t+o-1;d=0;for e=o,t do d=d+1;l[e]=r[d];end;f=t;n=n+1;e=c[n];o=e[2];h={};d=0;t=f;for e=o+1,t do d=d+1;h[d]=l[e];end;r={l[o](i(h,1,t-o))};t=o+e[5]-2;d=0;for e=o,t do d=d+1;l[e]=r[d];end;f=t;n=n+1;e=c[n];n=n+e[3];elseif o==38 then local o=e[2];local a={};local n=0;local c=f;for e=o+1,c do n=n+1;a[n]=l[e];end;local c={l[o](i(a,1,c-o))};local e=o+e[5]-2;n=0;for e=o,e do n=n+1;l[e]=c[n];end;f=e;else local o=e[2];local c=o+e[3]-2;local n={};local e=0;for o=o,c do e=e+1;n[e]=l[o];end;do return i(n,1,e)end;end;elseif o<=59 then if o<=49 then if o<=44 then if o<=41 then if o==40 then l[e[2]]=l[e[3]]+a[e[5]];else l[e[2]]=l[e[3]][a[e[5]]];end;elseif o<=42 then local o=e[3];local n=l[o]for e=o+1,e[5]do n=n..l[e];end;l[e[2]]=n;elseif o>43 then l[e[2]]=l[e[3]]+l[e[5]];else l[e[2]]=l[e[3]]-l[e[5]];end;elseif o<=46 then if o==45 then local o=e[2];local a={};local n=0;local c=o+e[3]-1;for e=o+1,c do n=n+1;a[n]=l[e];end;local c={l[o](i(a,1,c-o))};local e=o+e[5]-2;n=0;for e=o,e do n=n+1;l[e]=c[n];end;f=e;else l[e[2]]=C[a[e[3]]];end;elseif o<=47 then if(a[e[2]]<l[e[5]])then n=n+1;else n=n+e[3];end;elseif o>48 then C[a[e[3]]]=l[e[2]];else l[e[2]]=l[e[3]][a[e[5]]];end;elseif o<=54 then if o<=51 then if o>50 then local f=G[e[3]];local d;local o={};d=N({},{__index=function(l,e)local e=o[e];return e[1][e[2]];end,__newindex=function(n,e,l)local e=o[e]e[1][e[2]]=l;end;});for a=1,e[5]do n=n+1;local e=c[n];if e[1]==1 then o[a-1]={l,e[3]};else o[a-1]={H,e[3]};end;P[#P+1]=o;end;l[e[2]]=O(f,d,C);else local o=e[2];local c={};local n=0;local e=o+e[3]-1;for e=o+1,e do n=n+1;c[n]=l[e];end;local c,e=W(l[o](i(c,1,e-o)));e=e+o-1;n=0;for e=o,e do n=n+1;l[e]=c[n];end;f=e;end;elseif o<=52 then if(l[e[2]]~=a[e[5]])then n=n+1;else n=n+e[3];end;elseif o==53 then if(l[e[2]]~=l[e[5]])then n=n+1;else n=n+e[3];end;else local r;local t;local d;local s;local h;local o;l[e[2]]=C[a[e[3]]];n=n+1;e=c[n];o=e[2];h=l[e[3]];l[o+1]=h;l[o]=h[a[e[5]]];n=n+1;e=c[n];l[e[2]]=a[e[3]];n=n+1;e=c[n];o=e[2];s={};d=0;t=o+e[3]-1;for e=o+1,t do d=d+1;s[d]=l[e];end;r={l[o](i(s,1,t-o))};t=o+e[5]-2;d=0;for e=o,t do d=d+1;l[e]=r[d];end;f=t;n=n+1;e=c[n];l[e[2]]=l[e[3]][a[e[5]]];n=n+1;e=c[n];C[a[e[3]]]=l[e[2]];n=n+1;e=c[n];l[e[2]]=C[a[e[3]]];n=n+1;e=c[n];o=e[2];h=l[e[3]];l[o+1]=h;l[o]=h[a[e[5]]];n=n+1;e=c[n];l[e[2]]=a[e[3]];n=n+1;e=c[n];o=e[2];s={};d=0;t=o+e[3]-1;for e=o+1,t do d=d+1;s[d]=l[e];end;r={l[o](i(s,1,t-o))};t=o+e[5]-2;d=0;for e=o,t do d=d+1;l[e]=r[d];end;f=t;end;elseif o<=56 then if o>55 then l[e[2]]=l[e[3]]-a[e[5]];else l[e[2]]=l[e[3]];end;elseif o<=57 then l[e[2]]();f=A;elseif o>58 then local h;local t;local o;local C;local d;l[e[2]]=l[e[3]]%a[e[5]];n=n+1;e=c[n];l[e[2]]=l[e[3]]+a[e[5]];n=n+1;e=c[n];l[e[2]]=l[e[3]];n=n+1;e=c[n];l[e[2]]=l[e[3]];n=n+1;e=c[n];l[e[2]]=l[e[3]];n=n+1;e=c[n];l[e[2]]=l[e[3]];n=n+1;e=c[n];l[e[2]]=l[e[3]];n=n+1;e=c[n];l[e[2]]=l[e[3]];n=n+1;e=c[n];d=e[2];C={};o=0;t=d+e[3]-1;for e=d+1,t do o=o+1;C[o]=l[e];end;h={l[d](i(C,1,t-d))};t=d+e[5]-2;o=0;for e=d,t do o=o+1;l[e]=h[o];end;f=t;n=n+1;e=c[n];l[e[2]]=l[e[3]][l[e[5]]];else l[e[2]]=l[e[3]]*a[e[5]];end;elseif o<=69 then if o<=64 then if o<=61 then if o>60 then l[e[2]]=l[e[3]]/a[e[5]];else local o=e[2];local c={};local n=0;local a=f;for e=o+1,a do n=n+1;c[n]=l[e];end;local c={l[o](i(c,1,a-o))};local e=o+e[5]-2;n=0;for e=o,e do n=n+1;l[e]=c[n];end;f=e;end;elseif o<=62 then l[e[2]]=H[e[3]];elseif o==63 then local o=e[2];local c=e[5];local e=o+2;local a={l[o](l[o+1],l[e])};for n=1,c do l[e+n]=a[n];end;local o=l[o+3];if o then l[e]=o else n=n+1;end;else l[e[2]]=l[e[3]][l[e[5]]];end;elseif o<=66 then if o==65 then if l[e[2]]then n=n+1;else n=n+e[3];end;else l[e[2]]=l[e[3]]/a[e[5]];n=n+1;e=c[n];l[e[2]]=l[e[3]]-l[e[5]];n=n+1;e=c[n];l[e[2]]=l[e[3]]/a[e[5]];n=n+1;e=c[n];l[e[2]]=l[e[3]]*a[e[5]];n=n+1;e=c[n];l[e[2]]=l[e[3]];n=n+1;e=c[n];l[e[2]]=l[e[3]];n=n+1;e=c[n];n=n+e[3];end;elseif o<=67 then local o;l[e[2]]=l[e[3]][a[e[5]]];n=n+1;e=c[n];l[e[2]]={};n=n+1;e=c[n];l[e[2]]=a[e[3]];n=n+1;e=c[n];l[e[2]]=a[e[3]];n=n+1;e=c[n];l[e[2]]=a[e[3]];n=n+1;e=c[n];o=e[2];l[o]=l[o]-l[o+2];n=n+e[3];elseif o>68 then l[e[2]][l[e[3]]]=l[e[5]];else l[e[2]]=l[e[3]]%a[e[5]];end;elseif o<=74 then if o<=71 then if o==70 then do return end;else n=n+e[3];end;elseif o<=72 then local o=e[2];local n=l[e[3]];l[o+1]=n;l[o]=n[a[e[5]]];elseif o==73 then local o=e[3];local n=l[o]for e=o+1,e[5]do n=n..l[e];end;l[e[2]]=n;else l[e[2]]=l[e[3]]+l[e[5]];end;elseif o<=76 then if o==75 then local d=G[e[3]];local a;local o={};a=N({},{__index=function(l,e)local e=o[e];return e[1][e[2]];end,__newindex=function(n,e,l)local e=o[e]e[1][e[2]]=l;end;});for a=1,e[5]do n=n+1;local e=c[n];if e[1]==1 then o[a-1]={l,e[3]};else o[a-1]={H,e[3]};end;P[#P+1]=o;end;l[e[2]]=O(d,a,C);else local o=e[2];local a={};local n=0;local c=o+e[3]-1;for e=o+1,c do n=n+1;a[n]=l[e];end;local c={l[o](i(a,1,c-o))};local e=o+e[5]-2;n=0;for e=o,e do n=n+1;l[e]=c[n];end;f=e;end;elseif o<=77 then if(l[e[2]]~=a[e[5]])then n=n+1;else n=n+e[3];end;elseif o==78 then l[e[2]]=l[e[3]][l[e[5]]];else l[e[2]]=#l[e[3]];end;n=n+1;end;end;end;return O(G(),{},S())();
109end)
110
111
112Close.Name = "Close"
113Close.Parent = Main
114Close.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
115Close.Position = UDim2.new(0, 0, 1, 0)
116Close.Size = UDim2.new(0, 138, 0, 21)
117Close.Font = Enum.Font.ArialBold
118Close.Text = "Destroy"
119Close.TextColor3 = Color3.fromRGB(255, 0, 4)
120Close.TextScaled = true
121Close.TextSize = 14.000
122Close.TextWrapped = true
123Close.MouseButton1Down:connect(function()
124Open.Visible = true
125Main.Visible = false
126end)
127
128
129Esp.Name = "Esp"
130Esp.Parent = Main
131Esp.BackgroundColor3 = Color3.fromRGB(170, 0, 0)
132Esp.Position = UDim2.new(0.159420252, 0, 0.706843436, 0)
133Esp.Size = UDim2.new(0, 94, 0, 36)
134Esp.Font = Enum.Font.ArialBold
135Esp.Text = "Esp"
136Esp.TextColor3 = Color3.fromRGB(170, 255, 0)
137Esp.TextScaled = true
138Esp.TextSize = 14.000
139Esp.TextWrapped = true
140Esp.MouseButton1Down:connect(function()
141assert(Drawing, 'exploit not supported')
142
143local UserInputService = game:GetService'UserInputService';
144local HttpService = game:GetService'HttpService';
145local GUIService = game:GetService'GuiService';
146local RunService = game:GetService'RunService';
147local Players = game:GetService'Players';
148local LocalPlayer = Players.LocalPlayer;
149local Camera = workspace.CurrentCamera
150local Mouse = LocalPlayer:GetMouse();
151local Menu = {};
152local MouseHeld = false;
153local LastRefresh = 0;
154local OptionsFile = 'IC3_ESP_SETTINGS.dat';
155local Binding = false;
156local BindedKey = nil;
157local OIndex = 0;
158local LineBox = {};
159local UIButtons = {};
160local Sliders = {};
161local Dragging = false;
162local DraggingUI = false;
163local DragOffset = Vector2.new();
164local DraggingWhat = nil;
165local OldData = {};
166local IgnoreList = {};
167local Red = Color3.new(1, 0, 0);
168local Green = Color3.new(0, 1, 0);
169local MenuLoaded = false;
170
171shared.MenuDrawingData = shared.MenuDrawingData or { Instances = {} };
172shared.PlayerData = shared.PlayerData or {};
173shared.RSName = shared.RSName or ('UnnamedESP_by_ic3-' .. HttpService:GenerateGUID(false));
174
175local GetDataName = shared.RSName .. '-GetData';
176local UpdateName = shared.RSName .. '-Update';
177
178local Debounce = setmetatable({}, {
179__index = function(t, i)
180return rawget(t, i) or false
181end;
182});
183
184pcall(function() shared.InputBeganCon:disconnect() end);
185pcall(function() shared.InputEndedCon:disconnect() end);
186
187function GetMouseLocation()
188return UserInputService:GetMouseLocation();
189end
190
191function MouseHoveringOver(Values)
192local X1, Y1, X2, Y2 = Values[1], Values[2], Values[3], Values[4]
193local MLocation = GetMouseLocation();
194return (MLocation.x >= X1 and MLocation.x <= (X1 + (X2 - X1))) and (MLocation.y >= Y1 and MLocation.y <= (Y1 + (Y2 - Y1)));
195end
196
197function GetTableData(t) -- basically table.foreach i dont even know why i made this
198if typeof(t) ~= 'table' then return end
199return setmetatable(t, {
200__call = function(t, func)
201if typeof(func) ~= 'function' then return end;
202for i, v in pairs(t) do
203pcall(func, i, v);
204end
205end;
206});
207end
208local function Format(format, ...)
209return string.format(format, ...);
210end
211function CalculateValue(Min, Max, Percent)
212return Min + math.floor(((Max - Min) * Percent) + .5);
213end
214
215local Options = setmetatable({}, {
216__call = function(t, ...)
217local Arguments = {...};
218local Name = Arguments[1];
219OIndex = OIndex + 1; -- (typeof(Arguments[3]) == 'boolean' and 1 or 0);
220rawset(t, Name, setmetatable({
221Name = Arguments[1];
222Text = Arguments[2];
223Value = Arguments[3];
224DefaultValue = Arguments[3];
225AllArgs = Arguments;
226Index = OIndex;
227}, {
228__call = function(t, v)
229if typeof(t.Value) == 'function' then
230t.Value();
231elseif typeof(t.Value) == 'EnumItem' then
232local BT = Menu:GetInstance(Format('%s_BindText', t.Name));
233Binding = true;
234local Val = 0
235while Binding do
236wait();
237Val = (Val + 1) % 17;
238BT.Text = Val <= 8 and '|' or '';
239end
240t.Value = BindedKey;
241BT.Text = tostring(t.Value):match'%w+%.%w+%.(.+)';
242BT.Position = t.BasePosition + Vector2.new(t.BaseSize.X - BT.TextBounds.X - 20, -10);
243else
244local NewValue = v;
245if NewValue == nil then NewValue = not t.Value; end
246rawset(t, 'Value', NewValue);
247if Arguments[2] ~= nil then
248if typeof(Arguments[3]) == 'number' then
249local AMT = Menu:GetInstance(Format('%s_AmountText', t.Name));
250AMT.Text = tostring(t.Value);
251AMT.Position = t.BasePosition + Vector2.new(t.BaseSize.X - AMT.TextBounds.X - 10, -10);
252else
253local Inner = Menu:GetInstance(Format('%s_InnerCircle', t.Name));
254Inner.Visible = t.Value;
255end
256end
257end
258end;
259}));
260end;
261})
262
263function Load()
264local _, Result = pcall(readfile, OptionsFile);
265if _ then -- extremely ugly code yea i know but i dont care p.s. i hate pcall
266local _, Table = pcall(HttpService.JSONDecode, HttpService, Result);
267if _ then
268for i, v in pairs(Table) do
269if Options[i] ~= nil and Options[i].Value ~= nil and (typeof(Options[i].Value) == 'boolean' or typeof(Options[i].Value) == 'number') then
270Options[i].Value = v.Value;
271pcall(Options[i], v.Value);
272end
273end
274end
275end
276end
277
278Options('Enabled', 'ESP Enabled', true);
279Options('ShowTeam', 'Show Team', false);
280Options('ShowName', 'Show Names', true);
281Options('ShowDistance', 'Show Distance', true);
282Options('ShowHealth', 'Show Health', true);
283Options('ShowBoxes', 'Show Boxes', true);
284Options('ShowTracers', 'Show Tracers', true);
285Options('ShowDot', 'Show Head Dot', false);
286Options('VisCheck', 'Visibility Check', false);
287Options('Crosshair', 'Crosshair', false);
288Options('TextOutline', 'Text Outline', true);
289Options('TextSize', 'Text Size', syn and 18 or 14, 10, 24); -- cuz synapse fonts look weird???
290Options('MaxDistance', 'Max Distance', 2500, 100, 5000);
291Options('RefreshRate', 'Refresh Rate (ms)', 5, 1, 200);
292Options('MenuKey', 'Menu Key', Enum.KeyCode.F4, 1);
293Options('ResetSettings', 'Reset Settings', function()
294for i, v in pairs(Options) do
295if 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
296Options[i](Options[i].DefaultValue);
297end
298end
299end, 4);
300Options('LoadSettings', 'Load Settings', Load, 3);
301Options('SaveSettings', 'Save Settings', function()
302writefile(OptionsFile, HttpService:JSONEncode(Options));
303end, 2)
304-- Options.SaveSettings.Value();
305
306Load();
307
308Options('MenuOpen', nil, true);
309
310local function Set(t, i, v)
311t[i] = v;
312end
313local function Combine(...)
314local Output = {};
315for i, v in pairs{...} do
316if typeof(v) == 'table' then
317table.foreach(v, function(i, v)
318Output[i] = v;
319end)
320end
321end
322return Output
323end
324function IsStringEmpty(String)
325if type(String) == 'string' then
326return String:match'^%s+$' ~= nil or #String == 0 or String == '' or false;
327end
328return false
329end
330
331function NewDrawing(InstanceName)
332local Instance = Drawing.new(InstanceName);
333return (function(Properties)
334for i, v in pairs(Properties) do
335pcall(Set, Instance, i, v);
336end
337return Instance;
338end)
339end
340
341function Menu:AddMenuInstace(Name, Instance)
342if shared.MenuDrawingData.Instances[Name] ~= nil then
343shared.MenuDrawingData.Instances[Name]:Remove();
344end
345shared.MenuDrawingData.Instances[Name] = Instance;
346return Instance;
347end
348function Menu:UpdateMenuInstance(Name)
349local Instance = shared.MenuDrawingData.Instances[Name];
350if Instance ~= nil then
351return (function(Properties)
352for i, v in pairs(Properties) do
353-- print(Format('%s %s -> %s', Name, tostring(i), tostring(v)));
354pcall(Set, Instance, i, v);
355end
356return Instance;
357end)
358end
359end
360function Menu:GetInstance(Name)
361return shared.MenuDrawingData.Instances[Name];
362end
363
364function LineBox:Create(Properties)
365local Box = { Visible = true }; -- prevent errors not really though dont worry bout the Visible = true thing
366
367local Properties = Combine({
368Transparency = 1;
369Thickness = 1;
370Visible = true;
371}, Properties);
372
373Box['TopLeft'] = NewDrawing'Line'(Properties);
374Box['TopRight'] = NewDrawing'Line'(Properties);
375Box['BottomLeft'] = NewDrawing'Line'(Properties);
376Box['BottomRight'] = NewDrawing'Line'(Properties);
377
378function Box:Update(CF, Size, Color, Properties)
379if not CF or not Size then return end
380
381local TLPos, Visible1 = Camera:WorldToViewportPoint((CF * CFrame.new( Size.X, Size.Y, 0)).p);
382local TRPos, Visible2 = Camera:WorldToViewportPoint((CF * CFrame.new(-Size.X, Size.Y, 0)).p);
383local BLPos, Visible3 = Camera:WorldToViewportPoint((CF * CFrame.new( Size.X, -Size.Y, 0)).p);
384local BRPos, Visible4 = Camera:WorldToViewportPoint((CF * CFrame.new(-Size.X, -Size.Y, 0)).p);
385-- ## BEGIN UGLY CODE
386if Visible1 then
387Box['TopLeft'].Visible = true;
388Box['TopLeft'].Color = Color;
389Box['TopLeft'].From = Vector2.new(TLPos.X, TLPos.Y);
390Box['TopLeft'].To = Vector2.new(TRPos.X, TRPos.Y);
391else
392Box['TopLeft'].Visible = false;
393end
394if Visible2 then
395Box['TopRight'].Visible = true;
396Box['TopRight'].Color = Color;
397Box['TopRight'].From = Vector2.new(TRPos.X, TRPos.Y);
398Box['TopRight'].To = Vector2.new(BRPos.X, BRPos.Y);
399else
400Box['TopRight'].Visible = false;
401end
402if Visible3 then
403Box['BottomLeft'].Visible = true;
404Box['BottomLeft'].Color = Color;
405Box['BottomLeft'].From = Vector2.new(BLPos.X, BLPos.Y);
406Box['BottomLeft'].To = Vector2.new(TLPos.X, TLPos.Y);
407else
408Box['BottomLeft'].Visible = false;
409end
410if Visible4 then
411Box['BottomRight'].Visible = true;
412Box['BottomRight'].Color = Color;
413Box['BottomRight'].From = Vector2.new(BRPos.X, BRPos.Y);
414Box['BottomRight'].To = Vector2.new(BLPos.X, BLPos.Y);
415else
416Box['BottomRight'].Visible = false;
417end
418-- ## END UGLY CODE
419if Properties then
420GetTableData(Properties)(function(i, v)
421pcall(Set, Box['TopLeft'], i, v);
422pcall(Set, Box['TopRight'], i, v);
423pcall(Set, Box['BottomLeft'], i, v);
424pcall(Set, Box['BottomRight'], i, v);
425end)
426end
427end
428function Box:SetVisible(bool)
429pcall(Set, Box['TopLeft'], 'Visible', bool);
430pcall(Set, Box['TopRight'], 'Visible', bool);
431pcall(Set, Box['BottomLeft'], 'Visible', bool);
432pcall(Set, Box['BottomRight'], 'Visible', bool);
433end
434function Box:Remove()
435self:SetVisible(false);
436Box['TopLeft']:Remove();
437Box['TopRight']:Remove();
438Box['BottomLeft']:Remove();
439Box['BottomRight']:Remove();
440end
441
442return Box;
443end
444
445function CreateMenu(NewPosition) -- Create Menu
446local function FromHex(HEX)
447HEX = HEX:gsub('#', '');
448return Color3.fromRGB(tonumber('0x' .. HEX:sub(1, 2)), tonumber('0x' .. HEX:sub(3, 4)), tonumber('0x' .. HEX:sub(5, 6)));
449end
450
451local Colors = {
452Primary = {
453Main = FromHex'424242';
454Light = FromHex'6d6d6d';
455Dark = FromHex'1b1b1b';
456};
457Secondary = {
458Main = FromHex'e0e0e0';
459Light = FromHex'ffffff';
460Dark = FromHex'aeaeae';
461};
462};
463
464MenuLoaded = false;
465
466GetTableData(UIButtons)(function(i, v)
467v.Instance.Visible = false;
468v.Instance:Remove();
469end)
470GetTableData(Sliders)(function(i, v)
471v.Instance.Visible = false;
472v.Instance:Remove();
473end)
474
475UIButtons = {};
476Sliders = {};
477
478local BaseSize = Vector2.new(300, 580);
479local BasePosition = NewPosition or Vector2.new(Camera.ViewportSize.X / 8 - (BaseSize.X / 2), Camera.ViewportSize.Y / 2 - (BaseSize.Y / 2));
480
481Menu:AddMenuInstace('CrosshairX', NewDrawing'Line'{
482Visible = false;
483Color = Color3.new(0, 1, 0);
484Transparency = 1;
485Thickness = 1;
486});
487Menu:AddMenuInstace('CrosshairY', NewDrawing'Line'{
488Visible = false;
489Color = Color3.new(0, 1, 0);
490Transparency = 1;
491Thickness = 1;
492});
493
494delay(.025, function() -- since zindex doesnt exist
495Menu:AddMenuInstace('Main', NewDrawing'Square'{
496Size = BaseSize;
497Position = BasePosition;
498Filled = false;
499Color = Colors.Primary.Main;
500Thickness = 3;
501Visible = true;
502});
503end);
504Menu:AddMenuInstace('TopBar', NewDrawing'Square'{
505Position = BasePosition;
506Size = Vector2.new(BaseSize.X, 25);
507Color = Colors.Primary.Dark;
508Filled = true;
509Visible = true;
510});
511Menu:AddMenuInstace('TopBarTwo', NewDrawing'Square'{
512Position = BasePosition + Vector2.new(0, 25);
513Size = Vector2.new(BaseSize.X, 60);
514Color = Colors.Primary.Main;
515Filled = true;
516Visible = true;
517});
518Menu:AddMenuInstace('TopBarText', NewDrawing'Text'{
519Size = 25;
520Position = shared.MenuDrawingData.Instances.TopBarTwo.Position + Vector2.new(25, 15);
521Text = 'Unnamed ESP';
522Color = Colors.Secondary.Light;
523Visible = true;
524});
525Menu:AddMenuInstace('TopBarTextBR', NewDrawing'Text'{
526Size = 15;
527Position = shared.MenuDrawingData.Instances.TopBarTwo.Position + Vector2.new(BaseSize.X - 65, 40);
528Text = 'by ic3w0lf';
529Color = Colors.Secondary.Dark;
530Visible = true;
531});
532Menu:AddMenuInstace('Filling', NewDrawing'Square'{
533Size = BaseSize - Vector2.new(0, 85);
534Position = BasePosition + Vector2.new(0, 85);
535Filled = true;
536Color = Colors.Secondary.Main;
537Transparency= .5;
538Visible = true;
539});
540
541local CPos = 0;
542
543GetTableData(Options)(function(i, v)
544if typeof(v.Value) == 'boolean' and not IsStringEmpty(v.Text) and v.Text ~= nil then
545CPos = CPos + 25;
546local BaseSize = Vector2.new(BaseSize.X, 30);
547local BasePosition = shared.MenuDrawingData.Instances.Filling.Position + Vector2.new(30, v.Index * 25 - 10);
548UIButtons[#UIButtons + 1] = {
549Option = v;
550Instance = Menu:AddMenuInstace(Format('%s_Hitbox', v.Name), NewDrawing'Square'{
551Position = BasePosition - Vector2.new(30, 15);
552Size = BaseSize;
553Visible = false;
554});
555};
556Menu:AddMenuInstace(Format('%s_OuterCircle', v.Name), NewDrawing'Circle'{
557Radius = 10;
558Position = BasePosition;
559Color = Colors.Secondary.Light;
560Filled = true;
561Visible = true;
562});
563Menu:AddMenuInstace(Format('%s_InnerCircle', v.Name), NewDrawing'Circle'{
564Radius = 7;
565Position = BasePosition;
566Color = Colors.Secondary.Dark;
567Filled = true;
568Visible = v.Value;
569});
570Menu:AddMenuInstace(Format('%s_Text', v.Name), NewDrawing'Text'{
571Text = v.Text;
572Size = 20;
573Position = BasePosition + Vector2.new(20, -10);
574Visible = true;
575Color = Colors.Primary.Dark;
576});
577end
578end)
579GetTableData(Options)(function(i, v) -- just to make sure certain things are drawn before or after others, too lazy to actually sort table
580if typeof(v.Value) == 'number' then
581CPos = CPos + 25;
582
583local BaseSize = Vector2.new(BaseSize.X, 30);
584local BasePosition = shared.MenuDrawingData.Instances.Filling.Position + Vector2.new(0, CPos - 10);
585
586local Text = Menu:AddMenuInstace(Format('%s_Text', v.Name), NewDrawing'Text'{
587Text = v.Text;
588Size = 20;
589Position = BasePosition + Vector2.new(20, -10);
590Visible = true;
591Color = Colors.Primary.Dark;
592});
593local AMT = Menu:AddMenuInstace(Format('%s_AmountText', v.Name), NewDrawing'Text'{
594Text = tostring(v.Value);
595Size = 20;
596Position = BasePosition;
597Visible = true;
598Color = Colors.Primary.Dark;
599});
600local Line = Menu:AddMenuInstace(Format('%s_SliderLine', v.Name), NewDrawing'Line'{
601Transparency = 1;
602Color = Colors.Primary.Dark;
603Thickness = 3;
604Visible = true;
605From = BasePosition + Vector2.new(20, 20);
606To = BasePosition + Vector2.new(BaseSize.X - 10, 20);
607});
608CPos = CPos + 10;
609local Slider = Menu:AddMenuInstace(Format('%s_Slider', v.Name), NewDrawing'Circle'{
610Visible = true;
611Filled = true;
612Radius = 6;
613Color = Colors.Secondary.Dark;
614Position = BasePosition + Vector2.new(35, 20);
615})
616
617local CSlider = {Slider = Slider; Line = Line; Min = v.AllArgs[4]; Max = v.AllArgs[5]; Option = v};
618Sliders[#Sliders + 1] = CSlider;
619
620-- local Percent = (v.Value / CSlider.Max) * 100;
621-- local Size = math.abs(Line.From.X - Line.To.X);
622-- local Value = Size * (Percent / 100); -- this shit's inaccurate but fuck it i'm not even gonna bother fixing it
623
624Slider.Position = BasePosition + Vector2.new(40, 20);
625
626v.BaseSize = BaseSize;
627v.BasePosition = BasePosition;
628AMT.Position = BasePosition + Vector2.new(BaseSize.X - AMT.TextBounds.X - 10, -10)
629end
630end)
631GetTableData(Options)(function(i, v) -- just to make sure certain things are drawn before or after others, too lazy to actually sort table
632if typeof(v.Value) == 'EnumItem' then
633CPos = CPos + 30;
634
635local BaseSize = Vector2.new(BaseSize.X, 30);
636local BasePosition = shared.MenuDrawingData.Instances.Filling.Position + Vector2.new(0, CPos - 10);
637
638UIButtons[#UIButtons + 1] = {
639Option = v;
640Instance = Menu:AddMenuInstace(Format('%s_Hitbox', v.Name), NewDrawing'Square'{
641Size = Vector2.new(BaseSize.X, 20) - Vector2.new(30, 0);
642Visible = true;
643Transparency= .5;
644Position = BasePosition + Vector2.new(15, -10);
645Color = Colors.Secondary.Light;
646Filled = true;
647});
648};
649local Text = Menu:AddMenuInstace(Format('%s_Text', v.Name), NewDrawing'Text'{
650Text = v.Text;
651Size = 20;
652Position = BasePosition + Vector2.new(20, -10);
653Visible = true;
654Color = Colors.Primary.Dark;
655});
656local BindText = Menu:AddMenuInstace(Format('%s_BindText', v.Name), NewDrawing'Text'{
657Text = tostring(v.Value):match'%w+%.%w+%.(.+)';
658Size = 20;
659Position = BasePosition;
660Visible = true;
661Color = Colors.Primary.Dark;
662});
663
664Options[i].BaseSize = BaseSize;
665Options[i].BasePosition = BasePosition;
666BindText.Position = BasePosition + Vector2.new(BaseSize.X - BindText.TextBounds.X - 20, -10);
667end
668end)
669GetTableData(Options)(function(i, v) -- just to make sure certain things are drawn before or after others, too lazy to actually sort table
670if typeof(v.Value) == 'function' then
671local BaseSize = Vector2.new(BaseSize.X, 30);
672local BasePosition = shared.MenuDrawingData.Instances.Filling.Position + Vector2.new(0, CPos + (25 * v.AllArgs[4]) - 35);
673
674UIButtons[#UIButtons + 1] = {
675Option = v;
676Instance = Menu:AddMenuInstace(Format('%s_Hitbox', v.Name), NewDrawing'Square'{
677Size = Vector2.new(BaseSize.X, 20) - Vector2.new(30, 0);
678Visible = true;
679Transparency= .5;
680Position = BasePosition + Vector2.new(15, -10);
681Color = Colors.Secondary.Light;
682Filled = true;
683});
684};
685local Text = Menu:AddMenuInstace(Format('%s_Text', v.Name), NewDrawing'Text'{
686Text = v.Text;
687Size = 20;
688Position = BasePosition + Vector2.new(20, -10);
689Visible = true;
690Color = Colors.Primary.Dark;
691});
692
693-- BindText.Position = BasePosition + Vector2.new(BaseSize.X - BindText.TextBounds.X - 10, -10);
694end
695end)
696
697delay(.1, function()
698MenuLoaded = true;
699end);
700
701-- this has to be at the bottom cuz proto drawing api doesnt have zindex :triumph:
702Menu:AddMenuInstace('Cursor1', NewDrawing'Line'{
703Visible = false;
704Color = Color3.new(1, 0, 0);
705Transparency = 1;
706Thickness = 2;
707});
708Menu:AddMenuInstace('Cursor2', NewDrawing'Line'{
709Visible = false;
710Color = Color3.new(1, 0, 0);
711Transparency = 1;
712Thickness = 2;
713});
714Menu:AddMenuInstace('Cursor3', NewDrawing'Line'{
715Visible = false;
716Color = Color3.new(1, 0, 0);
717Transparency = 1;
718Thickness = 2;
719});
720end
721
722CreateMenu();
723
724shared.InputBeganCon = UserInputService.InputBegan:connect(function(input)
725if input.UserInputType.Name == 'MouseButton1' and Options.MenuOpen.Value then
726MouseHeld = true;
727local Bar = Menu:GetInstance'TopBar';
728local Values = {
729Bar.Position.X;
730Bar.Position.Y;
731Bar.Position.X + Bar.Size.X;
732Bar.Position.Y + Bar.Size.Y;
733}
734if MouseHoveringOver(Values) and not syn then -- disable dragging for synapse cuz idk why it breaks
735DraggingUI = true;
736DragOffset = Menu:GetInstance'Main'.Position - GetMouseLocation();
737else
738for i, v in pairs(Sliders) do
739local Values = {
740v.Line.From.X - (v.Slider.Radius);
741v.Line.From.Y - (v.Slider.Radius);
742v.Line.To.X + (v.Slider.Radius);
743v.Line.To.Y + (v.Slider.Radius);
744};
745if MouseHoveringOver(Values) then
746DraggingWhat = v;
747Dragging = true;
748break
749end
750end
751end
752end
753end)
754shared.InputEndedCon = UserInputService.InputEnded:connect(function(input)
755if input.UserInputType.Name == 'MouseButton1' and Options.MenuOpen.Value then
756MouseHeld = false;
757for i, v in pairs(UIButtons) do
758local Values = {
759v.Instance.Position.X;
760v.Instance.Position.Y;
761v.Instance.Position.X + v.Instance.Size.X;
762v.Instance.Position.Y + v.Instance.Size.Y;
763};
764if MouseHoveringOver(Values) then
765v.Option();
766break -- prevent clicking 2 options
767end
768end
769elseif input.UserInputType.Name == 'Keyboard' then
770if Binding then
771BindedKey = input.KeyCode;
772Binding = false;
773elseif input.KeyCode == Options.MenuKey.Value or (input.KeyCode == Enum.KeyCode.Home and UserInputService:IsKeyDown(Enum.KeyCode.LeftControl)) then
774Options.MenuOpen();
775end
776end
777end)
778
779function ToggleMenu()
780if Options.MenuOpen.Value then
781GetTableData(shared.MenuDrawingData.Instances)(function(i, v)
782if OldData[v] then
783pcall(Set, v, 'Visible', true);
784end
785end)
786else
787-- GUIService:SetMenuIsOpen(false);
788GetTableData(shared.MenuDrawingData.Instances)(function(i, v)
789if v.Visible == true then
790OldData[v] = true;
791pcall(Set, v, 'Visible', false);
792end
793end)
794end
795end
796
797function CheckRay(Player, Distance, Position, Unit)
798local Pass = true;
799
800if Distance > 999 then return false; end
801
802local _Ray = Ray.new(Position, Unit * Distance);
803
804local List = {LocalPlayer.Character, Camera, Mouse.TargetFilter};
805
806for i,v in pairs(IgnoreList) do table.insert(List, v); end;
807
808local Hit = workspace:FindPartOnRayWithIgnoreList(_Ray, List);
809if Hit and not Hit:IsDescendantOf(Player.Character) then
810Pass = false;
811if Hit.Transparency >= .3 or not Hit.CanCollide and Hit.ClassName ~= Terrain then -- Detect invisible walls
812IgnoreList[#IgnoreList + 1] = Hit;
813end
814end
815
816return Pass;
817end
818
819function CheckPlayer(Player)
820if not Options.Enabled.Value then return false end
821
822local Pass = true;
823local Distance = 0;
824
825if Player ~= LocalPlayer and Player.Character then
826if not Options.ShowTeam.Value and Player.TeamColor == LocalPlayer.TeamColor then
827Pass = false;
828end
829
830local Head = Player.Character:FindFirstChild'Head';
831
832if Pass and Player.Character and Head then
833Distance = (Camera.CFrame.p - Head.Position).magnitude;
834if Options.VisCheck.Value then
835Pass = CheckRay(Player, Distance, Camera.CFrame.p, (Head.Position - Camera.CFrame.p).unit);
836end
837if Distance > Options.MaxDistance.Value then
838Pass = false;
839end
840end
841else
842Pass = false;
843end
844
845return Pass, Distance;
846end
847
848function UpdatePlayerData()
849if (tick() - LastRefresh) > (Options.RefreshRate.Value / 1000) then
850LastRefresh = tick();
851for i, v in pairs(Players:GetPlayers()) do
852local Data = shared.PlayerData[v.Name] or { Instances = {} };
853
854Data.Instances['Box'] = Data.Instances['Box'] or LineBox:Create{Thickness = 3};
855Data.Instances['Tracer'] = Data.Instances['Tracer'] or NewDrawing'Line'{
856Transparency = 1;
857Thickness = 2;
858}
859Data.Instances['HeadDot'] = Data.Instances['HeadDot'] or NewDrawing'Circle'{
860Filled = true;
861NumSides = 30;
862}
863Data.Instances['NameTag'] = Data.Instances['NameTag'] or NewDrawing'Text'{
864Size = Options.TextSize.Value;
865Center = true;
866Outline = Options.TextOutline.Value;
867Visible = true;
868};
869Data.Instances['DistanceHealthTag'] = Data.Instances['DistanceHealthTag'] or NewDrawing'Text'{
870Size = Options.TextSize.Value - 1;
871Center = true;
872Outline = Options.TextOutline.Value;
873Visible = true;
874};
875
876local NameTag = Data.Instances['NameTag'];
877local DistanceTag = Data.Instances['DistanceHealthTag'];
878local Tracer = Data.Instances['Tracer'];
879local HeadDot = Data.Instances['HeadDot'];
880local Box = Data.Instances['Box'];
881
882local Pass, Distance = CheckPlayer(v);
883
884if Pass and v.Character then
885Data.LastUpdate = tick();
886local Humanoid = v.Character:FindFirstChildOfClass'Humanoid';
887local Head = v.Character:FindFirstChild'Head';
888local HumanoidRootPart = v.Character:FindFirstChild'HumanoidRootPart';
889if v.Character ~= nil and Head then
890local ScreenPosition, Vis = Camera:WorldToViewportPoint(Head.Position);
891if Vis then
892local Color = v.TeamColor == LocalPlayer.TeamColor and Green or Red;
893
894local ScreenPositionUpper = Camera:WorldToViewportPoint(Head.CFrame * CFrame.new(0, Head.Size.Y, 0).p);
895local Scale = Head.Size.Y / 2;
896
897if Options.ShowName.Value then
898NameTag.Visible = true;
899NameTag.Text = v.Name;
900NameTag.Size = Options.TextSize.Value;
901NameTag.Outline = Options.TextOutline.Value;
902NameTag.Position = Vector2.new(ScreenPositionUpper.X, ScreenPositionUpper.Y);
903NameTag.Color = Color;
904if Drawing.Fonts then -- CURRENTLY SYNAPSE ONLY :MEGAHOLY:
905NameTag.Font = Drawing.Fonts.UI;
906end
907else
908NameTag.Visible = false;
909end
910if Options.ShowDistance.Value or Options.ShowHealth.Value then
911DistanceTag.Visible = true;
912DistanceTag.Size = Options.TextSize.Value - 1;
913DistanceTag.Outline = Options.TextOutline.Value;
914DistanceTag.Color = Color3.new(1, 1, 1);
915if Drawing.Fonts then -- CURRENTLY SYNAPSE ONLY :MEGAHOLY:
916NameTag.Font = Drawing.Fonts.UI;
917end
918
919local Str = '';
920
921if Options.ShowDistance.Value then
922Str = Str .. Format('[%d] ', Distance);
923end
924if Options.ShowHealth.Value and Humanoid then
925Str = Str .. Format('[%d/100]', Humanoid.Health / Humanoid.MaxHealth * 100);
926end
927
928DistanceTag.Text = Str;
929DistanceTag.Position = Vector2.new(ScreenPositionUpper.X, ScreenPositionUpper.Y) + Vector2.new(0, NameTag.Size);
930else
931DistanceTag.Visible = false;
932end
933if Options.ShowDot.Value then
934local Top = Camera:WorldToViewportPoint((Head.CFrame * CFrame.new(0, Scale, 0)).p);
935local Bottom = Camera:WorldToViewportPoint((Head.CFrame * CFrame.new(0, -Scale, 0)).p);
936local Radius = (Top - Bottom).y;
937
938HeadDot.Visible = true;
939HeadDot.Color = Color;
940HeadDot.Position = Vector2.new(ScreenPosition.X, ScreenPosition.Y);
941HeadDot.Radius = Radius;
942else
943HeadDot.Visible = false;
944end
945if Options.ShowTracers.Value then
946Tracer.Visible = true;
947Tracer.From = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y);
948Tracer.To = Vector2.new(ScreenPosition.X, ScreenPosition.Y);
949Tracer.Color = Color;
950else
951Tracer.Visible = false;
952end
953if Options.ShowBoxes.Value and HumanoidRootPart then
954Box:Update(HumanoidRootPart.CFrame, Vector3.new(2, 3, 0) * (Scale * 2), Color);
955else
956Box:SetVisible(false);
957end
958else
959NameTag.Visible = false;
960DistanceTag.Visible = false;
961Tracer.Visible = false;
962HeadDot.Visible = false;
963
964Box:SetVisible(false);
965end
966end
967else
968NameTag.Visible = false;
969DistanceTag.Visible = false;
970Tracer.Visible = false;
971HeadDot.Visible = false;
972
973Box:SetVisible(false);
974end
975
976shared.PlayerData[v.Name] = Data;
977end
978end
979end
980
981function Update()
982for i, v in pairs(shared.PlayerData) do
983if not Players:FindFirstChild(tostring(i)) then
984GetTableData(v.Instances)(function(i, obj)
985obj.Visible = false;
986obj:Remove();
987v.Instances[i] = nil;
988end)
989shared.PlayerData[i] = nil;
990end
991end
992
993local CX = Menu:GetInstance'CrosshairX';
994local CY = Menu:GetInstance'CrosshairY';
995if Options.Crosshair.Value then
996CX.Visible = true;
997CY.Visible = true;
998
999CX.To = Vector2.new((Camera.ViewportSize.X / 2) - 8, (Camera.ViewportSize.Y / 2));
1000CX.From = Vector2.new((Camera.ViewportSize.X / 2) + 8, (Camera.ViewportSize.Y / 2));
1001CY.To = Vector2.new((Camera.ViewportSize.X / 2), (Camera.ViewportSize.Y / 2) - 8);
1002CY.From = Vector2.new((Camera.ViewportSize.X / 2), (Camera.ViewportSize.Y / 2) + 8);
1003else
1004CX.Visible = false;
1005CY.Visible = false;
1006end
1007
1008if Options.MenuOpen.Value and MenuLoaded then
1009local MLocation = GetMouseLocation();
1010shared.MenuDrawingData.Instances.Main.Color = Color3.fromHSV(tick() * 24 % 255/255, 1, 1);
1011local MainInstance = Menu:GetInstance'Main';
1012local Values = {
1013MainInstance.Position.X;
1014MainInstance.Position.Y;
1015MainInstance.Position.X + MainInstance.Size.X;
1016MainInstance.Position.Y + MainInstance.Size.Y;
1017};
1018if MainInstance and MouseHoveringOver(Values) then
1019Debounce.CursorVis = true;
1020-- GUIService:SetMenuIsOpen(true);
1021Menu:UpdateMenuInstance'Cursor1'{
1022Visible = true;
1023From = Vector2.new(MLocation.x, MLocation.y);
1024To = Vector2.new(MLocation.x + 5, MLocation.y + 6);
1025}
1026Menu:UpdateMenuInstance'Cursor2'{
1027Visible = true;
1028From = Vector2.new(MLocation.x, MLocation.y);
1029To = Vector2.new(MLocation.x, MLocation.y + 8);
1030}
1031Menu:UpdateMenuInstance'Cursor3'{
1032Visible = true;
1033From = Vector2.new(MLocation.x, MLocation.y + 6);
1034To = Vector2.new(MLocation.x + 5, MLocation.y + 5);
1035}
1036else
1037if Debounce.CursorVis then
1038Debounce.CursorVis = false;
1039-- GUIService:SetMenuIsOpen(false);
1040Menu:UpdateMenuInstance'Cursor1'{Visible = false};
1041Menu:UpdateMenuInstance'Cursor2'{Visible = false};
1042Menu:UpdateMenuInstance'Cursor3'{Visible = false};
1043end
1044end
1045if MouseHeld then
1046if Dragging then
1047DraggingWhat.Slider.Position = Vector2.new(math.clamp(MLocation.X, DraggingWhat.Line.From.X, DraggingWhat.Line.To.X), DraggingWhat.Slider.Position.Y);
1048local Percent = (DraggingWhat.Slider.Position.X - DraggingWhat.Line.From.X) / ((DraggingWhat.Line.To.X - DraggingWhat.Line.From.X));
1049local Value = CalculateValue(DraggingWhat.Min, DraggingWhat.Max, Percent);
1050DraggingWhat.Option(Value);
1051elseif DraggingUI then
1052Debounce.UIDrag = true;
1053local Main = Menu:GetInstance'Main';
1054local MousePos = GetMouseLocation();
1055Main.Position = MousePos + DragOffset;
1056end
1057else
1058Dragging = false;
1059if DraggingUI and Debounce.UIDrag then
1060Debounce.UIDrag = false;
1061DraggingUI = false;
1062CreateMenu(Menu:GetInstance'Main'.Position);
1063end
1064end
1065if not Debounce.Menu then
1066Debounce.Menu = true;
1067ToggleMenu();
1068end
1069elseif Debounce.Menu and not Options.MenuOpen.Value then
1070Debounce.Menu = false;
1071ToggleMenu();
1072end
1073end
1074
1075RunService:UnbindFromRenderStep(GetDataName);
1076RunService:UnbindFromRenderStep(UpdateName);
1077
1078RunService:BindToRenderStep(GetDataName, 1, UpdatePlayerData);
1079RunService:BindToRenderStep(UpdateName, 1, Update);
1080end)