SHOW:
|
|
- or go back to the newest paste.
1 | local Player = game:GetService("Players").LocalPlayer; | |
2 | ||
3 | local function CreateGuiComponent( | |
4 | InstanceType, | |
5 | Parent, | |
6 | Size, | |
7 | Position, | |
8 | BackgroundColor, | |
9 | TextColor, | |
10 | Name, | |
11 | MiscellaneousProperties | |
12 | ) | |
13 | local GuiComponent = Instance.new(InstanceType, Parent); | |
14 | GuiComponent.Name = Name; | |
15 | pcall(function() | |
16 | GuiComponent.Size = Size; | |
17 | GuiComponent.Position = Position; | |
18 | end); | |
19 | pcall(function() | |
20 | GuiComponent.BackgroundColor3 = BackgroundColor; | |
21 | GuiComponent.BorderColor3 = BackgroundColor; | |
22 | GuiComponent.BorderSizePixel = 0; | |
23 | end); | |
24 | pcall(function() | |
25 | GuiComponent.TextColor3 = TextColor; | |
26 | end); | |
27 | if MiscellaneousProperties then | |
28 | for Key, Value in next, MiscellaneousProperties do | |
29 | pcall(function() | |
30 | GuiComponent[Key] = Value; | |
31 | end); | |
32 | end; | |
33 | end; | |
34 | return GuiComponent; | |
35 | end; | |
36 | ||
37 | local Menu = CreateGuiComponent( | |
38 | "ScreenGui", | |
39 | Player:WaitForChild("PlayerGui"), | |
40 | nil, | |
41 | nil, | |
42 | nil, | |
43 | nil, | |
44 | "FPS Hax - Menu", | |
45 | { | |
46 | ResetOnSpawn = false; | |
47 | } | |
48 | ); | |
49 | ||
50 | local Background = CreateGuiComponent( | |
51 | "Frame", | |
52 | Menu, | |
53 | UDim2.new(0, 200, 0, 170), | |
54 | UDim2.new(0, 5, 0, 5), | |
55 | Color3.new(1, 1, 1), | |
56 | nil, | |
57 | "Background" | |
58 | ); | |
59 | ||
60 | local TopDividerBar = CreateGuiComponent( | |
61 | "Frame", | |
62 | Background, | |
63 | UDim2.new(1, 0, 0, 2), | |
64 | UDim2.new(0, 0, 0, 30), | |
65 | Color3.new(0, 0, 0), | |
66 | nil, | |
67 | "TopDividerBar" | |
68 | ); | |
69 | ||
70 | local TopTextLabel = CreateGuiComponent( | |
71 | "TextLabel", | |
72 | Background, | |
73 | UDim2.new(1, 0, 0, 30), | |
74 | UDim2.new(0, 0, 0, 0), | |
75 | Color3.new(1, 1, 1), | |
76 | Color3.new(0, 0, 0), | |
77 | "TopTextLabel", | |
78 | { | |
79 | - | Text = "FPS Hax v2.0"; |
79 | + | Text = "FPS Hax v2.1"; |
80 | Font = Enum.Font.SourceSansBold; | |
81 | FontSize = Enum.FontSize.Size24; | |
82 | } | |
83 | ); | |
84 | ||
85 | local BottomDividerBar = CreateGuiComponent( | |
86 | "Frame", | |
87 | Background, | |
88 | UDim2.new(1, 0, 0, 2), | |
89 | UDim2.new(0, 0, 1, -32), | |
90 | Color3.new(0, 0, 0), | |
91 | nil, | |
92 | "BottomDividerBar" | |
93 | ); | |
94 | ||
95 | local BottomTextLabel = CreateGuiComponent( | |
96 | "TextLabel", | |
97 | Background, | |
98 | UDim2.new(1, 0, 0, 30), | |
99 | UDim2.new(0, 0, 1, -30), | |
100 | Color3.new(1, 1, 1), | |
101 | Color3.new(0, 0, 0), | |
102 | "BottomTextLabel", | |
103 | { | |
104 | Text = "Created by MedievalBeast4@V3rmillion"; | |
105 | Font = Enum.Font.SourceSansBold; | |
106 | TextSize = 13; | |
107 | } | |
108 | ); | |
109 | ||
110 | local LeftDividerBar = CreateGuiComponent( | |
111 | "Frame", | |
112 | Background, | |
113 | UDim2.new(0, 3, 1, -60), | |
114 | UDim2.new(0, 13, 0, 30), | |
115 | Color3.new(0, 0, 0), | |
116 | nil, | |
117 | "LeftDividerBar" | |
118 | ); | |
119 | ||
120 | local Features = {}; | |
121 | ||
122 | local function CycleStatus(Feature, CycleBackwards) | |
123 | local NewStatusInteger; | |
124 | if (not CycleBackwards) then | |
125 | if (Feature[3] == #Feature[1]) then | |
126 | NewStatusInteger = 1; | |
127 | else | |
128 | NewStatusInteger = (Feature[3] + 1); | |
129 | end; | |
130 | elseif CycleBackwards then | |
131 | if (Feature[3] == #Feature[1]) then | |
132 | NewStatusInteger = (#Feature[1] - 1); | |
133 | else | |
134 | NewStatusInteger = (Feature[3] - 1); | |
135 | if (NewStatusInteger < 1) then | |
136 | NewStatusInteger = #Feature[1]; | |
137 | end; | |
138 | end; | |
139 | end; | |
140 | Feature[2] = Feature[1][NewStatusInteger]; | |
141 | Feature[3] = NewStatusInteger; | |
142 | end; | |
143 | ||
144 | local ChamsPointers = {}; | |
145 | local OldTransparencies = {}; | |
146 | ||
147 | local function SetBrickTransparencies(Model, GetTransparencyCallback) | |
148 | for Key, Value in next, Model:GetChildren() do | |
149 | if Value:IsA("BasePart") then | |
150 | if (OldTransparencies[Value] == nil) then | |
151 | OldTransparencies[Value] = Value.Transparency; | |
152 | end; | |
153 | Value.Transparency = GetTransparencyCallback(Value); | |
154 | end; | |
155 | end; | |
156 | end; | |
157 | local function DoChams(Character, Color, Transparency, ChamsType) | |
158 | for Key2, Value2 in next, Character:GetChildren() do | |
159 | if Value2:IsA("BasePart") then | |
160 | local ChamHandle = Instance.new("BoxHandleAdornment", Value2); | |
161 | ChamHandle.Name = "ChamHandle"; | |
162 | ChamHandle.Transparency = Transparency; | |
163 | ChamHandle.AlwaysOnTop = true; | |
164 | ChamHandle.ZIndex = 10; | |
165 | ChamHandle.Adornee = Value2; | |
166 | ChamHandle.Transparency = Transparency; | |
167 | if (Features[ChamsType][3] == 1) then | |
168 | ChamHandle.Transparency = 1; | |
169 | SetBrickTransparencies(Character, function() | |
170 | return (0); | |
171 | end); | |
172 | if (Value2.Name == "Head") then | |
173 | Value2:FindFirstChildOfClass("Decal").Transparency = 0; | |
174 | end; | |
175 | else | |
176 | if (Value2.Name == "Head") then | |
177 | Value2:FindFirstChildOfClass("Decal").Transparency = 1; | |
178 | end; | |
179 | end; | |
180 | ChamHandle.Size = (Vector3.new(0.05, 0.05, 0.05) + Value2.Size); | |
181 | if (Value2.Name == "Head") then | |
182 | ChamHandle.Size = Vector3.new(1.25, 1.3, 1.25); | |
183 | end; | |
184 | ChamHandle.Visible = true; | |
185 | ChamHandle.Color3 = Color; | |
186 | ChamsPointers[#ChamsPointers + 1] = ChamHandle; | |
187 | end; | |
188 | end; | |
189 | end; | |
190 | local function RenderChams() | |
191 | for Key, Value in next, ChamsPointers do | |
192 | Value:Destroy(); | |
193 | end; | |
194 | local function GetChamsColor(OtherPlayer, ChamsType) | |
195 | local Colors = { | |
196 | ["Off"] = Color3.new(0, 0, 0); | |
197 | ["White"] = Color3.new(1, 1, 1); | |
198 | ["Black"] = Color3.new(0, 0, 0); | |
199 | ["Red"] = Color3.new(1, 0, 0); | |
200 | ["Green"] = Color3.new(0, 1, 0); | |
201 | ["Blue"] = Color3.new(0, 0, 1); | |
202 | ["Purple"] = Color3.new(0.65, 0, 0.65); | |
203 | ["Yellow"] = Color3.new(1, 1, 0); | |
204 | ["Grey"] = Color3.new(0.8, 0.8, 0.8); | |
205 | }; | |
206 | if (ChamsType == "EC") then | |
207 | return Colors[Features["Enemy Chams"][1][Features["Enemy Chams"][3]]]; | |
208 | elseif (ChamsType == "TC") then | |
209 | return Colors[Features["Team Chams"][1][Features["Team Chams"][3]]]; | |
210 | end; | |
211 | end; | |
212 | local function GetChamsTransparency(ChamsType) | |
213 | local Transparencies = { | |
214 | ["Off"] = 0; | |
215 | ["10%"] = 0.1; | |
216 | ["20%"] = 0.2; | |
217 | ["30%"] = 0.3; | |
218 | ["40%"] = 0.4; | |
219 | ["50%"] = 0.5; | |
220 | ["60%"] = 0.6; | |
221 | ["70%"] = 0.7; | |
222 | ["80%"] = 0.8; | |
223 | ["90%"] = 0.9; | |
224 | }; | |
225 | local ChamsOff = ( | |
226 | ( | |
227 | ( | |
228 | Features[ChamsType][2][Features[ChamsType][3]] == "Off") | |
229 | and true | |
230 | ) or nil | |
231 | ); | |
232 | if ChamsOff then | |
233 | return (1); | |
234 | else | |
235 | return Transparencies[ | |
236 | Features["Chams Transparency"][1][Features["Chams Transparency"][3]] | |
237 | ]; | |
238 | end; | |
239 | end; | |
240 | for Key, Value in next, game:GetService("Players"):GetPlayers() do | |
241 | local Character = Value.Character; | |
242 | if (Character and (Value ~= Player)) then | |
243 | if ( | |
244 | (Value.TeamColor == Player.TeamColor) and | |
245 | (Features["Team Chams"][2][Features["Team Chams"][3]] ~= "Off") | |
246 | ) then | |
247 | if (Features["Team Chams"][2][Features["Team Chams"][3]] ~= "Off") then | |
248 | DoChams( | |
249 | Character, | |
250 | GetChamsColor(Value, "TC"), | |
251 | GetChamsTransparency("Team Chams"), | |
252 | "Team Chams" | |
253 | ); | |
254 | SetBrickTransparencies(Character, function() | |
255 | if (Features["Team Chams"][3] == 1) then | |
256 | return (0); | |
257 | end; | |
258 | return (1); | |
259 | end); | |
260 | else | |
261 | SetBrickTransparencies(Character, function(Brick) | |
262 | return OldTransparencies[Brick] | |
263 | end); | |
264 | end; | |
265 | elseif ( | |
266 | (Value.TeamColor ~= Player.TeamColor) and | |
267 | (Features["Enemy Chams"][2][Features["Enemy Chams"][3]] ~= "Off") | |
268 | ) then | |
269 | if ( | |
270 | Features["Enemy Chams"][2][Features["Enemy Chams"][3]] ~= "Off" | |
271 | ) then | |
272 | DoChams( | |
273 | Character, | |
274 | GetChamsColor(Value, "EC"), | |
275 | GetChamsTransparency("Enemy Chams"), | |
276 | "Enemy Chams" | |
277 | ); | |
278 | SetBrickTransparencies(Character, function() | |
279 | return (1); | |
280 | end); | |
281 | else | |
282 | SetBrickTransparencies(Character, function(Brick) | |
283 | return OldTransparencies[Brick] | |
284 | end); | |
285 | end; | |
286 | end; | |
287 | end; | |
288 | end; | |
289 | end; | |
290 | ||
291 | local Rendering; | |
292 | local DefaultAmbience = { | |
293 | Color3.new(0.7, 0.7, 0.7); | |
294 | Color3.new(0.7, 0.7, 0.7); | |
295 | }; | |
296 | ||
297 | local DefaultFog; | |
298 | local DefaultBrightness; | |
299 | ||
300 | local function AttemptSaveDefaultLightingSettings() | |
301 | if (DefaultAmbience[1] == Color3.new(0.7, 0.7, 0.7)) then | |
302 | DefaultFog = game:GetService("Lighting").FogEnd; | |
303 | DefaultBrightness = game:GetService("Lighting").Brightness; | |
304 | DefaultAmbience = { | |
305 | game:GetService("Lighting").Ambient; | |
306 | game:GetService("Lighting").OutdoorAmbient; | |
307 | }; | |
308 | end; | |
309 | end; | |
310 | ||
311 | local function ChangeFullbrightCallback(Property, OptionalSetting) | |
312 | local CurrentFBSetting = ( | |
313 | Features["Fullbright"][1][Features["Fullbright"][3]] | |
314 | ); | |
315 | if (CurrentFBSetting == "Half") then | |
316 | if (Property == "Ambience") then | |
317 | return Color3.new(0.55, 0.55, 0.55); | |
318 | elseif (Property == "Brightness") then | |
319 | return (1.5); | |
320 | elseif (Property == "Fog") then | |
321 | return (250); | |
322 | end; | |
323 | elseif (CurrentFBSetting == "Maximum") then | |
324 | if (Property == "Ambience") then | |
325 | return Color3.new(1, 1, 1); | |
326 | elseif (Property == "Brightness") then | |
327 | return (10); | |
328 | elseif (Property == "Fog") then | |
329 | return (1000000); | |
330 | end; | |
331 | else | |
332 | if (Property == "Ambience") then | |
333 | return DefaultAmbience[OptionalSetting]; | |
334 | elseif (Property == "Brightness") then | |
335 | return DefaultBrightness; | |
336 | elseif (Property == "Fog") then | |
337 | return DefaultFog; | |
338 | end; | |
339 | end; | |
340 | local Lighting = game:GetService("Lighting"); | |
341 | Lighting.Ambient = ChangeFullbrightCallback("Ambience", 1); | |
342 | Lighting.OutdoorAmbient = ChangeFullbrightCallback("Ambience", 2); | |
343 | Lighting.Brightness = ChangeFullbrightCallback("Brightness"); | |
344 | Lighting.FogStart = ChangeFullbrightCallback("Fog"); | |
345 | Lighting.FogEnd = ChangeFullbrightCallback("Fog"); | |
346 | end; | |
347 | ||
348 | function RenderFeatures() | |
349 | repeat | |
350 | wait(); | |
351 | until (not Rendering); | |
352 | Rendering = true; | |
353 | local function GetFeaturePosition(FeatureName) | |
354 | local Pointers = { | |
355 | ["Menu hot-key"] = 1; | |
356 | ["Team Chams"] = 2; | |
357 | ["Enemy Chams"] = 3; | |
358 | ["Chams Transparency"] = 4; | |
359 | ["Fullbright"] = 5; | |
360 | }; | |
361 | local IterationCount = (Pointers[FeatureName] - 1); | |
362 | return ((IterationCount * 20) + 40); | |
363 | end; | |
364 | for Key, Value in next, Background:GetChildren() do | |
365 | if Value.Name:find("_F") then | |
366 | Value:Destroy(); | |
367 | end; | |
368 | end; | |
369 | local IterationCount = 0; | |
370 | for Key, Value in next, Features do | |
371 | local Feature = CreateGuiComponent( | |
372 | "Frame", | |
373 | Background, | |
374 | UDim2.new(1, 0, 25, 0), | |
375 | UDim2.new(0, 0, 0, GetFeaturePosition(Key)), | |
376 | Color3.new(0, 0, 0), | |
377 | nil, | |
378 | (Key.."_F"), | |
379 | { | |
380 | BackgroundTransparency = 1; | |
381 | } | |
382 | ); | |
383 | local FeatureName = CreateGuiComponent( | |
384 | "TextLabel", | |
385 | Feature, | |
386 | UDim2.new(0.9, 0, 0, 25), | |
387 | UDim2.new(0.1, 0, 0, -3), | |
388 | Color3.new(0, 0, 0), | |
389 | Color3.new(0, 0, 0), | |
390 | "FeatureName", | |
391 | { | |
392 | BackgroundTransparency = 1; | |
393 | Text = Key; | |
394 | Font = Enum.Font.SourceSansBold; | |
395 | TextSize = 15; | |
396 | TextXAlignment = Enum.TextXAlignment.Left; | |
397 | TextYAlignment = Enum.TextYAlignment.Top; | |
398 | } | |
399 | ); | |
400 | local Text; | |
401 | if (Value[2] ~= "Off") then | |
402 | Text = ("["..Value[2].."]".." "); | |
403 | else | |
404 | Text = "Off "; | |
405 | end; | |
406 | local FeatureButton = CreateGuiComponent( | |
407 | "TextButton", | |
408 | Feature, | |
409 | UDim2.new(0.9, 0, 0, 25), | |
410 | UDim2.new(0.1, 0, 0, -3), | |
411 | Color3.new(0, 0, 0), | |
412 | Color3.new(0, 0, 0), | |
413 | "FeatureStatus", | |
414 | { | |
415 | BackgroundTransparency = 1; | |
416 | Text = Text; | |
417 | Font = Enum.Font.SourceSansBold; | |
418 | TextSize = 15; | |
419 | TextXAlignment = Enum.TextXAlignment.Right; | |
420 | TextYAlignment = Enum.TextYAlignment.Top; | |
421 | AutoButtonColor = false; | |
422 | } | |
423 | ); | |
424 | FeatureButton.MouseButton1Click:Connect(function() | |
425 | CycleStatus(Value); | |
426 | RenderFeatures(); | |
427 | if Key:find("Chams") then | |
428 | RenderChams(); | |
429 | elseif (Key == "Fullbright") then | |
430 | AttemptSaveDefaultLightingSettings(); | |
431 | ChangeFullbrightCallback(); | |
432 | end; | |
433 | end); | |
434 | FeatureButton.MouseButton2Click:Connect(function() | |
435 | CycleStatus(Value, true); | |
436 | RenderFeatures(); | |
437 | if Key:find("Chams") then | |
438 | RenderChams(); | |
439 | elseif (Key == "Fullbright") then | |
440 | AttemptSaveDefaultLightingSettings(); | |
441 | ChangeFullbrightCallback(); | |
442 | end; | |
443 | end); | |
444 | local StatusSymbol = CreateGuiComponent( | |
445 | "Frame", | |
446 | Feature, | |
447 | UDim2.new(0, 7, 0, 7), | |
448 | UDim2.new(0, 2, 0, 3), | |
449 | Color3.new( | |
450 | (((Value[2] == "Off") and 1) or 0), | |
451 | (((Value[2] ~= "Off") and 1) or 0), | |
452 | 0 | |
453 | ), | |
454 | nil, | |
455 | "StatusSymbol" | |
456 | ); | |
457 | IterationCount = (IterationCount + 1); | |
458 | end; | |
459 | Rendering = false; | |
460 | end; | |
461 | ||
462 | local function CreateFeature(Name, Statuses) | |
463 | Features[Name] = { | |
464 | Statuses, | |
465 | Statuses[1], | |
466 | 1 | |
467 | }; | |
468 | RenderFeatures(); | |
469 | end; | |
470 | ||
471 | CreateFeature( | |
472 | "Menu hot-key", | |
473 | { | |
474 | "Delete"; | |
475 | "Insert"; | |
476 | } | |
477 | ); | |
478 | ||
479 | CreateFeature( | |
480 | "Team Chams", | |
481 | { | |
482 | "Off"; | |
483 | "White"; | |
484 | "Black"; | |
485 | "Red"; | |
486 | "Green"; | |
487 | "Blue"; | |
488 | "Purple"; | |
489 | "Yellow"; | |
490 | "Grey"; | |
491 | } | |
492 | ); | |
493 | ||
494 | CreateFeature( | |
495 | "Enemy Chams", | |
496 | { | |
497 | "Off"; | |
498 | "White"; | |
499 | "Black"; | |
500 | "Red"; | |
501 | "Green"; | |
502 | "Blue"; | |
503 | "Purple"; | |
504 | "Yellow"; | |
505 | "Grey"; | |
506 | } | |
507 | ); | |
508 | ||
509 | CreateFeature( | |
510 | "Chams Transparency", | |
511 | { | |
512 | "Off"; | |
513 | "10%"; | |
514 | "20%"; | |
515 | "30%"; | |
516 | "40%"; | |
517 | "50%"; | |
518 | "60%"; | |
519 | "70%"; | |
520 | "80%"; | |
521 | "90%"; | |
522 | } | |
523 | ); | |
524 | ||
525 | CreateFeature( | |
526 | "Fullbright", | |
527 | { | |
528 | "Off"; | |
529 | "Half"; | |
530 | "Maximum"; | |
531 | } | |
532 | ); | |
533 | ||
534 | game:GetService("UserInputService").InputBegan:Connect(function(InputObject, GameProcessedEvent) | |
535 | if ( | |
536 | (not GameProcessedEvent) and | |
537 | - | (InputObject.UserInputType == Enum.UserInputType.Keyboard) and |
537 | + | (InputObject.UserInputType == Enum.UserInputType.Keyboard) |
538 | - | (InputObject.KeyCode == Enum.KeyCode.P) |
538 | + | |
539 | local MenuHotkeyFeature = Features["Menu hot-key"]; | |
540 | - | RenderChams(); |
540 | + | if (InputObject.KeyCode == Enum.KeyCode.P) then |
541 | - | AttemptSaveDefaultLightingSettings(); |
541 | + | RenderChams(); |
542 | - | ChangeFullbrightCallback(); |
542 | + | AttemptSaveDefaultLightingSettings(); |
543 | - | RenderFeatures(); |
543 | + | ChangeFullbrightCallback(); |
544 | RenderFeatures(); | |
545 | elseif (InputObject.KeyCode == Enum.KeyCode[MenuHotkeyFeature[1][MenuHotkeyFeature[3]]]) then | |
546 | Background.Visible = (not Background.Visible); | |
547 | local PreviousParent = Background.Parent; | |
548 | Background.Parent = nil; | |
549 | Background.Parent = PreviousParent; | |
550 | end; | |
551 | end; | |
552 | end); | |
553 | ||
554 | while true do | |
555 | RenderChams(); | |
556 | AttemptSaveDefaultLightingSettings(); | |
557 | ChangeFullbrightCallback(); | |
558 | RenderFeatures(); | |
559 | wait(15); | |
560 | end; |