View difference between Paste ID: LNkggy68 and 1yQv2xn9
SHOW: | | - or go back to the newest paste.
1
local Settings={
2
	UIName='Phantom Forces';
3
	MainColor=Color3.fromRGB(255,100,100);
4-
	ToggleKey='\';
4+
	ToggleKey='Insert';
5
};
6
7
local Storage=Instance.new'ScreenGui';
8
Storage.Parent=game:GetService'RunService':IsStudio()and (wait(2/3)and game:GetService'Players'.LocalPlayer.PlayerGui or nil) or game:GetService'CoreGui';
9
local OptionsForColors={
10
	TEXT_='TextColor3';
11
	BACKGROUND='BackgroundColor3';
12
};
13
local function Colorize(I) -- Great var name!
14
	for i,v in next,OptionsForColors do
15
		if I.Name:find(i) and I[v]then
16
			I[v]=Settings.MainColor;
17
		else
18
			-- print(I.Name, 'noped', i);
19
		end;
20
	end;
21
	I.ChildAdded:Connect(Colorize);
22
end;
23
Storage.ChildAdded:Connect(Colorize);
24
25
local Main=Instance.new'Frame';Main.Name='MainFrame';
26
Main.BackgroundTransparency=1;Main.BorderSizePixel=0;
27
Main.Size=UDim2.new(1,0,1,0);
28
Main.Parent=Storage;Main.Visible=false;
29
local HUD=Main:Clone();
30
HUD.Name='HUD';
31
HUD.Parent=Storage;
32
HUD.Visible=true;
33
34
local UILabel=Instance.new'TextLabel';
35
UILabel.Name='TEXT_UILabel';
36
UILabel.BackgroundTransparency=1;UILabel.BorderSizePixel=0;
37
UILabel.Position=UDim2.new(0.05,0,0.85,0);
38
UILabel.Size=UDim2.new(0.15,0,0.1,0);
39
UILabel.Text=Settings.UIName;
40
UILabel.TextScaled=true;
41
UILabel.Font=Enum.Font.SourceSansLight;
42
UILabel.Parent=Main;
43
44
local Tabs={};
45
local Toggles={};
46
local ToggleSettings={};
47
local X=10;
48
49
local function UpdateArrayList()
50
	local Y=0;
51
	for i,v in ipairs(HUD:GetChildren())do
52
		if v.Name:find'ARR_' then
53
			v:Destroy();
54
		end;
55
	end;
56
	for i,v in ipairs(Main:GetDescendants())do
57
		if v.Name:find'TOGGLE_' then
58
			local P1,P2=v.Name:find'TOGGLE_';
59
			local Name=v.Name:sub(P2+1);
60
			v.TextColor3=Toggles[Name]and Settings.MainColor or Color3.new(1,1,1);
61
		end;
62
	end;
63
	for i,v in next,Toggles do
64
		if v then
65
			local Label=Instance.new'TextLabel';
66
			Label.Name='TEXT_ARR_'..i;
67
			Label.BackgroundTransparency=1;Label.BorderSizePixel=0;
68
			Label.Position=UDim2.new(0.1,-5,0,Y);
69
			Label.Size=UDim2.new(0.9,0,0,30);
70
			Label.Text=i;
71
			Label.TextScaled=true;
72
			Label.Font=Enum.Font.SourceSansLight;
73
			Label.TextXAlignment=Enum.TextXAlignment.Right;
74
			Label.Parent=HUD;
75
			Y=Y+30
76
		end;
77
	end;
78
end;
79
80
local function CreateTab(TabName)
81
	Tabs[TabName]={};
82
	Tabs[TabName].Toggles={};
83
	local Frame=Instance.new'TextLabel';
84
	Frame.Name='BACKGROUND_'..TabName;
85
	Frame.BorderSizePixel=0;
86
	Frame.Position=UDim2.new(0,X,0,10);
87
	Frame.Active=true;
88
	Frame.Draggable=true;
89
	Frame.Size=UDim2.new(0,250,0,30);
90
	Frame.TextColor3=Color3.fromRGB(84,84,84);
91
	Frame.TextSize=18;
92
	Frame.Font=Enum.Font.SourceSansLight;
93
	Frame.Text=TabName;
94
	Frame.Parent=Main;
95
	local Toggle=Instance.new'TextButton';
96
	Toggle.Name=TabName..'Toggle';
97
	Toggle.BackgroundTransparency=1;
98
	Toggle.BorderSizePixel=0;
