View difference between Paste ID: trwnsKzm and 5EPQ9tQY
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;