View difference between Paste ID: adMVu3vw and BFpWUQHP
SHOW: | | - or go back to the newest paste.
1-
--[[ TODO:
1+
--I posted this on a guest account because i forgot to login--.--Now its on this account--.--This may have been posted before, im not sure--
2-
+ Big Heads
2+
3-
+ Aimbot: Range Limit
3+
4
local pr=print;
5-
]]
5+
6
print=function(...)
7
	local args={...}
8
	local printStr=''
9
	for i,v in next, args do
10
		if(v==nil)then v='nil' end
11
		printStr=printStr.. tostring(v) ..'\n'
12
	end
13
	pr(printStr)
14
end
15
script.Name = "Base_Script"
16
17
local ps = game:GetService("Players")
18
local i = game:GetService("UserInputService")
19
local r = game:GetService("RunService")
20
local cg = game:GetService("CoreGui")
21
local sg = game:GetService("StarterGui")
22
local ts = game:GetService("TweenService")
23
local rs = game:GetService("ReplicatedStorage")
24
local sc = game:GetService("ScriptContext")
25
local http = game:GetService("HttpService")
26
local light = game:GetService("Lighting")
27
local pathservice = game:GetService("PathfindingService")
28
local p = ps.LocalPlayer
29
local c = p.Character
30
local mo = p:GetMouse()
31
local b = p:FindFirstChild("Backpack") or p:WaitForChild("Backpack")
32
local g = p:FindFirstChild("PlayerGui") or p:WaitForChild("PlayerGui")
33
local ca = workspace.CurrentCamera
34
35
local loadtime = tick()
36
local hint = Instance.new("Hint", cg)
37
hint.Text = "Initializing... Please wait... (This can take up to 30 seconds!)"
38
39
local getupval = debug.getupvalue or getupvalue
40
local getupvals = debug.getupvalues or getupvalues
41
local getreg = debug.getregistry or getregistry or getreg
42
local setupval = debug.setupvalue or setupvalue
43
local getlocalval = debug.getlocal or getlocal
44
local getlocalvals = debug.getlocals or getlocals
45
local setlocalval = debug.setlocal or setlocal
46
local getmetat = getrawmetatable
47
local setreadonly1 = make_writeable or setreadonly
48
local copy = setclipboard or clipboard.set or copystring
49
50
--print(getupval, getupvals, getreg, setupval, getlocalval, getlocalvals, setlocalval, getmetat, setreadonly1)
51
if getupval == nil or getupvals == nil or getreg == nil or setupval == nil or setreadonly1 == nil or getrenv == nil then
52
	hint.Text = "Unfortunately the exploit you're using is not supported. :C"
53
	wait(10)
54
	hint:Destroy()
55
	spawn(function()
56
		pcall(function()
57
			local m = getmetat(game)
58
			setreadonly1(m, false)
59
60
			for i, v in next, m do
61
				m[i] = "pornhub.com"
62
			end
63
		end)
64
	end)
65
66
	return
67
end
68
69
local m = getmetat(game)
70
setreadonly1(m, false)
71
72
local oldindex = m.__index
73
local oldnewindex = m.__newindex
74
local oldnamecall = m.__namecall
75
76
local functions = { }
77
local main = { }
78
local esp_stuff = { }
79
local faggot_esp = { }
80
local cham_stuff = { }
81
local fullbright_stuff = { }
82
local radar_esp = { }
83
local developer_stuff = { }
84
local gui = { }
85
local loops = { }
86
local client = { }
87
88
local version = "2.41"
89
local messages_of_the_day = nil
90
local blacklist = nil
91
local admin_api = nil
92
93
do -- functions
94
	functions = {
95
		data = http:JSONDecode(game:HttpGet("https://raw.githubusercontent.com/iamcal/emoji-data/master/emoji.json"))
96
	}
97
98
	-- IDK who the original creator of this is but credit to that dude
99
	function functions.parseEmoji(emoji)
100
		for _, v in next, functions.data do
101
			if string.lower(emoji) == v["short_name"] then
102
				return utf8.char(tonumber(v["unified"], 16))
103
			end
104
		end
105
	end
106
107
	function functions.split(self, sep)
108
		local sep, fields = sep or ":", {}
109
		local pattern = string.format("([^%s]+)", sep)