99
	Toggle.Position=UDim2.new(0,220,0,0);
100
	Toggle.Size=UDim2.new(0,30,0,30);
101
	Toggle.TextColor3=Color3.fromRGB(84,84,84)
102
	Toggle.TextSize=16
103
	Toggle.Text='-';
104
	Toggle.Font=Enum.Font.SciFi;
105
	Toggle.Parent=Frame;
106
	local Y=0;
107
	local Frame2=Instance.new'Frame';
108
	Frame2.Name=TabName..'Dropdown';
109
	Frame2.BackgroundColor3=Color3.new(0,0,0);
110
	Frame2.BackgroundTransparency=0.5;
111
	Frame2.BorderSizePixel=0;
112
	Frame2.Position=UDim2.new(0,0,0,30);
113
	Frame2.Size=UDim2.new(0,250,0,0);
114
	Frame2.ClipsDescendants=true;
115
	Frame2.Parent=Frame;
116
117
	Tabs[TabName].OpenClose=function()
118
		if Frame2.Size==UDim2.new(0,250,0,Y)or Frame2.Size==UDim2.new(0,250,0,0)then
119
			Frame2:TweenSize(Toggle.Text=='+' and UDim2.new(0,250,0,Y)or UDim2.new(0,250,0,0), 'Out', 'Quad', 1/3);
120
			Toggle.Text=Toggle.Text=='-' and '+' or '-'
121
		end;
122
	end;Toggle.MouseButton1Click:Connect(Tabs[TabName].OpenClose);
123
	Tabs[TabName].AddToggle=function(ToggleName,Optional)
124
		if Tabs[TabName].ToggleName==nil then
125
			local Button=Instance.new'TextButton';
126
			Button.Name='TOGGLE_'..ToggleName
127
			Button.BackgroundTransparency=1;
128
			Button.BorderSizePixel=0;
129
			Button.Position=UDim2.new(0,5,0,Y);
130
			Y=Y+25;
131
			Frame2.Size=Frame2.Size+UDim2.new(0,0,0,25);
132
			Button.Size=UDim2.new(0,245,0,25);
133
			Button.Text='> '..ToggleName;
134
			Button.TextColor3=Color3.new(1,1,1);
135
			Button.TextSize=16;
136
			Button.Font=Enum.Font.SourceSansSemibold
137
			Button.TextXAlignment=Enum.TextXAlignment.Left;
138
			Button.Parent=Frame2;
139
			Toggles[ToggleName]=false;
140
			ToggleSettings[ToggleName]=Optional;
141
			Button.MouseButton1Click:Connect(function()
142
				Toggles[ToggleName]=not Toggles[ToggleName];
143
				UpdateArrayList();
144
			end);
145
			return Button;
146
		end;
147
	end;
148
149
150
	X=X+300
151
end;
152
153
game:GetService'UserInputService'.InputBegan:Connect(function(IO,GPE)
154
	if IO.KeyCode==Enum.KeyCode[Settings.ToggleKey]then
155
		Main.Visible=not Main.Visible;
156
	end;
157
end);
158
159
--------------------------------------------------------------
160
161
CreateTab'Tools';
162
Tabs.Tools.AddToggle'GunMod';
163
Tabs.Tools.AddToggle'InstaKill';
164
Tabs.Tools.AddToggle'NadeMod';
165
CreateTab'Render';
166
Tabs.Render.AddToggle'GlobalESP';
167
CreateTab'Utilities';
168
Tabs.Utilities.AddToggle'Credits';
169
Tabs.Utilities.AddToggle'UnlockAll';
170
Tabs.Utilities.AddToggle'NoFall';
171
172
173
local P = game:GetService'Players'.LocalPlayer;
174
local Misc = game:GetService'ReplicatedStorage'.Misc;
175
local PGUI = P.PlayerGui;
176
local ChatGui = PGUI.ChatGame;
177
178
local C = Color3.fromRGB(100, 100, 255);
179
local CurrentTexts={};
180
181
spawn(function()
182
	repeat wait();
183
		for H = 0, 1, 1/300 do wait();
184
			for i, v in next, CurrentTexts do
185
				if v and v.Visible then 
186
					v.TextColor3 = Color3.fromHSV(H, 1, 1);
187
				else
188
					table.remove(CurrentTexts, i);
189
				end;
190
			end;
191
		end;
192
	until nil;
193
end);
194
195
local function Console(String, Color)
196
	local Msg = Misc.Msger;
197
	local Message = Msg:Clone();
198
	local MTag = Message.Tag;
