-
Notifications
You must be signed in to change notification settings - Fork 0
/
FPSBooster.lua
380 lines (376 loc) · 16.2 KB
/
FPSBooster.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
if not _G.Ignore then
_G.Ignore = {}
end
if not _G.WaitPerAmount then
_G.WaitPerAmount = 500
end
if _G.SendNotifications == nil then
_G.SendNotifications = false
end
if _G.ConsoleLogs == nil then
_G.ConsoleLogs = false
end
if not game:IsLoaded() then
repeat
task.wait()
until game:IsLoaded()
end
if not _G.Settings then
_G.Settings = {
Players = {
["Ignore Me"] = true,
["Ignore Others"] = true,
["Ignore Tools"] = true
},
Meshes = {
NoMesh = true,
NoTexture = true,
Destroy = true
},
Images = {
Invisible = true,
Destroy = true
},
Explosions = {
Smaller = true,
Invisible = false, -- Not recommended for PVP games
Destroy = false -- Not recommended for PVP games
},
Particles = {
Invisible = true,
Destroy = true
},
TextLabels = {
LowerQuality = true,
Invisible = true,
Destroy = true
},
MeshParts = {
LowerQuality = true,
Invisible = true,
NoTexture = true,
NoMesh = true,
Destroy = true
},
Other = {
["FPS Cap"] = 360, -- Set this true to uncap FPS
["No Camera Effects"] = true,
["No Clothes"] = true,
["Low Water Graphics"] = true,
["No Shadows"] = true,
["Low Rendering"] = true,
["Low Quality Parts"] = true,
["Low Quality Models"] = true,
["Reset Materials"] = true,
["Lower Quality MeshParts"] = true
}
}
end
local Players, Lighting, StarterGui, MaterialService = game:GetService("Players"), game:GetService("Lighting"), game:GetService("StarterGui"), game:GetService("MaterialService")
local ME, CanBeEnabled = Players.LocalPlayer, {"ParticleEmitter", "Trail", "Smoke", "Fire", "Sparkles"}
local function PartOfCharacter(Instance)
for i, v in pairs(Players:GetPlayers()) do
if v ~= ME and v.Character and Instance:IsDescendantOf(v.Character) then
return true
end
end
return false
end
local function DescendantOfIgnore(Instance)
for i, v in pairs(_G.Ignore) do
if Instance:IsDescendantOf(v) then
return true
end
end
return false
end
local function CheckIfBad(Instance)
if not Instance:IsDescendantOf(Players) and (_G.Settings.Players["Ignore Others"] and not PartOfCharacter(Instance) or not _G.Settings.Players["Ignore Others"]) and (_G.Settings.Players["Ignore Me"] and ME.Character and not Instance:IsDescendantOf(ME.Character) or not _G.Settings.Players["Ignore Me"]) and (_G.Settings.Players["Ignore Tools"] and not Instance:IsA("BackpackItem") and not Instance:FindFirstAncestorWhichIsA("BackpackItem") or not _G.Settings.Players["Ignore Tools"])--[[not PartOfCharacter(Instance)]] and (_G.Ignore and not table.find(_G.Ignore, Instance) and not DescendantOfIgnore(Instance) or (not _G.Ignore or type(_G.Ignore) ~= "table" or #_G.Ignore <= 0)) then
if Instance:IsA("DataModelMesh") then
if _G.Settings.Meshes.NoMesh and Instance:IsA("SpecialMesh") then
Instance.MeshId = ""
end
if _G.Settings.Meshes.NoTexture and Instance:IsA("SpecialMesh") then
Instance.TextureId = ""
end
if _G.Settings.Meshes.Destroy or _G.Settings["No Meshes"] then
Instance:Destroy()
end
elseif Instance:IsA("FaceInstance") then
if _G.Settings.Images.Invisible then
Instance.Transparency = 1
Instance.Shiny = 1
end
if _G.Settings.Images.LowDetail then
Instance.Shiny = 1
end
if _G.Settings.Images.Destroy then
Instance:Destroy()
end
elseif Instance:IsA("ShirtGraphic") then
if _G.Settings.Images.Invisible then
Instance.Graphic = ""
end
if _G.Settings.Images.Destroy then
Instance:Destroy()
end
elseif table.find(CanBeEnabled, Instance.ClassName) then
if _G.Settings["Invisible Particles"] or _G.Settings["No Particles"] or (_G.Settings.Other and _G.Settings.Other["Invisible Particles"]) or (_G.Settings.Particles and _G.Settings.Particles.Invisible) then
Instance.Enabled = false
end
if (_G.Settings.Other and _G.Settings.Other["No Particles"]) or (_G.Settings.Particles and _G.Settings.Particles.Destroy) then
Instance:Destroy()
end
elseif Instance:IsA("PostEffect") and (_G.Settings["No Camera Effects"] or (_G.Settings.Other and _G.Settings.Other["No Camera Effects"])) then
Instance.Enabled = false
elseif Instance:IsA("Explosion") then
if _G.Settings["Smaller Explosions"] or (_G.Settings.Other and _G.Settings.Other["Smaller Explosions"]) or (_G.Settings.Explosions and _G.Settings.Explosions.Smaller) then
Instance.BlastPressure = 1
Instance.BlastRadius = 1
end
if _G.Settings["Invisible Explosions"] or (_G.Settings.Other and _G.Settings.Other["Invisible Explosions"]) or (_G.Settings.Explosions and _G.Settings.Explosions.Invisible) then
Instance.BlastPressure = 1
Instance.BlastRadius = 1
Instance.Visible = false
end
if _G.Settings["No Explosions"] or (_G.Settings.Other and _G.Settings.Other["No Explosions"]) or (_G.Settings.Explosions and _G.Settings.Explosions.Destroy) then
Instance:Destroy()
end
elseif Instance:IsA("Clothing") or Instance:IsA("SurfaceAppearance") or Instance:IsA("BaseWrap") then
if _G.Settings["No Clothes"] or (_G.Settings.Other and _G.Settings.Other["No Clothes"]) then
Instance:Destroy()
end
elseif Instance:IsA("BasePart") and not Instance:IsA("MeshPart") then
if _G.Settings["Low Quality Parts"] or (_G.Settings.Other and _G.Settings.Other["Low Quality Parts"]) then
Instance.Material = Enum.Material.Plastic
Instance.Reflectance = 0
end
elseif Instance:IsA("TextLabel") and Instance:IsDescendantOf(workspace) then
if _G.Settings["Lower Quality TextLabels"] or (_G.Settings.Other and _G.Settings.Other["Lower Quality TextLabels"]) or (_G.Settings.TextLabels and _G.Settings.TextLabels.LowerQuality) then
Instance.Font = Enum.Font.SourceSans
Instance.TextScaled = false
Instance.RichText = false
Instance.TextSize = 14
end
if _G.Settings["Invisible TextLabels"] or (_G.Settings.Other and _G.Settings.Other["Invisible TextLabels"]) or (_G.Settings.TextLabels and _G.Settings.TextLabels.Invisible) then
Instance.Visible = false
end
if _G.Settings["No TextLabels"] or (_G.Settings.Other and _G.Settings.Other["No TextLabels"]) or (_G.Settings.TextLabels and _G.Settings.TextLabels.Destroy) then
Instance:Destroy()
end
elseif Instance:IsA("Model") then
if _G.Settings["Low Quality Models"] or (_G.Settings.Other and _G.Settings.Other["Low Quality Models"]) then
Instance.LevelOfDetail = 1
end
elseif Instance:IsA("MeshPart") then
if _G.Settings["Low Quality MeshParts"] or (_G.Settings.Other and _G.Settings.Other["Low Quality MeshParts"]) or (_G.Settings.MeshParts and _G.Settings.MeshParts.LowerQuality) then
Instance.RenderFidelity = 2
Instance.Reflectance = 0
Instance.Material = Enum.Material.Plastic
end
if _G.Settings["Invisible MeshParts"] or (_G.Settings.Other and _G.Settings.Other["Invisible MeshParts"]) or (_G.Settings.MeshParts and _G.Settings.MeshParts.Invisible) then
Instance.Transparency = 1
Instance.RenderFidelity = 2
Instance.Reflectance = 0
Instance.Material = Enum.Material.Plastic
end
if _G.Settings.MeshParts and _G.Settings.MeshParts.NoTexture then
Instance.TextureID = ""
end
if _G.Settings.MeshParts and _G.Settings.MeshParts.NoMesh then
Instance.MeshId = ""
end
if _G.Settings["No MeshParts"] or (_G.Settings.Other and _G.Settings.Other["No MeshParts"]) or (_G.Settings.MeshParts and _G.Settings.MeshParts.Destroy) then
Instance:Destroy()
end
end
end
end
if _G.SendNotifications then
StarterGui:SetCore("SendNotification", {
Title = "discord.gg/rokidmanager",
Text = "Loading FPS Booster...",
Duration = math.huge,
Button1 = "Okay"
})
end
coroutine.wrap(pcall)(function()
if (_G.Settings["Low Water Graphics"] or (_G.Settings.Other and _G.Settings.Other["Low Water Graphics"])) then
if not workspace:FindFirstChildOfClass("Terrain") then
repeat
task.wait()
until workspace:FindFirstChildOfClass("Terrain")
end
workspace:FindFirstChildOfClass("Terrain").WaterWaveSize = 0
workspace:FindFirstChildOfClass("Terrain").WaterWaveSpeed = 0
workspace:FindFirstChildOfClass("Terrain").WaterReflectance = 0
workspace:FindFirstChildOfClass("Terrain").WaterTransparency = 0
if sethiddenproperty then
sethiddenproperty(workspace:FindFirstChildOfClass("Terrain"), "Decoration", false)
else
StarterGui:SetCore("SendNotification", {
Title = "discord.gg/rokidmanager",
Text = "Your exploit does not support sethiddenproperty, please use a different exploit.",
Duration = 5,
Button1 = "Okay"
})
warn("Your exploit does not support sethiddenproperty, please use a different exploit.")
end
if _G.SendNotifications then
StarterGui:SetCore("SendNotification", {
Title = "discord.gg/rokidmanager",
Text = "Low Water Graphics Enabled",
Duration = 5,
Button1 = "Okay"
})
end
if _G.ConsoleLogs then
warn("Low Water Graphics Enabled")
end
end
end)
coroutine.wrap(pcall)(function()
if _G.Settings["No Shadows"] or (_G.Settings.Other and _G.Settings.Other["No Shadows"]) then
Lighting.GlobalShadows = false
Lighting.FogEnd = 9e9
Lighting.ShadowSoftness = 0
if sethiddenproperty then
sethiddenproperty(Lighting, "Technology", 2)
else
StarterGui:SetCore("SendNotification", {
Title = "discord.gg/rokidmanager",
Text = "Your exploit does not support sethiddenproperty, please use a different exploit.",
Duration = 5,
Button1 = "Okay"
})
warn("Your exploit does not support sethiddenproperty, please use a different exploit.")
end
if _G.SendNotifications then
StarterGui:SetCore("SendNotification", {
Title = "discord.gg/rokidmanager",
Text = "No Shadows Enabled",
Duration = 5,
Button1 = "Okay"
})
end
if _G.ConsoleLogs then
warn("No Shadows Enabled")
end
end
end)
coroutine.wrap(pcall)(function()
if _G.Settings["Low Rendering"] or (_G.Settings.Other and _G.Settings.Other["Low Rendering"]) then
settings().Rendering.QualityLevel = 1
settings().Rendering.MeshPartDetailLevel = Enum.MeshPartDetailLevel.Level04
if _G.SendNotifications then
StarterGui:SetCore("SendNotification", {
Title = "discord.gg/rokidmanager",
Text = "Low Rendering Enabled",
Duration = 5,
Button1 = "Okay"
})
end
if _G.ConsoleLogs then
warn("Low Rendering Enabled")
end
end
end)
coroutine.wrap(pcall)(function()
if _G.Settings["Reset Materials"] or (_G.Settings.Other and _G.Settings.Other["Reset Materials"]) then
for i, v in pairs(MaterialService:GetChildren()) do
v:Destroy()
end
MaterialService.Use2022Materials = false
if _G.SendNotifications then
StarterGui:SetCore("SendNotification", {
Title = "discord.gg/rokidmanager",
Text = "Reset Materials Enabled",
Duration = 5,
Button1 = "Okay"
})
end
if _G.ConsoleLogs then
warn("Reset Materials Enabled")
end
end
end)
coroutine.wrap(pcall)(function()
if _G.Settings["FPS Cap"] or (_G.Settings.Other and _G.Settings.Other["FPS Cap"]) then
if setfpscap then
if type(_G.Settings["FPS Cap"] or (_G.Settings.Other and _G.Settings.Other["FPS Cap"])) == "string" or type(_G.Settings["FPS Cap"] or (_G.Settings.Other and _G.Settings.Other["FPS Cap"])) == "number" then
setfpscap(tonumber(_G.Settings["FPS Cap"] or (_G.Settings.Other and _G.Settings.Other["FPS Cap"])))
if _G.SendNotifications then
StarterGui:SetCore("SendNotification", {
Title = "discord.gg/rokidmanager",
Text = "FPS Capped to " .. tostring(_G.Settings["FPS Cap"] or (_G.Settings.Other and _G.Settings.Other["FPS Cap"])),
Duration = 5,
Button1 = "Okay"
})
end
if _G.ConsoleLogs then
warn("FPS Capped to " .. tostring(_G.Settings["FPS Cap"] or (_G.Settings.Other and _G.Settings.Other["FPS Cap"])))
end
elseif _G.Settings["FPS Cap"] or (_G.Settings.Other and _G.Settings.Other["FPS Cap"]) == true then
setfpscap(1e6)
if _G.SendNotifications then
StarterGui:SetCore("SendNotification", {
Title = "discord.gg/rokidmanager",
Text = "FPS Uncapped",
Duration = 5,
Button1 = "Okay"
})
end
if _G.ConsoleLogs then
warn("FPS Uncapped")
end
end
else
StarterGui:SetCore("SendNotification", {
Title = "discord.gg/rokidmanager",
Text = "FPS Cap Failed",
Duration = math.huge,
Button1 = "Okay"
})
warn("FPS Cap Failed")
end
end
end)
game.DescendantAdded:Connect(function(value)
wait(_G.LoadedWait or 1)
CheckIfBad(value)
end)
local Descendants = game:GetDescendants()
local StartNumber = _G.WaitPerAmount or 500
local WaitNumber = _G.WaitPerAmount or 500
if _G.SendNotifications then
StarterGui:SetCore("SendNotification", {
Title = "discord.gg/rokidmanager",
Text = "Checking " .. #Descendants .. " Instances...",
Duration = 15,
Button1 = "Okay"
})
end
if _G.ConsoleLogs then
warn("Checking " .. #Descendants .. " Instances...")
end
for i, v in pairs(Descendants) do
CheckIfBad(v)
if i == WaitNumber then
task.wait()
if _G.ConsoleLogs then
print("Loaded " .. i .. "/" .. #Descendants)
end
WaitNumber = WaitNumber + StartNumber
end
end
StarterGui:SetCore("SendNotification", {
Title = "discord.gg/rokidmanager",
Text = "FPS Booster Loaded!",
Duration = math.huge,
Button1 = "Okay"
})
warn("FPS Booster Loaded!")
--game.DescendantAdded:Connect(CheckIfBad)
--[[game.DescendantAdded:Connect(function(value)
CheckIfBad(value)
end)]]