Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[ TODO:
- Increased Sniper Zoom
- Remove On Fire Animation
- Permanent Ballistic Tracker
- Fastball Grenade
- Homing Missile Grenade
- ]]
- if getgenv().phantom_fucker then return end
- getgenv().phantom_fucker = true
- ScriptName = "Phantom Fucker"
- local m = game:GetService("CoreGui"):FindFirstChild("Message")
- if m then m:Destroy() end
- local ps = game:GetService("Players")
- local i = game:GetService("UserInputService")
- local r = game:GetService("RunService")
- local cg = game:GetService("CoreGui")
- local sg = game:GetService("StarterGui")
- local ts = game:GetService("TweenService")
- local rs = game:GetService("ReplicatedStorage")
- local sc = game:GetService("ScriptContext")
- local http = game:GetService("HttpService")
- local light = game:GetService("Lighting")
- local pathservice = game:GetService("PathfindingService")
- local p = ps.LocalPlayer
- local c = p.Character
- local mo = p:GetMouse()
- local b = p:FindFirstChild("Backpack") or p:WaitForChild("Backpack")
- local g = p:FindFirstChild("PlayerGui") or p:WaitForChild("PlayerGui")
- local ca = workspace.CurrentCamera
- local hint = Instance.new("Hint", cg)
- hint.Text = "Initializing... Please wait... (This can take up to 30 seconds!)"
- wait(1)
- local getupval = debug.getupvalue or getupval
- local getupvals = debug.getupvalues or getupvals
- local getreg = debug.getregistry or getreg
- local setupval = debug.setupvalue or setupval
- local getlocal = debug.getlocal or getlocal
- local getlocals = debug.getlocals or getlocals
- local setlocal = debug.setlocal or setlocal
- local getconst = debug.getconstant or getconst
- local getconsts = debug.getconstants or getconsts
- local setconst = debug.setconstant or setconst
- local setreadonly = make_writeable or setreadonly
- if syn == nil then
- return p:Kick("Unfortunately the exploit you're using is not supported. :C")
- end
- local m = getrawmetatable(game)
- setreadonly(m, false)
- local client = { }
- local funcs = { }
- local scripts = { }
- local backups = { }
- local backupss = { }
- local main = { }
- local espStuff = { }
- local chamStuff = { }
- local crosshairStuff = { }
- local fullbrightStuff = { }
- local tracerStuff = { }
- local gui = { }
- local loops = { }
- local myVersion = "3.6.5"
- local messagesOfTheDay = nil
- local threadIdentity = syn.get_thread_identity()
- local creator_accounts = { }
- do -- funcs
- funcs = {
- data = http:JSONDecode(game:HttpGet("https://raw.githubusercontent.com/iamcal/emoji-data/master/emoji.json"))
- }
- -- IDK who the original creator of this is but credit to that dude
- function funcs.parseEmoji(emoji)
- for _, v in next, funcs.data do
- if string.lower(emoji) == v["short_name"] then
- return utf8.char(tonumber(v["unified"], 16))
- end
- end
- end
- function funcs.split(self, sep)
- local sep, fields = sep or ":", {}
- local pattern = string.format("([^%s]+)", sep)
- string.gsub(self, pattern, function(c) fields[#fields+1] = c end)
- return fields
- end
- function funcs.detectEmoji(str)
- for i = 1, #str do
- if string.sub(str, i, i) == ":" then
- local substr = string.sub(str, i + 1, #str)
- local pos = string.find(substr, ":")
- if pos then
- return pos
- end
- end
- end
- return nil
- end
- function funcs.parseSemicolon(rawStr)
- local tbl = funcs.split(rawStr, " ")
- local newtbl = { }
- for i, v in next, tbl do
- local pos = funcs.detectEmoji(v)
- if pos then
- v = string.sub(v, 2, pos)
- v = funcs.parseEmoji(v)
- end
- newtbl[i] = v
- end
- return table.concat(newtbl, ' ')
- end
- function funcs:LoopRunning(name)
- return loops[name].Running
- end
- function funcs:CreateLoop(name, func, waitt, canBeDestroyed, ...)
- if loops[name] ~= nil then return end
- loops[name] = { }
- loops[name].Running = false
- loops[name].Destroy = false
- loops[name].CanBeDestroyed = canBeDestroyed
- loops[name].Loop = coroutine.create(function(...)
- while true do
- if loops[name].Running then
- func(...)
- end
- if loops[name].Destroy then
- break
- end
- if type(wait) == "userdata" then
- waitt:wait()
- else
- wait(waitt)
- end
- end
- end)
- end
- function funcs:RunLoop(name, func, waitt, canBeDestroyed, ...)
- if loops[name] == nil then
- if func ~= nil then
- self:CreateLoop(name, func, waitt, canBeDestroyed, ...)
- end
- end
- loops[name].Running = true
- local succ, out = coroutine.resume(loops[name].Loop)
- if not succ then
- warn("Loop: " .. tostring(name) .. " ERROR: " .. tostring(out))
- end
- end
- function funcs:StopLoop(name)
- if loops[name] == nil then return end
- loops[name].Running = false
- end
- function funcs:DestroyLoop(name)
- if loops[name] == nil then return end
- self:StopLoop(name)
- loops[name].Destroy = true
- loops[name] = nil
- end
- function funcs:DestroyAllLoops()
- for i, v in next, loops do
- self:DestroyLoop(i)
- end
- end
- function funcs:AddComma(str) -- stole from Mining Simulator :)
- local f, k = str, nil
- while true do
- f, k = string.gsub(f, "^(-?%d+)(%d%d%d)", "%1,%2")
- if k == 0 then
- break
- end
- end
- return f
- end
- function funcs:deepcopy(orig) -- http://lua-users.org/wiki/CopyTable
- local orig_type = type(orig)
- local copy
- if orig_type == 'table' then
- copy = {}
- for orig_key, orig_value in next, orig, nil do
- copy[funcs:deepcopy(orig_key)] = funcs:deepcopy(orig_value)
- end
- setmetatable(copy, funcs:deepcopy(getmetatable(orig)))
- else -- number, string, boolean, etc
- copy = orig
- end
- return copy
- end
- function funcs:GetSizeOfObj(obj)
- if obj:IsA("BasePart") then
- return obj.Size
- elseif obj:IsA("Model") then
- return obj:GetExtentsSize()
- end
- end
- function funcs:GetTeamColor(plr)
- if p.Team == plr.Team then
- return Color3.new(0, 1, 0)
- end
- return Color3.new(1, 0, 0)
- end
- function funcs:GetClosestPlayer()
- local players = { }
- local current_closest_player = nil
- local selected_player = nil
- for i, v in pairs(ps:GetPlayers()) do
- if v ~= p and v.Team ~= p.Team then
- local char = v.Character
- if c and char then
- local my_head, my_tor, my_hum = c:FindFirstChild("Head"), c:FindFirstChild("HumanoidRootPart"), c:FindFirstChild("Humanoid")
- local their_head, their_tor, their_hum = char:FindFirstChild("Head"), char:FindFirstChild("HumanoidRootPart"), char:FindFirstChild("Humanoid")
- if my_head and my_tor and my_hum and their_head and their_tor and their_hum then
- if my_hum.Health > 1 and their_hum.Health > 1 then
- --local ray = Ray.new(ca.CFrame.p, (their_head.Position - ca.CFrame.p).unit * 2048)
- --local part = workspace:FindPartOnRayWithIgnoreList(ray, {c, ca})
- --if part ~= nil then
- --if part:IsDescendantOf(char) then
- local dist = (mo.Hit.p - their_tor.Position).magnitude
- players[v] = dist
- --end
- --end
- end
- end
- end
- end
- end
- for i, v in next, players do
- if current_closest_player ~= nil then
- if v <= current_closest_player then
- current_closest_player = v
- selected_player = i
- end
- else
- current_closest_player = v
- selected_player = i
- end
- end
- return selected_player
- end
- function funcs:TypeWriter(label, speed)
- local speed = speed or 2
- local text = label.Text
- label.Text = ""
- spawn(function()
- for i = 1, string.len(text) do
- if i % 2 == 0 then
- client.sound.play("ui_typeout", 0.2)
- end
- label.Text = string.sub(text, 1, speed * i)
- wait(0.016666666666666666)
- end
- end)
- end
- function funcs:ModifyAllVarsInTable(t, var, val)
- for i, v in pairs(t) do
- if i == var then
- t[i] = val
- end
- if type(v) == "table" then
- funcs:ModifyAllVarsInTable(t[i], var, val)
- end
- end
- end
- function funcs:FindPlayer(txt)
- local Plr = { }
- for _, v in pairs(ps:GetPlayers()) do
- if string.lower(string.sub(v.Name, 1, string.len(txt))) == string.lower(txt) then
- table.insert(Plr, v)
- end
- end
- return Plr
- end
- function funcs:CreateBackup(name, path, index, f)
- backupss[name] = { }
- backupss[name].func = f
- backupss[name].path = path
- backupss[name].index = index
- return backupss[name].func
- end
- function funcs:RestoreBackups()
- for i, v in next, backupss do
- v.path[v.index] = v.func
- end
- end
- function funcs:AddScript(scr)
- scripts[scr] = {decompile(scr, "new"), src}
- return scripts[scr]
- end
- function funcs:FindPattern(scr, pattern)
- return string.match(scripts[scr][1], pattern)
- end
- function funcs:FindValInTable(index, t)
- for i, v in next, t do
- if i == index then
- return t[i]
- else
- if type(v) == "function" and not is_synapse_function(v) then
- local check = getupval(v, index)
- if check then
- return check
- end
- elseif type(v) == "table" and v ~= t then
- self:FindValInTable(index, v)
- end
- end
- end
- end
- function funcs:FindVal(name, index)
- for i, v in next, getreg() do
- if type(v) == "function" and not is_synapse_function(v) then
- local check = getupval(v, index)
- if check then
- client[name] = check
- return
- end
- end
- end
- for i, v in next, getgc() do
- if type(v) == "function" and not is_synapse_function(v) then
- local check = getupval(v, index)
- if check then
- client[name] = check
- return
- end
- end
- end
- for i, v in next, scripts do
- for i2, v2 in next, getsenv(v[2]) do
- if i2 == index then
- client[name] = v2
- return
- else
- if type(v2) == "function" and not is_synapse_function(v2) then
- local check = getupval(v2, index)
- if check then
- client[name] = check
- return
- end
- elseif type(v2) == "table" then
- client[name] = self:FindValInTable(index, v2)
- end
- end
- end
- end
- if client[name] == nil then
- client[name] = self:FindValInTable(index, client)
- end
- end
- end
- do -- gui
- gui = {
- name = "Base",
- gui_objs = {
- main = nil,
- mainframes = { },
- }
- }
- function gui:AddTextBox(mainframe, name, text)
- self.gui_objs.mainframes[mainframe].buttons[name] = { }
- self.gui_objs.mainframes[mainframe].buttons[name].main = Instance.new("Frame")
- self.gui_objs.mainframes[mainframe].buttons[name].main.BackgroundTransparency = 1
- self.gui_objs.mainframes[mainframe].buttons[name].main.Name = name
- self.gui_objs.mainframes[mainframe].buttons[name].main.Position = UDim2.new(0, 0, 0, 5 + self.gui_objs.mainframes[mainframe].buttonsnum)
- self.gui_objs.mainframes[mainframe].buttons[name].main.Size = UDim2.new(1, 0, 0, 15)
- self.gui_objs.mainframes[mainframe].buttons[name].main.Parent = self.gui_objs.mainframes[mainframe].buttonsframe
- self.gui_objs.mainframes[mainframe].buttons[name].textbox = Instance.new("TextBox")
- self.gui_objs.mainframes[mainframe].buttons[name].textbox.BackgroundColor3 = Color3.new(66 / 255, 66 / 255, 66 / 255)
- self.gui_objs.mainframes[mainframe].buttons[name].textbox.BackgroundTransparency = 0.3
- self.gui_objs.mainframes[mainframe].buttons[name].textbox.BorderSizePixel = 0
- self.gui_objs.mainframes[mainframe].buttons[name].textbox.Position = UDim2.new(0, 5, 0, 0)
- self.gui_objs.mainframes[mainframe].buttons[name].textbox.Size = UDim2.new(1, -10, 1, 0)
- self.gui_objs.mainframes[mainframe].buttons[name].textbox.Font = Enum.Font.SciFi
- self.gui_objs.mainframes[mainframe].buttons[name].textbox.Text = text
- self.gui_objs.mainframes[mainframe].buttons[name].textbox.TextScaled = true
- self.gui_objs.mainframes[mainframe].buttons[name].textbox.TextColor3 = Color3.new(1, 1, 1)
- self.gui_objs.mainframes[mainframe].buttons[name].textbox.TextXAlignment = Enum.TextXAlignment.Left
- self.gui_objs.mainframes[mainframe].buttons[name].textbox.Parent = self.gui_objs.mainframes[mainframe].buttons[name].main
- self.gui_objs.mainframes[mainframe].main.Size = UDim2.new(0, 200, 0, 25 + self.gui_objs.mainframes[mainframe].buttonsnum)
- self.gui_objs.mainframes[mainframe].buttonsnum = self.gui_objs.mainframes[mainframe].buttonsnum + 20
- return self.gui_objs.mainframes[mainframe].buttons[name].textbox
- end
- function gui:AddButton(mainframe, name, text, status)
- self.gui_objs.mainframes[mainframe].buttons[name] = { }
- self.gui_objs.mainframes[mainframe].buttons[name].main = Instance.new("Frame")
- self.gui_objs.mainframes[mainframe].buttons[name].main.BackgroundTransparency = 1
- self.gui_objs.mainframes[mainframe].buttons[name].main.Name = name
- self.gui_objs.mainframes[mainframe].buttons[name].main.Position = UDim2.new(0, 0, 0, 5 + self.gui_objs.mainframes[mainframe].buttonsnum)
- self.gui_objs.mainframes[mainframe].buttons[name].main.Size = UDim2.new(1, 0, 0, 15)
- self.gui_objs.mainframes[mainframe].buttons[name].main.Parent = self.gui_objs.mainframes[mainframe].buttonsframe
- self.gui_objs.mainframes[mainframe].buttons[name].textbutton = Instance.new("TextButton")
- self.gui_objs.mainframes[mainframe].buttons[name].textbutton.BackgroundTransparency = 1
- self.gui_objs.mainframes[mainframe].buttons[name].textbutton.Position = UDim2.new(0, 5, 0, 0)
- self.gui_objs.mainframes[mainframe].buttons[name].textbutton.Size = UDim2.new(1, -5, 1, 0)
- self.gui_objs.mainframes[mainframe].buttons[name].textbutton.ZIndex = 2
- self.gui_objs.mainframes[mainframe].buttons[name].textbutton.Font = Enum.Font.SciFi
- self.gui_objs.mainframes[mainframe].buttons[name].textbutton.Text = text
- self.gui_objs.mainframes[mainframe].buttons[name].textbutton.TextColor3 = Color3.new(1, 1, 1)
- self.gui_objs.mainframes[mainframe].buttons[name].textbutton.TextScaled = true
- self.gui_objs.mainframes[mainframe].buttons[name].textbutton.TextXAlignment = Enum.TextXAlignment.Left
- self.gui_objs.mainframes[mainframe].buttons[name].textbutton.Parent = self.gui_objs.mainframes[mainframe].buttons[name].main
- self.gui_objs.mainframes[mainframe].buttons[name].textlabel = Instance.new("TextLabel")
- self.gui_objs.mainframes[mainframe].buttons[name].textlabel.BackgroundTransparency = 1
- self.gui_objs.mainframes[mainframe].buttons[name].textlabel.Position = UDim2.new(1, -25, 0, 0)
- self.gui_objs.mainframes[mainframe].buttons[name].textlabel.Size = UDim2.new(0, 25, 1, 0)
- self.gui_objs.mainframes[mainframe].buttons[name].textlabel.Font = Enum.Font.Code
- self.gui_objs.mainframes[mainframe].buttons[name].textlabel.Text = status and "ON" or "OFF"
- self.gui_objs.mainframes[mainframe].buttons[name].textlabel.TextColor3 = status and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- self.gui_objs.mainframes[mainframe].buttons[name].textlabel.TextScaled = true
- self.gui_objs.mainframes[mainframe].buttons[name].textlabel.TextXAlignment = Enum.TextXAlignment.Right
- self.gui_objs.mainframes[mainframe].buttons[name].textlabel.Parent = self.gui_objs.mainframes[mainframe].buttons[name].main
- self.gui_objs.mainframes[mainframe].main.Size = UDim2.new(0, 200, 0, 25 + self.gui_objs.mainframes[mainframe].buttonsnum)
- self.gui_objs.mainframes[mainframe].buttonsnum = self.gui_objs.mainframes[mainframe].buttonsnum + 20
- return self.gui_objs.mainframes[mainframe].buttons[name].textbutton, self.gui_objs.mainframes[mainframe].buttons[name].textlabel
- end
- function gui:AddMainFrame(name)
- if self.gui_objs.mainframes.numX == nil then self.gui_objs.mainframes.numX = 0 end
- if self.gui_objs.mainframes.numY == nil then self.gui_objs.mainframes.numY = 0 end
- self.gui_objs.mainframes[name] = { }
- self.gui_objs.mainframes[name].buttons = { }
- self.gui_objs.mainframes[name].main = Instance.new("Frame")
- self.gui_objs.mainframes[name].main.BackgroundColor3 = Color3.new(0, 0, 0)
- self.gui_objs.mainframes[name].main.BackgroundTransparency = 0.3
- self.gui_objs.mainframes[name].main.BorderColor3 = Color3.new(0, 0, 139 / 255)
- self.gui_objs.mainframes[name].main.BorderSizePixel = 3
- self.gui_objs.mainframes[name].main.Name = name
- self.gui_objs.mainframes[name].main.Position = UDim2.new(0, 50 + self.gui_objs.mainframes.numX, 0, 50 + self.gui_objs.mainframes.numY)
- self.gui_objs.mainframes[name].main.Size = UDim2.new(0, 200, 0, 350)
- self.gui_objs.mainframes[name].main.Active = true
- self.gui_objs.mainframes[name].main.Draggable = true
- self.gui_objs.mainframes[name].titleframe = Instance.new("Frame")
- self.gui_objs.mainframes[name].titleframe.BackgroundColor3 = Color3.new(0, 0, 0)
- self.gui_objs.mainframes[name].titleframe.BackgroundTransparency = 0.3
- self.gui_objs.mainframes[name].titleframe.BorderColor3 = Color3.new(0, 0, 139 / 255)
- self.gui_objs.mainframes[name].titleframe.BorderSizePixel = 3
- self.gui_objs.mainframes[name].titleframe.Name = "titleframe"
- self.gui_objs.mainframes[name].titleframe.Position = UDim2.new(0, 0, 0, -35)
- self.gui_objs.mainframes[name].titleframe.Size = UDim2.new(1, 0, 0, 25)
- self.gui_objs.mainframes[name].titleframe.Parent = self.gui_objs.mainframes[name].main
- self.gui_objs.mainframes[name].title = Instance.new("TextLabel")
- self.gui_objs.mainframes[name].title.BackgroundTransparency = 1
- self.gui_objs.mainframes[name].title.Name = "title"
- self.gui_objs.mainframes[name].title.Size = UDim2.new(1, 0, 1, 0)
- self.gui_objs.mainframes[name].title.Font = Enum.Font.Code
- self.gui_objs.mainframes[name].title.Text = name
- self.gui_objs.mainframes[name].title.TextColor3 = Color3.new(1, 1, 1) -- 0, 0, 1
- self.gui_objs.mainframes[name].title.TextSize = 20
- self.gui_objs.mainframes[name].title.Parent = self.gui_objs.mainframes[name].titleframe
- self.gui_objs.mainframes[name].buttonsframe = Instance.new("Frame")
- self.gui_objs.mainframes[name].buttonsframe.BackgroundTransparency = 1
- self.gui_objs.mainframes[name].buttonsframe.Name = "buttons"
- self.gui_objs.mainframes[name].buttonsframe.Size = UDim2.new(1, 0, 1, 0)
- self.gui_objs.mainframes[name].buttonsframe.Parent = self.gui_objs.mainframes[name].main
- self.gui_objs.mainframes[name].infoframe = self.gui_objs.mainframes[name].titleframe:clone()
- self.gui_objs.mainframes[name].infoframe.title:Destroy()
- self.gui_objs.mainframes[name].infoframe.Name = "infoframe"
- self.gui_objs.mainframes[name].infoframe.Position = UDim2.new(0, 0, 1, 10)
- self.gui_objs.mainframes[name].infoframe.Parent = self.gui_objs.mainframes[name].main
- self.gui_objs.mainframes[name].infotitle = self.gui_objs.mainframes[name].title:clone()
- self.gui_objs.mainframes[name].infotitle.Name = "infotitle"
- self.gui_objs.mainframes[name].infotitle.Text = "Press the \"P\" key to toggle the GUI\nMade by: @Racist Dolphin#8943"
- self.gui_objs.mainframes[name].infotitle.TextColor3 = Color3.new(1, 1, 1)
- self.gui_objs.mainframes[name].infotitle.TextScaled = true
- self.gui_objs.mainframes[name].infotitle.Parent = self.gui_objs.mainframes[name].infoframe
- self.gui_objs.mainframes[name].buttonsnum = 0
- self.gui_objs.mainframes.numX = self.gui_objs.mainframes.numX + 250
- if (50 + (self.gui_objs.mainframes.numX + 200)) >= ca.ViewportSize.X then
- self.gui_objs.mainframes.numX = 0
- self.gui_objs.mainframes.numY = self.gui_objs.mainframes.numY + 450
- end
- self.gui_objs.mainframes[name].main.Parent = self.gui_objs.main
- end
- function gui:Init()
- self.gui_objs.main = Instance.new("ScreenGui")
- self.gui_objs.main.Name = self.name
- self.gui_objs.main.Parent = cg
- getgenv().mainGui = self.gui_objs.main
- do -- Visual Cheats
- self:AddMainFrame("Visual Cheats")
- local ESPBut, ESPStatus = self:AddButton("Visual Cheats", "ESP", "ESP", espStuff.enabled)
- local spottedESP, Status = self:AddButton("Visual Cheats", "1", "Spotted ESP", main.spottedESP)
- local radarESP, Status2 = self:AddButton("Visual Cheats", "2", "Radar ESP", main.radarESP)
- local ballisticTracker, Status6 = self:AddButton("Visual Cheats", "", "Ballistic Tracker", main.ballisticTracker)
- local ChamsBut, ChamsStatus = self:AddButton("Visual Cheats", "Chams", "Chams", chamStuff.enabled)
- local Tracers, Status5 = self:AddButton("Visual Cheats", "", "Tracers", tracerStuff.enabled)
- local crosshair, Status3 = self:AddButton("Visual Cheats", "3", "Crosshair", crosshairStuff.enabled)
- local RemoveSunFlare, Status4 = self:AddButton("Visual Cheats", "4", "Remove Sun Glare")
- Status4:Destroy()
- local FullbrightToggle, FullbrightStatus = self:AddButton("Visual Cheats", "Fullbright", "Fullbright", fullbrightStuff.enabled)
- ESPBut.MouseButton1Click:connect(function()
- espStuff.enabled = not espStuff.enabled
- if espStuff.enabled then
- ESPStatus.Text = "ON"
- ESPStatus.TextColor3 = Color3.new(0, 1, 0)
- funcs:RunLoop("UpdateESP")
- else
- ESPStatus.Text = "OFF"
- ESPStatus.TextColor3 = Color3.new(1, 0, 0)
- funcs:StopLoop("UpdateESP")
- end
- end)
- spottedESP.MouseButton1Click:Connect(function()
- main.spottedESP = not main.spottedESP
- Status.Text = main.spottedESP and "ON" or "OFF"
- Status.TextColor3 = main.spottedESP and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- if main.spottedESP then
- funcs:RunLoop("Spotted ESP")
- else
- funcs:StopLoop("Spotted ESP")
- end
- end)
- radarESP.MouseButton1Click:Connect(function()
- main.radarESP = not main.radarESP
- Status2.Text = main.radarESP and "ON" or "OFF"
- Status2.TextColor3 = main.radarESP and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- if main.radarESP then
- funcs:RunLoop("Radar ESP")
- else
- funcs:StopLoop("Radar ESP")
- end
- end)
- ballisticTracker.MouseButton1Click:Connect(function()
- main.ballisticTracker = not main.ballisticTracker
- Status6.Text = main.ballisticTracker and "ON" or "OFF"
- Status6.TextColor3 = main.ballisticTracker and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- end)
- ChamsBut.MouseButton1Click:connect(function()
- chamStuff.enabled = not chamStuff.enabled
- if chamStuff.enabled then
- ChamsStatus.Text = "ON"
- ChamsStatus.TextColor3 = Color3.new(0, 1, 0)
- else
- ChamsStatus.Text = "OFF"
- ChamsStatus.TextColor3 = Color3.new(1, 0, 0)
- end
- for i, v in next, chamStuff.cham_folder:GetChildren() do
- for i2, v2 in next, v:GetChildren() do
- v2.Transparency = chamStuff.enabled and 0 or 1
- end
- end
- end)
- Tracers.MouseButton1Click:Connect(function()
- tracerStuff.enabled = not tracerStuff.enabled
- Status5.Text = tracerStuff.enabled and "ON" or "OFF"
- Status5.TextColor3 = tracerStuff.enabled and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- if tracerStuff.enabled then
- funcs:RunLoop("UpdateTracer")
- else
- funcs:StopLoop("UpdateTracer")
- end
- for i, v in next, tracerStuff.tracerTable do
- v.Visible = tracerStuff.enabled
- end
- end)
- crosshair.MouseButton1Click:Connect(function()
- crosshairStuff.enabled = not crosshairStuff.enabled
- Status3.Text = crosshairStuff.enabled and "ON" or "OFF"
- Status3.TextColor3 = crosshairStuff.enabled and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- if crosshairStuff.enabled then
- crosshairStuff:Enable()
- else
- crosshairStuff:Disable()
- end
- end)
- RemoveSunFlare.MouseButton1Click:Connect(function()
- for i, v in pairs(light:GetChildren()) do
- if v:IsA("SunRaysEffect") or v:IsA("BloomEffect") or v:IsA("ColorCorrectionEffect") then
- v:Destroy()
- end
- end
- main:Console("Removed Sun Glares")
- end)
- FullbrightToggle.MouseButton1Click:connect(function()
- fullbrightStuff.enabled = not fullbrightStuff.enabled
- FullbrightStatus.Text = fullbrightStuff.enabled and "ON" or "OFF"
- FullbrightStatus.TextColor3 = fullbrightStuff.enabled and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- if fullbrightStuff.enabled then
- fullbrightStuff:Enable()
- else
- fullbrightStuff:Disable()
- end
- end)
- end
- do -- Gun Cheats
- self:AddMainFrame("Gun Cheats")
- local aimbot, Status = self:AddButton("Gun Cheats", "1", "Aimbot", main.aimbot)
- local instaKill, Status12 = self:AddButton("Gun Cheats", "2", "Insta Kill", main.instaKill)
- local allHeadshots, Status2 = self:AddButton("Gun Cheats", "3", "All Headshots", main.allHeadshots)
- local wallBangs, Status3 = self:AddButton("Gun Cheats", "4", "Wallbang Bonus", main.wallBangs)
- local noRecoil, Status4 = self:AddButton("Gun Cheats", "5", "No Recoil", main.noRecoil)
- local noSpread, Status5 = self:AddButton("Gun Cheats", "6", "No Spread", main.noSpread)
- local fastReload, Status6 = self:AddButton("Gun Cheats", "7", "Fast Reload", main.fastReload)
- local noReload, Status7 = self:AddButton("Gun Cheats", "8", "No Reload", main.noReload)
- local rapidFire, Status8 = self:AddButton("Gun Cheats", "9", "Rapid Fire", main.rapidFire)
- local hideFromRadar, Status9 = self:AddButton("Gun Cheats", "10", "Hide From Radar", main.hideFromRadar)
- local noGunbob, Status10 = self:AddButton("Gun Cheats", "11", "No Gun Bob", main.noGunbob)
- local noGunsway, Status11 = self:AddButton("Gun Cheats", "12", "No Gun Sway", main.noGunsway)
- local autoReload, Status13 = self:AddButton("Gun Cheats", "13", "Auto Reload", main.autoReload)
- local autoGunSwitch, Status14 = self:AddButton("Gun Cheats", "14", "Auto Gun Switch", main.autoGunSwitch)
- local fastAim, Status16 = self:AddButton("Gun Cheats", "16", "Fast Aim", main.fastAim)
- local unlockAll, Status15 = self:AddButton("Gun Cheats", "15", "Unlock All")
- Status15:Destroy()
- aimbot.MouseButton1Click:Connect(function()
- main.aimbot = not main.aimbot
- Status.Text = main.aimbot and "ON" or "OFF"
- Status.TextColor3 = main.aimbot and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- end)
- instaKill.MouseButton1Click:Connect(function()
- main.instaKill = not main.instaKill
- Status12.Text = main.instaKill and "ON" or "OFF"
- Status12.TextColor3 = main.instaKill and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- end)
- allHeadshots.MouseButton1Click:Connect(function()
- main.allHeadshots = not main.allHeadshots
- Status2.Text = main.allHeadshots and "ON" or "OFF"
- Status2.TextColor3 = main.allHeadshots and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- end)
- wallBangs.MouseButton1Click:Connect(function()
- main.wallBangs = not main.wallBangs
- Status3.Text = main.wallBangs and "ON" or "OFF"
- Status3.TextColor3 = main.wallBangs and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- end)
- noRecoil.MouseButton1Click:Connect(function()
- main.noRecoil = not main.noRecoil
- Status4.Text = main.noRecoil and "ON" or "OFF"
- Status4.TextColor3 = main.noRecoil and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- client.menu:loadmenu()
- end)
- noSpread.MouseButton1Click:Connect(function()
- main.noSpread = not main.noSpread
- Status5.Text = main.noSpread and "ON" or "OFF"
- Status5.TextColor3 = main.noSpread and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- client.menu:loadmenu()
- end)
- fastReload.MouseButton1Click:Connect(function()
- main.fastReload = not main.fastReload
- Status6.Text = main.fastReload and "ON" or "OFF"
- Status6.TextColor3 = main.fastReload and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- client.menu:loadmenu()
- end)
- noReload.MouseButton1Click:Connect(function()
- main.noReload = not main.noReload
- Status7.Text = main.noReload and "ON" or "OFF"
- Status7.TextColor3 = main.noReload and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- client.menu:loadmenu()
- end)
- rapidFire.MouseButton1Click:Connect(function()
- main.rapidFire = not main.rapidFire
- Status8.Text = main.rapidFire and "ON" or "OFF"
- Status8.TextColor3 = main.rapidFire and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- end)
- hideFromRadar.MouseButton1Click:Connect(function()
- main.hideFromRadar = not main.hideFromRadar
- Status9.Text = main.hideFromRadar and "ON" or "OFF"
- Status9.TextColor3 = main.hideFromRadar and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- client.menu:loadmenu()
- end)
- noGunbob.MouseButton1Click:Connect(function()
- main.noGunbob = not main.noGunbob
- Status10.Text = main.noGunbob and "ON" or "OFF"
- Status10.TextColor3 = main.noGunbob and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- client.menu:loadmenu()
- end)
- noGunsway.MouseButton1Click:Connect(function()
- main.noGunsway = not main.noGunsway
- Status11.Text = main.noGunsway and "ON" or "OFF"
- Status11.TextColor3 = main.noGunsway and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- client.menu:loadmenu()
- end)
- autoReload.MouseButton1Click:Connect(function()
- main.autoReload = not main.autoReload
- Status13.Text = main.autoReload and "ON" or "OFF"
- Status13.TextColor3 = main.autoReload and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- end)
- autoGunSwitch.MouseButton1Click:Connect(function()
- main.autoGunSwitch = not main.autoGunSwitch
- Status14.Text = main.autoGunSwitch and "ON" or "OFF"
- Status14.TextColor3 = main.autoGunSwitch and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- end)
- fastAim.MouseButton1Click:Connect(function()
- main.fastAim = not main.fastAim
- Status16.Text = main.fastAim and "ON" or "OFF"
- Status16.TextColor3 = main.fastAim and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- end)
- unlockAll.MouseButton1Click:Connect(function()
- local fuck = { }
- local you = getfenv(client.funcs.displayaward)
- local too = client.pdata
- for i, v in pairs(rs.GunModules:GetChildren()) do
- fuck[tostring(v)] = {paid = true}
- for i2, v2 in pairs(rs.AttachmentModels:GetChildren()) do
- fuck[tostring(v)][tostring(v2)] = true
- end
- for i2, v2 in pairs(getupval(getupval(you.opencamopage, "gencamolist"), "bigcamolist")) do
- too.settings.inventorydata[#too.settings.inventorydata + 1] = {Type = "Skin", Name = i2, Wep = tostring(v)}
- end
- end
- pcall(client.datafr.changewep, "AK12", "Primary", "Assault")
- pcall(client.datafr.changewep, "M9", "Secondary")
- pcall(client.gunstatfr.updateloadout) -- Have to use pcall, some reason this function can error
- main.loadoutData[1] = funcs:deepcopy(getupval(client.menu.deploy, "classdata")[getupval(client.menu.deploy, "curclass")].Primary)
- main.loadoutData[2] = funcs:deepcopy(getupval(client.menu.deploy, "classdata")[getupval(client.menu.deploy, "curclass")].Secondary)
- main.loadoutData[3] = funcs:deepcopy(getupval(client.menu.deploy, "classdata")[getupval(client.menu.deploy, "curclass")].Knife)
- too.unlocks = fuck
- main.unlockedAll = true
- client.menu:loadmenu()
- main:Console("Unlocked Everything :)")
- end)
- end
- do -- Character Cheats
- self:AddMainFrame("Character Cheats")
- local superSpeed, Status = self:AddButton("Character Cheats", "1", "Super Speed", main.superSpeed)
- --local jumpHeight = self:AddTextBox("Character Cheats", "2", "Jump Height Multiplier")
- local instantDespawn, Status2 = self:AddButton("Character Cheats", "3", "Instant Despawn", main.instantDespawn)
- local instantRespawn, Status3 = self:AddButton("Character Cheats", "4", "Instant Respawn", main.instantRespawn)
- local noFallDamage, Status4 = self:AddButton("Character Cheats", "5", "No Fall Damage", main.noFallDamage)
- superSpeed.MouseButton1Click:Connect(function()
- main.superSpeed = not main.superSpeed
- Status.Text = main.superSpeed and "ON" or "OFF"
- Status.TextColor3 = main.superSpeed and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- end)
- --[[jumpHeight.FocusLost:Connect(function()
- main.jumpHeightMultiplier = tonumber(jumpHeight.Text) or 1
- main:Console("Jump Height Multiplier set to: " .. main.jumpHeightMultiplier)
- jumpHeight.Text = "Jump Height Multiplier"
- end)]]
- instantDespawn.MouseButton1Click:Connect(function()
- main.instantDespawn = not main.instantDespawn
- Status2.Text = main.instantDespawn and "ON" or "OFF"
- Status2.TextColor3 = main.instantDespawn and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- end)
- instantRespawn.MouseButton1Click:Connect(function()
- main.instantRespawn = not main.instantRespawn
- Status3.Text = main.instantRespawn and "ON" or "OFF"
- Status3.TextColor3 = main.instantRespawn and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- end)
- noFallDamage.MouseButton1Click:Connect(function()
- main.noFallDamage = not main.noFallDamage
- Status4.Text = main.noFallDamage and "ON" or "OFF"
- Status4.TextColor3 = main.noFallDamage and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- end)
- end
- do -- Miscellaneous Cheats
- self:AddMainFrame("Miscellaneous Cheats")
- local breakWindows, Status1 = self:AddButton("Miscellaneous Cheats", "2", "Break Windows")
- Status1:Destroy()
- local noScreenShake, Status2 = self:AddButton("Miscellaneous Cheats", "3", "No Screen Shake", main.noScreenShake)
- local antiAim, Status3 = self:AddButton("Miscellaneous Cheats", "4", "Anti Aim", main.antiAim)
- local explosiveBullets, Status4 = self:AddButton("Miscellaneous Cheats", "5", "Explosive Bullets", main.explosiveBullets)
- local bulletTracers, Status5 = self:AddButton("Miscellaneous Cheats", "6", "Bullet Tracers", main.bulletTracers)
- local grenadeFastball, Status6 = self:AddButton("Miscellaneous Cheats", "7", "Grenade Fastball", main.grenadeFastball)
- local camoHack, Status9 = self:AddButton("Miscellaneous Cheats", "", "Camo Hack")
- local banYourself, Status8 = self:AddButton("Miscellaneous Cheats", "8", "Literally Ban Yourself")
- Status8:Destroy()
- local discordInvite, Status = self:AddButton("Miscellaneous Cheats", "1", "Copy Discord Invite")
- Status:Destroy()
- local saveMenuSettings, Status7 = self:AddButton("Miscellaneous Cheats", "", "Save Menu Toggles")
- Status7:Destroy()
- breakWindows.MouseButton1Click:Connect(function()
- main:Console("You may lag...")
- for i, v in pairs(workspace.Map:GetDescendants()) do
- if tostring(v) == "Window" then
- client.effects:breakwindow(v)
- end
- end
- main:Console("Broke all Windows")
- end)
- noScreenShake.MouseButton1Click:Connect(function()
- main.noScreenShake = not main.noScreenShake
- Status2.Text = main.noScreenShake and "ON" or "OFF"
- Status2.TextColor3 = main.noScreenShake and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- end)
- antiAim.MouseButton1Click:Connect(function()
- main.antiAim = not main.antiAim
- Status3.Text = main.antiAim and "ON" or "OFF"
- Status3.TextColor3 = main.antiAim and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- if main.antiAim then
- backups.send(client.network, "stance", "prone")
- else
- backups.send(client.network, "stance", (client.char.movementmode ~= nil) and client.char.movementmode or "stand")
- end
- end)
- explosiveBullets.MouseButton1Click:Connect(function()
- main.explosiveBullets = not main.explosiveBullets
- Status4.Text = main.explosiveBullets and "ON" or "OFF"
- Status4.TextColor3 = main.explosiveBullets and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- main:Console("Cliented Sided ONLY")
- end)
- bulletTracers.MouseButton1Click:Connect(function()
- main.bulletTracers = not main.bulletTracers
- Status5.Text = main.bulletTracers and "ON" or "OFF"
- Status5.TextColor3 = main.bulletTracers and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- end)
- grenadeFastball.MouseButton1Click:Connect(function()
- main.grenadeFastball = not main.grenadeFastball
- Status6.Text = main.grenadeFastball and "ON" or "OFF"
- Status6.TextColor3 = main.grenadeFastball and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- end)
- camoHack.MouseButton1Click:Connect(function()
- main.camoHack = not main.camoHack
- Status9.Text = main.camoHack and "ON" or "OFF"
- Status9.TextColor3 = main.camoHack and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- end)
- banYourself.MouseButton1Click:Connect(function()
- if messagebox("This will ban your account from Phantom Forces! Continue?", "WHAT. THE. FUCK.", 0x00000034) == 6 then
- if messagebox("Last chance. No going back if you click yes.", "WHAT. THE. FUCK.", 0x00000034) == 6 then
- backups.send(client.network, "logmessage", "ban me nigger", "oof", "aweraweor")
- local s = Instance.new("Sound", p)
- s.Volume = 10
- s.SoundId = "rbxasset://sounds/uuhhh.mp3"
- s:Play()
- return p:Kick()
- end
- end
- end)
- discordInvite.MouseButton1Click:Connect(function()
- setclipboard("https://discord.gg/KfFKzaC")
- main:Console("Copied")
- end)
- saveMenuSettings.MouseButton1Click:Connect(function()
- local save = funcs:deepcopy(main)
- save.guns = nil
- save.loadoutData = nil
- writefile("PFHaxxSave.txt", http:JSONEncode(save))
- main:Console("Saved settings!")
- end)
- end
- do -- Aimbot Settings
- self:AddMainFrame("Aimbot Settings")
- local aimbotAutoShoot, Status = self:AddButton("Aimbot Settings", "1", "Auto Shoot", main.aimbotAutoShoot)
- local aimbotTargetVisiblePlayersOnly, Status2 = self:AddButton("Aimbot Settings", "2", "Target Visible Players ONLY", main.aimbotTargetVisiblePlayersOnly)
- local aimbotBodyPart, Status3 = self:AddButton("Aimbot Settings", "3", "Bodypart")
- Status3.Text = "Head"
- Status3.TextColor3 = Color3.new(1, 1, 1)
- local aimbotUseLerp, Status4 = self:AddButton("Aimbot Settings", "4", "Use Lerp", main.aimbotUseLerp)
- local aimbotLerpTime = self:AddTextBox("Aimbot Settings", "5", "Lerp Response Time")
- local aimbotToggleKey, Status5 = self:AddButton("Aimbot Settings", "6", "Toggle Key")
- Status5:Destroy()
- local aimbotRemoveKey, Status6 = self:AddButton("Aimbot Settings", "7", "Remove Key")
- Status6:Destroy()
- aimbotAutoShoot.MouseButton1Click:Connect(function()
- main.aimbotAutoShoot = not main.aimbotAutoShoot
- Status.Text = main.aimbotAutoShoot and "ON" or "OFF"
- Status.TextColor3 = main.aimbotAutoShoot and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- end)
- aimbotTargetVisiblePlayersOnly.MouseButton1Click:Connect(function()
- main.aimbotTargetVisiblePlayersOnly = not main.aimbotTargetVisiblePlayersOnly
- Status2.Text = main.aimbotTargetVisiblePlayersOnly and "ON" or "OFF"
- Status2.TextColor3 = main.aimbotTargetVisiblePlayersOnly and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- end)
- aimbotBodyPart.MouseButton1Click:Connect(function()
- local b = main.aimbotBodyPart
- if b == "Head" then
- main.aimbotBodyPart = "HumanoidRootPart"
- elseif b == "HumanoidRootPart" then
- main.aimbotBodyPart = "Left Arm"
- elseif b == "Left Arm" then
- main.aimbotBodyPart = "Right Arm"
- elseif b == "Right Arm" then
- main.aimbotBodyPart = "Left Leg"
- elseif b == "Left Leg" then
- main.aimbotBodyPart = "Right Leg"
- elseif b == "Right Leg" then
- main.aimbotBodyPart = "Head"
- end
- Status3.Text = main.aimbotBodyPart
- main:Console("Body Part set to: " .. main.aimbotBodyPart)
- end)
- aimbotUseLerp.MouseButton1Click:Connect(function()
- main.aimbotUseLerp = not main.aimbotUseLerp
- Status4.Text = main.aimbotUseLerp and "ON" or "OFF"
- Status4.TextColor3 = main.aimbotUseLerp and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
- end)
- aimbotLerpTime.FocusLost:Connect(function()
- local num = tonumber(aimbotLerpTime.Text) or 0.15
- aimbotLerpTime.Text = "Lerp Response Time"
- if num <= 0 or num >= 1 then
- num = 0.15
- end
- main.aimbotLerpTime = num
- main:Console("Aimbot Lerp Time set to: " .. tostring(main.aimbotLerpTime))
- end)
- aimbotToggleKey.MouseButton1Click:Connect(function()
- aimbotToggleKey.Text = "Press any Key"
- local key = i.InputBegan:wait()
- if key.UserInputType == Enum.UserInputType.MouseButton1 or key.UserInputType == Enum.UserInputType.MouseButton2 then
- main.aimbotToggleKey = key.UserInputType
- else
- main.aimbotToggleKey = key.KeyCode
- end
- aimbotToggleKey.Text = string.match(tostring(main.aimbotToggleKey), "%w+.%w+.(%w+)")
- end)
- aimbotRemoveKey.MouseButton1Click:Connect(function()
- main.aimbotToggleKey = nil
- aimbotToggleKey.Text = "Toggle Key"
- end)
- end
- do -- Debug Info
- self:AddMainFrame("Debug Info")
- local displayAllLoops, Status = self:AddButton("Debug Info", "", "List all Loops")
- Status:Destroy()
- local loopName = self:AddTextBox("Debug Info", "", "Loop Name")
- local destroyLoop, Status2 = self:AddButton("Debug Info", "", "Destroy Loop")
- Status2:Destroy()
- displayAllLoops.MouseButton1Click:Connect(function()
- local str = ""
- for i, v in pairs(loops) do
- str = str .. i .. ", "
- end
- setclipboard(str)
- main:Console("A list of loops was copied to your clipboard.")
- end)
- loopName.FocusLost:Connect(function()
- local loop = funcs:GetLoop(loopName.Text)
- if loop == nil then
- main:Console("Loop not found! (CASE SENSITIVE!)")
- loopName = "Loop Name"
- end
- end)
- destroyLoop.MouseButton1Click:Connect(function()
- local loop = funcs:GetLoop(loopName.Text)
- if loop == nil then return main:Console("Loop not found! (CASE SENSITIVE!)") end
- if not loop.CanBeDestroyed then return main:Console("Loop cannot be destroyed!") end
- if messagebox("Destroying loops can cause crashes! Be careful!\n" .. loop.Warning, "WARNING!", 0x00000034) == 6 then
- funcs:DestroyLoop(loopName.Text)
- main:Console("Loop will be destroyed after it's cycle.")
- end
- end)
- end
- do -- ui toggle
- i.InputBegan:connect(function(input, ingui)
- if not ingui then
- if input.UserInputType == Enum.UserInputType.Keyboard then
- if input.KeyCode == Enum.KeyCode.P then
- self.gui_objs.main.Enabled = not self.gui_objs.main.Enabled
- if self.gui_objs.main.Enabled then
- for i, v in pairs(self.gui_objs.mainframes) do
- if type(v) == "table" then
- for i2, v2 in pairs(self.gui_objs.mainframes[i].buttons) do
- if self.gui_objs.mainframes[i].buttons[i2].textbutton ~= nil then
- self.gui_objs.mainframes[i].buttons[i2].textbutton.Modal = true
- end
- end
- end
- end
- i.MouseIconEnabled = true
- else
- for i, v in pairs(self.gui_objs.mainframes) do
- if type(v) == "table" then
- for i2, v2 in pairs(self.gui_objs.mainframes[i].buttons) do
- if self.gui_objs.mainframes[i].buttons[i2].textbutton ~= nil then
- self.gui_objs.mainframes[i].buttons[i2].textbutton.Modal = false
- end
- end
- end
- end
- if client.gamelogic.currentgun ~= nil then
- i.MouseIconEnabled = false
- end
- end
- elseif input.KeyCode == Enum.KeyCode.Five then
- main.noclip = not main.noclip
- end
- end
- end
- end)
- i.MouseIconEnabled = self.gui_objs.main.Enabled
- end
- end
- function gui:InitAdminPanel()
- if self.adminInit then return end
- if creator_accounts[syn.crypt.encrypt(tostring(p.userId), "rYzRJpWV3En8F598")].AdminPanel then
- self:AddMainFrame("Admin Panel")
- local player = self:AddTextBox("Admin Panel", "1", "Enter Player Name")
- local checkPlr, Status1 = self:AddButton("Admin Panel", "2", "Check Player")
- local kickPlr, Status2 = self:AddButton("Admin Panel", "3", "Kick Player")
- local banPlr, Status3 = self:AddButton("Admin Panel", "4", "Ban Player")
- local mutePlr, Status4 = self:AddButton("Admin Panel", "5", "Toggle Mute")
- local disableAimbot, Status6 = self:AddButton("Admin Panel", "", "Disable Aimbot")
- Status1:Destroy()
- Status2:Destroy()
- Status3:Destroy()
- Status4:Destroy()
- Status6:Destroy()
- player.FocusLost:Connect(function()
- local plr = funcs:FindPlayer(player.Text)
- if plr == nil or #plr > 1 or #plr == 0 then player.Text = "Enter Player Name" return end
- if creator_accounts[syn.crypt.encrypt(tostring(plr[1].userId), "rYzRJpWV3En8F598")] ~= nil and creator_accounts[syn.crypt.encrypt(plr[1].userId, "rYzRJpWV3En8F598")].AdminPanel then player.Text = "Enter Player Name" return end
- player.Text = tostring(plr[1])
- plr = plr[1]
- end)
- checkPlr.MouseButton1Click:Connect(function()
- local encryptText = "!" .. syn.crypt.encrypt("checkPlayer:" .. player.Text, "dolpin a god nig nog")
- backups.send(client.network, "chatted", encryptText)
- end)
- kickPlr.MouseButton1Click:Connect(function()
- local encryptText = "!" .. syn.crypt.encrypt("kickPlayer:" .. player.Text, "dolpin a god nig nog")
- backups.send(client.network, "chatted", encryptText)
- end)
- --[[banPlr.MouseButton1Click:Connect(function()
- local encryptText = "!" .. syn.crypt.encrypt("banPlayer:" .. player.Text, "dolpin a god nig nog")
- backups.send(client.network, "chatted", encryptText)
- end)]]
- mutePlr.MouseButton1Click:Connect(function()
- local encryptText = "!" .. syn.crypt.encrypt("mutePlayer:" .. player.Text, "dolpin a god nig nog")
- backups.send(client.network, "chatted", encryptText)
- end)
- disableAimbot.MouseButton1Click:Connect(function()
- local encryptText = "!" .. syn.crypt.encrypt("disableAimbot:" .. player.Text, "dolpin a god nig nog")
- backups.send(client.network, "chatted", encryptText)
- end)
- self.adminInit = true
- end
- end
- end
- do -- main
- main = {
- guns = { },
- loadoutData = { },
- spottedESP = false,
- radarESP = false,
- ballisticTracker = false,
- aimbot = false,
- aimbotBodyPart = "Head",
- aimbotAutoShoot = true,
- aimbotUseLerp = false,
- aimbotLerpTime = 0.15,
- aimbotTargetVisiblePlayersOnly = true,
- aimbotToggleKey = nil,
- aimbotDisable = false,
- aimbotClosestToMouse = false,
- instaKill = false,
- allHeadshots = false,
- wallBangs = false,
- infiniteAmmo = false,
- infiniteMag = false,
- noRecoil = false,
- noSpread = false,
- fastReload = false,
- hideFromRadar = false,
- rapidFire = false,
- noGunbob = false,
- noGunsway = false,
- autoReload = false,
- autoGunSwitch = false,
- fastAim = false,
- camoHack = false,
- unlockedAll = false,
- superSpeed = false,
- jumpHeightMultiplier = 1,
- instantDespawn = false,
- instantRespawn = false,
- noFallDamage = false,
- noScreenShake = false,
- antiAim = false,
- grenadeFastball = false,
- stickyGrenade = false,
- -- Bullet shit lul
- explosiveBullets = false,
- bulletTracers = false,
- muted = false,
- furFagDetected = game:GetService("MarketplaceService"):PlayerOwnsAsset(p, 3016580193)
- }
- function main.FuckYou(...)
- end
- function main.Aimbot()
- if not main.aimbot or main.aimbotDisable then return end
- if client.gamelogic.currentgun == nil then return end
- if main.aimbotToggleKey ~= nil then
- if string.match(tostring(main.aimbotToggleKey), "%w+.(%w+).%w+") == "UserInputType" then
- if not i:IsMouseButtonPressed(main.aimbotToggleKey) then return end
- else
- if not i:IsKeyDown(main.aimbotToggleKey) then return end
- end
- end
- local plrs = ps:GetPlayers()
- local lelp = { }
- local lelt = { }
- local bestp = nil
- local raycast = workspace.FindPartOnRayWithIgnoreList
- if not i:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) then
- client.gamelogic.currentgun:shoot(false)
- end
- for i, v in next, plrs do
- if v.Character and v.Character:FindFirstChild(main.aimbotBodyPart) then
- if not lelp[v] then
- lelp[v] = { }
- end
- table.insert(lelp[v], 1, v.Character[main.aimbotBodyPart].Position)
- table.remove(lelp[v], 17)
- else
- lelp[v] = nil
- end
- end
- table.insert(lelt, 1, tick())
- table.remove(lelt, 17)
- local ignorelist = {ca, c, workspace.Ignore}
- if bestp or not bestp then
- bestp = nil
- local look = client.vector.anglesyx(client.camera.angles.x, client.camera.angles.y)
- local bestscore = 0
- for i, v in next, plrs do
- ignorelist[#ignorelist+1] = v.Character
- end
- for i, v in next, plrs do
- if lelp[v] and v ~= p and v.TeamColor ~= p.TeamColor then
- local rel=lelp[v][1]-client.camera.cframe.p
- local lookvalue=look:Dot(rel.unit)
- lookvalue=math.pi-math.acos(lookvalue<-1 and -1 or lookvalue<1 and lookvalue or 1)
- local updater = client.getupdater(v)
- local tlook=updater ~= nil and updater.getlookangles() or Vector3.new()
- local tlookvalue=-client.vector.anglesyx(tlook.x,tlook.y):Dot(rel.unit)
- tlookvalue=math.pi-math.acos(tlookvalue<-1 and -1 or tlookvalue<1 and tlookvalue or 1)
- local distvalue=1/rel.magnitude
- local score=lookvalue or 1
- if score>bestscore then
- local lel=raycast(workspace,Ray.new(client.camera.cframe.p,rel),ignorelist)
- if not lel then
- bestscore=score
- bestp=v
- end
- end
- end
- end
- end
- if bestp then
- local bestlelp = lelp[bestp]
- local lel = raycast(workspace,Ray.new(client.camera.cframe.p,bestlelp[1]-client.camera.cframe.p),ignorelist)
- if lel then
- bestp = nil
- end
- --local v3 = Vector3.new() + Vector3.new(bestp.Character[main.aimbotBodyPart].Velocity.Unit.X, 0, bestp.Character[main.aimbotBodyPart].Velocity.Unit.Z)
- local v = client.physics.trajectory(client.camera.cframe.p, Vector3.new(), getsenv(game:GetService("ReplicatedFirst").Framework).lolgravity, bestlelp[1]+bestp.Character[main.aimbotBodyPart].Velocity.Unit, Vector3.new(), Vector3.new(), client.gamelogic.currentgun.data.bulletspeed)
- if v and (main.aimbotTargetVisiblePlayersOnly and select(2, ca:WorldToScreenPoint(bestlelp[1]))) or not main.aimbotTargetVisiblePlayersOnly then
- if main.aimbotUseLerp then
- client.camera:setlookvectorlerp(v, nil, nil, main.aimbotLerpTime)
- else
- client.camera:setlookvector(v)
- end
- if main.aimbotAutoShoot then
- client.gamelogic.currentgun:shoot(true)
- end
- end
- end
- bestp = nil
- end
- function main.Pingcheck()
- if client.char.health and client.char.health > 0 and client.gamelogic.currentgun ~= nil then
- backups.send(client.network, "pingcheck", client.char.rootpart.Position)
- end
- end
- function main.Gunbob(...)
- if main.noGunbob then
- return CFrame.new()
- end
- return client.guns.gunbob(...)
- end
- function main.Gunsway(...)
- if main.noGunsway then
- return CFrame.new()
- end
- return client.guns.gunsway(...)
- end
- function main.getStatus() return "READY" end
- function main.PlayerStep(plr, ...)
- if tracerStuff.enabled then
- tracerStuff:UpdateTracer(plr)
- end
- if espStuff.enabled then
- espStuff:UpdateESP(plr)
- end
- return backups[tostring(plr)](...)
- end
- function main:Console(txt, name, playsound)
- if name == nil then
- name = "Racist Dolphin"
- end
- local misc = rs.Misc
- local chatgui = g.ChatGame
- local msg = misc.Msger
- local message = msg:clone()
- local tag = message.Tag
- local offset = 5
- message.Parent = chatgui.GlobalChat
- message.Text = "[" .. name .. "]: "
- message.Msg.Text = txt
- message.Msg.Position = UDim2.new(0, message.TextBounds.X, 0, 0)
- message.Visible = true
- message.Msg.Visible = true
- if not playsound then
- funcs:TypeWriter(message.Msg, 3)
- end
- if playsound then
- client.sound.play("ui_smallaward", 1)
- end
- spawn(function()
- local n = 0
- while message.Parent == chatgui.GlobalChat do
- message.TextColor3 = Color3.fromHSV(n, 0.4, 1)
- n = (n + 0.01) % 1
- r.RenderStepped:wait()
- end
- end)
- end
- function main:Init()
- local backupText = hint.Text
- do -- Get Shit
- -- Stage 1
- hint.Text = backupText .. " Acquiring Network Table..."
- repeat -- Network
- for i, v in pairs(getreg()) do
- if type(v) == "function" and not is_synapse_function(v) and string.lower(tostring(getfenv(v).script)) == "framework" then
- if getupval(v, "network") and client.network == nil then
- client.network = getupval(v, "network")
- end
- end
- end
- wait(.5)
- until client.network ~= nil and client.network.ready ~= nil
- -- Stage 2
- hint.Text = backupText .. " Waiting for game to finish loading..."
- repeat
- r.RenderStepped:wait()
- until getupval(client.network.ready, "isready") == true
- -- Stage 3 (Anti-Cheat Bypass)
- hint.Text = backupText .. " Acquiring Anti-Cheat Key..."
- for i, v in pairs(getgc()) do
- if type(v) == "function" and not is_synapse_function(v) and (string.lower(tostring(getfenv(v).script)) == "framework" or string.lower(tostring(getfenv(v).script)) == "uiscript") then
- if getupval(v, "net_backup") then
- client.getfenv = v
- end
- if getupval(v, "mainlogic") then
- client.mainlogic = getupval(v, "mainlogic")
- end
- if getupval(v, "datafr") then
- client.datafr = getupval(v, "datafr")
- end
- if getupval(v, "engine") then
- client.engine = getupval(v, "engine")
- end
- if getupval(v, "enums") then
- client.enums = getupval(v, "enums")
- end
- end
- end
- -- Stage 4 (Not necessary to have)
- for i, v in pairs(getreg()) do
- if type(v) == "function" and not is_synapse_function(v) and string.lower(tostring(getfenv(v).script)) == "framework" then
- if getupval(v, "result") and getupval(v, "quote") and getupval(v, "gmode") then
- client.showresult = v
- end
- end
- end
- -- Stage 5 / Final Stage
- client.funcs = getupval(client.network.add, "funcs")
- client.sound = getsenv(game:GetService("ReplicatedFirst").Framework).globalsound
- client.char = getupval(client.funcs.despawn, "char")
- client.animation = getupval(client.char.loadgun, "animation")
- client.menu = getupval(client.funcs.updateinventorydata, "menu")
- client.camera = getupval(client.funcs.shot, "camera")
- client.gamelogic = getupval(client.funcs.swapknife, "gamelogic")
- client.particle = funcs:deepcopy(getupval(client.funcs.newparticle, "particle"))
- client.getupdater = getupval(client.funcs.stance, "getupdater")
- client.loadplayer = getupval(client.getupdater, "loadplayer")
- client.hud = getupval(client.funcs.startvotekick, "hud")
- client.physics = getupval(client.char.reloadsprings, "physics")
- client.roundsystem = getupval(client.char.step, "roundsystem")
- client.notify = getupval(client.hud.reloadhud, "notify")
- client.input = getupval(client.funcs.killfeed, "input")
- client.effects = getupval(client.camera.setspectate, "effects")
- client.replication = getupval(client.hud.spot, "replication")
- client.gunstatfr = getupval(client.datafr.changewep, "gunstatfr")
- client.pdata = getupval(client.funcs.updatemoney, "pdata")
- client.playerstatus = getupval(client.funcs.squadspawnupdate, "playerstatus")
- client.vector = getsenv(game:GetService("ReplicatedFirst").Framework).vector
- client.ondiedfuncs = getupval(client.char.ondied.connect, "funcs")
- client.gunlist = getupval(getupval(client.input.mouse.onscroll.connect, "funcs")[1], "gunlist")
- client.play = client.sound.play
- client.killfeed = client.funcs["killfeed"]
- client.bounceevent = game.ReplicatedStorage.BounceEvent
- end
- do -- Metatable overwrites
- main.moddedParticleTable = setmetatable({}, {
- __index = function(selff, index)
- if index == "new" then
- return function(t)
- if t.ontouch == nil then return client.particle.new(t) end
- local b = t.ontouch
- local b2 = t.onstep
- local upvals = getupvals(2)
- local locals = getlocals(2)
- t.onstep = function(t, ...)
- if locals.player == p and main.bulletTracers then
- local dist = (t.position - locals.lastp).magnitude
- local part = Instance.new("Part")
- part.Size = Vector3.new(0.05, 0.05, dist)
- part.CFrame = CFrame.new(t.position:lerp(locals.lastp, 0), locals.lastp)
- part.Anchored = true
- part.CanCollide = false
- part.Color = Color3.new(1, 0, 0)
- part.Material = Enum.Material.Neon
- part.Parent = workspace.Ignore
- spawn(function()
- wait(1)
- part:Destroy()
- end)
- end
- return b2(t, ...)
- end
- t.ontouch = function(...)
- local args = {...}
- if locals.player == p and main.explosiveBullets then
- local ex = Instance.new("Explosion")
- ex.BlastRadius = 0
- ex.BlastPressure = 0
- ex.Position = args[3]
- ex.Parent = workspace
- end
- return b(...)
- end
- return client.particle.new(t)
- end
- end
- return rawget(client.particle, index)
- end
- })
- end
- do -- Create backups
- backups.oldindex = funcs:CreateBackup("index", m, "__index", m.__index)
- backups.oldnewindex = funcs:CreateBackup("newindex", m, "__newindex", m.__newindex)
- backups.oldnamecall = funcs:CreateBackup("namecall", m, "__namecall", m.__namecall)
- backups.send = funcs:CreateBackup("send", client.network, "send", client.network.send)
- backups.anti_cheat = funcs:CreateBackup("anti_cheat", client, "getfenv", getrenv().getfenv)
- backups.chatted = funcs:CreateBackup("chatted", client.funcs, "chatted", client.funcs["chatted"])
- backups.console = funcs:CreateBackup("console", client.funcs, "console", client.funcs["console"])
- backups.killfeed = funcs:CreateBackup("killfeed", client.funcs, "killfeed", client.funcs["killfeed"])
- backups.loadgun = funcs:CreateBackup("loadgun", client.char, "loadgun", client.char.loadgun)
- backups.jump = funcs:CreateBackup("jump", client.char, "jump", client.char.jump)
- backups.ondied = funcs:CreateBackup("ondied", client.ondiedfuncs, 1, client.ondiedfuncs[1])
- backups.animplay = funcs:CreateBackup("animplay", client.animation, "player", client.animation.player)
- backups.startvotekick = funcs:CreateBackup("startvotekick", client.funcs, "startvotekick", client.funcs.startvotekick)
- backups.updatestats = funcs:CreateBackup("updatestats", client.funcs, "updatestats", client.funcs.updatestats)
- backups.spawn = funcs:CreateBackup("spawn", client.char, "spawn", client.char.spawn)
- backups.customaward = funcs:CreateBackup("customaward", client.notify, "customaward", client.notify.customaward)
- backups.updateammo = funcs:CreateBackup("updateammo", client.hud, "updateammo", client.hud.updateammo)
- backups.updatelist = funcs:CreateBackup("updatelist", client.menu, "updatelist", client.menu.updatelist)
- backups.shot = funcs:CreateBackup("shot", client.funcs, "shot", client.funcs.shot)
- backups.loadgrenade = funcs:CreateBackup("loadgrenade", client.char, "loadgrenade", client.char.loadgrenade)
- backups.animstep = funcs:CreateBackup("animstep", client.char, "animstep", client.char.animstep)
- backups.mapstep = funcs:CreateBackup("mapstep", client.menu, "mapstep", client.menu.mapstep)
- end
- do -- Fun shit
- do -- Constants Changes
- local consts = getconsts(client.showresult)
- for i, v in next, consts do
- if tostring(v) == "DEFEAT" then
- setconst(client.showresult, i, "YOU FUCKING SUCK")
- end
- if tostring(v) == "VICTORY" then
- setconst(client.showresult, i, "Furries Eliminated.")
- end
- end
- getupval(getfenv(client.funcs.smallaward).smallaward, "typelist").kill = {"Furry Killed!"}
- end
- do -- Add Racist Dolphin to leaderboard
- client.funcs.newplayer({Name = "Racist Dolphin", TeamColor = p.TeamColor})
- client.funcs.updatestats({Name = "Racist Dolphin", TeamColor = p.TeamColor}, {
- ["Username"] = "Racist Dolphin",
- ["Kills"] = 1337,
- ["Deaths"] = 0,
- ["Streak"] = 1337,
- ["Score"] = 1337,
- ["Kdr"] = 1337.0,
- ["Rank"] = 666
- })
- client.funcs.updatestats = function(...)
- backups.updatestats({Name = "Racist Dolphin", TeamColor = p.TeamColor}, {
- ["Username"] = "Racist Dolphin",
- ["Kills"] = 1337,
- ["Deaths"] = 0,
- ["Streak"] = 1337,
- ["Score"] = 13333337,
- ["Kdr"] = 1337.0,
- ["Rank"] = 666
- })
- return backups.updatestats(...)
- end
- spawn(function()
- local n = 0
- local txt = g.Leaderboard.Main[tostring(p.Team)].DataFrame.Data["Racist Dolphin"].Username
- while true do
- txt.TextColor3 = Color3.fromHSV(n, 0.4, 1)
- n = (n + 0.01) % 1
- r.RenderStepped:wait()
- end
- end)
- end
- do -- Spawn on Anyone
- for i, v in next, client.playerstatus do
- client.playerstatus[i] = setmetatable({}, {
- __index = function(t, index)
- if getupval(2, "getstatus") and getupval(2, "getstatus") ~= main.getStatus then
- setupval(2, "getstatus", main.getStatus)
- end
- if index == "Enabled" then return true end
- return t[index]
- end
- })
- end
- setupval(client.funcs.squadspawnupdate, "playerstatus", setmetatable({}, {
- __newindex = function(t, index, val)
- if type(val) == "table" then
- val = setmetatable({}, {
- __index = function(t2, index2)
- if getupval(2, "getstatus") and getupval(2, "getstatus") ~= main.getStatus then
- setupval(2, "getstatus", main.getStatus)
- end
- if index2 == "Enabled" then return true end
- end
- })
- rawset(t, index, val)
- end
- end
- }))
- end
- end
- do -- Overwrite shit
- hint.Text = backupText .. " Overwriting Game funcs..."
- setupval(client.getfenv, "getfenv", newcclosure(function() return wait(9e9) end))
- client.network.send = function(_, ...)
- local args = {...}
- local name = args[1]
- if name == nil then return backups.send(_, ...) end
- if name == "stance" and self.antiAim then return end
- if name == "bullethit" then
- local index
- do
- if type(args[#args]) == "string" then
- index = #args - 1
- else
- index = #args
- end
- end
- --local math = getupval(client.funcs.newbullet, "suppressionmult")() *
- if self.allHeadshots then
- if tostring(args[index]) ~= "Head" then
- args[index] = args[index].Parent:FindFirstChild("Head") or args[index]
- end
- end
- if self.wallBangs then
- if type(args[#args]) ~= "string" then
- args[#args + 1] = "wallbang"
- end
- end
- if self.instaKill then
- local n = 0
- repeat
- n = n + 1
- r.RenderStepped:wait()
- until -args[3] * n >= 100
- args[4] = tick() - 0.1
- for i = 1, n do
- local mag = getupval(client.gamelogic.currentgun.shoot, "mag")
- if mag <= 0 then
- break
- end
- backups.send(_, unpack(args))
- mag = mag - 1
- setupval(client.gamelogic.currentgun.shoot, "mag", mag)
- client.hud:updateammo(mag, getupval(client.gamelogic.currentgun.reload, "spare"))
- end
- return
- end
- return backups.send(_, unpack(args))
- elseif name == "knifehit" then
- local index do
- if type(args[#args]) == "string" then
- index = #args - 1
- else
- index = #args
- end
- end
- if self.instaKill then
- if tostring(args[index]) ~= "Head" then
- args[index] = args[index].Parent:FindFirstChild("Head") or args[index]
- end
- if type(args[#args]) ~= "string" then
- args[#args + 1] = "backstab"
- end
- end
- return backups.send(_, unpack(args))
- elseif name == "chatted" then
- if self.muted then return end
- elseif name == "changehealthx" then
- if args[5] == "Falling" and self.noFallDamage then
- return
- end
- elseif name == "updateplayerdata" then
- local data = args[2]
- for i, v in next, data do
- warn(i, v)
- end
- if data.fov > 105 then data.fov = 105 end
- if data.fov < 60 then data.fov = 60 end
- args[2] = data
- return backups.send(_, unpack(args))
- elseif (name == "changewep" or name == "changeatt" or name == "changecamo") and main.unlockedAll == true then
- return
- elseif name == "logmessage" then
- return
- end
- return backups.send(_, ...)
- end
- client.funcs.chatted = function(plr, msg, tag, tagcolor, teamchat, author, ...)
- if string.sub(msg, 1, 1) == "!" then
- msg = string.sub(msg, 2)
- msg = syn.crypt.decrypt(msg, "dolpin a god nig nog")
- local command, plr2 = string.match(msg, "(%w+):(%w+)")
- if command == "checkPlayer" and plr2 == tostring(p) and creator_accounts[syn.crypt.encrypt(tostring(plr.userId), "rYzRJpWV3En8F598")] ~= nil and creator_accounts[syn.crypt.encrypt(tostring(plr.userId), "rYzRJpWV3En8F598")].AdminPanel then
- return backups.send(client.network, "chatted", "!" .. syn.crypt.base64.encode("yes:yes"), false)
- elseif command == "kickPlayer" and plr2 == tostring(p) and creator_accounts[syn.crypt.encrypt(tostring(plr.userId), "rYzRJpWV3En8F598")] ~= nil and creator_accounts[syn.crypt.encrypt(tostring(plr.userId), "rYzRJpWV3En8F598")].AdminPanel then
- return p:Kick("Kicked by Racist Dolphin Himself.")
- elseif command == "banPlayer" and plr2 == tostring(p) and creator_accounts[syn.crypt.encrypt(tostring(plr.userId), "rYzRJpWV3En8F598")] ~= nil and creator_accounts[syn.crypt.encrypt(tostring(plr.userId), "rYzRJpWV3En8F598")].AdminPanel then
- backups.send(client.network, "logmessage", "Network Hijacking", "ban me nigga lol")
- return p:Kick("You pissed Racist Dolphin off. BIG TIME.")
- elseif command == "mutePlayer" and plr2 == tostring(p) and creator_accounts[syn.crypt.encrypt(tostring(plr.userId), "rYzRJpWV3En8F598")] ~= nil and creator_accounts[syn.crypt.encrypt(tostring(plr.userId), "rYzRJpWV3En8F598")].AdminPanel then
- self.muted = not self.muted
- elseif command == "disableAimbot" then
- self.aimbotDisable = not self.aimbotDisable
- elseif command == "yes" and creator_accounts[syn.crypt.encrypt(tostring(p.userId), "rYzRJpWV3En8F598")] then
- return self:Console("Player is using your GUI")
- end
- return
- end
- if creator_accounts[syn.crypt.encrypt(tostring(plr.userId), "rYzRJpWV3En8F598")] then
- return self:Console(msg, creator_accounts[syn.crypt.encrypt(tostring(plr.userId), "rYzRJpWV3En8F598")].Name)
- end
- return backups.chatted(plr, msg, tag, tagcolor, teamchat, author, ...)
- end
- client.funcs.console = function(msg)
- local fag, me = string.match(msg, "(%w+) has initiated a votekick on (%w+)")
- if fag and me and me == tostring(p) then
- msg = "A Furry Faggot has initiated a votekick on you."
- end
- return backups.console(msg)
- end
- client.char.loadgun = function(...)
- local args = {...}
- if #args < 1 then return backups.loadgun(...) end
- local data = args[2]
- local model = args[4]
- local camolist = args[#args]
- local V3 = Vector3.new()
- if self.noRecoil then
- data.camkickmin = V3
- data.camkickmax = V3
- data.aimcamkickmin = V3
- data.aimcamkickmax = V3
- data.aimtranskickmin = V3
- data.aimtranskickmax = V3
- data.transkickmin = V3
- data.transkickmax = V3
- data.rotkickmin = V3
- data.rotkickmax = V3
- data.aimrotkickmin = V3
- data.aimrotkickmax = V3
- end
- if self.noSpread then
- data.swayamp = 0
- data.swayspeed = 0
- data.steadyspeed = 0
- data.breathspeed = 0
- data.hipfirespreadrecover = 100
- data.hipfirespread = 0
- data.hipfirestability = 0
- data.crosssize = 2
- data.crossexpansion = 0
- end
- if self.rapidFire then
- data.firerate = 1500
- data.variablefirerate = false
- data.firemodes = {true, 3, 1}
- data.requirechamber = false
- if data.animations.onfire then
- data.animations.onfire = nil
- end
- end
- if self.fastReload then
- for i, v in next, data.animations do
- if string.find(string.lower(i), "reload") then
- data.animations[i].timescale = 0.2
- end
- end
- end
- if self.hideFromRadar then
- data.hideflash = true
- data.hideminimap = true
- data.hiderange = 0
- end
- if self.fastAim then
- data.aimspeed = 1000
- end
- if self.camoHack then
- camolist.Slot1 = { }
- camolist.Slot1.BrickProperties = { }
- camolist.Slot1.BrickProperties.Color = { }
- camolist.Slot1.TextureProperties = { }
- camolist.Slot1.Name = "Brimstone"
- camolist.Slot1.BrickProperties.Material = Enum.Material.Neon
- camolist.Slot1.BrickProperties.BrickColor = BrickColor.new("Really red")
- camolist.Slot1.BrickProperties.Reflectance = 0
- camolist.Slot1.BrickProperties.Color.r = 255
- camolist.Slot1.BrickProperties.Color.g = 0
- camolist.Slot1.BrickProperties.Color.b = 0
- camolist.Slot1.TextureProperties.StudsPerTileU = 1
- camolist.Slot1.TextureProperties.Transparency = 0
- camolist.Slot1.TextureProperties.StudsPerTileV = 1
- camolist.Slot1.TextureProperties.TextureId = 1143806679
- camolist.Slot2 = { }
- camolist.Slot2.BrickProperties = { }
- camolist.Slot2.BrickProperties.Color = { }
- camolist.Slot2.TextureProperties = { }
- camolist.Slot2.Name = "Brimstone"
- camolist.Slot2.BrickProperties.Material = Enum.Material.Neon
- camolist.Slot2.BrickProperties.BrickColor = BrickColor.new("Really red")
- camolist.Slot2.BrickProperties.Reflectance = 0
- camolist.Slot2.BrickProperties.Color.r = 255
- camolist.Slot2.BrickProperties.Color.g = 0
- camolist.Slot2.BrickProperties.Color.b = 0
- camolist.Slot2.TextureProperties.StudsPerTileU = 1
- camolist.Slot2.TextureProperties.Transparency = 0
- camolist.Slot2.TextureProperties.StudsPerTileV = 1
- camolist.Slot2.TextureProperties.TextureId = 1143806679
- spawn(function()
- local n = 0
- while client.gamelogic.currentgun ~= nil do
- for i, v in pairs(model:GetChildren()) do
- if v:IsA("BasePart") then
- v.Color = Color3.fromHSV(n, 0.4, 1)
- end
- end
- n = (n + 0.01) % 1
- r.RenderStepped:wait()
- end
- end)
- end
- args[2] = data
- return backups.loadgun(unpack(args))
- end
- client.char.jump = function(_, height, ...)
- height = height * self.jumpHeightMultiplier
- return backups.jump(_, height, ...)
- end
- client.char.spawn = function(x, xx, xxx, xxxx, p, s, k, ...)
- if self.unlockedAll then
- backups.spawn(x, xx, xxx, xxxx, self.loadoutData[1], self.loadoutData[2], self.loadoutData[3], ...)
- if self.antiAim then
- backups.send(client.network, "stance", "prone")
- end
- repeat r.RenderStepped:wait() until client.gamelogic.currentgun ~= nil
- return client.gamelogic.loadmodules(p, s, k)
- end
- if self.antiAim then
- backups.spawn(x, xx, xxx, xxxx, p, s, k, ...)
- return backups.send(client.network, "stance", "prone")
- end
- return backups.spawn(x, xx, xxx, xxxx, p, s, k, ...)
- end
- client.ondiedfuncs[1] = function(...)
- if not self.instantDespawn and not self.instantRespawn then return backups.ondied(...) end
- if self.instantDespawn then
- client.menu:loadmenu()
- else
- client.ondied(...)
- end
- if self.instantRespawn then
- repeat
- r.RenderStepped:wait()
- until not client.menu:isdeployed()
- client.menu.deploy()
- end
- end
- client.animation.player = function(data, anim, ...)
- if self.noReload and client.gamelogic.currentgun ~= nil then
- if anim == client.gamelogic.currentgun.data.animations.tacticalreload or anim == client.gamelogic.currentgun.data.animations.reload then
- return function() return true end
- end
- end
- return backups.animplay(data, anim, ...)
- end
- client.funcs.startvotekick = function(plr, ...)
- backups.startvotekick(plr, ...)
- if plr == tostring(p) then
- client.hud:vote("no")
- else
- client.hud:vote("yes")
- end
- return
- end
- client.notify.customaward = function(_, txt, ...)
- --if string.find(txt, "Picked up . rounds from") then return end
- return backups.customaward(_, txt, ...)
- end
- client.hud.updateammo = function(_, mag, ammo, ...)
- if mag == "KNIFE" or mag == "GRENADE" then return backups.updateammo(_, mag, ammo, ...) end
- if self.infiniteAmmo then
- mag = utf8.char(8734)
- end
- if self.infiniteMag then
- ammo = utf8.char(8734)
- end
- return backups.updateammo(_, mag, ammo, ...)
- end
- client.funcs.shot = function(plr, ...)
- if self.noScreenShake then
- return
- end
- return backups.shot(plr, ...)
- end
- client.char.loadgrenade = function(t, data, nade, ...)
- if self.grenadeFastball then
- data.throwspeed = 500
- data.animations.throw.timescale = 0.01
- data.animations.pull.timescale = 0.01
- end
- return backups.loadgrenade(t, data, nade, ...)
- end
- client.char.animstep = function(...)
- local upvs = getupvals(backups.animstep)
- upvs.thread:step()
- if upvs.weapon and upvs.weapon.step then
- upvs.weapon.step()
- if (upvs.weapon.attachments and upvs.weapon.attachments.Other == "Ballistics Tracker" and upvs.aiming and upvs.aimspring.p > 0.95) or self.ballisticTracker then
- upvs.tracker(upvs.weapon.data)
- else
- upvs.stoptracker()
- end
- end
- end
- client.menu.mapstep = function(...)
- local upvs = getupvals(backups.mapstep)
- if tick() > upvs.lastmapt + upvs.mapint then
- setupval(backups.mapstep, "lastmapt", tick())
- if upvs.settings.AllowSpawn.Value then
- upvs.maptext.Text = upvs.settings.MapName.Value == "Luck" and "A Fucking Maze" or upvs.settings.MapName.Value == "Mirage" and "Get Your BFG Out Nigga" or upvs.settings.MapName.Value == "Warehouse" and "M60 TIME BOYZ" or upvs.settings.MapName.Value
- upvs.gmodetext.Text = upvs.settings.GameMode.Value == "Capture the Flag" and "Capture the Fag" or upvs.settings.GameMode.Value == "King of the Hill" and "King of the Fags" or upvs.settings.GameMode.Value
- upvs.mapImage.Image = upvs.assetid .. upvs.settings.MapThumb.Value
- else
- upvs.maptext.Text = "INTERMISSION"
- upvs.gmodetext.Text = ""
- upvs.mapImage.Image = upvs.assetid .. "1673246867"
- end
- end
- end
- function client.camera:setlookvectorlerp(direction, delx, dely, t)
- local upvs = getupvals(client.camera.setlookvector)
- upvs.didchange = true
- local x, ay = client.vector.toanglesyx(direction)
- x = x + (delx or 0)
- ay = ay + (dely or 0)
- local cy = upvs.camera.angles.y
- x = x > upvs.camera.maxangle and upvs.camera.maxangle or x < upvs.camera.minangle and upvs.camera.minangle or x
- local y = (ay + upvs.pi - cy) % upvs.tau - upvs.pi + cy
- local newangles = upvs.v3(x, y, 0)
- upvs.camera.delta = upvs.camera.delta:lerp((newangles - upvs.camera.angles) / upvs.ldt, t)
- upvs.camera.angles = upvs.camera.angles:lerp(newangles, t)
- end
- --[[local upvs = getupvals(client.mainlogic[1].func)
- client.mainlogic[1].func = function()
- light:SetMinutesAfterMidnight(upvs.daytime.Value)
- end]]
- client.engine[5].func = client.char.animstep
- client.enums.MINIMUM_BASE_FOV = 1
- client.enums.MAXIMUM_BASE_FOV = 120
- r:BindToRenderStep("Aimbot", 0, main.Aimbot)
- --r:BindToRenderStep("pingcheck", 0, main.Pingcheck)
- end
- do -- Humanoid Shit
- if c then
- local h = c:FindFirstChild("Humanoid") or c:WaitForChild("Humanoid", 10)
- if h then
- local tik = tick()
- repeat wait() until getconnections(h.Changed)[1] ~= nil or (tick() - tik) > 3
- if (tick() - tik) < 3 then
- getconnections(h.Changed)[1]:Disable()
- end
- end
- end
- end
- do -- events
- p.CharacterAdded:connect(function(char)
- c = char
- local h = c:WaitForChild("Humanoid")
- if h then
- repeat wait() until getconnections(h.Changed)[1] ~= nil
- getconnections(h.Changed)[1]:Disable()
- end
- end)
- end
- hint.Text = backupText .. " Creating Loops..."
- do -- loops
- funcs:RunLoop("Humanoid_Shit", function()
- if self.superSpeed then
- client.char:setbasewalkspeed(40)
- end
- client.roundsystem.lock = false
- end, r.Heartbeat, true, "Small Impact\nWill BREAK: Super Speed")
- funcs:RunLoop("Gun Shit", function()
- if client.gamelogic.currentgun == nil then return end
- if client.gamelogic.currentgun.id == 3 then return end
- if self.noGunbob then
- local f = getupval(client.gamelogic.currentgun.step, "gunbob")
- if f ~= main.Gunbob then
- main.guns.gunbob = f
- setupval(client.gamelogic.currentgun.step, "gunbob", main.Gunbob)
- end
- end
- if self.noGunsway then
- local f = getupval(client.gamelogic.currentgun.step, "gunsway")
- if f ~= main.Gunsway then
- main.guns.gunsway = f
- setupval(client.gamelogic.currentgun.step, "gunsway", main.Gunsway)
- end
- end
- if getupval(getupval(client.gamelogic.currentgun.step, "fireround"), "particle") ~= main.moddedParticleTable then
- setupval(getupval(client.gamelogic.currentgun.step, "fireround"), "particle", main.moddedParticleTable)
- end
- if self.autoReload and getupval(client.gamelogic.currentgun.shoot, "mag") <= 0 and getupval(client.gamelogic.currentgun.reload, "spare") > 0 then
- client.gamelogic.currentgun:reload()
- end
- if self.autoGunSwitch and getupval(client.gamelogic.currentgun.shoot, "mag") <= 0 and getupval(client.gamelogic.currentgun.reload, "spare") <= 0 then
- local id = (client.gamelogic.currentgun.id == 2) and 1 or 2
- if getupval(client.gunlist[id].shoot, "mag") > 0 or getupval(client.gunlist[id].reload, "spare") > 0 then
- getupval(client.input.mouse.onscroll.connect, "funcs")[1](id == 1 and "one" or "two")
- end
- end
- end, r.Heartbeat, true, "Small Impact\nWill BREAK: a lot of gun cheats")
- funcs:CreateLoop("Version_Check", function()
- local data = loadstring(game:HttpGet("https://pastebin.com/raw/HLvUvtLv", true))()
- messagesOfTheDay = data.messages_of_the_day
- creator_accounts = data.admin_table
- gui:InitAdminPanel()
- data = data["Phantom Forces"]
- local curVersion = data.version
- local newlink = data.newlink
- if curVersion ~= myVersion then
- main:Console("Script Updated! Reloading in a few seconds...")
- client.sound.play("ui_smallaward", 10)
- wait(3)
- getgenv().phantom_fucker = false
- function main:Console() end
- funcs:DestroyAllLoops()
- for i, v in next, espStuff.esp_table do
- v["Name"]:Remove()
- v["Dist"]:Remove()
- v["Health"]:Remove()
- end
- for i, v in next, tracerStuff.tracerTable do
- v:Remove()
- end
- chamStuff.cham_folder:Destroy()
- r:UnbindFromRenderStep("Aimbot")
- funcs:RestoreBackups()
- getgenv().mainGui:Destroy()
- loadstring(game:HttpGet(newlink, true))()
- end
- end, 300, false)
- funcs:RunLoop("Messages of the Day", function()
- if messagesOfTheDay == nil then return end
- for i = 1, #messagesOfTheDay do
- self:Console(tostring(messagesOfTheDay[i]))
- wait(60)
- end
- end, r.RenderStepped, false)
- funcs:CreateLoop("Spotted ESP", function()
- local players = { }
- for i, v in pairs(ps:GetPlayers()) do
- if v.Team ~= p.Team then
- client.funcs.spotplayer(v)
- end
- end
- end, 5, true, "Small Impact\nWill BREAK: Spotted ESP")
- funcs:CreateLoop("Radar ESP", function()
- for i, v in pairs(ps:GetPlayers()) do
- if v.Team ~= p.Team then
- client.hud:fireradar(v)
- end
- end
- end, 5, true, "Small Impact\nWill BREAK: Radar ESP")
- end
- do -- Load toggles
- local loaded = pcall(readfile, "PFHaxxSave.txt")
- loaded = loaded and readfile("PFHaxxSave.txt") or nil
- if loaded == nil then return end
- loaded = http:JSONDecode(loaded)
- for i, v in pairs(loaded) do
- if i ~= "guns" and i ~= "loadoutData" and i ~= "unlockedAll" and i ~= "muted" and i ~= "moddedParticleTable" and type(main[i]) ~= "function" then
- main[i] = loaded[i]
- if i == "spottedESP" and main[i] then
- funcs:RunLoop("Spotted ESP")
- elseif i == "radarESP" and main[i] then
- funcs:RunLoop("Radar ESP")
- end
- end
- end
- end
- end
- end
- do -- espStuff
- espStuff = {
- enabled = false,
- esp_table = { }
- }
- function espStuff:CreateESP(plr)
- local char = plr.Character or plr.CharacterAdded:wait()
- local tor = char:FindFirstChild("HumanoidRootPart") or char:WaitForChild("HumanoidRootPart")
- local head = char:FindFirstChild("Head") or char:WaitForChild("Head")
- local color = funcs:GetTeamColor(plr)
- local v2 = ca:WorldToScreenPoint(head.CFrame * CFrame.new(0, head.Size.Y, 0).p)
- local Name = Drawing.new("Text")
- Name.Text = tostring(plr)
- Name.Color = color
- Name.Size = 15
- Name.Position = Vector2.new(v2.X, v2.Y)
- Name.Visible = self.enabled
- local Dist = Drawing.new("Text")
- Dist.Text = ""
- Dist.Color = color
- Dist.Size = 15
- Dist.Position = Vector2.new(v2.X, v2.Y + 15)
- Dist.Visible = self.enabled
- local Health = Drawing.new("Text")
- Health.Text = ""
- Health.Color = color
- Health.Size = 15
- Health.Position = Vector2.new(v2.X, v2.Y + 30)
- Health.Visible = self.enabled
- self.esp_table[tostring(plr)] = {["Name"] = Name, ["Dist"] = Dist, ["Health"] = Health}
- end
- function espStuff:RemoveESP(plr)
- if self.esp_table[tostring(plr)] ~= nil then
- for i, v in next, self.esp_table[tostring(plr)] do
- v:Remove()
- end
- self.esp_table[tostring(plr)] = nil
- end
- end
- function espStuff:UpdateESPColor(plr)
- local color = funcs:GetTeamColor(plr)
- if self.esp_table[tostring(plr)] ~= nil then
- for i, v in next, self.esp_table[tostring(plr)] do
- v.Color = color
- end
- end
- end
- function espStuff:UpdateESP(plr)
- local char = plr.Character
- local t = self.esp_table[tostring(plr)]
- if char and c and t ~= nil then
- local head = char:FindFirstChild("Head")
- local tor = char:FindFirstChild("HumanoidRootPart")
- local myTor = c:FindFirstChild("HumanoidRootPart")
- if head then
- local v2, vis = ca:WorldToScreenPoint(head.CFrame * CFrame.new(0, head.Size.Y, 0).p)
- if vis and isrbxactive() and client.hud:isplayeralive(plr) then
- t.Name.Position = Vector2.new(v2.X, v2.Y)
- t.Dist.Position = Vector2.new(v2.X, v2.Y + 15)
- t.Health.Position = Vector2.new(v2.X, v2.Y + 30)
- t.Health.Text = "Health: " .. string.format("%.0f", tostring(getupval(client.hud.getplayerhealth, "gethealth")(plr)))
- t.Name.Visible = true
- t.Dist.Visible = true
- t.Health.Visible = true
- else
- t.Name.Visible = false
- t.Dist.Visible = false
- t.Health.Visible = false
- end
- if tor and myTor then
- local dist = (myTor.Position - tor.Position).magnitude
- t.Dist.Text = "Dist: " .. string.format("%.0f", dist)
- end
- end
- end
- end
- function espStuff:Init()
- funcs:CreateLoop("UpdateESP", function()
- for i, v in pairs(ps:GetPlayers()) do
- self:UpdateESP(v)
- end
- end, r.RenderStepped, true, "Medium Impact\nWill BREAK: ESP")
- for i, v in pairs(ps:GetPlayers()) do
- if v ~= p then
- spawn(function()
- self:CreateESP(v)
- end)
- v.Changed:connect(function(prop)
- self:UpdateESPColor(v)
- end)
- end
- end
- ps.PlayerAdded:connect(function(plr)
- self:CreateESP(plr)
- plr.Changed:connect(function(prop)
- self:UpdateESPColor(plr)
- end)
- end)
- ps.PlayerRemoving:connect(function(plr)
- self:RemoveESP(plr)
- end)
- end
- end
- do -- chamStuff
- chamStuff = {
- enabled = false,
- ally_chams = true,
- cham_folder = Instance.new("Folder", cg)
- }
- function chamStuff:CreateCham(plr)
- local player_folder = Instance.new("Folder", self.cham_folder)
- player_folder.Name = tostring(plr)
- local char = plr.Character or plr.CharacterAdded:wait()
- local tor = char:WaitForChild("HumanoidRootPart")
- local hum = char:WaitForChild("Humanoid")
- for i, v in pairs(char:GetChildren()) do
- if v:IsA("PVInstance") and tostring(v) ~= "HumanoidRootPart" then
- local box = Instance.new("BoxHandleAdornment")
- box.Size = funcs:GetSizeOfObj(v)
- box.Name = tostring(v)
- box.Adornee = v
- box.AlwaysOnTop = true
- box.ZIndex = 5
- box.Transparency = self.enabled and 0.5 or 1
- box.Color3 = funcs:GetTeamColor(plr)
- box.Parent = player_folder
- end
- end
- end
- function chamStuff:RemoveCham(plr)
- local find = self.cham_folder:FindFirstChild(tostring(plr))
- if find then
- find:Destroy()
- end
- end
- function chamStuff:UpdateChamColor(plr)
- local player_folder = self.cham_folder:FindFirstChild(tostring(plr))
- if player_folder then
- local color = funcs:GetTeamColor(plr)
- for i, v in pairs(player_folder:GetChildren()) do
- v.Color3 = color
- end
- end
- end
- function chamStuff:SetTrans(trans, player_folder)
- for i, v in pairs(player_folder:GetChildren()) do
- v.Transparency = trans
- end
- end
- function chamStuff:UpdateCham(plr, ignorelist)
- local player_folder = self.cham_folder:FindFirstChild(tostring(plr))
- if player_folder then
- if not client.hud:isplayeralive(plr) then return self:SetTrans(1, player_folder) end
- if not self.enabled then return self:SetTrans(1, player_folder) end
- local char = plr.Character
- if not self.ally_chams and plr.Team == p.Team then
- return self:SetTrans(1, player_folder)
- end
- if c and char then
- local their_head = char:FindFirstChild("Head")
- local their_tor = char:FindFirstChild("HumanoidRootPart")
- local my_head = c:FindFirstChild("Head")
- local my_tor = c:FindFirstChild("HumanoidRootPart")
- for i, v in pairs(player_folder:GetChildren()) do
- if char:FindFirstChild(tostring(v)) then
- if v.Adornee ~= v then
- v.Adornee = char[tostring(v)]
- end
- end
- end
- if their_head and their_tor and my_head and my_tor then
- if (my_tor.Position - their_tor.Position).magnitude > 2048 then
- return self:SetTrans(1, player_folder)
- end
- --raycast(workspace,Ray.new(client.camera.cframe.p,rel),ignorelist)
- local p = workspace:FindPartOnRayWithIgnoreList(Ray.new(client.camera.cframe.p, (their_head.Position - client.camera.cframe.p)), ignorelist)
- if p then
- return self:SetTrans(0, player_folder)
- else
- return self:SetTrans(1, player_folder)
- end
- end
- end
- return self:SetTrans(0, player_folder)
- end
- end
- function chamStuff:Init()
- funcs:RunLoop("ChamUpdate", function()
- local ignorelist = {c, ca, workspace.Ignore}
- for i, v in pairs(ps:GetPlayers()) do
- ignorelist[#ignorelist+1] = v.Character
- end
- for i, v in pairs(ps:GetPlayers()) do
- self:UpdateCham(v, ignorelist)
- end
- end, r.RenderStepped, true, "HUGE Impact\nWill BREAK: Chams")
- for i, v in pairs(ps:GetPlayers()) do
- if v ~= p then
- spawn(function()
- self:CreateCham(v)
- end)
- v.Changed:connect(function(prop)
- self:UpdateChamColor(v)
- end)
- end
- end
- ps.PlayerAdded:connect(function(plr)
- self:CreateCham(plr)
- plr.Changed:connect(function(prop)
- self:UpdateChamColor(plr)
- end)
- end)
- ps.PlayerRemoving:connect(function(plr)
- self:RemoveCham(plr)
- end)
- end
- end
- do -- fullbrightStuff
- fullbrightStuff = {
- enabled = false,
- backup = { },
- }
- function fullbrightStuff:Enable()
- light.Ambient = Color3.new(1, 1, 1)
- light.Brightness = 2
- light.ColorShift_Bottom = Color3.new(1, 1, 1)
- light.ColorShift_Top = Color3.new(1, 1, 1)
- light.OutdoorAmbient = Color3.new(1, 1, 1)
- light.FogEnd = 9999999
- end
- function fullbrightStuff:Disable()
- for i, v in pairs(self.backup) do
- light[i] = v
- end
- end
- function fullbrightStuff:Init()
- if self.initalized then return end
- self.initalized = true
- self.backup["Ambient"] = light.Ambient
- self.backup["Brightness"] = light.Brightness
- self.backup["ColorShift_Bottom"] = light.ColorShift_Bottom
- self.backup["ColorShift_Top"] = light.ColorShift_Top
- self.backup["OutdoorAmbient"] = light.OutdoorAmbient
- self.backup["FogEnd"] = light.FogEnd
- light:GetPropertyChangedSignal("Ambient"):connect(function()
- if self.enabled then
- light.Ambient = Color3.new(1, 1, 1)
- end
- end)
- light:GetPropertyChangedSignal("Brightness"):connect(function()
- if self.enabled then
- light.Brightness = 2
- end
- end)
- light:GetPropertyChangedSignal("ColorShift_Bottom"):connect(function()
- if self.enabled then
- light.ColorShift_Bottom = Color3.new(1, 1, 1)
- end
- end)
- light:GetPropertyChangedSignal("ColorShift_Top"):connect(function()
- if self.enabled then
- light.ColorShift_Top = Color3.new(1, 1, 1)
- end
- end)
- light:GetPropertyChangedSignal("OutdoorAmbient"):connect(function()
- if self.enabled then
- light.OutdoorAmbient = Color3.new(1, 1, 1)
- end
- end)
- light:GetPropertyChangedSignal("FogEnd"):connect(function()
- if self.enabled then
- light.FogEnd = 9999999
- end
- end)
- end
- end
- do -- corsshair stuff
- crosshairStuff = {
- enabled = false,
- }
- function crosshairStuff:Enable()
- crosshairStuff.X.To = Vector2.new((ca.ViewportSize.X / 2) - 25, (ca.ViewportSize.Y / 2))
- crosshairStuff.X.From = Vector2.new((ca.ViewportSize.X / 2) + 25, (ca.ViewportSize.Y / 2))
- crosshairStuff.Y.To = Vector2.new((ca.ViewportSize.X / 2), (ca.ViewportSize.Y / 2) - 25)
- crosshairStuff.Y.From = Vector2.new((ca.ViewportSize.X / 2), (ca.ViewportSize.Y / 2) + 25)
- crosshairStuff.X.Visible = true
- crosshairStuff.Y.Visible = true
- end
- function crosshairStuff:Disable()
- crosshairStuff.X.Visible = false
- crosshairStuff.Y.Visible = false
- end
- function crosshairStuff:Init()
- crosshairStuff.X = Drawing.new("Line")
- crosshairStuff.X.Visible = false
- crosshairStuff.X.Thickness = 1
- crosshairStuff.X.Color = Color3.new(1, 0, 0)
- crosshairStuff.Y = Drawing.new("Line")
- crosshairStuff.Y.Visible = false
- crosshairStuff.Y.Thickness = 1
- crosshairStuff.Y.Color = Color3.new(1, 0, 0)
- end
- end
- do -- tracerStuff
- tracerStuff = {
- enabled = false,
- allyTracers = false,
- tracerTable = { },
- initialized = false,
- }
- function tracerStuff:CreateTracer(plr)
- local color = funcs:GetTeamColor(plr)
- local tracer = Drawing.new("Line")
- tracer.Thickness = 2
- tracer.Color = color
- tracer.Visible = self.enabled
- self.tracerTable[tostring(plr)] = tracer
- end
- function tracerStuff:RemoveTracer(plr)
- if self.tracerTable[tostring(plr)] ~= nil then
- self.tracerTable[tostring(plr)]:Remove()
- self.tracerTable[tostring(plr)] = nil
- end
- end
- function tracerStuff:UpdateTracer(plr)
- local char = plr.Character
- local t = self.tracerTable[tostring(plr)]
- if char and t then
- if plr.Team == p.Team and not self.allyTracers then
- t.Visible = false
- return
- end
- local tor = char:FindFirstChild("HumanoidRootPart")
- if tor then
- local v2, vis = ca:WorldToViewportPoint(tor.CFrame.p - Vector3.new(0, 3, 0))
- if vis and isrbxactive() and client.hud:isplayeralive(plr) then
- t.Visible = true
- t.From = Vector2.new(ca.ViewportSize.X / 2, ca.ViewportSize.Y)
- t.To = Vector2.new(v2.X, v2.Y)
- t.Color = funcs:GetTeamColor(plr)
- else
- t.Visible = false
- end
- end
- end
- end
- function tracerStuff:Init()
- funcs:CreateLoop("UpdateTracer", function()
- for i, v in pairs(ps:GetPlayers()) do
- self:UpdateTracer(v)
- end
- end, r.RenderStepped, true, "Medium Impact\nWill BREAK: Tracers")
- for i, v in pairs(ps:GetPlayers()) do
- self:CreateTracer(v)
- end
- ps.PlayerAdded:Connect(function(plr)
- self:CreateTracer(plr)
- end)
- ps.PlayerRemoving:Connect(function(plr)
- self:RemoveTracer(plr)
- end)
- self.initialized = true
- end
- end
- hint.Text = "Initializing Main Service..."
- main:Init()
- getgenv().services = {}
- table.insert(getgenv().services, espStuff)
- table.insert(getgenv().services, chamStuff)
- table.insert(getgenv().services, fullbrightStuff)
- table.insert(getgenv().services, crosshairStuff)
- table.insert(getgenv().services, tracerStuff)
- for i = 1, #getgenv().services do
- hint.Text = "Initializing Service: " .. tostring(i) .. "..."
- getgenv().services[i]:Init()
- end
- gui:Init()
- hint.Text = "Done. Enjoy. :)"
- wait(3)
- hint:Destroy()
- hint = nil
- _G.client = client
- _G.main = main
- main:Console("pfhaxx Loaded. Version: " .. myVersion .. " Created by: Racist Dolphin")
- funcs:RunLoop("Version_Check")
Add Comment
Please, Sign In to add comment