local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local plr = Players.LocalPlayer
local pgui = plr:WaitForChild("PlayerGui")
for _, v in ipairs({"PPClaimGUI", "MiniPPClaim", "RandomPlayerPoint", "FluentPPClaimer", "PPUtilityGUI"}) do
local g = pgui:FindFirstChild(v)
if g then pcall(function() g:Destroy() end) end
end
local gui = Instance.new("ScreenGui")
gui.Name = "PPUtilityGUI"
gui.ResetOnSpawn = false
gui.Parent = pgui
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 290, 0, 275)
frame.Position = UDim2.new(0.02, 0, 0.7, 0)
frame.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
frame.BackgroundTransparency = 0.25
frame.Active = true
frame.Draggable = true
frame.Parent = gui
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 6)
corner.Parent = frame
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(90, 90, 90)
stroke.Thickness = 1
stroke.Parent = frame
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -10, 0, 20)
title.Position = UDim2.new(0, 5, 0, 5)
title.BackgroundTransparency = 1
title.Font = Enum.Font.GothamBold
title.TextScaled = true
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.Text = "PP Claimer + Utility"
title.Parent = frame
local function makeBtn(text, y)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, -10, 0, 35)
btn.Position = UDim2.new(0, 5, 0, y)
btn.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
btn.AutoButtonColor = true
btn.Font = Enum.Font.GothamBold
btn.TextScaled = true
btn.TextColor3 = Color3.fromRGB(255, 255, 255)
btn.Text = text
btn.Parent = frame
local bc = Instance.new("UICorner")
bc.CornerRadius = UDim.new(0, 4)
bc.Parent = btn
return btn
end
local btnAll = makeBtn("Claim All In CurrentArea (5s)", 30)
local btnMini = makeBtn("Instant Minis In CurrentArea", 70)
local btnHeal = makeBtn("Heal", 150)
local btnGod = makeBtn("Godmode: OFF", 190)
local status = Instance.new("TextLabel")
status.Size = UDim2.new(1, -10, 0, 16)
status.Position = UDim2.new(0, 5, 0, 110)
status.BackgroundTransparency = 1
status.Font = Enum.Font.Gotham
status.TextScaled = true
status.TextColor3 = Color3.fromRGB(200, 200, 200)
status.Text = "Status: Idle"
status.Parent = frame
local function findTouchModule()
local char = plr.Character
if not char then return nil end
local ec = char:FindFirstChild("EngineCharacter")
if ec then
local touch = ec:FindFirstChild("Touch")
if touch then
local points = touch:FindFirstChild("Points")
if points then
for _, v in ipairs(points:GetChildren()) do
if v:IsA("ModuleScript") and string.find(string.lower(v.Name), "playerpoint") and not string.find(string.lower(v.Name), "lock") and not string.find(string.lower(v.Name), "mini") then
return v
end
end
end
end
end
local wsChar = Workspace:FindFirstChild(plr.Name)
if wsChar then
local ec2 = wsChar:FindFirstChild("EngineCharacter")
if ec2 then
local touch = ec2:FindFirstChild("Touch")
if touch then
local points = touch:FindFirstChild("Points")
if points then
for _, v in ipairs(points:GetChildren()) do
if v:IsA("ModuleScript") and string.find(string.lower(v.Name), "playerpoint") and not string.find(string.lower(v.Name), "lock") and not string.find(string.lower(v.Name), "mini") then
return v
end
end
end
end
end
end
return nil
end
local function getTouchFunc()
local mod = findTouchModule()
if not mod then return nil end
local ok, modTable = pcall(require, mod)
if ok and type(modTable) == "table" and type(modTable.Touch) == "function" then
return modTable.Touch, modTable
end
return nil
end
local function getRootPart(v)
if v:IsA("BasePart") then return v end
for _, child in ipairs(v:GetDescendants()) do
if child:IsA("BasePart") then return child end
end
return nil
end
local function tpTo(v)
local char = plr.Character
if not char then return end
local hrp = char:FindFirstChild("HumanoidRootPart")
if not hrp then return end
local root = getRootPart(v)
if root then
hrp.CFrame = root.CFrame + Vector3.new(0, 5, 0)
end
end
btnAll.Activated:Connect(function()
if btnAll.AutoButtonColor == false then return end
btnAll.AutoButtonColor = false
local touchFunc, touchMod = getTouchFunc()
if not touchFunc then status.Text = "Status: No Touch Module"; task.wait(2); status.Text = "Status: Idle"; btnAll.AutoButtonColor = true; return end
local area = Workspace:FindFirstChild("CurrentArea")
if not area then status.Text = "Status: No CurrentArea"; task.wait(2); status.Text = "Status: Idle"; btnAll.AutoButtonColor = true; return end
local ppFolder = area:FindFirstChild("PlayerPoints")
if not ppFolder then status.Text = "Status: No PlayerPoints Folder"; task.wait(2); status.Text = "Status: Idle"; btnAll.AutoButtonColor = true; return end
local list = {}
for _, v in ipairs(ppFolder:GetChildren()) do
if v:GetAttribute("Collected") ~= true then table.insert(list, v) end
end
if #list == 0 then status.Text = "Status: None Uncollected"; task.wait(2); status.Text = "Status: Idle"; btnAll.AutoButtonColor = true; return end
task.spawn(function()
for i, pp in ipairs(list) do
status.Text = "Status: ["..i.."/"..#list.."] "..pp.Name
tpTo(pp)
task.wait(0.8)
pcall(function()
if touchMod then touchMod:Touch(pp) else touchFunc(pp) end
end)
if i < #list then task.wait(5) end
end
status.Text = "Status: Idle"
btnAll.AutoButtonColor = true
end)
end)
btnMini.Activated:Connect(function()
if btnMini.AutoButtonColor == false then return end
btnMini.AutoButtonColor = false
local touchFunc, touchMod = getTouchFunc()
if not touchFunc then status.Text = "Status: No Touch Module"; task.wait(2); status.Text = "Status: Idle"; btnMini.AutoButtonColor = true; return end
local area = Workspace:FindFirstChild("CurrentArea")
if not area then status.Text = "Status: No CurrentArea"; task.wait(2); status.Text = "Status: Idle"; btnMini.AutoButtonColor = true; return end
local miniFolder = area:FindFirstChild("MiniPlayerPoints")
if not miniFolder then status.Text = "Status: No MiniPlayerPoints Folder"; task.wait(2); status.Text = "Status: Idle"; btnMini.AutoButtonColor = true; return end
local list = {}
for _, v in ipairs(miniFolder:GetChildren()) do
if v:GetAttribute("Collected") ~= true then table.insert(list, v) end
end
if #list == 0 then status.Text = "Status: None Uncollected"; task.wait(2); status.Text = "Status: Idle"; btnMini.AutoButtonColor = true; return end
task.spawn(function()
for i, mp in ipairs(list) do
status.Text = "Status: [MINI "..i.."/"..#list.."] "..mp.Name
tpTo(mp)
task.wait(0.4)
pcall(function()
if touchMod then touchMod:Touch(mp) else touchFunc(mp) end
end)
task.wait(0.25)
end
status.Text = "Status: Idle"
btnMini.AutoButtonColor = true
end)
end)
btnHeal.Activated:Connect(function()
pcall(function()
local ev = ReplicatedStorage:FindFirstChild("Remotes"):FindFirstChild("Server"):FindFirstChild("Heal")
if ev then ev:FireServer() end
end)
btnHeal.Text = "Healed!"
task.wait(1)
btnHeal.Text = "Heal"
end)
local godmode = false
local oldNamecall
btnGod.Activated:Connect(function()
if not godmode then
local mt = getrawmetatable(game)
oldNamecall = mt.__namecall
setreadonly(mt, false)
mt.__namecall = newcclosure(function(self, ...)
local method = getnamecallmethod()
if method == "FireServer" and typeof(self) == "Instance" and self.Name == "TakeDamage" then
local p = self.Parent
if p and p.Name == "Server" then
return
end
end
return oldNamecall(self, ...)
end)
setreadonly(mt, true)
godmode = true
btnGod.Text = "Godmode: ON"
else
if oldNamecall then
local mt = getrawmetatable(game)
setreadonly(mt, false)
mt.__namecall = oldNamecall
setreadonly(mt, true)
end
godmode = false
btnGod.Text = "Godmode: OFF"
end
end)its a gui wher eu can claim all playerpoints in currentarea aswell as mini playerpoints also utiilites such as heal and godmode
No comments yet. Be the first to comment!
1local Players = game:GetService("Players")
2local Workspace = game:GetService("Workspace")
3local ReplicatedStorage = game:GetService("ReplicatedStorage")
4local plr = Players.LocalPlayer
5local pgui = plr:WaitForChild("PlayerGui")
6
7for _, v in ipairs({"PPClaimGUI", "MiniPPClaim", "RandomPlayerPoint", "FluentPPClaimer", "PPUtilityGUI"}) do
8 local g = pgui:FindFirstChild(v)
9 if g then pcall(function() g:Destroy() end) end
10end
11
12local gui = Instance.new("ScreenGui")
13gui.Name = "PPUtilityGUI"
14gui.ResetOnSpawn = false
15gui.Parent = pgui
16
17local frame = Instance.new("Frame")
18frame.Size = UDim2.new(0, 290, 0, 275)
19frame.Position = UDim2.new(0.02, 0, 0.7, 0)
20frame.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
21frame.BackgroundTransparency = 0.25
22frame.Active = true
23frame.Draggable = true
24frame.Parent = gui
25
26local corner = Instance.new("UICorner")
27corner.CornerRadius = UDim.new(0, 6)
28corner.Parent = frame
29
30local stroke = Instance.new("UIStroke")
31stroke.Color = Color3.fromRGB(90, 90, 90)
32stroke.Thickness = 1
33stroke.Parent = frame
34
35local title = Instance.new("TextLabel")
36title.Size = UDim2.new(1, -10, 0, 20)
37title.Position = UDim2.new(0, 5, 0, 5)
38title.BackgroundTransparency = 1
39title.Font = Enum.Font.GothamBold
40title.TextScaled = true
41title.TextColor3 = Color3.fromRGB(255, 255, 255)
42title.Text = "PP Claimer + Utility"
43title.Parent = frame
44
45local function makeBtn(text, y)
46 local btn = Instance.new("TextButton")
47 btn.Size = UDim2.new(1, -10, 0, 35)
48 btn.Position = UDim2.new(0, 5, 0, y)
49 btn.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
50 btn.AutoButtonColor = true
51 btn.Font = Enum.Font.GothamBold
52 btn.TextScaled = true
53 btn.TextColor3 = Color3.fromRGB(255, 255, 255)
54 btn.Text = text
55 btn.Parent = frame
56 local bc = Instance.new("UICorner")
57 bc.CornerRadius = UDim.new(0, 4)
58 bc.Parent = btn
59 return btn
60end
61
62local btnAll = makeBtn("Claim All In CurrentArea (5s)", 30)
63local btnMini = makeBtn("Instant Minis In CurrentArea", 70)
64local btnHeal = makeBtn("Heal", 150)
65local btnGod = makeBtn("Godmode: OFF", 190)
66
67local status = Instance.new("TextLabel")
68status.Size = UDim2.new(1, -10, 0, 16)
69status.Position = UDim2.new(0, 5, 0, 110)
70status.BackgroundTransparency = 1
71status.Font = Enum.Font.Gotham
72status.TextScaled = true
73status.TextColor3 = Color3.fromRGB(200, 200, 200)
74status.Text = "Status: Idle"
75status.Parent = frame
76
77local function findTouchModule()
78 local char = plr.Character
79 if not char then return nil end
80 local ec = char:FindFirstChild("EngineCharacter")
81 if ec then
82 local touch = ec:FindFirstChild("Touch")
83 if touch then
84 local points = touch:FindFirstChild("Points")
85 if points then
86 for _, v in ipairs(points:GetChildren()) do
87 if v:IsA("ModuleScript") and string.find(string.lower(v.Name), "playerpoint") and not string.find(string.lower(v.Name), "lock") and not string.find(string.lower(v.Name), "mini") then
88 return v
89 end
90 end
91 end
92 end
93 end
94 local wsChar = Workspace:FindFirstChild(plr.Name)
95 if wsChar then
96 local ec2 = wsChar:FindFirstChild("EngineCharacter")
97 if ec2 then
98 local touch = ec2:FindFirstChild("Touch")
99 if touch then
100 local points = touch:FindFirstChild("Points")
101 if points then
102 for _, v in ipairs(points:GetChildren()) do
103 if v:IsA("ModuleScript") and string.find(string.lower(v.Name), "playerpoint") and not string.find(string.lower(v.Name), "lock") and not string.find(string.lower(v.Name), "mini") then
104 return v
105 end
106 end
107 end
108 end
109 end
110 end
111 return nil
112end
113
114local function getTouchFunc()
115 local mod = findTouchModule()
116 if not mod then return nil end
117 local ok, modTable = pcall(require, mod)
118 if ok and type(modTable) == "table" and type(modTable.Touch) == "function" then
119 return modTable.Touch, modTable
120 end
121 return nil
122end
123
124local function getRootPart(v)
125 if v:IsA("BasePart") then return v end
126 for _, child in ipairs(v:GetDescendants()) do
127 if child:IsA("BasePart") then return child end
128 end
129 return nil
130end
131
132local function tpTo(v)
133 local char = plr.Character
134 if not char then return end
135 local hrp = char:FindFirstChild("HumanoidRootPart")
136 if not hrp then return end
137 local root = getRootPart(v)
138 if root then
139 hrp.CFrame = root.CFrame + Vector3.new(0, 5, 0)
140 end
141end
142
143btnAll.Activated:Connect(function()
144 if btnAll.AutoButtonColor == false then return end
145 btnAll.AutoButtonColor = false
146 local touchFunc, touchMod = getTouchFunc()
147 if not touchFunc then status.Text = "Status: No Touch Module"; task.wait(2); status.Text = "Status: Idle"; btnAll.AutoButtonColor = true; return end
148 local area = Workspace:FindFirstChild("CurrentArea")
149 if not area then status.Text = "Status: No CurrentArea"; task.wait(2); status.Text = "Status: Idle"; btnAll.AutoButtonColor = true; return end
150 local ppFolder = area:FindFirstChild("PlayerPoints")
151 if not ppFolder then status.Text = "Status: No PlayerPoints Folder"; task.wait(2); status.Text = "Status: Idle"; btnAll.AutoButtonColor = true; return end
152 local list = {}
153 for _, v in ipairs(ppFolder:GetChildren()) do
154 if v:GetAttribute("Collected") ~= true then table.insert(list, v) end
155 end
156 if #list == 0 then status.Text = "Status: None Uncollected"; task.wait(2); status.Text = "Status: Idle"; btnAll.AutoButtonColor = true; return end
157 task.spawn(function()
158 for i, pp in ipairs(list) do
159 status.Text = "Status: ["..i.."/"..#list.."] "..pp.Name
160 tpTo(pp)
161 task.wait(0.8)
162 pcall(function()
163 if touchMod then touchMod:Touch(pp) else touchFunc(pp) end
164 end)
165 if i < #list then task.wait(5) end
166 end
167 status.Text = "Status: Idle"
168 btnAll.AutoButtonColor = true
169 end)
170end)
171
172btnMini.Activated:Connect(function()
173 if btnMini.AutoButtonColor == false then return end
174 btnMini.AutoButtonColor = false
175 local touchFunc, touchMod = getTouchFunc()
176 if not touchFunc then status.Text = "Status: No Touch Module"; task.wait(2); status.Text = "Status: Idle"; btnMini.AutoButtonColor = true; return end
177 local area = Workspace:FindFirstChild("CurrentArea")
178 if not area then status.Text = "Status: No CurrentArea"; task.wait(2); status.Text = "Status: Idle"; btnMini.AutoButtonColor = true; return end
179 local miniFolder = area:FindFirstChild("MiniPlayerPoints")
180 if not miniFolder then status.Text = "Status: No MiniPlayerPoints Folder"; task.wait(2); status.Text = "Status: Idle"; btnMini.AutoButtonColor = true; return end
181 local list = {}
182 for _, v in ipairs(miniFolder:GetChildren()) do
183 if v:GetAttribute("Collected") ~= true then table.insert(list, v) end
184 end
185 if #list == 0 then status.Text = "Status: None Uncollected"; task.wait(2); status.Text = "Status: Idle"; btnMini.AutoButtonColor = true; return end
186 task.spawn(function()
187 for i, mp in ipairs(list) do
188 status.Text = "Status: [MINI "..i.."/"..#list.."] "..mp.Name
189 tpTo(mp)
190 task.wait(0.4)
191 pcall(function()
192 if touchMod then touchMod:Touch(mp) else touchFunc(mp) end
193 end)
194 task.wait(0.25)
195 end
196 status.Text = "Status: Idle"
197 btnMini.AutoButtonColor = true
198 end)
199end)
200
201btnHeal.Activated:Connect(function()
202 pcall(function()
203 local ev = ReplicatedStorage:FindFirstChild("Remotes"):FindFirstChild("Server"):FindFirstChild("Heal")
204 if ev then ev:FireServer() end
205 end)
206 btnHeal.Text = "Healed!"
207 task.wait(1)
208 btnHeal.Text = "Heal"
209end)
210
211local godmode = false
212local oldNamecall
213btnGod.Activated:Connect(function()
214 if not godmode then
215 local mt = getrawmetatable(game)
216 oldNamecall = mt.__namecall
217 setreadonly(mt, false)
218 mt.__namecall = newcclosure(function(self, ...)
219 local method = getnamecallmethod()
220 if method == "FireServer" and typeof(self) == "Instance" and self.Name == "TakeDamage" then
221 local p = self.Parent
222 if p and p.Name == "Server" then
223 return
224 end
225 end
226 return oldNamecall(self, ...)
227 end)
228 setreadonly(mt, true)
229 godmode = true
230 btnGod.Text = "Godmode: ON"
231 else
232 if oldNamecall then
233 local mt = getrawmetatable(game)
234 setreadonly(mt, false)
235 mt.__namecall = oldNamecall
236 setreadonly(mt, true)
237 end
238 godmode = false
239 btnGod.Text = "Godmode: OFF"
240 end
241end)