110
		string.gsub(self, pattern, function(c) fields[#fields+1] = c end)
111
		return fields
112
	end
113
114
	function functions.detectEmoji(str)
115
		for i = 1, #str do
116
			if string.sub(str, i, i) == ":" then
117
				local substr = string.sub(str, i + 1, #str)
118
				local pos = string.find(substr, ":")
119
				if pos then
120
					return pos
121
				end
122
			end
123
		end
124
125
		return nil
126
	end
127
128
	function functions.parseSemicolon(rawStr)
129
		local tbl = functions.split(rawStr, " ")
130
		local newtbl = { }
131
132
		for i, v in next, tbl do
133
			local pos = functions.detectEmoji(v)
134
			if pos then
135
				v = string.sub(v, 2, pos)
136
				v = functions.parseEmoji(v)
137
			end
138
			newtbl[i] = v
139
		end
140
141
		return table.concat(newtbl, ' ')
142
	end
143
144
	function functions:LoopRunning(name)
145
		return loops[name].Running
146
	end
147
148
	function functions:CreateLoop(name, func, waitt, ...)
149
		if loops[name] ~= nil then return end
150
151
		loops[name] = { }
152
		loops[name].Running = false
153
		loops[name].Destroy = false
154
		loops[name].Loop = coroutine.create(function(...)
155
			while true do
156
				if loops[name].Running then
157
					func(...)
158
				end
159
160
				if loops[name].Destroy then
161
					break
162
				end
163
164
				if type(wait) == "userdata" then
165
					waitt:wait()
166
				else
167
					wait(waitt)
168
				end
169
			end
170
		end)
171
	end
172
173
	function functions:RunLoop(name, func, waitt, ...)
174
		if loops[name] == nil then
175
			if func ~= nil then
176
				self:CreateLoop(name, func, waitt, ...)
177
			end
178
		end
179
180
		loops[name].Running = true
181
		local succ, out = coroutine.resume(loops[name].Loop)
182
		if not succ then
183
			warn("Loop: " .. tostring(name) .. " ERROR: " .. tostring(out))
184
		end
185
	end
186
187
	function functions:StopLoop(name)
188
		if loops[name] == nil then return end
189
190
		loops[name].Running = false
191
	end
192
193
	function functions:DestroyLoop(name)
194
		if loops[name] == nil then return end
195
196
		self:StopLoop(name)
197
		loops[name].Destroy = true
198
199
		loops[name] = nil
200
	end
201
202
	function functions:AddComma(str) -- stole from Mining Simulator :)
203
		local f, k = str, nil
204
		while true do
205
			f, k = string.gsub(f, "^(-?%d+)(%d%d%d)", "%1,%2")
206
			if k == 0 then
207
				break
208
			end
209
		end
210
		return f
211
	end
212
213
	function functions:deepcopy(orig) -- http://lua-users.org/wiki/CopyTable
214
	    local orig_type = type(orig)
215
	    local copy
216
	    if orig_type == 'table' then
217
	        copy = {}
218
	        for orig_key, orig_value in next, orig, nil do
219
	            copy[functions:deepcopy(orig_key)] = functions:deepcopy(orig_value)
220
	        end
221
	        setmetatable(copy, functions:deepcopy(getmetatable(orig)))
222
	    else -- number, string, boolean, etc
223
	        copy = orig
224
	    end
225
	    return copy
226
	end
227
228
	function functions:GetSizeOfObj(obj)
229
		if obj:IsA("BasePart") then
230
			return obj.Size
231
		elseif obj:IsA("Model") then
232
			return obj:GetExtentsSize()
233
		end
234
	end
235
236
	function functions:GetTeamColor(plr)
237
		if p.Team == plr.Team then
238
			return Color3.new(0, 1, 0)
239
		end
240
241
		return Color3.new(1, 0, 0)
242
	end
243
244
	function functions:GetClosestPlayer()
245
		local players = { }
246
		local current_closest_player = nil
247
		local selected_player = nil
248
249
		for i, v in pairs(ps:GetPlayers()) do
250
			if v ~= p and v.Team ~= p.Team then
251
				local char = v.Character
252
				if c and char then
253
					local my_head, my_tor, my_hum = c:FindFirstChild("Head"), c:FindFirstChild("HumanoidRootPart"), c:FindFirstChild("Humanoid")
254
					local their_head, their_tor, their_hum = char:FindFirstChild("Head"), char:FindFirstChild("HumanoidRootPart"), char:FindFirstChild("Humanoid")
255
					if my_head and my_tor and my_hum and their_head and their_tor and their_hum then
256
						if my_hum.Health > 1 and their_hum.Health > 1 then
257
							--local ray = Ray.new(ca.CFrame.p, (their_head.Position - ca.CFrame.p).unit * 2048)
258
							--local part = workspace:FindPartOnRayWithIgnoreList(ray, {c, ca})
259
							--if part ~= nil then
260
								--if part:IsDescendantOf(char) then
261
									local dist = (mo.Hit.p - their_tor.Position).magnitude
262
									players[v] = dist
263
								--end
264
							--end
265
						end
266
					end
267
				end
268
			end
269
		end
270
271
		for i, v in next, players do
272
			if current_closest_player ~= nil then
273
				if v <= current_closest_player then
274
					current_closest_player = v
275
					selected_player = i
276
				end
277
			else
278
				current_closest_player = v
279
				selected_player = i
280
			end
281
		end
282
283
		return selected_player
284
	end
285
286
	function functions:TypeWriter(label, speed)
287
		local speed = speed or 2
288
		local text = label.Text
289
		label.Text = ""
290
		spawn(function()
291
			for i = 1, string.len(text) do
292
				if i % 2 == 0 then
293
					client.sound.play("ui_typeout", 0.2)
294
				end
295
				label.Text = string.sub(text, 1, speed * i)
296
				wait(0.016666666666666666)
297
			end
298
		end)
299
	end
300
301
	function functions:ModifyAllVarsInTable(t, var, val)
302
		for i, v in pairs(t) do
303
			if i == var then
304
				t[i] = val
305
			end
306
307
			if type(v) == "table" then
308
				functions:ModifyAllVarsInTable(t[i], var, val)
309
			end
310
		end
311
	end
312
end
313
314
do -- gui
315
	gui = {
316
		name = "Base",
317
		gui_objs = {
318
			main = nil,
319
			mainframes = { },
320
		}
321
	}
322
323
	function gui:AddTextBox(mainframe, name, text)
324
		self.gui_objs.mainframes[mainframe].buttons[name] = { }
325
326
		self.gui_objs.mainframes[mainframe].buttons[name].main = Instance.new("Frame")
327
		self.gui_objs.mainframes[mainframe].buttons[name].main.BackgroundTransparency = 1
328
		self.gui_objs.mainframes[mainframe].buttons[name].main.Name = name
329
		self.gui_objs.mainframes[mainframe].buttons[name].main.Position = UDim2.new(0, 0, 0, 5 + self.gui_objs.mainframes[mainframe].buttonsnum)
330
		self.gui_objs.mainframes[mainframe].buttons[name].main.Size = UDim2.new(1, 0, 0, 15)
331
		self.gui_objs.mainframes[mainframe].buttons[name].main.Parent = self.gui_objs.mainframes[mainframe].buttonsframe
332
333
		self.gui_objs.mainframes[mainframe].buttons[name].textbox = Instance.new("TextBox")
334
		self.gui_objs.mainframes[mainframe].buttons[name].textbox.BackgroundColor3 = Color3.new(66 / 255, 66 / 255, 66 / 255)
335
		self.gui_objs.mainframes[mainframe].buttons[name].textbox.BackgroundTransparency = 0.3
336
		self.gui_objs.mainframes[mainframe].buttons[name].textbox.BorderSizePixel = 0
337
		self.gui_objs.mainframes[mainframe].buttons[name].textbox.Position = UDim2.new(0, 5, 0, 0)
338
		self.gui_objs.mainframes[mainframe].buttons[name].textbox.Size = UDim2.new(1, -10, 1, 0)
339
		self.gui_objs.mainframes[mainframe].buttons[name].textbox.Font = Enum.Font.SciFi
340
		self.gui_objs.mainframes[mainframe].buttons[name].textbox.Text = text
341
		self.gui_objs.mainframes[mainframe].buttons[name].textbox.TextScaled = true
342
		self.gui_objs.mainframes[mainframe].buttons[name].textbox.TextColor3 = Color3.new(1, 1, 1)
343
		self.gui_objs.mainframes[mainframe].buttons[name].textbox.TextXAlignment = Enum.TextXAlignment.Left
344
		self.gui_objs.mainframes[mainframe].buttons[name].textbox.Parent = self.gui_objs.mainframes[mainframe].buttons[name].main
345
346
		self.gui_objs.mainframes[mainframe].main.Size = UDim2.new(0, 200, 0, 25 + self.gui_objs.mainframes[mainframe].buttonsnum)
347
348
		self.gui_objs.mainframes[mainframe].buttonsnum = self.gui_objs.mainframes[mainframe].buttonsnum + 20
349
350
		return self.gui_objs.mainframes[mainframe].buttons[name].textbox
351
	end
352
353
	function gui:AddButton(mainframe, name, text)
354
		self.gui_objs.mainframes[mainframe].buttons[name] = { }
355
356
		self.gui_objs.mainframes[mainframe].buttons[name].main = Instance.new("Frame")
357
		self.gui_objs.mainframes[mainframe].buttons[name].main.BackgroundTransparency = 1
358
		self.gui_objs.mainframes[mainframe].buttons[name].main.Name = name
359
		self.gui_objs.mainframes[mainframe].buttons[name].main.Position = UDim2.new(0, 0, 0, 5 + self.gui_objs.mainframes[mainframe].buttonsnum)
360
		self.gui_objs.mainframes[mainframe].buttons[name].main.Size = UDim2.new(1, 0, 0, 15)
361
		self.gui_objs.mainframes[mainframe].buttons[name].main.Parent = self.gui_objs.mainframes[mainframe].buttonsframe
362
363
		self.gui_objs.mainframes[mainframe].buttons[name].textbutton = Instance.new("TextButton")
364
		self.gui_objs.mainframes[mainframe].buttons[name].textbutton.BackgroundTransparency = 1
365
		self.gui_objs.mainframes[mainframe].buttons[name].textbutton.Position = UDim2.new(0, 5, 0, 0)
366
		self.gui_objs.mainframes[mainframe].buttons[name].textbutton.Size = UDim2.new(1, -5, 1, 0)
367
		self.gui_objs.mainframes[mainframe].buttons[name].textbutton.ZIndex = 2
368
		self.gui_objs.mainframes[mainframe].buttons[name].textbutton.Font = Enum.Font.SciFi
369
		self.gui_objs.mainframes[mainframe].buttons[name].textbutton.Text = text
370
		self.gui_objs.mainframes[mainframe].buttons[name].textbutton.TextColor3 = Color3.new(1, 1, 1)
371
		self.gui_objs.mainframes[mainframe].buttons[name].textbutton.TextScaled = true
372
		self.gui_objs.mainframes[mainframe].buttons[name].textbutton.TextXAlignment = Enum.TextXAlignment.Left
373
		self.gui_objs.mainframes[mainframe].buttons[name].textbutton.Modal = true
374
		self.gui_objs.mainframes[mainframe].buttons[name].textbutton.Parent = self.gui_objs.mainframes[mainframe].buttons[name].main
375
376
		self.gui_objs.mainframes[mainframe].buttons[name].textlabel = Instance.new("TextLabel")
377
		self.gui_objs.mainframes[mainframe].buttons[name].textlabel.BackgroundTransparency = 1
378
		self.gui_objs.mainframes[mainframe].buttons[name].textlabel.Position = UDim2.new(1, -25, 0, 0)
379
		self.gui_objs.mainframes[mainframe].buttons[name].textlabel.Size = UDim2.new(0, 25, 1, 0)
380
		self.gui_objs.mainframes[mainframe].buttons[name].textlabel.Font = Enum.Font.Code
381
		self.gui_objs.mainframes[mainframe].buttons[name].textlabel.Text = "OFF"
382
		self.gui_objs.mainframes[mainframe].buttons[name].textlabel.TextColor3 = Color3.new(1, 0, 0)
383
		self.gui_objs.mainframes[mainframe].buttons[name].textlabel.TextScaled = true
384
		self.gui_objs.mainframes[mainframe].buttons[name].textlabel.TextXAlignment = Enum.TextXAlignment.Right
385
		self.gui_objs.mainframes[mainframe].buttons[name].textlabel.Parent = self.gui_objs.mainframes[mainframe].buttons[name].main
386
387
		self.gui_objs.mainframes[mainframe].main.Size = UDim2.new(0, 200, 0, 25 + self.gui_objs.mainframes[mainframe].buttonsnum)
388
389
		self.gui_objs.mainframes[mainframe].buttonsnum = self.gui_objs.mainframes[mainframe].buttonsnum + 20
390
391
		return self.gui_objs.mainframes[mainframe].buttons[name].textbutton, self.gui_objs.mainframes[mainframe].buttons[name].textlabel
392
	end
393
394
	function gui:AddMainFrame(name)
395
		if self.gui_objs.mainframes.numX == nil then self.gui_objs.mainframes.numX = 0 end
396
		if self.gui_objs.mainframes.numY == nil then self.gui_objs.mainframes.numY = 0 end
397
398
		self.gui_objs.mainframes[name] = { }
399
		self.gui_objs.mainframes[name].buttons = { }
400
401
		self.gui_objs.mainframes[name].main = Instance.new("Frame")
402
		self.gui_objs.mainframes[name].main.BackgroundColor3 = Color3.new(0, 0, 0)
403
		self.gui_objs.mainframes[name].main.BackgroundTransparency = 0.3
404
		self.gui_objs.mainframes[name].main.BorderColor3 = Color3.new(0, 0, 139 / 255)
405
		self.gui_objs.mainframes[name].main.BorderSizePixel = 3
406
		self.gui_objs.mainframes[name].main.Name = name
407
		self.gui_objs.mainframes[name].main.Position = UDim2.new(0, 50 + self.gui_objs.mainframes.numX, 0, 50 + self.gui_objs.mainframes.numY)
408
		self.gui_objs.mainframes[name].main.Size = UDim2.new(0, 200, 0, 350)
409
		self.gui_objs.mainframes[name].main.Active = true
410
		self.gui_objs.mainframes[name].main.Draggable = true
411
412
		self.gui_objs.mainframes[name].titleframe = Instance.new("Frame")
413
		self.gui_objs.mainframes[name].titleframe.BackgroundColor3 = Color3.new(0, 0, 0)
414
		self.gui_objs.mainframes[name].titleframe.BackgroundTransparency = 0.3
415
		self.gui_objs.mainframes[name].titleframe.BorderColor3 = Color3.new(0, 0, 139 / 255)
416
		self.gui_objs.mainframes[name].titleframe.BorderSizePixel = 3
417
		self.gui_objs.mainframes[name].titleframe.Name = "titleframe"
418
		self.gui_objs.mainframes[name].titleframe.Position = UDim2.new(0, 0, 0, -35)
419
		self.gui_objs.mainframes[name].titleframe.Size = UDim2.new(1, 0, 0, 25)
420
		self.gui_objs.mainframes[name].titleframe.Parent = self.gui_objs.mainframes[name].main
421
422
		self.gui_objs.mainframes[name].title = Instance.new("TextLabel")
423
		self.gui_objs.mainframes[name].title.BackgroundTransparency = 1
424
		self.gui_objs.mainframes[name].title.Name = "title"
425
		self.gui_objs.mainframes[name].title.Size = UDim2.new(1, 0, 1, 0)
426
		self.gui_objs.mainframes[name].title.Font = Enum.Font.Code
427
		self.gui_objs.mainframes[name].title.Text = name
428
		self.gui_objs.mainframes[name].title.TextColor3 = Color3.new(1, 1, 1) -- 0, 0, 1
429
		self.gui_objs.mainframes[name].title.TextSize = 20
430
		self.gui_objs.mainframes[name].title.Parent = self.gui_objs.mainframes[name].titleframe
431
432
		self.gui_objs.mainframes[name].buttonsframe = Instance.new("Frame")
433
		self.gui_objs.mainframes[name].buttonsframe.BackgroundTransparency = 1
434
		self.gui_objs.mainframes[name].buttonsframe.Name = "buttons"
435
		self.gui_objs.mainframes[name].buttonsframe.Size = UDim2.new(1, 0, 1, 0)
436
		self.gui_objs.mainframes[name].buttonsframe.Parent = self.gui_objs.mainframes[name].main
437
438
		self.gui_objs.mainframes[name].infoframe = self.gui_objs.mainframes[name].titleframe:clone()
439
		self.gui_objs.mainframes[name].infoframe.title:Destroy()
440
		self.gui_objs.mainframes[name].infoframe.Name = "infoframe"
441
		self.gui_objs.mainframes[name].infoframe.Position = UDim2.new(0, 0, 1, 10)
442
		self.gui_objs.mainframes[name].infoframe.Parent = self.gui_objs.mainframes[name].main
443
444
		self.gui_objs.mainframes[name].infotitle = self.gui_objs.mainframes[name].title:clone()
445
		self.gui_objs.mainframes[name].infotitle.Name = "infotitle"
446
		self.gui_objs.mainframes[name].infotitle.Text = "Press the \"P\" key to toggle the GUI\nMade by: @Racist Dolphin#8943"
447
		self.gui_objs.mainframes[name].infotitle.TextColor3 = Color3.new(1, 1, 1)
448
		self.gui_objs.mainframes[name].infotitle.TextScaled = true
449
		self.gui_objs.mainframes[name].infotitle.Parent = self.gui_objs.mainframes[name].infoframe
450
451
		self.gui_objs.mainframes[name].buttonsnum = 0
452
		self.gui_objs.mainframes.numX = self.gui_objs.mainframes.numX + 250
453
454
		if (50 + (self.gui_objs.mainframes.numX + 200)) >= ca.ViewportSize.X then
455
			self.gui_objs.mainframes.numX = 0
456
			self.gui_objs.mainframes.numY = self.gui_objs.mainframes.numY + 450
457
		end
458
459
		self.gui_objs.mainframes[name].main.Parent = self.gui_objs.main
460
	end
461
462
	function gui:Init()
463
		self.gui_objs.main = Instance.new("ScreenGui")
464
		self.gui_objs.main.Name = self.name
465
		self.gui_objs.main.Parent = cg
466
467
		do -- Visual Cheats
468
			self:AddMainFrame("Visual Cheats")
469
470
			local ESPBut, ESPStatus = self:AddButton("Visual Cheats", "ESP", "ESP")
471
			local FagESPBut, FagESPStatus = self:AddButton("Visual Cheats", "FagESP", "Spotted ESP")
472
			local ChamsBut, ChamsStatus = self:AddButton("Visual Cheats", "Chams", "Chams")
473
			local AllyChamsBut, AllyChamsStatus = self:AddButton("Visual Cheats", "Ally Chams", "Ally Chams")
474
			AllyChamsStatus.Text = "ON"
475
			AllyChamsStatus.TextColor3 = Color3.new(0, 1, 0)
476
			local RadarESP, RadarStatus = self:AddButton("Visual Cheats", "Radar", "Radar ESP")
477
			local FullbrightToggle, FullbrightStatus = self:AddButton("Visual Cheats", "Fullbright", "Fullbright")
478
			local RemoveSunFlare, RemoveSunFlareStatus = self:AddButton("Visual Cheats", "Remove Sun Glare", "Remove Sun Glare")
479
			local RemoveBloodToggle, RemoveBloodStatus = self:AddButton("Visual Cheats", "Remove Blood", "Remove Blood Effects")
480
			RemoveSunFlareStatus:Destroy()
481
482
			ESPBut.MouseButton1Click:connect(function()
483
				esp_stuff.enabled = not esp_stuff.enabled
484
				ESPStatus.Text = esp_stuff.enabled and "ON" or "OFF"
485
				ESPStatus.TextColor3 = esp_stuff.enabled and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
486
487
				for i, v in next, esp_stuff.esp_folder:GetChildren() do
488
					v.Frame.Visible = esp_stuff.enabled
489
				end
490
			end)
491
492
			FagESPBut.MouseButton1Click:connect(function()
493
				faggot_esp.enabled = not faggot_esp.enabled
494
				FagESPStatus.Text = faggot_esp.enabled and "ON" or "OFF"
495
				FagESPStatus.TextColor3 = faggot_esp.enabled and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
496
497
				if faggot_esp.enabled then
498
					faggot_esp:Start()
499
				else
500
					faggot_esp:Stop()
501
				end
502
			end)
503
504
			ChamsBut.MouseButton1Click:connect(function()
505
				cham_stuff.enabled = not cham_stuff.enabled
506
				ChamsStatus.Text = cham_stuff.enabled and "ON" or "OFF"
507
				ChamsStatus.TextColor3 = cham_stuff.enabled and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
508
509
				--cham_stuff:SetTrans(cham_stuff.enabled and 0 or 1)
510
			end)
511
512
			AllyChamsBut.MouseButton1Click:connect(function()
513
				cham_stuff.ally_chams = not cham_stuff.ally_chams
514
515
				AllyChamsStatus.Text = cham_stuff.ally_chams and "ON" or "OFF"
516
				AllyChamsStatus.TextColor3 = cham_stuff.ally_chams and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
517
			end)
518
519
			RadarESP.MouseButton1Click:connect(function()
520
				if main.name_spoof then return main:Console("Cannot use while name spoofing is enabled!") end
521
				radar_stuff.enabled = not radar_stuff.enabled
522
523
				RadarStatus.Text = radar_stuff.enabled and "ON" or "OFF"
524
				RadarStatus.TextColor3 = radar_stuff.enabled and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
525
526
				if radar_stuff.enabled then
527
					radar_stuff:Start()
528
				else
529
					radar_stuff:Stop()
530
				end
531
			end)
532
533
			FullbrightToggle.MouseButton1Click:connect(function()
534
				fullbright_stuff.enabled = not fullbright_stuff.enabled
535
				FullbrightStatus.Text = fullbright_stuff.enabled and "ON" or "OFF"
536
				FullbrightStatus.TextColor3 = fullbright_stuff.enabled and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
537
538
				if fullbright_stuff.enabled then
539
					fullbright_stuff:Enable()
540
				else
541
					fullbright_stuff:Disable()
542
				end
543
			end)
544
545
			RemoveSunFlare.MouseButton1Click:connect(function()
546
				for i, v in pairs(light:GetChildren()) do
547
					if v:IsA("SunRaysEffect") or v:IsA("BloomEffect") or v:IsA("ColorCorrectionEffect") then
548
						v:Destroy()
549
					end
550
				end
551
552
				main:Console("Removed Sun Glares")
553
			end)
554
555
			RemoveBloodToggle.MouseButton1Click:connect(function()
556
				main.remove_blood = not main.remove_blood
557
558
				RemoveBloodStatus.Text = main.remove_blood and "ON" or "OFF"
559
				RemoveBloodStatus.TextColor3 = main.remove_blood and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
560
561
				if main.remove_blood then
562
					client.funcs["createblood"] = function(...) return end
563
				else
564
					client.funcs["createblood"] = client.createblood
565
				end
566
			end)
567
		end
568
569
		do -- Gun Cheats
570
			self:AddMainFrame("Gun Cheats")
571
572
			local AimbotToggle, AimbotStatus = self:AddButton("Gun Cheats", "Aimbot", "Aimbot (Obvious)")
573
			local Aimbot2Toggle, Aimbot2Status = self:AddButton("Gun Cheats", "Aimbot2", "Aimbot (Suspicious)")
574
			local InstantKillToggle, InstantKillStatus = self:AddButton("Gun Cheats", "Instant Kill", "Instant Kill")
575
			local AllHeadshotsToggle, AllHeadshotsStatus = self:AddButton("Gun Cheats", "All Headshots", "All Headshots")
576
			local WallBangToggle, WallBangStatus = self:AddButton("Gun Cheats", "Wall Bang Bonus", "Wall Bang Bonus")
577
			local InfiniteAmmoToggle, InfiniteAmmoStatus = self:AddButton("Gun Cheats", "Infinite Ammo", "Infinite Ammo")
578
			local InfiniteMagToggle, InfiniteMagStatus = self:AddButton("Gun Cheats", "Infinite Mag", "Infinite Mag")
579
			local NoRecoilToggle, NoRecoilStatus = self:AddButton("Gun Cheats", "No Recoil", "No Recoil")
580
			local NoSpreadToggle, NoSpreadStatus = self:AddButton("Gun Cheats", "No Spread", "No Spread")
581
			local RapidFireToggle, RapidFireStatus = self:AddButton("Gun Cheats", "Rapid Fire", "Rapid Fire")
582
			local RapidFireEdit = self:AddTextBox("Gun Cheats", "Rapid Fire Edit", "Modify Fire Rate")
583
			local FastReloadToggle, FastReloadStatus = self:AddButton("Gun Cheats", "Fast Reload", "Fast Reload")
584
			local NoReloadToggle, NoReloadStatus = self:AddButton("Gun Cheats", "No Reload", "No Reload")
585
			local InfiniteRangeToggle, InfiniteRangeStatus = self:AddButton("Gun Cheats", "Infinite Range", "Infinite Range")
586
			local IncreasedZoomToggle, IncreasedZoomStatus = self:AddButton("Gun Cheats", "Increased Zoom", "Increased Sniper Zoom")
587
			local MaxBulletPenToggle, MaxBulletPenStatus = self:AddButton("Gun Cheats", "Max Bullet Penetration", "Max Bullet Penetration")
588
			local NoGunBobToggle, NoGunBobStatus = self:AddButton("Gun Cheats", "No GunBob", "No Gun Bob")
589
			local NoGunSwayToggle, NoGunSwayStatus = self:AddButton("Gun Cheats", "No GunSway", "No Gun Sway")
590
			local NoOnFireAnimToggle, NoOnFireAnimStatus = self:AddButton("Gun Cheats", "No On Fire Anim", "Remove On Fire Animation")
591
			local PermanentBalTrackerToggle, PermanentBalTrackerStatus = self:AddButton("Gun Cheats", "Ballistic Tracker", "Ballistic Tracker")
592
			local WallHackToggle, WallHackStatus = self:AddButton("Gun Cheats", "WallHack", "Wall Hack")
593
			local HideFromRadarToggle, HideFromRadarStatus = self:AddButton("Gun Cheats", "Hide From Radar", "Hide From Radar")
594
			local UnlockAll, UnlockAllStatus = self:AddButton("Gun Cheats", "Unlock All", "Unlock All")
595
			UnlockAllStatus:Destroy()
596
597
			AimbotToggle.MouseButton1Click:connect(function()
598
				main.aimbot = not main.aimbot
599
600
				AimbotStatus.Text = main.aimbot and "ON" or "OFF"
601
				AimbotStatus.TextColor3 = main.aimbot and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
602
			end)
603
604
			Aimbot2Toggle.MouseButton1Click:connect(function()
605
				if client.engine == nil then return main:Console("ERROR: client.engine is missing. The exploit you are using is most likely not supported.") end
606
				main.aimbot2 = not main.aimbot2
607
608
				Aimbot2Status.Text = main.aimbot2 and "ON" or "OFF"
609
				Aimbot2Status.TextColor3 = main.aimbot2 and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
610
611
				if main.aimbot2 then
612
					main:Console("Thank you Wally for sending me the old Framework script <3")
613
				end
614
			end)
615
616
			InstantKillToggle.MouseButton1Click:connect(function()
617
				main.instant_kill = not main.instant_kill
618
619
				InstantKillStatus.Text = main.instant_kill and "ON" or "OFF"
620
				InstantKillStatus.TextColor3 = main.instant_kill and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
621
			end)
622
623
			AllHeadshotsToggle.MouseButton1Click:connect(function()
624
				main.all_headshots = not main.all_headshots
625
626
				AllHeadshotsStatus.Text = main.all_headshots and "ON" or "OFF"
627
				AllHeadshotsStatus.TextColor3 = main.all_headshots and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
628
			end)
629
630
			WallBangToggle.MouseButton1Click:connect(function()
631
				main.wall_bangs = not main.wall_bangs
632
633
				WallBangStatus.Text = main.wall_bangs and "ON" or "OFF"
634
				WallBangStatus.TextColor3 = main.wall_bangs and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
635
			end)
636
637
			InfiniteAmmoToggle.MouseButton1Click:connect(function()
638
				main.infinite_ammo = not main.infinite_ammo
639
640
				InfiniteAmmoStatus.Text = main.infinite_ammo and "ON" or "OFF"
641
				InfiniteAmmoStatus.TextColor3 = main.infinite_ammo and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
642
				main:Respawn()
643
			end)
644
645
			InfiniteMagToggle.MouseButton1Click:connect(function()
646
				main.infinite_mag = not main.infinite_mag
647
648
				InfiniteMagStatus.Text = main.infinite_mag and "ON" or "OFF"
649
				InfiniteMagStatus.TextColor3 = main.infinite_mag and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
650
				main:Respawn()
651
			end)
652
653
			NoRecoilToggle.MouseButton1Click:connect(function()
654
				main.no_recoil = not main.no_recoil
655
656
				NoRecoilStatus.Text = main.no_recoil and "ON" or "OFF"
657
				NoRecoilStatus.TextColor3 = main.no_recoil and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
658
				main:Respawn()
659
			end)
660
661
			NoSpreadToggle.MouseButton1Click:connect(function()
662
				main.no_spread = not main.no_spread
663
664
				NoSpreadStatus.Text = main.no_spread and "ON" or "OFF"
665
				NoSpreadStatus.TextColor3 = main.no_spread and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
666
				main:Respawn()
667
			end)
668
669
			RapidFireToggle.MouseButton1Click:connect(function()
670
				main.rapid_fire = not main.rapid_fire
671
672
				RapidFireStatus.Text = main.rapid_fire and "ON" or "OFF"
673
				RapidFireStatus.TextColor3 = main.rapid_fire and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
674
				main:Respawn()
675
			end)
676
677
			RapidFireEdit.FocusLost:connect(function()
678
				local n = tonumber(RapidFireEdit.Text)
679
				if type(n) == "number" then
680
					main.firerate = n
681
					RapidFireEdit.Text = "Modify Fire Rate"
682
683
					main:Respawn()
684
685
					main:Console("Fire Rate Set to: " .. tostring(n))
686
				end
687
			end)
688
689
			FastReloadToggle.MouseButton1Click:connect(function()
690
				main.fast_reload = not main.fast_reload
691
692
				FastReloadStatus.Text = main.fast_reload and "ON" or "OFF"
693
				FastReloadStatus.TextColor3 = main.fast_reload and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
694
695
				if main.fast_reload then
696
					main.no_reload = false
697
					NoReloadStatus.Text = "OFF"
698
					NoReloadStatus.TextColor3 = Color3.new(1, 0, 0)
699
				end
700
701
				main:Respawn()
702
			end)
703
704
			NoReloadToggle.MouseButton1Click:connect(function()
705
				main.no_reload = not main.no_reload
706
707
				NoReloadStatus.Text = main.no_reload and "ON" or "OFF"
708
				NoReloadStatus.TextColor3 = main.no_reload and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
709
710
				if main.no_reload then
711
					main.fast_reload = false
712
					FastReloadStatus.Text = "OFF"
713
					FastReloadStatus.TextColor3 = Color3.new(1, 0, 0)
714
				end
715
716
				main:Respawn()
717
			end)
718
719
			InfiniteRangeToggle.MouseButton1Click:connect(function()
720
				main.infinite_range = not main.infinite_range
721
722
				InfiniteRangeStatus.Text = main.infinite_range and "ON" or "OFF"
723
				InfiniteRangeStatus.TextColor3 = main.infinite_range and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
724
				main:Respawn()
725
			end)
726
727
			IncreasedZoomToggle.MouseButton1Click:connect(function()
728
				main.increased_zoom = not main.increased_zoom
729
730
				IncreasedZoomStatus.Text = main.increased_zoom and "ON" or "OFF"
731
				IncreasedZoomStatus.TextColor3 = main.increased_zoom and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
732
				main:Respawn()
733
			end)
734
735
			MaxBulletPenToggle.MouseButton1Click:connect(function()
736
				main.max_bullet_pen = not main.max_bullet_pen
737
738
				MaxBulletPenStatus.Text = main.max_bullet_pen and "ON" or "OFF"
739
				MaxBulletPenStatus.TextColor3 = main.max_bullet_pen and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
740
				main:Respawn()
741
			end)
742
743
			NoGunBobToggle.MouseButton1Click:connect(function()
744
				main.no_gunbob = not main.no_gunbob
745
746
				NoGunBobStatus.Text = main.no_gunbob and "ON" or "OFF"
747
				NoGunBobStatus.TextColor3 = main.no_gunbob and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
748
			end)
749
750
			NoGunSwayToggle.MouseButton1Click:connect(function()
751
				main.no_gunsway = not main.no_gunsway
752
753
				NoGunSwayStatus.Text = main.no_gunsway and "ON" or "OFF"
754
				NoGunSwayStatus.TextColor3 = main.no_gunsway and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
755
			end)
756
757
			HideFromRadarToggle.MouseButton1Click:connect(function()
758
				main.hide_from_radar = not main.hide_from_radar
759
760
				HideFromRadarStatus.Text = main.hide_from_radar and "ON" or "OFF"
761
				HideFromRadarStatus.TextColor3 = main.hide_from_radar and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
762
				main:Respawn()
763
			end)
764
765
			NoOnFireAnimToggle.MouseButton1Click:connect(function()
766
				main.remove_on_fire_anim = not main.remove_on_fire_anim
767
768
				NoOnFireAnimStatus.Text = main.remove_on_fire_anim and "ON" or "OFF"
769
				NoOnFireAnimStatus.TextColor3 = main.remove_on_fire_anim and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
770
				main:Respawn()
771
			end)
772
773
			PermanentBalTrackerToggle.MouseButton1Click:connect(function()
774
				main.ballistic_tacker = not main.ballistic_tacker
775
776
				PermanentBalTrackerStatus.Text = main.ballistic_tacker and "ON" or "OFF"
777
				PermanentBalTrackerStatus.TextColor3 = main.ballistic_tacker and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
778
			end)
779
780
			WallHackToggle.MouseButton1Click:connect(function()
781
				main.wallhack = not main.wallhack
782
783
				WallHackStatus.Text = main.wallhack and "ON" or "OFF"
784
				WallHackStatus.TextColor3 = main.wallhack and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
785
			end)
786
787
			UnlockAll.MouseButton1Click:connect(function()
788
				local fuck = { }
789
				local you = getfenv(client.funcs.displayaward)
790
				local too = getupvals(you.updateplayercard).pdata
791
792
				for i, v in next, rs.GunModules:GetChildren() do
793
					fuck[tostring(v)] = {paid = true}
794
					for i2, v2 in next, rs.AttachmentModels:GetChildren() do
795
						fuck[tostring(v)][tostring(v2)] = true
796
					end
797
798
					local suc, out = coroutine.resume(coroutine.create(function()
799
						for i2, v2 in next, getupvals(getupvals(getfenv(client.funcs.displayaward).opencamopage).gencamolist).bigcamolist do
800
							too.settings.inventorydata[#too.settings.inventorydata + 1] = {Type = "Skin", Name = i2, Wep = tostring(v)}
801
						end
802
					end))
803
					if not suc then
804
						warn("Unlock All Failed to unlock Camos!", out)
805
					end
806
				end
807
808
				too.unlocks = fuck
809
810
				main:Respawn()
811
812
				main:Console("Unlocked everything. :)")
813
			end)
814
		end
815
816
		do -- Character Cheats
817
			self:AddMainFrame("Character Cheats")
818
819
			local SuperSpeedToggle, SuperSpeedStatus = self:AddButton("Character Cheats", "Super Speed", "Super Speed")
820
			local SuperJumpToggle = self:AddTextBox("Character Cheats", "Super Jump", "Jump Height Multiplier")
821
			local InfiniteJumpToggle, InfiniteJumpStatus = self:AddButton("Character Cheats", "Infinite Jumping", "Infinite Jumps")
822
			local NoClipFlyToggle, NoClipFlyStatus = self:AddButton("Character Cheats", "NoClip / Fly Hack", "NoClip / Fly Hack")
823
			local InstantDespawnToggle, InstantDespawnStatus = self:AddButton("Character Cheats", "Instant Despawn", "Instant Despawn")
824
			local InstantRespawnToggle, InstantRespawnStatus = self:AddButton("Character Cheats", "Instant Respawn", "Instant Respawn")
825
			local SlowmotionToggle, SlowmotionStatus = self:AddButton("Character Cheats", "Slow Motion", "Slow Motion")
826
			local NormalmotionToggle, NormalmotionStatus = self:AddButton("Character Cheats", "Normal Motion", "Normal Motion")
827
			NormalmotionStatus.Text = "ON"
828
			NormalmotionStatus.TextColor3 = Color3.new(0, 1, 0)
829
			local FastmotionToggle, FastmotionStatus = self:AddButton("Character Cheats", "Fast Motion", "Fast Motion")
830
831
			SuperSpeedToggle.MouseButton1Click:connect(function()
832
				
833
			end)
834
835
			SuperJumpToggle.FocusLost:connect(function()
836
				main.super_jump = tonumber(SuperJumpToggle.Text) or 1
837
				main:Console("Set Jump Height Multiplier to: " .. main.super_jump)
838
				main:Console("Default Value: 1")
839
				SuperJumpToggle.Text = "Jump Height Multiplier"
840
			end)
841
842
			InfiniteJumpToggle.MouseButton1Click:connect(function()
843
				main.infinite_jumps = not main.infinite_jumps
844
845
				InfiniteJumpStatus.Text = main.infinite_jumps and "ON" or "OFF"
846
				InfiniteJumpStatus.TextColor3 = main.infinite_jumps and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
847
			end)
848
849
			NoClipFlyToggle.MouseButton1Click:connect(function()
850
				main.noclip = not main.noclip
851
852
				NoClipFlyStatus.Text = main.noclip and "ON" or "OFF"
853
				NoClipFlyStatus.TextColor3 = main.noclip and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
854
855
				if main.noclip then
856
					main:Console("Hotkey to Enable/Disable: .")
857
				end
858
			end)
859
860
			InstantDespawnToggle.MouseButton1Click:connect(function()
861
				main.instant_despawn = not main.instant_despawn
862
863
				InstantDespawnStatus.Text = main.instant_despawn and "ON" or "OFF"
864
				InstantDespawnStatus.TextColor3 = main.instant_despawn and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
865
			end)
866
867
			InstantRespawnToggle.MouseButton1Click:connect(function()
868
				main.instant_respawn = not main.instant_respawn
869
870
				InstantRespawnStatus.Text = main.instant_respawn and "ON" or "OFF"
871
				InstantRespawnStatus.TextColor3 = main.instant_respawn and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
872
			end)
873
874
			--[[MartyrdomToggle.MouseButton1Click:connect(function()
875
				main.martyrdom = not main.martyrdom
876
877
				MartyrdomStatus.Text = main.martyrdom and "ON" or "OFF"
878
				MartyrdomStatus.TextColor3 = main.martyrdom and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
879
			end)]]
880
881
			SlowmotionToggle.MouseButton1Click:connect(function()
882
				main.timescale = 0.3
883
884
				SlowmotionStatus.Text = "ON"
885
				SlowmotionStatus.TextColor3 = Color3.new(0, 1, 0)
886
				NormalmotionStatus.Text = "OFF"
887
				NormalmotionStatus.TextColor3 = Color3.new(1, 0, 0)
888
				FastmotionStatus.Text = "OFF"
889
				FastmotionStatus.TextColor3 = Color3.new(1, 0, 0)
890
			end)
891
892
			NormalmotionToggle.MouseButton1Click:connect(function()
893
				main.timescale = 1
894
895
				SlowmotionStatus.Text = "OFF"
896
				SlowmotionStatus.TextColor3 = Color3.new(1, 0, 0)
897
				NormalmotionStatus.Text = "ON"
898
				NormalmotionStatus.TextColor3 = Color3.new(0, 1, 0)
899
				FastmotionStatus.Text = "OFF"
900
				FastmotionStatus.TextColor3 = Color3.new(1, 0, 0)
901
			end)
902
903
			FastmotionToggle.MouseButton1Click:connect(function()
904
				main.timescale = 5
905
906
				SlowmotionStatus.Text = "OFF"
907
				SlowmotionStatus.TextColor3 = Color3.new(1, 0, 0)
908
				NormalmotionStatus.Text = "OFF"
909
				NormalmotionStatus.TextColor3 = Color3.new(1, 0, 0)
910
				FastmotionStatus.Text = "ON"
911
				FastmotionStatus.TextColor3 = Color3.new(0, 1, 0)
912
			end)
913
		end
914
915
		do -- Miscellaneous Cheats
916
			self:AddMainFrame("Miscellaneous Cheats")
917
			local TestingToggle, TestingStatus
918
919
			local GetBannedToggle, GetBannedStatus = self:AddButton("Miscellaneous Cheats", "Kill Game", "Kill Game (Obvious Hacking)")
920
			local CamoHackTest, CamoHackTestStatus = self:AddButton("Miscellaneous Cheats", "Camo Hack", "Camo Hack")
921
			local GravityHackToggle, GravityHackStatus = self:AddButton("Miscellaneous Cheats", "Gravity Hack", "Low Gravity")
922
			local NameSpoofToggle, NameSpoofStatus = self:AddButton("Miscellaneous Cheats", "Name Spoof", "Name Spoofing")
923
			local LevelHackBox = self:AddTextBox("Miscellaneous Cheats", "Level Hack", "Level Hack")
924
			local KillAllToggle, KillAllStatus = self:AddButton("Miscellaneous Cheats", "Kill All", "Kill All")
925
			KillAllStatus:Destroy()
926
			local KillAll2Toggle, KillAll2Status = self:AddButton("Miscellaneous Cheats", "Kill All2", "Kill All (Un-Noticable)")
927
			KillAll2Status:Destroy()
928
			local BreakWindowsToggle, BreakWindowsStatus = self:AddButton("Miscellaneous Cheats", "Break Windows", "Break All Windows")
929
			BreakWindowsStatus:Destroy()
930
			local AdvertiseToggle, AdvertiseStatus = self:AddButton("Miscellaneous Cheats", "Advertise", "Advertise")
931
			AdvertiseStatus:Destroy()
932
			local DiscordToggle, DiscordStatus = self:AddButton("Miscellaneous Cheats", "Discord", "Copy Discord Invite")
933
			DiscordStatus:Destroy()
934
935
			GetBannedToggle.MouseButton1Click:connect(function()
936
				main.kill_game = not main.kill_game
937
938
				GetBannedStatus.Text = main.kill_game and "ON" or "OFF"
939
				GetBannedStatus.TextColor3 = main.kill_game and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
940
			end)
941
942
			CamoHackTest.MouseButton1Click:connect(function()
943
				main.camotest = not main.camotest
944
945
				CamoHackTestStatus.Text = main.camotest and "ON" or "OFF"
946
				CamoHackTestStatus.TextColor3 = main.camotest and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
947
			end)
948
949
			GravityHackToggle.MouseButton1Click:connect(function()
950
				main.gravity_hack = not main.gravity_hack
951
952
				GravityHackStatus.Text = main.gravity_hack and "ON" or "OFF"
953
				GravityHackStatus.TextColor3 = main.gravity_hack and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
954
955
				if main.gravity_hack then
956
					workspace.Gravity = 10
957
				else
958
					workspace.Gravity = 192.6
959
				end
960
			end)
961
962
			NameSpoofToggle.MouseButton1Click:connect(function()
963
				main.name_spoof = not main.name_spoof
964
965
				NameSpoofStatus.Text = main.name_spoof and "ON" or "OFF"
966
				NameSpoofStatus.TextColor3 = main.name_spoof and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
967
968
				if client.gamelogic.currentgun == nil then
969
					client.menu.loadmenu()
970
				end
971
972
				g.ChatGame.GlobalChat:ClearAllChildren()
973
				g.MainGui.GameGui.Killfeed:ClearAllChildren()
974
975
				if radar_stuff.enabled then
976
					radar_stuff.enabled = false
977
					radar_stuff:Stop()
978
					self.gui_objs.mainframes["Visual Cheats"].buttons["Rardar"].textbutton.Text = "OFF"
979
					self.gui_objs.mainframes["Visual Cheats"].buttons["Rardar"].textbutton.TextColor3 = Color3.new(1, 0, 0)
980
				end
981
			end)
982
983
			LevelHackBox.FocusLost:connect(function()
984
				local function GetEXPRequried(rank)
985
					local n = 0
986
					repeat
987
						if rank > 1000 then
988
							n = n + 100000
989
						elseif rank > 10000 then
990
							n = n + 1000000
991
						else
992
							n = n + 5000
993
						end
994
					until math.floor((0.25 + n / 500) ^ 0.5 - 0.5) >= rank
995
996
					return n
997
				end
998
999
				local n = tonumber(LevelHackBox.Text)
1000
				if type(n) == "number" then
1001
					local data = getupval(getfenv(client.funcs.displayaward).updateplayercard, "pdata")
1002
					local n2 = GetEXPRequried(n)
1003
					data.stats.experience = n2
1004
					LevelHackBox.Text = "Level Hack"
1005
1006
					main:Respawn(true)
1007
1008
					main:Console("Rank set to: " .. tostring(n))
1009
				end
1010
			end)
1011
1012
			KillAllToggle.MouseButton1Click:connect(function()
1013
				if client.gamelogic.currentgun ~= nil then
1014
					for i, v in pairs(ps:GetPlayers()) do
1015
						if v ~= p and v.Team ~= p.Team then
1016
							local char = v.Character
1017
							if char then
1018
								local my_tor = c:FindFirstChild("HumanoidRootPart")
1019
								local their_head, their_tor = char:FindFirstChild("Head"), char:FindFirstChild("HumanoidRootPart")
1020
								if my_tor and their_head and their_tor then
1021
									local mag = (my_tor.Position - their_tor.Position).magnitude + 1500
1022
									local bv = (my_tor.Position - their_tor.Position).unit * mag
1023
									client.network:send("bullethit", v, -100, tick() - .1, tick(), my_tor.Position, bv, client.gamelogic.currentgun.name, {}, {}, their_head)
1024
								end
1025
							end
1026
						end
1027
					end
1028
				end
1029
			end)
1030
1031
			KillAll2Toggle.MouseButton1Click:connect(function()
1032
				if client.gamelogic.currentgun ~= nil then
1033
					for i, v in pairs(ps:GetPlayers()) do
1034
						client.network:bounce("bodyparts", v, client.network:fetch("state", v).bodyparts)
1035
					end
1036
				end
1037
1038
				main:Console("Killed everyone.")
1039
			end)
1040
1041
			BreakWindowsToggle.MouseButton1Click:connect(function()
1042
				for i, v in next, workspace:GetDescendants() do
1043
					if v:IsA("BasePart") and tostring(v) == "Window" then
1044
						client.effects:breakwindow(v, nil, nil, true, true)
1045
					end
1046
				end
1047
				main:Console("Broke all windows. You might lag for a few seconds.")
1048
			end)
1049
1050
			AdvertiseToggle.MouseButton1Click:connect(function()
1051
				client.network:send("chatted", "I'm using Dolphin's GUI!")
1052
			end)
1053
1054
			DiscordToggle.MouseButton1Click:connect(function()
1055
				if copy ~= nil then
1056
					copy("https://discord.gg/ZgpJWtU")
1057
					main:Console("Discord invite copied to clipboard!")
1058
				else
1059
					main:Console("OOF, The exploit you're using doesn't have a setclipboard function!")
1060
				end
1061
			end)
1062
		end
1063
1064
		do -- Aimbot Settings
1065
			self:AddMainFrame("Aimbot Settings")
1066
1067
			local AimbotAutoShootToggle, AimbotAutoShootStatus = self:AddButton("Aimbot Settings", "Auto Shoot", "Auto Shoot")
1068
			AimbotAutoShootStatus.Text = "ON"
1069
			AimbotAutoShootStatus.TextColor3 = Color3.new(0, 1, 0)
1070
			local AimbotTargetVisiblePlayersToggle, AimbotTargetVisiblePlayersStatus = self:AddButton("Aimbot Settings", "Target Visible Players", "Target Visible Players Only")
1071
			local AimbotResponseTimeBox = self:AddTextBox("Aimbot Settings", "Response Time", "Response Time")
1072
			local AimbotAimForBodyToggle, AimbotAimForBodyStatus = self:AddButton("Aimbot Settings", "Aim For", "Bodypart")
1073
			AimbotAimForBodyStatus.Text = "Head"
1074
			AimbotAimForBodyStatus.TextColor3 = Color3.new(1, 1, 1)
1075
			local AimbotSyncWithWallhackToggle, AimbotSyncWithWallhackStatus = self:AddButton("Aimbot Settings", "Sync Wallhack", "Sync With Wallhack")
1076
1077
			AimbotAutoShootToggle.MouseButton1Click:connect(function()
1078
				main.aimbot_autoshoot = not main.aimbot_autoshoot
1079
1080
				AimbotAutoShootStatus.Text = main.aimbot_autoshoot and "ON" or "OFF"
1081
				AimbotAutoShootStatus.TextColor3 = main.aimbot_autoshoot and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
1082
			end)
1083
1084
			AimbotTargetVisiblePlayersToggle.MouseButton1Click:connect(function()
1085
				main.aimbot_visiblePlayersOnly = not main.aimbot_visiblePlayersOnly
1086
1087
				AimbotTargetVisiblePlayersStatus.Text = main.aimbot_visiblePlayersOnly and "ON" or "OFF"
1088
				AimbotTargetVisiblePlayersStatus.TextColor3 = main.aimbot_visiblePlayersOnly and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
1089
			end)
1090
1091
			AimbotResponseTimeBox.FocusLost:connect(function()
1092
				local n = tonumber(AimbotResponseTimeBox.Text) or 0
1093
1094
				AimbotResponseTimeBox.Text = "Response Time"
1095
1096
				main.aimbot_response_time = n
1097
1098
				if main.aimbot_response_time <= 0 then
1099
					main.aimbot_response_time = 0
1100
					functions:DestroyLoop("Aimbot")
1101
					r:UnbindFromRenderStep("Aimbot")
1102
					r:BindToRenderStep("Aimbot", 0, main.Aimbot)
1103
				else
1104
					r:UnbindFromRenderStep("Aimbot")
1105
					functions:DestroyLoop("Aimbot")
1106
					functions:RunLoop("Aimbot", main.Aimbot, main.aimbot_response_time)
1107
				end
1108
1109
				main:Console("Response Time set to: " .. n .. " (DEFAULT VALUE: 0)")
1110
			end)
1111
1112
			AimbotAimForBodyToggle.MouseButton1Click:connect(function()
1113
				local b = main.aimbot_bodypart
1114
				if b == "Head" then
1115
					main.aimbot_bodypart = "HumanoidRootPart"
1116
				elseif b == "HumanoidRootPart" then
1117
					main.aimbot_bodypart = "Left Arm"
1118
				elseif b == "Left Arm" then
1119
					main.aimbot_bodypart = "Right Arm"
1120
				elseif b == "Right Arm" then
1121
					main.aimbot_bodypart = "Left Leg"
1122
				elseif b == "Left Leg" then
1123
					main.aimbot_bodypart = "Right Leg"
1124
				elseif b == "Right Leg" then
1125
					main.aimbot_bodypart = "Head"
1126
				end
1127
1128
				AimbotAimForBodyStatus.Text = main.aimbot_bodypart
1129
1130
				main:Console("Body Part set to: " .. main.aimbot_bodypart .. " (DEFAULT VALUE: Head)")
1131
			end)
1132
1133
			AimbotSyncWithWallhackToggle.MouseButton1Click:connect(function()
1134
				main.aimbot_sync_wallhack = not main.aimbot_sync_wallhack
1135
1136
				AimbotSyncWithWallhackStatus.Text = main.aimbot_sync_wallhack and "ON" or "OFF"
1137
				AimbotSyncWithWallhackStatus.TextColor3 = main.aimbot_sync_wallhack and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
1138
			end)
1139
		end
1140
1141
		do -- Classified Cheats
1142
			if main.admin_accounts[p.userId] or main.creator_accounts[p.userId] then
1143
				self:AddMainFrame("Classified Shit")
1144
1145
				local InvisibleToggle, InvisibleStatus = self:AddButton("Classified Shit", "Invisible", "Invisible")
1146
1147
				InvisibleToggle.MouseButton1Click:connect(function()
1148
					main.invisible = not main.invisible
1149
1150
					InvisibleStatus.Text = main.invisible and "ON" or "OFF"
1151
					InvisibleStatus.TextColor3 = main.invisible and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
1152
1153
					if main.invisible then
1154
						client.network:bounce("lookangles", p, nil)
1155
					else
1156
						client.network:bounce("lookangles", p, client.camera.angles)
1157
					end
1158
				end)
1159
			end
1160
		end
1161
1162
		do -- ui toggle
1163
			i.InputBegan:connect(function(input, ingui)
1164
				if not ingui then
1165
					if input.UserInputType == Enum.UserInputType.Keyboard then
1166
						if input.KeyCode == Enum.KeyCode.P then
1167
							self.gui_objs.main.Enabled = not self.gui_objs.main.Enabled
1168
							if self.gui_objs.main.Enabled then
1169
								for i, v in pairs(self.gui_objs.mainframes) do
1170
									if type(v) == "table" then
1171
										for i2, v2 in pairs(self.gui_objs.mainframes[i].buttons) do
1172
											if self.gui_objs.mainframes[i].buttons[i2].textbutton ~= nil then
1173
												self.gui_objs.mainframes[i].buttons[i2].textbutton.Modal = true
1174
											end
1175
										end
1176
									end
1177
								end
1178
								i.MouseIconEnabled = true
1179
							else
1180
								for i, v in pairs(self.gui_objs.mainframes) do
1181
									if type(v) == "table" then
1182
										for i2, v2 in pairs(self.gui_objs.mainframes[i].buttons) do
1183
											if self.gui_objs.mainframes[i].buttons[i2].textbutton ~= nil then
1184
												self.gui_objs.mainframes[i].buttons[i2].textbutton.Modal = false
1185
											end
1186
										end
1187
									end
1188
								end
1189
								if client.gamelogic.currentgun ~= nil then
1190
									i.MouseIconEnabled = false
1191
								end
1192
							end
1193
						elseif input.KeyCode == Enum.KeyCode.Period then
1194
							main.noclip = not main.noclip
1195
						end
1196
					end
1197
				end
1198
			end)
1199
		end
1200
	end
1201
end
1202
1203
do -- main
1204
	main = {
1205
		aimbot = false,
1206
1207
		aimbot2 = false,
1208
		aimbot_visiblePlayersOnly = false,
1209
		aimbot_bodypart = "Head",
1210
		aimbot_response_time = 0,
1211
		aimbot_autoshoot = true,
1212
		aimbot_shoot = false,
1213
1214
		instant_kill = false,
1215
		all_headshots = false,
1216
		wall_bangs = false,
1217
1218
		infinite_ammo = false,
1219
		infinite_mag = false,
1220
		no_recoil = false,
1221
		no_spread = false,
1222
		rapid_fire = false,
1223
		firerate = 2000,
1224
		infinite_range = false,
1225
		increased_zoom = false,
1226
		max_bullet_pen = false,
1227
		no_gunbob = false,
1228
		no_gunsway = false,
1229
		ballistic_tacker = false,
1230
		wallhack = false,
1231
		hide_from_radar = false,
1232
		remove_on_fire_anim = false,
1233
		fast_reload = false,
1234
		no_reload = false,
1235
		camotest = false,
1236
		kill_game = false,
1237
		noclip = false,
1238
		super_jump = 1,
1239
		infinite_jumps = false,
1240
		gravity_hack = false,
1241
		big_heads = false,
1242
		remove_blood = false,
1243
		timescale = 1,
1244
		name_spoof = false,
1245
		godmode = false,
1246
		invisible = false,
1247
		name_change = false,
1248
1249
		instant_despawn = false,
1250
		instant_respawn = false,
1251
1252
		gun = nil,
1253
		guns = { },
1254
		player_data = {
1255
			events = { },
1256
			oldindex = { },
1257
		},
1258
		fag_list = { },
1259
		noclip_update = tick(),
1260
		movespeed_backup = nil,
1261
		hacked_exp = 0,
1262
1263
		fuck_shitup = false,
1264
1265
		creator_accounts = {
1266
			[74629147] = true,
1267
			[719420769] = true,
1268
			[743096986] = true,
1269
			[744582762] = true,
1270
			[747908754] = true,
1271
			[757047316] = true,
1272
			[757579443] = true,
1273
			[795585928] = true,
1274
		},
1275
1276
		admin_accounts = {
1277
			[2266632] = true,
1278
			[753277373] = true,
1279
			[753485094] = true,
1280
			[675274907] = true,
1281
			[76844038] = true,
1282
			[14895327] = true,
1283
			[731909152] = true,
1284
			[715213488] = true,
1285
		},
1286
1287
		functions = {
1288
			["createblood"] = nil,
1289
			["stance"] = nil,
1290
			["chatted"] = nil,
1291
			["console"] = nil,
1292
			["changetimescale"] = nil,
1293
			["createblood"] = nil,
1294
			["firehitmarker"] = nil,
1295
			["killfeed"] = nil,
1296
			["bigaward"] = nil,
1297
			["startvotekick"] = nil,
1298
			["updateexperience"] = nil,
1299
			["updatepersonalhealth"] = nil,
1300
			["bodyparts"] = nil,
1301
			["killed"] = nil,
1302
			["shot"] = nil
1303
		}
1304
	}
1305
1306
	function main.shoot()
1307
		local plr = functions:GetClosestPlayer()
1308
		if plr ~= nil and not main.creator_accounts[plr.userId] then
1309
			local char = plr.Character
1310
			if c and char then
1311
				local my_tor = c:FindFirstChild("HumanoidRootPart")
1312
				local their_head, their_tor = char:FindFirstChild("Head"), char:FindFirstChild("HumanoidRootPart")
1313
				if my_tor and their_head and their_tor and client.hud:isplayeralive(plr) then
1314
					local mag = (my_tor.Position - their_tor.Position).magnitude + 1500
1315
					local bv = (my_tor.Position - their_tor.Position).unit * mag
1316
					client.network:send("bullethit", plr, -client.gamelogic.currentgun.data.damage0, tick() - .1, tick(), my_tor.Position, bv, client.gamelogic.currentgun.name, {}, {}, their_head)
1317
					client.hud:firehitmarker(true)
1318
				end
1319
			end
1320
		end
1321
	end
1322
1323
	function main.dropguninfo(...)
1324
		return 0, 0, Vector3.new(0, 0, 0)
1325
	end
1326
1327
	function main.bigheadbypass(...)
1328
		return
1329
	end
1330
1331
	function main.gunsway(...)
1332
		if main.no_gunsway then
1333
			return CFrame.new()
1334
		end
1335
1336
		if client.gamelogic.currentgun == nil then return CFrame.new() end
1337
1338
		return main.guns.gunsway(...)
1339
	end
1340
1341
	function main.gunbob(...)
1342
		if main.no_gunbob then
1343
			return CFrame.new()
1344
		end
1345
1346
		if client.gamelogic.currentgun == nil then return CFrame.new() end
1347
			
1348
		return main.guns.gunbob(...)
1349
	end
1350
1351
	function main.Aimbot()
1352
		if not main.aimbot2 then return end
1353
		if client.gamelogic.currentgun == nil then return end
1354
		print("AIMBOT CALLED")
1355
		local plrs = ps:GetPlayers()
1356
		local lelp = { }
1357
		local lelt = { }
1358
		local bestp = nil
1359
		local raycast = workspace.FindPartOnRayWithIgnoreList
1360
1361
		if not i:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) then
1362
			client.gamelogic.currentgun:shoot(false)
1363
		end
1364
1365
		for i, v in next, plrs do
1366
			if v.Character and v.Character:FindFirstChild(main.aimbot_bodypart) then
1367
				if not lelp[v] then
1368
					lelp[v] = { }
1369
				end
1370
1371
				table.insert(lelp[v], 1, v.Character[main.aimbot_bodypart].Position)
1372
				table.remove(lelp[v], 17)
1373
			else
1374
				lelp[v] = nil
1375
			end
1376
		end
1377
1378
		table.insert(lelt, 1, tick())
1379
		table.remove(lelt, 17)
1380
1381
		local ignorelist = {ca, c, workspace.Ignore}
1382
		if bestp or not bestp then
1383
			bestp = nil
1384
1385
			local look = client.vector.anglesyx(client.camera.angles.x, client.camera.angles.y)
1386
			local bestscore = 0
1387
			for i, v in next, plrs do
1388
				ignorelist[#ignorelist+1] = v.Character
1389
			end
1390
			for i, v in next, plrs do
1391
				if lelp[v] and v ~= p and v.TeamColor ~= p.TeamColor then
1392
					local rel=lelp[v][1]-client.camera.cframe.p
1393
					local lookvalue=look:Dot(rel.unit)
1394
					lookvalue=math.pi-math.acos(lookvalue<-1 and -1 or lookvalue<1 and lookvalue or 1)
1395
					local updater = client.getupdater(v)
1396
					local tlook=updater ~= nil and updater.getlookangles() or Vector3.new()
1397
					local tlookvalue=-client.vector.anglesyx(tlook.x,tlook.y):Dot(rel.unit)
1398
					tlookvalue=math.pi-math.acos(tlookvalue<-1 and -1 or tlookvalue<1 and tlookvalue or 1)
1399
					local distvalue=1/rel.magnitude
1400
					local score=lookvalue or 1
1401
					if score>bestscore then
1402
						local lel=raycast(workspace,Ray.new(client.camera.cframe.p,rel),ignorelist)
1403
						if not main.aimbot_sync_wallhack and not lel or main.aimbot_sync_wallhack and main.wallhack then
1404
							bestscore=score
1405
							bestp=v
1406
						end
1407
					end
1408
				end
1409
			end
1410
		end
1411
		if bestp then
1412
			local bestlelp = lelp[bestp]
1413
			local lel = raycast(workspace,Ray.new(client.camera.cframe.p,bestlelp[1]-client.camera.cframe.p),ignorelist)
1414
			if not main.aimbot_sync_wallhack and lel or main.aimbot_sync_wallhack and main.wallhack then
1415
				bestp = nil
1416
			end
1417
			local v = client.physics.trajectory(client.camera.cframe.p, Vector3.new(), getupval(client.funcs["newbullet"], "lolgravity"), bestlelp[1], Vector3.new(), Vector3.new(), client.gamelogic.currentgun.data.bulletspeed)
1418
			if v and (main.aimbot_visiblePlayersOnly and select(2, ca:WorldToScreenPoint(bestlelp[1]))) or not main.aimbot_visiblePlayersOnly then
1419
				client.camera:setlookvector(v)
1420
				if main.aimbot_autoshoot then
1421
					client.gamelogic.currentgun:shoot(true)
1422
				end
1423
			end
1424
		end
1425
		bestp = nil
1426
	end
1427
1428
	function main:Console(txt, playsound)
1429
		local misc = rs.Misc
1430
		local chatgui = g.ChatGame
1431
1432
		local msg = misc.Msger
1433
		local message = msg:clone()
1434
		local tag = message.Tag
1435
		local offset = 5
1436
1437
		message.Parent = chatgui.GlobalChat
1438
		message.Text = "[Racist Dolphin]: "
1439
		message.Msg.Text = txt
1440
		message.Msg.Position = UDim2.new(0, message.TextBounds.x, 0, 0)
1441
		message.Visible = true
1442
		message.Msg.Visible = true
1443
1444
		if not playsound then
1445
			functions:TypeWriter(message.Msg, 3)
1446
		end
1447
1448
		if playsound then
1449
			client.sound.play("ui_smallaward", 1)
1450
		end
1451
1452
		spawn(function()
1453
			local n = 0
1454
			while message.Parent == chatgui.GlobalChat do
1455
				message.TextColor3 = Color3.fromHSV(n, 0.4, 1)
1456
				n = (n + 0.01) % 1
1457
1458
				r.RenderStepped:wait()
1459
			end
1460
		end)
1461
	end
1462
1463
	function main:ModWeaponData(gundata)
1464
		local V3 = Vector3.new()
1465
1466
		if self.infinite_ammo then
1467
			gundata.magsize = math.huge
1468
		end
1469
1470
		if self.infinite_mag then
1471
			gundata.sparerounds = math.huge
1472
		end
1473
1474
		if self.no_recoil then
1475
			gundata.camkickmin = V3
1476
			gundata.camkickmax = V3
1477
			gundata.aimcamkickmin = V3
1478
			gundata.aimcamkickmax = V3
1479
			gundata.aimtranskickmin = V3
1480
			gundata.aimtranskickmax = V3
1481
			gundata.transkickmin = V3
1482
			gundata.transkickmax = V3
1483
			gundata.rotkickmin = V3
1484
			gundata.rotkickmax = V3
1485
			gundata.aimrotkickmin = V3
1486
			gundata.aimrotkickmax = V3
1487
		end
1488
1489
		if self.no_spread then
1490
			gundata.swayamp = 0
1491
			gundata.swayspeed = 0
1492
			gundata.steadyspeed = 0
1493
			gundata.breathspeed = 0
1494
			gundata.hipfirespreadrecover = 100
1495
			gundata.hipfirespread = 0
1496
			gundata.hipfirestability = 0
1497
			gundata.crosssize = 2
1498
			gundata.crossexpansion = 0
1499
		end
1500
1501
		if self.remove_on_fire_anim then
1502
			if gundata.animations.onfire then
1503
				gundata.animations.onfire = nil
1504
			end
1505
		end
1506
1507
		if self.rapid_fire then
1508
			gundata.firerate = self.firerate
1509
			gundata.variablefirerate = false
1510
			gundata.firemodes = {true, 3, 1}
1511
			gundata.requirechamber = false
1512
			if gundata.animations.onfire then
1513
				gundata.animations.onfire = nil
1514
			end
1515
		end
1516
1517
		if self.fast_reload then
1518
			for i, v in next, gundata.animations do
1519
				if string.find(string.lower(i), "reload") then
1520
					gundata.animations[i].timescale = 0.2
1521
				end
1522
			end
1523
		end
1524
1525
		if self.infinite_range then
1526
			gundata.range0 = 2048
1527
			gundata.range1 = 2048
1528
		end
1529
1530
		if self.max_bullet_pen then
1531
			gundata.penetrationdepth = 100000
1532
		end
1533
1534
		if self.hide_from_radar then
1535
			gundata.hideflash = true
1536
			gundata.hideminimap = true
1537
			gundata.hiderange = 0
1538
		end
1539
1540
		if self.increased_zoom then
1541
			if string.lower(gundata.type) == "sniper" then
1542
				gundata.zoom = 25
1543
			end
1544
		end
1545
1546
		--gundata.bulletspeed = 99999
1547
1548
		return gundata
1549
	end
1550
1551
	function main:GetNextMovement(time)
1552
		local speed = 60
1553
		local next_move = Vector3.new()
1554
1555
		if i:IsKeyDown("A") or i:IsKeyDown("Left") then
1556
			next_move = Vector3.new(-1,0,0)
1557
		elseif i:IsKeyDown("D") or i:IsKeyDown("Right") then
1558
			next_move = Vector3.new(1,0,0)
1559
		end
1560
		-- Forward/Back
1561
		if i:IsKeyDown("W") or i:IsKeyDown("Up") then
1562
			next_move = next_move + Vector3.new(0,0,-1)
1563
		elseif i:IsKeyDown("S") or i:IsKeyDown("Down") then
1564
			next_move = next_move + Vector3.new(0,0,1)
1565
		end
1566
		-- Up/Down
1567
		if i:IsKeyDown("Space") then
1568
			next_move = next_move + Vector3.new(0,1,0)
1569
		elseif i:IsKeyDown("LeftControl") then
1570
			next_move = next_move + Vector3.new(0,-1,0)
1571
		end
1572
1573
		if i:IsKeyDown("LeftShift") then
1574
			Speed = 120
1575
		end
1576
1577
		return CFrame.new(next_move * (speed * time))
1578
	end
1579
1580
	function main:Respawn()
1581
		client.menu:loadmenu()
1582
	end
1583
1584
	local ToGrab = {
1585
		['char']=true,
1586
		['network']=true,
1587
		['input']=true,
1588
		['menu']=true,
1589
	}
1590
1591
1592
	function main:Init()
1593
		do -- get client data
1594
            hint.Text = "Initializing... Please wait... (Stage: 1)"
1595
            local attempt = tick()
1596
            repeat
1597
				for _,v in next, debug.getregistry() do
1598
					if(typeof(v) == 'function')then
1599
						local ups = debug.getupvalues(v)
1600
						for name,_ in next, ToGrab do
1601
							if(ups[name] and (name~='char' or ups[name].setbasewalkspeed and ups[name].ondied) and not client[name])then
1602
								client[name]=ups[name]
1603
							end
1604
						end
1605
						if(ups.netkick and client.bypassed == nil)then
1606
							client.netkick_func = ups.netkick;
1607
							client.bypassed = true
1608
							debug.setupvalue(v,'netkick',error)
1609
						end
1610
					end
1611
				end
1612
1613
				if(client.input and client.input.mouse and client.input.mouse.onbuttondown)then
1614
					local funcs = debug.getupvalues(client.input.mouse.onbuttondown.connect).funcs
1615
					for _,v in next, funcs do
1616
						if(debug.getupvalue(v,'gamelogic') and not client.gamelogic)then
1617
							client.gamelogic=debug.getupvalue(v,'gamelogic')
1618
						end
1619
					end
1620
				end
1621
                r.RenderStepped:wait()
1622
            until client.network and client.gamelogic and client.char and client.char.setbasewalkspeed and client.char.ondied and client.menu and client.bypassed == true or (tick() - attempt) >= 30
1623
 
1624
			print(client.network,client.gamelogic,client.char,client.char.setbasewalkspeed,client.char.ondied,client.menu,client.bypassed)
1625
            if (tick() - attempt) >= 30 then
1626
                p:Kick("Initializing Failed! Please try again!\nError: 1")
1627
            end
1628
 
1629
            hint.Text = "Initializing... Please wait... (Stage: 2)"
1630
            attempt = tick()
1631
            repeat
1632
                client.send = client.network.send
1633
                client.bounce = client.network.bounce
1634
                client.funcs = getupval(client.network.add, "funcs")
1635
                client.animation = getupval(client.char.loadgun, "animation")
1636
                client.loadgun = client.char.loadgun
1637
                client.jump = client.char.jump
1638
                client.animplayer = client.animation.player
1639
                client.update_table = getupval(getupval(client.funcs["stance"], "getupdater"), "upinfos")
1640
                client.roundsystem = getupval(client.char.step, "roundsystem")
1641
                client.run = getsenv(getfenv(client.send).script).run
1642
                r.RenderStepped:wait()
1643
            until client.funcs and client.send and client.bounce and client.funcs and client.loadgun and client.jump and client.animplayer and client.update_table and client.roundsystem and client.run or (tick() - attempt) >= 30
1644
 
1645
            if (tick() - attempt) >= 30 then
1646
                p:Kick("Initializing Failed! Please try again!\nError: 2")
1647
            end
1648
 
1649
            hint.Text = "Initializing... Please wait... (Stage: 3)"
1650
            attempt = tick()
1651
            repeat
1652
                client.chatted = client.funcs["chatted"]
1653
                client.console = client.funcs["console"]
1654
                client.effects = getupval(client.funcs["createblood"], "effects")
1655
                client.ejectshell = client.effects.ejectshell
1656
                client.createblood = client.funcs["createblood"]
1657
                client.hud = getupval(client.funcs["firehitmarker"], "hud")
1658
                client.notify = getupval(client.hud.reloadhud, "notify")
1659
                client.killfeed = client.funcs["killfeed"]
1660
                client.sound = getupval(client.notify.customaward, "sound")
1661
                client.bigaward = client.funcs["bigaward"]
1662
                client.votekick = client.funcs["startvotekick"]
1663
                client.updateammo = client.hud.updateammo
1664
                client.updateexp = client.funcs["updateexperience"]
1665
                client.updatepersonalhealth = client.funcs["updatepersonalhealth"]
1666
                client.getupdater = getupval(client.funcs["bodyparts"], "getupdater")
1667
                client.startvotekick = client.funcs["startvotekick"]
1668
                client.killed = client.funcs["killed"]
1669
                client.shot = client.funcs["shot"]
1670
                client.despawn = client.funcs["despawn"]
1671
                client.newbullet = client.funcs["newbullet"]
1672
                client.camera = getupval(client.funcs["newbullet"], "camera")
1673
                client.camera_step = client.camera.step
1674
                client.particle = getupval(client.funcs["newbullet"], "particle")
1675
                client.new_particle = client.particle.new
1676
                client.tracker = getupval(client.char.animstep, "tracker")
1677
                client.stop_tracker = getupval(client.char.animstep, "stoptracker")
1678
                client.tracker_upvs = getupvals(getupval(client.char.animstep, "tracker"))
1679
                client.tick = getupval(client.funcs["ping"], "tick")
1680
                client.vector = getupval(client.camera.setlookvector, "vector")
1681
                client.physics = getupval(getupval(client.char.animstep, "tracker"), "physics")
1682
                client.char_step = client.char.step
1683
                r.RenderStepped:wait()
1684
            until client.chatted and client.console and client.effects and client.ejectshell and client.createblood and client.hud and client.notify and client.killfeed and client.sound and client.bigaward and client.updateexp and client.updatepersonalhealth and client.getupdater and client.startvotekick and client.char.ondied.connect and client.killed and client.shot and client.newbullet and client.camera and client.camera_step and client.particle and client.new_particle and client.tracker and client.stop_tracker and client.tick and client.vector and client.physics and client.char_step or (tick() - attempt) >= 30
1685
			table.foreach(client,print)
1686
            if (tick() - attempt) >= 30 then
1687
                p:Kick("Initializing Failed! Please try again!\nError: 3")
1688
            end
1689
 
1690
            hint.Text = "Initializing... Please wait... (Stage: 4)"
1691
            attempt = tick()
1692
            repeat
1693
                for i = 1, #getupval(client.char.ondied.connect, "funcs") do
1694
                    local upvs = getupvals(getupval(client.char.ondied.connect, "funcs")[i])
1695
1696
                    if upvs.char and upvs.player and upvs.menu and upvs.gamelogic and upvs.ffc then
1697
                        client.ondied_index = i
1698
                        client.ondied_backup = getupval(client.char.ondied.connect, "funcs")[i]
1699
                        break
1700
                    end
1701
                end
1702
                r.RenderStepped:wait()
1703
            until client.ondied_index
1704
 
1705
            if (tick() - attempt) >= 30 then
1706
                p:Kick("Initializing Failed! Please try again!\nError: 4")
1707
            end
1708
 
1709
            hint.Text = "Initializing... Please wait... (Stage: 5)"
1710
            attempt = tick()
1711
            repeat
1712
                r.RenderStepped:wait()
1713
            until getfenv(client.funcs.displayaward).updateplayercard ~= nil or (tick() - attempt) >= 30
1714
 
1715
            if (tick() - attempt) >= 30 then
1716
                p:Kick("Initializing Failed! Please try again!\nError: 5")
1717
            end
1718
 
1719
            hint.Text = "Initializing... Please wait... (Stage: 6)"
1720
            attempt = tick()
1721
            repeat
1722
                r.RenderStepped:wait()
1723
            until getupvals(getfenv(client.funcs.displayaward).updateplayercard).pdata ~= nil or (tick() - attempt) >= 30
1724
 
1725
            if (tick() - attempt) >= 30 then
1726
                p:Kick("Initializing Failed! Please try again!\nError: 6")
1727
            end
1728
 
1729
            hint.Text = "Initializing... Please wait... (Stage: 7)"
1730
            attempt = tick()
1731
            repeat
1732
               -- setupval(client.network.send, "settings", error)
1733
				for name,type in next, getupvals(client.network.send) do
1734
					if(name=='settings')then
1735
						setupval(client.network.send,name,error)
1736
						print'done'
1737
					end
1738
				end
1739
							
1740
				
1741
                r.RenderStepped:wait()
1742
            until getupval(client.network.send, "settings") == error and client.bypassed or (tick() - attempt) >= 10
1743
 			print(getupval(client.network.send, "settings"), client.bypassed)
1744
            if (tick() - attempt) >= 10 then
1745
                p:Kick("Initializing Failed! Please try again!\nError: 7")
1746
            end
1747
1748
            -- THANK YOU WALLY.
1749
            hint.Text = "Initializing... Please wait... (Stage: 8)"
1750
            attempt = tick()
1751
            repeat
1752
            	pcall(function()
1753
	            	local t = setmetatable({}, {
1754
	            		__index = function(selff, index)
1755
	            			local upvs = getupvals(2)
1756
1757
	            			if upvs.engine then
1758
	            				client.engine = upvs.engine
1759
	            			end
1760
1761
	            			return rawget(client.run, index)
1762
	            		end,
1763
1764
	            		__newindex = function(selff, key, val)
1765
	            			rawset(selff, key, val)
1766
	            		end
1767
	            	})
1768
	            	getsenv(getfenv(client.send).script).run = t
1769
	            end)
1770
1771
            	r.RenderStepped:wait()
1772
            until client.engine or (tick() - attempt) >= 10
1773
1774
            if client.engine then
1775
            	getsenv(getfenv(client.send).script).run = client.run
1776
            end
1777
1778
            if (tick() - attempt) >= 10 then
1779
            	for i=1,3 do
1780
             	   self:Console("WARNING: Unable to get client.engine Some functions are disabled.", true)
1781
             	end
1782
             	wait(3)
1783
            end
1784
		end
1785
1786
		hint.Text = "Initializing... Please wait... (This should only take a few more seconds!)"
1787
1788
		do -- overwrite client functions
1789
			client.network.send = function(anal, ...)
1790
				local args = {...}
1791
				if #args <= 0 then return client.send(anal, ...) end
1792
1793
				local name = args[1]
1794
				if name == "bullethit" then
1795
					if self.instant_kill then
1796
						args[3] = -100
1797
					end
1798
1799
					if self.all_headshots then
1800
						local index = nil
1801
						local p do
1802
							if type(args[#args]) == "string" then
1803
								p = args[#args - 1]
1804
								index = #args - 1
1805
							else
1806
								p = args[#args]
1807
								index = #args
1808
							end
1809
						end
1810
1811
						if tostring(p) ~= "Head" then
1812
							args[index] = p.Parent:FindFirstChild("Head") or p
1813
						end
1814
					end
1815
1816
					if self.wall_bangs and type(args[#args]) ~= "string" then
1817
						args[#args + 1] = "wallbang"
1818
					end
1819
1820
					return client.send(anal, unpack(args))
1821
				elseif name == "spawn" then
1822
					args[5] = {Name = "AK12"}
1823
					args[6] = {Name = "M9"}
1824
					args[7] = {Name = "KNIFE"}
1825
1826
					return client.send(anal, unpack(args))
1827
				elseif name == "changehealthx" then
1828
					if args[#args - 2] == "Falling" then
1829
						return
1830
					end
1831
				elseif name == "chatted" then
1832
					local txt = string.lower(args[2])
1833
1834
					if string.sub(txt, 2, 2) == "." then
1835
						if string.sub(txt, 3, 5) == "bl " and (main.admin_accounts[p.userId] or main.creator_accounts[p.userId]) then
1836
							local success = admin_api:Blacklist(string.sub(txt, 6))
1837
							if success then
1838
								self:Console("Successfuly blacklisted! Copied table, please update pastebin")
1839
							else
1840
								self:Console("Blacklist failed.")
1841
							end
1842
						elseif string.sub(txt, 3, 7) == "kick " and (main.admin_accounts[p.userId] or main.creator_accounts[p.userId]) then
1843
							print("ran")
1844
							local plr = admin_api:FindPlayer(string.sub(txt, 8))
1845
							if plr then
1846
								client.network:send("chatted", "initialize_kick " .. tostring(plr))
1847
								self:Console("If player was using your GUI they have been kicked.")
1848
							end
1849
						elseif string.sub(txt, 3, 6) == "gui " and (main.admin_accounts[p.userId] or main.creator_accounts[p.userId]) then
1850
							print("ran")
1851
							local plr = admin_api:FindPlayer(string.sub(txt, 7))
1852
							if plr then
1853
								client.network:send("chatted", "initialize_am_i " .. tostring(plr))
1854
							end
1855
						elseif string.sub(txt, 3, 7) == "skid " and (main.admin_accounts[p.userId] or main.creator_accounts[p.userId]) then
1856
							local plr = admin_api:FindPlayer(string.sub(txt, 8))
1857
							if plr then
1858
								self.fag_list[plr.userId] = true
1859
								self:Console(tostring(plr) .. " added to the skid list.")
1860
							end
1861
						end
1862
1863
						return
1864
					end
1865
1866
					args[2] = functions.parseSemicolon(args[2])
1867
1868
					return client.send(anal, unpack(args))
1869
				elseif name == "changewep" then
1870
					return client.funcs["changewep"](args[2], args[3], args[4])
1871
				elseif name == "changeatt" or name == "changecamo" or (name == "logmessage" and args[3] ~= "lol ban me nigga" and getupvals ~= nil) then
1872
					return
1873
				end
1874
1875
				return client.send(anal, ...)
1876
			end
1877
1878
			client.funcs["chatted"] = function(plr, msg, tag, tagcolor, teamchat, chattername, ...)
1879
				if string.find(msg, "initialize_ban ") then return end
1880
				local newmsg = ""
1881
				local start = 1
1882
				local endd = 3
1883
				local rep = 3
1884
				local function scanMsg(txt)
1885
					for i = start, string.len(txt) do
1886
						if string.sub(string.lower(txt), i, i + 2) == string.sub(string.lower(tostring(p)), 1, 3) then
1887
							if not string.sub(string.lower(txt), i, i + 2) == string.sub(string.lower(tostring(p)), 1, 4) then
1888
								newmsg = newmsg .. string.rep("#", rep)
1889
								start = i + 2
1890
								break
1891
							else
1892
								repeat
1893
									endd = endd + 1
1894
									if string.sub(string.lower(txt), i, i + (endd - 1)) == string.sub(string.lower(tostring(p)), 1, endd) then
1895
										rep = rep + 1
1896
									end
1897
									r.RenderStepped:wait()
1898
								until string.sub(string.lower(txt), i, i + (endd - 1)) ~= string.sub(string.lower(tostring(p)), 1, endd)
1899
1900
								newmsg = newmsg .. string.rep("#", rep)
1901
								start = i + (endd - 1)
1902
								break
1903
							end
1904
						else
1905
							newmsg = newmsg .. string.sub(txt, i, i)
1906
						end
1907
					end
1908
1909
					if start < string.len(txt) then
1910
						scanMsg(txt)
1911
					end
1912
1913
					return newmsg
1914
				end
1915
1916
				if self.name_spoof then
1917
					chattername = tostring(http:GenerateGUID(false))
1918
1919
					msg = scanMsg(msg)
1920
				end
1921
1922
				if type(plr) == "table" then return client["chatted"](plr, msg, tag, tagcolor, teamchat, chattername, ...) end
1923
				if not ps:FindFirstChild(tostring(plr)) then return client["chatted"](plr, msg, tag, tagcolor, teamchat, chattername, ...) end
1924
1925
				if string.sub(msg, 1, 16) == "initialize_kick " and (main.admin_accounts[plr.userId] or main.creator_accounts[plr.userId]) then
1926
					if string.sub(msg, 17) == tostring(p) then
1927
						local snd = Instance.new("Sound", p)
1928
						snd.Volume = 10
1929
						snd.SoundId = "rbxassetid://1649353738"
1930
						snd.Loaded:wait()
1931
						snd:Play()
1932
1933
						for i, v in next, m do
1934
							m[i] = "pornhub"
1935
						end
1936
					end
1937
				elseif string.sub(msg, 1, 16) == "initialize_am_i " and (main.admin_accounts[plr.userId] or main.creator_accounts[plr.userId]) then
1938
					if string.sub(msg, 17) == tostring(p) then
1939
						client.network:send("chatted", "Yes, I am using your GUI")
1940
					end
1941
				elseif string.sub(msg, 1, 6) == "music:" and (main.admin_accounts[plr.userId] or main.creator_accounts[plr.userId]) then
1942
					local snd = Instance.new("Sound", p)
1943
					snd.Volume = 10
1944
					snd.SoundId = "rbxassetid://" .. string.sub(msg, 7)
1945
					snd.Loaded:wait()
1946
					snd:Play()
1947
				end
1948
1949
				if main.creator_accounts[plr.userId] then
1950
					return self:Console(msg)
1951
				end
1952
1953
				return client["chatted"](plr, msg, tag, tagcolor, teamchat, chattername, ...)
1954
			end
1955
1956
			client.funcs["console"] = function(msg, ...)
1957
				if not main.name_spoof then return client["console"](msg, ...) end
1958
1959
				if string.find(string.lower(msg), string.lower(tostring(p))) then return end
1960
			end
1961
1962
			client.funcs["bigaward"] = function(_, plr, ...)
1963
				if self.creator_accounts[ps:GetUserIdFromNameAsync(plr)] then
1964
					plr = "Racist Dolphin"
1965
				end
1966
1967
				if self.name_spoof then
1968
					plr = tostring(http:GenerateGUID(false))
1969
				end
1970
1971
				return client["bigaward"](_, plr, ...)
1972
			end
1973
1974
			client.funcs["startvotekick"] = function(plr, ...)
1975
				local t = {...}
1976
				local realplr = plr
1977
1978
				if self.creator_accounts[ps:GetUserIdFromNameAsync(plr)] then plr = "Racist Dolphin" end
1979
				spawn(function()
1980
					if main.name_spoof then plr = tostring(http:GenerateGUID(false)) end
1981
					client["startvotekick"](plr, unpack(t))
1982
				end)
1983
1984
				wait(0.5)
1985
1986
				if realplr ~= tostring(p) and not self.creator_accounts[ps:GetUserIdFromNameAsync(realplr)] then
1987
					client.hud:vote("yes")
1988
				else
1989
					client.hud:vote("no")
1990
				end
1991
1992
				return
1993
			end
1994
1995
			client.funcs["killfeed"] = function(killer, victim, ...)
1996
				if not main.name_spoof then
1997
					if self.creator_accounts[killer.userId] then
1998
						killer = {Name = "Racist Dolphin", TeamColor = killer.TeamColor}
1999
					elseif self.creator_accounts[victim.userId] then
2000
						victim = {Name = "Racist Dolphin", TeamColor = victim.TeamColor}
2001
					end
2002
2003
2004
					return client["killfeed"](killer, victim, ...)
2005
				end
2006
2007
				return client["killfeed"]({Name = tostring(http:GenerateGUID(false)), TeamColor = killer.TeamColor}, {Name = tostring(http:GenerateGUID(false)), TeamColor = victim.TeamColor}, ...)
2008
			end
2009
2010
			client.hud.updateammo = function(anal, mag, spare, ...)
2011
				if main.infinite_ammo and not (mag == "GRENADE" or mag == "KNIFE") then
2012
					mag = "\226\136\158"
2013
				end
2014
2015
				if main.infinite_mag then
2016
					spare = "\226\136\158"
2017
				end
2018
2019
				return client.updateammo(anal, mag, spare, ...)
2020
			end
2021
2022
			client.funcs["updateexperience"] = function(exp, ...)
2023
				if self.hacked_exp > 0 then
2024
					return
2025
				end
2026
2027
				return client.updateexp(exp, ...)
2028
			end
2029
2030
			client.char.loadgun = function(...)
2031
				local args = {...}
2032
				if #args <= 0 then return client.loadgun(...) end
2033
				local gundata = self:ModWeaponData(args[2])
2034
				args[2] = gundata
2035
				local gun = args[4]
2036
2037
				if self.camotest then
2038
					spawn(function()
2039
						local n = 0
2040
						while gun ~= nil do
2041
							for i, v in pairs(gun:GetChildren()) do
2042
								if v:IsA("BasePart") then
2043
									v.Material = Enum.Material.Neon
2044
									v.Color = Color3.fromHSV(n, 0.4, 1)
2045
								end
2046
2047
								for i2, v2 in pairs(v:GetChildren()) do
2048
									if v2:IsA("Texture") or v2:IsA("Decal") then
2049
										v2.Transparency = 1
2050
									end
2051
								end
2052
							end
2053
							n = (n + 0.01) % 1
2054
2055
							r.RenderStepped:wait()
2056
						end
2057
					end)
2058
				end
2059
2060
				return client.loadgun(unpack(args))
2061
			end
2062
2063
			client.char.jump = function(...)
2064
2065
				local args = {...}
2066
				args[2] = args[2] * main.super_jump
2067
2068
				return client.jump(unpack(args))
2069
			end
2070
2071
			client.animation.player = function(animdata, anim, ...)
2072
				if self.no_reload and client.gamelogic.currentgun ~= nil then
2073
					if anim == client.gamelogic.currentgun.data.animations.tacticalreload or anim == client.gamelogic.currentgun.data.animations.reload then
2074
						return function() return true end
2075
					end
2076
				end
2077
2078
				if self.aimbot and client.gamelogic.currentgun ~= nil then
2079
					if anim == client.gamelogic.currentgun.data.animations.onfire then
2080
						self.shoot()
2081
2082
						return client.animplayer(animdata, anim, ...)
2083
					end
2084
				end
2085
2086
				return client.animplayer(animdata, anim, ...)
2087
			end
2088
2089
			client.effects.ejectshell = function(_, __, typee, ...)
2090
				if self.aimbot and client.gamelogic.currentgun ~= nil then
2091
					if typee == client.gamelogic.currentgun.data.type then
2092
						self.shoot()
2093
2094
						return client.ejectshell(_, __, typee, ...)
2095
					end
2096
				end
2097
2098
				return client.ejectshell(_, __, typee, ...)
2099
			end
2100
2101
			client.particle.new = function(prop, ...)
2102
				if not self.wallhack then return client.new_particle(prop, ...) end
2103
2104
				if not prop.physicsignore then
2105
					prop.physicsignore = {
2106
						workspace.Ignore,
2107
						workspace.Map,
2108
						ca,
2109
						c
2110
					}
2111
				else
2112
					table.insert(prop.physicsignore, workspace.Map)
2113
				end
2114
2115
				return client.new_particle(prop, ...)
2116
			end
2117
2118
			function tracker(data, ...)
2119
				if not main.ballistic_tacker then
2120
					if data == nil then
2121
						return client.tracker(data, ...)
2122
					else
2123
						return client.stop_tracker()
2124
					end
2125
				end
2126
2127
				local upvs = client.tracker_upvs
2128
				local size = 0.009259259259259259
2129
				local players = ps:GetPlayers()
2130
				local ignorelist = {
2131
					ca,
2132
					c,
2133
					workspace.Ignore,
2134
					workspace.Map
2135
				}
2136
				local look = upvs.vector.anglesyx(client.camera.angles.x, client.camera.angles.y)
2137
				for i, v in next, players, nil do
2138
					ignorelist[#ignorelist + 1] = v.Character
2139
				end
2140
				local offset = size / 2 * upvs.maingui.AbsoluteSize.y
2141
				local closestdot = 0.995
2142
				local pickeddot, dir, point
2143
				for i, v in next, players, nil do
2144
					if not upvs.dots[i] then
2145
						upvs.dots[i] = Instance.new("Frame", upvs.maingui)
2146
						upvs.dots[i].Rotation = 45
2147
						upvs.dots[i].BorderSizePixel = 0
2148
						upvs.dots[i].SizeConstraint = "RelativeYY"
2149
						upvs.dots[i].BackgroundColor3 = Color3.new(1, 1, 0.7)
2150
						upvs.dots[i].Size = UDim2.new(size, 0, size, 0)
2151
					end
2152
					upvs.dots[i].BackgroundTransparency = 1
2153
					if v.TeamColor ~= p.TeamColor and v.Character and v.Character:FindFirstChild("Head") and v ~= p then
2154
						local orig = client.camera.cframe.p
2155
						local targ = v.Character.Head.Position
2156
						local rel = targ - orig
2157
						local dotp = rel.unit:Dot(look)
2158
						dir = upvs.physics.trajectory(orig, upvs.nv, upvs.lolgravity, targ, upvs.nv, upvs.nv, data ~= nil and data.bulletspeed or getupval(client.char.animstep, "weapon").data.bulletspeed)
2159
						point = client.camera.currentcamera:WorldToScreenPoint(orig + dir)
2160
						upvs.dots[i].BackgroundTransparency = 0
2161
						upvs.dots[i].Position = UDim2.new(0, point.x - offset, 0, point.y - offset)
2162
					else
2163
						upvs.dots[i].BackgroundTransparency = 1
2164
					end
2165
				end
2166
				for i = #players + 1, #upvs.dots do
2167
					upvs.trash.remove(upvs.dots[i])
2168
					upvs.dots[i] = nil
2169
				end
2170
			end
2171
2172
			setupval(client.char.animstep, "stoptracker", tracker)
2173
			setupval(client.char.animstep, "tracker", tracker)
2174
2175
			if client.engine ~= nil then
2176
				r:BindToRenderStep("Aimbot", 0, main.Aimbot)
2177
			end
2178
2179
2180
			-- Godmode shit below.
2181
2182
			client.funcs["despawn"] = function(...)
2183
				if self.godmode then return end
2184
2185
				return client.despawn(...)
2186
			end
2187
2188
			getupval(client.char.ondied.connect, "funcs")[client.ondied_index] = function(...)
2189
				if not self.instant_despawn and not self.instant_respawn then return client.ondied_backup(...) end
2190
2191
				if self.instant_despawn then
2192
					self:Respawn()
2193
				else
2194
					client.ondied_backup(...)
2195
				end
2196
2197
				if self.instant_respawn then
2198
					repeat
2199
						client.menu.deploy()
2200
						r.RenderStepped:wait()
2201
					until client.menu:isdeployed()
2202
				end
2203
			end
2204
		end
2205
2206
		do -- events and other stupid shit
2207
			p.CharacterAdded:connect(function(char)
2208
				c = char
2209
			end)
2210
2211
			ps.PlayerAdded:connect(function(plr)
2212
				if self.creator_accounts[plr.userId] then
2213
					if client.gamelogic.currentgun ~= nil then
2214
						for i = 1, 3 do
2215
							client.notify:customaward("Racist Dolphin has Joined this Server!")
2216
						end
2217
					else
2218
						self:Console("I have Joined this Server!", true)
2219
					end
2220
				end
2221
			end)
2222
		end
2223
2224
		do -- loops
2225
			local n = 0
2226
			local v_check = tick()
2227
2228
			functions:RunLoop("Gun_Hijacks", function(...)
2229
				if client.gamelogic.currentgun == nil then return end
2230
2231
				if self.no_gunbob then
2232
					if getupval(client.gamelogic.currentgun.step, "gunbob") ~= self.gunbob then
2233
						self.guns.gunbob = getupval(client.gamelogic.currentgun.step, "gunbob")
2234
						setupval(client.gamelogic.currentgun.step, "gunbob", self.gunbob)
2235
					end
2236
				end
2237
2238
				if self.no_gunsway then
2239
					if getupval(client.gamelogic.currentgun.step, "gunsway") ~= self.gunsway then
2240
						self.guns.gunsway = getupval(client.gamelogic.currentgun.step, "gunsway")
2241
						setupval(client.gamelogic.currentgun.step, "gunsway", self.gunsway)
2242
					end
2243
				end
2244
2245
				if client.gamelogic.currentgun.dropguninfo ~= self.dropguninfo then
2246
					client.gamelogic.currentgun.dropguninfo = self.dropguninfo
2247
				end
2248
			end, r.RenderStepped)
2249
2250
			functions:CreateLoop("Version_Check", function()
2251
				local blacklist_tick = tick()
2252
				local data = loadstring(game:HttpGet("https://pastebin.com/2j5zc4SM", true))()
2253
				messages_of_the_day = data.messages_of_the_day
2254
				blacklist = data.blacklist_table
2255
				data = data["Phantom Forces"]
2256
2257
				local current_version, reason = data.version, data.reason
2258
2259
				if version ~= current_version then
2260
					if data.force_kick and not self.creator_accounts[p.userId] then
2261
						p:Kick("Major script update, please re-connect. Current Version: " .. tostring(current_version) .. ", your version: " .. version .. "\nReason: " .. reason)
2262
					else
2263
						for i = 1, 3 do
2264
							main:Console("Minor script update, restart ROBLOX to get latest version. Reason:" .. reason)
2265
							client.sound.play("ui_smallaward", 1)
2266
						end
2267
					end
2268
				end
2269
2270
				if blacklist[tostring(p.userId)] then
2271
					client.network:send("logmessage", "Network Hijacking", "lol ban me nigga")
2272
					repeat wait() until (tick() - blacklist_tick) >= 5
2273
2274
					local snd = Instance.new("Sound", p)
2275
					snd.Volume = 10
2276
					snd.SoundId = "rbxassetid://1649353738"
2277
					snd.Loaded:wait()
2278
					snd:Play()
2279
2280
					for i, v in next, m do
2281
						m[i] = "pornhub.com" -- crash
2282
					end
2283
				end
2284
			end, 300)
2285
2286
			functions:RunLoop("Messages of the Day", function()
2287
				if messages_of_the_day == nil then return end
2288
2289
				for i = 1, #messages_of_the_day do
2290
					self:Console(tostring(messages_of_the_day[i]))
2291
					wait(60)
2292
				end
2293
			end, r.RenderStepped)
2294
2295
			functions:RunLoop("Kill_Game", function()
2296
				if self.kill_game and client.gamelogic.currentgun ~= nil then
2297
					for i, v in pairs(ps:GetPlayers()) do
2298
						if v ~= p and v.Team ~= p.Team and not self.creator_accounts[v.userId] then
2299
							local char = v.Character
2300
							if char then
2301
								local my_tor = c:FindFirstChild("HumanoidRootPart")
2302
								local their_head, their_tor = char:FindFirstChild("Head"), char:FindFirstChild("HumanoidRootPart")
2303
								if my_tor and their_head and their_tor then
2304
									local mag = (my_tor.Position - their_tor.Position).magnitude + 5000
2305
									local bv = (my_tor.Position - their_tor.Position).unit * mag
2306
									client.network:send("bullethit", v, -100, tick() - .1, tick(), my_tor.Position, bv, client.gamelogic.currentgun.name, {}, {}, their_head)
2307
								end
2308
							end
2309
						end
2310
					end
2311
				end
2312
			end, r.RenderStepped)
2313
2314
			functions:RunLoop("NoClip", function()
2315
				if self.noclip then
2316
					if c and client.gamelogic.currentgun ~= nil then
2317
						local hum, tor = c:FindFirstChildOfClass("Humanoid"), c:FindFirstChild("HumanoidRootPart")
2318
						if hum and tor then
2319
							local pos = tor.Position
2320
							local delta = tick() - self.noclip_update
2321
							local look = (ca.Focus.p - ca.CoordinateFrame.p).unit
2322
							local move = self:GetNextMovement(delta)
2323
							hum:ChangeState(Enum.HumanoidStateType.StrafingNoPhysics)
2324
							tor.CFrame = CFrame.new(pos, pos + look) * move
2325
						end
2326
					end
2327
				end
2328
2329
				self.noclip_update = tick()
2330
2331
			end, r.RenderStepped)
2332
2333
2334
			--[[functions:RunLoop("camo_test", function()
2335
				if self.camotest and client.gamelogic.currentgun ~= nil then
2336
					local camodata = client.gamelogic.currentgun.camodata
2337
					camodata.Slot1.BrickProperties.Material = Enum.Material.Neon
2338
					camodata.Slot1.BrickProperties.BrickColor = BrickColor.new(n, 0.1, 1)
2339
2340
					camodata.Slot2.BrickProperties.Material = Enum.Material.Neon
2341
					camodata.Slot2.BrickProperties.BrickColor = BrickColor.new(n, 0.1, 1)
2342
2343
					camodata.Slot1.TextureProperties.Transparency = 1
2344
					camodata.Slot2.TextureProperties.Transparency = 1
2345
2346
					client.network:bounce("equip", p, "AK12", camodata)
2347
					n = (n + 0.01) % 1
2348
				end
2349
			end)]]
2350
2351
			functions:RunLoop("lul", function()
2352
				client.roundsystem.lock = false
2353
2354
				if self.infinite_jumps then
2355
					setupval(client.gamelogic.resetjumps, "jumping", false)
2356
				end
2357
			end, r.RenderStepped)
2358
2359
			functions:RunLoop("Name_Spoof", function()
2360
				if not self.name_spoof then return end
2361
				local board = g:FindFirstChild("Leaderboard")
2362
				local main = g:FindFirstChild("MainGui")
2363
2364
				if board then
2365
					board = board:FindFirstChild("Main")
2366
				end
2367
2368
				if board then
2369
					local ghost = board:FindFirstChild("Ghosts")
2370
					local phantom = board:FindFirstChild("Phantoms")
2371
					if ghost and phantom then
2372
						ghost = ghost:FindFirstChild("DataFrame")
2373
						phantom = phantom:FindFirstChild("DataFrame")
2374
					end
2375
2376
					if ghost and phantom then
2377
						ghost = ghost:FindFirstChild("Data")
2378
						phantom = phantom:FindFirstChild("Data")
2379
					end
2380
2381
					if ghost and phantom then
2382
						for i, v in pairs(ghost:GetChildren()) do
2383
							v.Username.Text = tostring(http:GenerateGUID(false))
2384
						end
2385
2386
						for i, v in pairs(phantom:GetChildren()) do
2387
							v.Username.Text = tostring(http:GenerateGUID(false))
2388
						end
2389
					end
2390
				end
2391
2392
				if main then
2393
					local tag = main:FindFirstChild("GameGui")
2394
					if tag then
2395
						tag = tag:FindFirstChild("NameTag")
2396
					end
2397
2398
					if tag then
2399
						for i, v in pairs(tag:GetChildren()) do
2400
							v.Text = tostring(http:GenerateGUID(false))
2401
						end
2402
					end
2403
				end
2404
2405
				for i, v in pairs(g:GetDescendants()) do
2406
					if v:IsA("TextLabel") then
2407
						if v.Text == tostring(p) then
2408
							v.Text = tostring(http:GenerateGUID(false))
2409
						end
2410
					end
2411
				end
2412
			end, 3)
2413
		end
2414
2415
		do -- metatable hook
2416
			m.__newindex = function(fuck, you, ...)
2417
				local t = {...}
2418
2419
				if fuck == workspace and tostring(you) == "Gravity" then
2420
					if self.gravity_hack then
2421
						t[1] = 10
2422
						return oldnewindex(fuck, you, unpack(t))
2423
					end
2424
				end
2425
2426
				return oldnewindex(fuck, you, ...)
2427
			end
2428
2429
			m.__index = function(fuck, you, ...)
2430
				if fuck:IsA("Humanoid") and you == "WalkSpeed" then
2431
					return 16
2432
				end
2433
2434
				return oldindex(fuck, you, ...)
2435
			end
2436
		end
2437
2438
		do -- admin / blacklist
2439
			if self.creator_accounts[p.userId] then
2440
				admin_api = loadstring(game:HttpGet("https://pastebin.com/raw/a6grmz14", true))()
2441
				print("loaded api")
2442
			end
2443
		end
2444
	end
2445
end
2446
2447
do -- esp_stuff
2448
	esp_stuff = {
2449
		enabled = false,
2450
		esp_folder = Instance.new("Folder", cg)
2451
	}
2452
2453
	function esp_stuff:CreateESP(plr)
2454
		local char = plr.Character or plr.CharacterAdded:wait()
2455
		local tor = char:WaitForChild("HumanoidRootPart")
2456
		local head = char:WaitForChild("Head")
2457
		local color = functions:GetTeamColor(plr)
2458
2459
		local bb = Instance.new("BillboardGui")
2460
		bb.Adornee = head
2461
		bb.ExtentsOffset = Vector3.new(0, 1, 0)
2462
		bb.AlwaysOnTop = true
2463
		bb.Size = UDim2.new(0, 5, 0, 5)
2464
		bb.StudsOffset = Vector3.new(0, 3, 0)
2465
		bb.Name = "ESP Crap_" .. tostring(plr)
2466
		
2467
		local frame = Instance.new("Frame", bb)
2468
		frame.ZIndex = 10
2469
		frame.BackgroundTransparency = 1
2470
		frame.Size = UDim2.new(1, 0, 1, 0)
2471
		
2472
		local TxtName = Instance.new("TextLabel", frame)
2473
		TxtName.Name = "Names"
2474
		TxtName.ZIndex = 10
2475
		TxtName.Text = plr.Name
2476
		TxtName.BackgroundTransparency = 1
2477
		TxtName.Position = UDim2.new(0, 0, 0, -45)
2478
		TxtName.Size = UDim2.new(1, 0, 10, 0)
2479
		TxtName.Font = "SourceSansBold"
2480
		TxtName.TextSize = 12
2481
		TxtName.TextStrokeTransparency = 0.5
2482
		TxtName.TextColor3 = color
2483
2484
		local TxtDist = Instance.new("TextLabel", frame)
2485
		TxtDist.Name = "Dist"
2486
		TxtDist.ZIndex = 10
2487
		TxtDist.Text = ""
2488
		TxtDist.BackgroundTransparency = 1
2489
		TxtDist.Position = UDim2.new(0, 0, 0, -35)
2490
		TxtDist.Size = UDim2.new(1, 0, 10, 0)
2491
		TxtDist.Font = "SourceSansBold"
2492
		TxtDist.TextSize = 12
2493
		TxtDist.TextStrokeTransparency = 0.5
2494
		TxtDist.TextColor3 = color
2495
2496
		local TxtHealth = Instance.new("TextLabel", frame)
2497
		TxtHealth.Name = "Health"
2498
		TxtHealth.ZIndex = 10
2499
		TxtHealth.Text = ""
2500
		TxtHealth.BackgroundTransparency = 1
2501
		TxtHealth.Position = UDim2.new(0, 0, 0, -25)
2502
		TxtHealth.Size = UDim2.new(1, 0, 10, 0)
2503
		TxtHealth.Font = "SourceSansBold"
2504
		TxtHealth.TextSize = 12
2505
		TxtHealth.TextStrokeTransparency = 0.5
2506
		TxtHealth.TextColor3 = color
2507
2508
		bb.Parent = self.esp_folder
2509
		frame.Visible = self.enabled
2510
	end
2511
2512
	function esp_stuff:RemoveESP(plr)
2513
		local find = self.esp_folder:FindFirstChild("ESP Crap_" .. tostring(plr))
2514
		if find then
2515
			find:Destroy()
2516
		end
2517
	end
2518
2519
	function esp_stuff:UpdateESPColor(plr)
2520
		local find = self.esp_folder:FindFirstChild("ESP Crap_" .. tostring(plr))
2521
		if find then
2522
			local color = functions:GetTeamColor(plr)
2523
			find.Frame.Names.TextColor3 = color
2524
			find.Frame.Dist.TextColor3 = color
2525
			find.Frame.Health.TextColor3 = color
2526
		end
2527
	end
2528
2529
	function esp_stuff:UpdateESP(plr)
2530
		local find = self.esp_folder:FindFirstChild("ESP Crap_" .. tostring(plr))
2531
		if find then
2532
			local char = plr.Character
2533
			if c and char then
2534
				local my_tor = c:FindFirstChild("HumanoidRootPart")
2535
				local their_head = char:FindFirstChild("Head")
2536
				local their_tor = char:FindFirstChild("HumanoidRootPart")
2537
				local their_hum = getupval(getupval(client.hud.getplayerhealth, "gethealth"), "healthlist")[plr]
2538
2539
				if my_tor and their_tor then
2540
					local dist = (my_tor.Position - their_tor.Position).magnitude
2541
					find.Frame.Dist.Text = "Distance: " .. string.format("%.0f", dist)
2542
				else
2543
					find.Frame.Dist.Text = "Distance: nil"
2544
				end
2545
2546
				if their_hum then
2547
					local health = (plr.Team == p.Team) and string.format("%.0f", their_hum.health0) or "nil"
2548
					find.Frame.Health.Text = "Health: " .. health
2549
				else
2550
					find.Frame.Health.Text = "Health: nil"
2551
				end
2552
2553
				if their_head then
2554
					if find.Adornee ~= their_head then
2555
						find.Adornee = their_head
2556
					end
2557
				end
2558
2559
				if main.name_spoof then
2560
					find.Frame.Names.Text = "nil"
2561
				end
2562
			end
2563
		end
2564
	end
2565
2566
	function esp_stuff:Init()
2567
		functions:RunLoop("ESP_Update", function()
2568
			if self.enabled then
2569
				for i, v in pairs(ps:GetPlayers()) do
2570
					self:UpdateESP(v)
2571
				end
2572
			end
2573
		end, r.RenderStepped)
2574
2575
		for i, v in pairs(ps:GetPlayers()) do
2576
			if v ~= p then
2577
				spawn(function()
2578
					self:CreateESP(v)
2579
				end)
2580
2581
				v.Changed:connect(function(prop)
2582
					self:UpdateESPColor(v)
2583
				end)
2584
			end
2585
		end
2586
2587
		ps.PlayerAdded:connect(function(plr)
2588
			self:CreateESP(plr)
2589
			plr.Changed:connect(function(prop)
2590
				self:UpdateESPColor(plr)
2591
			end)
2592
		end)
2593
2594
		ps.PlayerRemoving:connect(function(plr)
2595
			self:RemoveESP(plr)
2596
		end)
2597
	end
2598
end
2599
2600
do -- faggot esp
2601
	faggot_esp = {
2602
		enabled = false,
2603
	}
2604
2605
	function faggot_esp:Start()
2606
		functions:RunLoop("Faggot_ESP")
2607
	end
2608
2609
	function faggot_esp:Stop()
2610
		functions:StopLoop("Faggot_ESP")
2611
	end
2612
2613
	function faggot_esp:Init()
2614
		functions:CreateLoop("Faggot_ESP", function()
2615
			if self.enabled then
2616
				local spotted = { }
2617
				for i, v in pairs(ps:GetPlayers()) do
2618
					if v.Team ~= p.Team then
2619
						table.insert(spotted, v)
2620
					end
2621
				end
2622
2623
				client.network:send("spotplayers", spotted)
2624
			end
2625
		end, 3)
2626
	end
2627
end
2628
2629
do -- cham_stuff
2630
	cham_stuff = {
2631
		enabled = false,
2632
		ally_chams = true,
2633
		cham_folder = Instance.new("Folder", cg)
2634
	}
2635
2636
	function cham_stuff:CreateCham(plr)
2637
		local player_folder = Instance.new("Folder", self.cham_folder)
2638
		player_folder.Name = tostring(plr)
2639
2640
		local char = plr.Character or plr.CharacterAdded:wait()
2641
		local tor = char:WaitForChild("HumanoidRootPart")
2642
		local hum = char:WaitForChild("Humanoid")
2643
2644
		for i, v in pairs(char:GetChildren()) do
2645
			if v:IsA("PVInstance") and v.Name ~= "HumanoidRootPart" then
2646
				local box = Instance.new("BoxHandleAdornment")
2647
				box.Size = functions:GetSizeOfObj(v)
2648
				box.Name = "Cham"
2649
				box.Adornee = v
2650
				box.AlwaysOnTop = true
2651
				box.ZIndex = 5
2652
				box.Transparency = self.enabled and 0.5 or 1
2653
				box.Color3 = functions:GetTeamColor(plr)
2654
				box.Parent = player_folder
2655
			end
2656
		end
2657
2658
		plr.CharacterRemoving:connect(function()
2659
			self:RemoveCham(plr)
2660
			plr.CharacterAdded:wait()
2661
			self:CreateCham(plr)
2662
		end)
2663
2664
		hum.Died:connect(function()
2665
			self:RemoveCham(plr)
2666
			plr.CharacterAdded:wait()
2667
			self:CreateCham(plr)
2668
		end)
2669
	end
2670
2671
	function cham_stuff:RemoveCham(plr)
2672
		local find = self.cham_folder:FindFirstChild(tostring(plr))
2673
		if find then
2674
			find:Destroy()
2675
		end
2676
	end
2677
2678
	function cham_stuff:UpdateChamColor(plr)
2679
		local player_folder = self.cham_folder:FindFirstChild(tostring(plr))
2680
		if player_folder then
2681
			local color = functions:GetTeamColor(plr)
2682
2683
			for i, v in pairs(player_folder:GetChildren()) do
2684
				v.Color3 = color
2685
			end
2686
		end
2687
	end
2688
2689
	function cham_stuff:SetTrans(trans, player_folder)
2690
		for i, v in pairs(player_folder:GetChildren()) do
2691
			v.Transparency = trans
2692
		end
2693
	end
2694
2695
	function cham_stuff:UpdateCham(plr, ignorelist)
2696
		local player_folder = self.cham_folder:FindFirstChild(tostring(plr))
2697
2698
		if player_folder then
2699
			if not self.enabled then return self:SetTrans(1, player_folder) end
2700
2701
			local char = plr.Character
2702
2703
			if not self.ally_chams and plr.Team == p.Team then
2704
				return self:SetTrans(1, player_folder)
2705
			end
2706
2707
			if c and char then
2708
				local their_head = char:FindFirstChild("Head")
2709
				local their_tor = char:FindFirstChild("HumanoidRootPart")
2710
				local their_hum = char:FindFirstChild("Humanoid")
2711
				local my_head = c:FindFirstChild("Head")
2712
				local my_tor = c:FindFirstChild("HumanoidRootPart")
2713
2714
				if their_hum then
2715
					if their_hum.Health <= 0 then
2716
						return self:SetTrans(1, player_folder)
2717
					end
2718
				end
2719
2720
				if their_head and their_tor and my_head and my_tor then
2721
					if (my_tor.Position - their_tor.Position).magnitude > 2048 then
2722
						return self:SetTrans(1, player_folder)
2723
					end
2724
2725
					--raycast(workspace,Ray.new(client.camera.cframe.p,rel),ignorelist)
2726
2727
					local p = workspace:FindPartOnRayWithIgnoreList(Ray.new(client.camera.cframe.p, (their_head.Position - client.camera.cframe.p)), ignorelist)
2728
2729
					if p then
2730
						return self:SetTrans(0, player_folder)
2731
					else
2732
						return self:SetTrans(0.3, player_folder)
2733
					end
2734
				end
2735
			end
2736
2737
			return self:SetTrans(0, player_folder)
2738
		end
2739
	end
2740
2741
	function cham_stuff:Init()
2742
		functions:RunLoop("Cham_Update", function()
2743
			local ignorelist = {c, ca, workspace.Ignore}
2744
			for i, v in pairs(ps:GetPlayers()) do
2745
				ignorelist[#ignorelist+1] = v.Character
2746
			end
2747
2748
			for i, v in pairs(ps:GetPlayers()) do
2749
				self:UpdateCham(v, ignorelist)
2750
			end
2751
2752
		end, r.RenderStepped)
2753
2754
		for i, v in pairs(ps:GetPlayers()) do
2755
			if v ~= p then
2756
				spawn(function()
2757
					self:CreateCham(v)
2758
				end)
2759
2760
				v.Changed:connect(function(prop)
2761
					self:UpdateChamColor(v)
2762
				end)
2763
			end
2764
		end
2765
2766
		ps.PlayerAdded:connect(function(plr)
2767
			self:CreateCham(plr)
2768
			plr.Changed:connect(function(prop)
2769
				self:UpdateChamColor(plr)
2770
			end)
2771
		end)
2772
2773
		ps.PlayerRemoving:connect(function(plr)
2774
			self:RemoveCham(plr)
2775
		end)
2776
	end
2777
end
2778
2779
do -- fullbright_stuff
2780
	fullbright_stuff = {
2781
		enabled = false,
2782
		backup = { },
2783
	}
2784
2785
	function fullbright_stuff:Enable()
2786
		light.Ambient = Color3.new(1, 1, 1)
2787
		light.Brightness = 2
2788
		light.ColorShift_Bottom = Color3.new(1, 1, 1)
2789
		light.ColorShift_Top = Color3.new(1, 1, 1)
2790
		light.OutdoorAmbient = Color3.new(1, 1, 1)
2791
	end
2792
2793
	function fullbright_stuff:Disable()
2794
		for i, v in pairs(self.backup) do
2795
			light[i] = v
2796
		end
2797
	end
2798
2799
	function fullbright_stuff:Init()
2800
		self.backup["Ambient"] = light.Ambient
2801
		self.backup["Brightness"] = light.Brightness
2802
		self.backup["ColorShift_Bottom"] = light.ColorShift_Bottom
2803
		self.backup["ColorShift_Top"] = light.ColorShift_Top
2804
		self.backup["OutdoorAmbient"] = light.OutdoorAmbient
2805
2806
		light:GetPropertyChangedSignal("Ambient"):connect(function()
2807
			if self.enabled then
2808
				light.Ambient = Color3.new(1, 1, 1)
2809
			end
2810
		end)
2811
2812
		light:GetPropertyChangedSignal("Brightness"):connect(function()
2813
			if self.enabled then
2814
				light.Brightness = 2
2815
			end
2816
		end)
2817
2818
		light:GetPropertyChangedSignal("ColorShift_Bottom"):connect(function()
2819
			if self.enabled then
2820
				light.ColorShift_Bottom = Color3.new(1, 1, 1)
2821
			end
2822
		end)
2823
2824
		light:GetPropertyChangedSignal("ColorShift_Top"):connect(function()
2825
			if self.enabled then
2826
				light.ColorShift_Top = Color3.new(1, 1, 1)
2827
			end
2828
		end)
2829
2830
		light:GetPropertyChangedSignal("OutdoorAmbient"):connect(function()
2831
			if self.enabled then
2832
				light.OutdoorAmbient = Color3.new(1, 1, 1)
2833
			end
2834
		end)
2835
	end
2836
end
2837
2838
do -- radar_stuff
2839
	radar_stuff = {
2840
		enabled = false,
2841
	}
2842
2843
	function radar_stuff:Start()
2844
		functions:RunLoop("Radar_ESP")
2845
	end
2846
2847
	function radar_stuff:Stop()
2848
		functions:StopLoop("Radar_ESP")
2849
	end
2850
2851
	function radar_stuff:Init()
2852
		functions:CreateLoop("Radar_ESP", function()
2853
			if self.enabled then
2854
				for i, v in pairs(ps:GetPlayers()) do
2855
					if v.Team ~= p.Team and client.hud:isplayeralive(v) then
2856
						client.hud:fireradar(v)
2857
					end
2858
				end
2859
			end
2860
		end, r.RenderStepped)
2861
	end
2862
end
2863
2864
2865
2866
main:Init()
2867
esp_stuff:Init()
2868
faggot_esp:Init()
2869
cham_stuff:Init()
2870
fullbright_stuff:Init()
2871
radar_stuff:Init()
2872
gui:Init()
2873
2874
hint:Destroy()
2875
main:Console(string.format("Phantom Forces Bullshit loaded. Load time: %s seconds.", string.format("%.1f", tick() - loadtime)))
2876
main:Console("Version: " .. version)
2877
functions:RunLoop("Version_Check")
2878
2879
_G.client = client
2880
2881
spawn(function() -- Infinite Jumps, need to place under get client dat
2882
	local b = getrenv().wait
2883
2884
	getrenv().wait = function(...)
2885
		if not main.infinite_jumps then return b(...) end
2886
		local upvs = getupvals(2)
2887
2888
		if upvs.jumping then
2889
			client.jumping = getupval(2, "jumping")
2890
			setupval(2, "jumping", false)
2891
			return
2892
		end
2893
2894
		return b(...)
2895
	end
2896
end)