199
	local Offset = 5;
200
	Message.Parent = ChatGui.GlobalChat;
201
	Message.Text = '[VIRGO]: ';
202
	table.insert(CurrentTexts, Message);
203
	Message.Msg.Text = String;
204
	Message.Msg.Position = UDim2.new(0, Message.TextBounds.x, 0, 0);
205
	if Color then
206
		Message.Msg.TextColor3 = Color;
207
	end;
208
	Message.Visible = true;
209
	Message.Msg.Visible = true;
210
end;
211
212
local secret953 = secret953 or debug.getupvalues;
213
local secret500 = secret500 or debug.setupvalue;
214
local getreg = getreg or debug.getregistry;
215
216
local ScriptSettings = {
217
	['firerate'] = 1500
218
};
219
local InitTime = tick();
220
221
local Client;
222
local Functions;
223
local Bypassed;
224
225
do
226
	for i, v in next, getreg() do
227
		if type(v) == 'function' then
228
			local Upvalues = secret953(v);
229
			if not Client and Upvalues and Upvalues.network and Upvalues.char and Upvalues.gamelogic then
230
				Client = Upvalues;
231
			elseif not Bypassed and Upvalues and Upvalues.netkick then
232
				secret500(v, 'netkick', function() end);
233
				Bypassed = true;
234
			end;
235
		end;
236
	end;
237
end;
238
239
if Client then
240
	Console('[1/3] Hooked client' .. (Bypassed and ' and bypassed PF\'s anticheat.' or ' but failed to bypass PF\'s anticheat.'));
241
else
242
	Console'[1/3] Could not access Framework.';
243
	error'Stop using skidsploits without the debug library.';
244
end;
245
246
local BlacklistedArguments = {
247
	['closeconnection'] = true,
248
	['logmessage'] = true
249
};
250
251
do
252
	if Synapse then
253
		Console'[2/3] SIP detected, no need to bypass contextlevel check.';
254
		Console'(Note: If you get a \'nice network\' ban it\'s not my fault, it\'s 3dsbob\'s. Complain to him not me.)';
255
	elseif not secret500(Client.network.send, 'settings', error) then
256
		Console'[2/3] Failed to bypass contextlevel check, aborting for security purposes.';
257
		P:Kick'Rejoin! (If this kick hadn\'t have happened you would have been banned so be grateful. -Classy.)';
258
	else
259
		Console'[2/3] Bypassed contextlevel check.';
260
	end;
261
	
262
	local Upvalues = secret953(Client.network.add);
263
	if Upvalues and Upvalues.funcs then
264
		Functions = Upvalues.funcs;
265
		Console'[3/3] Got functions.';
266
	else
267
		Console'[3/3] Failed to init some dependencies, some features may not work as intended.';
268
	end;
269
end;
270
271
local Succ, NoSucc = pcall(function()
272
273
	local Network = Client.network;
274
	local Char = Client.char;
275
	local GameLogic = Client.gamelogic;
276
277
	local Send = Network.send;
278
	local G = Char.loadgun;
279
	local GR = Char.loadgrenade;
280
281
	local V = Vector3.new();
282
	
283
	Network.send = function(self, ...)
284
		local Args = {...};
285
		if #Args > 0 then
286
			local Name = Args[1];
287
			-- if not Name:find'ping' and not checkcaller'' then for i, v in next, Args do warn(i, v, typeof(v)) end end
288
			if Name == 'changehealthx' then
289
				if #Args > 4 and type(Args[5]) == 'string' and Args[5] == 'Falling' and Toggles.NoFall then
290
					Console'Nofall! Watch your legs next time :)';
291
					return;
292
				end
293
			elseif Toggles.InstaKill and Name == 'bullethit' then
294
				if type(Args[3]) == 'number' and Args[3] > -100 then
295
					Args[3] = -100;
296
					return Send(self, unpack(Args));
297
				end;
298
			elseif Name == 'logmessage' or Name == 'deploycheck' then return
299
			end;
300
		end;
301
		return Send(self, ...);
302
	end;
303
304
	
305
	-- Dysekts kewl function
306
	Char.loadgun = function(...) -- TODO: implement a self arg to make things look more tidy.
307
		if Toggles.GunMod then
308
			local Args = {...}; if #Args == 0 then return G(...); end;
309
			local GunData = Args[2];
310
			Console(string.format('Modding %s (%s)', GunData.name, GunData.type));
311
			GunData.hideflash = true;
312
			GunData.hideminimap = true;
313
			GunData.hiderange = 0;
314
			GunData.sparerounds = 9999;
315
			GunData.magsize = 9999;
316
			GunData.camkickmin = V;
317
			GunData.camkickmax = V;
318
			GunData.aimcamkickmin = V;
319
			GunData.aimcamkickmax = V;
320
			GunData.aimtranskickmin = V;
321
			GunData.aimtranskickmax = V;
322
			GunData.transkickmin = V;
323
			GunData.transkickmax = V;
324
			GunData.rotkickmin = V;
325
			GunData.rotkickmax = V;
326
			GunData.aimrotkickmin = V;
327
			GunData.aimrotkickmax = V;
328
			GunData.hipfirespread = 0;
329
			GunData.hipfirestability = 0;
330
			GunData.swayamp = 0;
331
			GunData.swayspeed = 0;
332
			GunData.steadyspeed = 0;
333
			GunData.breathspeed = 0;
334
			GunData.hipfirespreadrecover = 100;
335
			GunData.hipfirespreadrecover = 100;
336
			GunData.bulletspeed = 5000;
337
			GunData.crosssize = 2;
338
			GunData.crossexpansion = 0;
339
			GunData.firerate = ScriptSettings['firerate'];
340
			GunData.variablefirerate = false;
341
			GunData.range0 = 1000;
342
			GunData.range1 = 1000;
343
			GunData.penetrationdepth = 100;
344
			GunData.firemodes = {true, 3, 1};
345
			GunData.requirechamber = false;
346
			GunData.animations.onfire = {};
347
			Args[2] = GunData;
348
			return G(unpack(Args));
349
		end;
350
		return G(...);
351
	end;
352
353
	-- Dysekts kewl function 2.0
354
	Char.loadgrenade = function(...) -- TODO: implement a self arg to make things look more tidy.
355
		if Toggles.NadeMod then
356
			Console'Throwing grenade(s).';
357
			GameLogic.gammo = math.huge;
358
			local Args = {...};
359
			local Grenade = Args[2];
360
			Grenade.animations.pull = {};
361
			Grenade.animations.throw = {};
362
			Args[2] = Grenade;
363
			Args[3][Grenade.mainpart].CFrame = P.Character.HumanoidRootPart.CFrame * CFrame.new(2,0,0);
364
			local ThrownGrenade = GR(unpack(Args));
365
			ThrownGrenade:pull();
366
			ThrownGrenade:throw();
367
			Char.grenadehold = false;
368
			repeat wait(1000) until nil;
369
			return;
370
		end;
371
		return GR(...);
372
	end;
373
374
	local function ESP()
375
		local Spotted = {};
376
		for i, v in ipairs(game:GetService'Players':GetPlayers'') do
377
			if v.TeamColor ~= P.TeamColor then
378
				table.insert(Spotted, v);
379
			end;
380
		end;
381
		Network:send('spotplayers', Spotted);
382
	end;
383
384
	spawn(function()
385
		repeat wait(1);
386
			if Toggles.GlobalESP then
387
				ESP();
388
			end;
389
		until nil;
390
	end);
391
392
	spawn(function()
393
		repeat wait(.5);
394
			if Toggles.Credits then
395
				spawn(function()
396
					Toggles.Credits = false;
397
					UpdateArrayList();
398
					Console('Giving infinite credits, these cannot be used to buy cases/keys.', C);
399
					Functions['updatemoney'](math.huge);
400
				end);
401
			end;
402
				
403
			if Toggles.UnlockAll then
404
				spawn(function()
405
					Toggles.UnlockAll=false;
406
					UpdateArrayList();
407
					Console('Unlocking weapons and attachments.', C);
408
					local Attachments = require(game:GetService'ReplicatedStorage'.AttachmentModules.Info);
409
					local Guns = game:GetService'ReplicatedStorage'.GunModules:GetChildren();
410
					for i, v in next, Attachments do
411
						v.unlockkills = 1000;
412
					end;
413
					for i, v in next, Guns do
414
						if v.ClassName:find'Module' then
415
							local GunModule = require(v);
416
							GunModule.unlockrank = 120;
417
						end;
418
					end;
419
				end);
420
			end;
421
422
		until nil;
423
	end);
424
425
end);
426
427
if not Succ then
428
	Console(NoSucc);
429
end;
430
Console("You're welcome for fixing Virgo's load UP. :)")
431
Console(string.format('Fully loaded VIRGO! Init time: %s seconds', tostring(tick() - InitTime)));