Advertisement
ViggoCS

Virgo (phantomforces)

Mar 12th, 2018
24,380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.19 KB | None | 0 0
  1. --[[
  2. Further documented commands:
  3.  
  4. `megaskid add [name] --> Adds the targeted player to the megaskid list.
  5. `megaskid remove [name] --> Removes the targeted player from the megaskid list.
  6. `megaskid loopkill --> Loopkills all players within the megaskid list.
  7.  
  8. `settings [name] [value] --> Changes the value of something in the ScriptSettings table.
  9. > Currently, only 'firerate' is supported.
  10. > E.G. `settings firerate 3000
  11. ]]
  12.  
  13. local CUR_VERS = '2.0.1';
  14. local CREATION_DATE = '~ February 10 2018';
  15. local CREATOR = 'Classy';
  16. local CREDITS = {'Memcorrupt', 'Dysekt'};
  17.  
  18. local ScriptSettings = {
  19. ['firerate'] = 1500
  20. };
  21.  
  22. InitTime = tick();
  23. local CurrentTexts = {};
  24.  
  25. do
  26. ScreenGui = Instance.new("ScreenGui")
  27. Frame = Instance.new("Frame")
  28. VirgoLabel = Instance.new("TextLabel")
  29. MadeByLabel = Instance.new("TextLabel")
  30.  
  31. ScreenGui.Parent = game:GetService'CoreGui'
  32.  
  33. Frame.Parent = ScreenGui
  34. Frame.BackgroundColor3 = Color3.new(0, 0, 0)
  35. Frame.BackgroundTransparency = 1
  36. Frame.BorderSizePixel = 0
  37. Frame.Position = UDim2.new(0.87000012, 0, 0.800000024, 0)
  38. Frame.Size = UDim2.new(0.150000006, 0, 0.200000003, 0)
  39. Frame.ZIndex = 10
  40.  
  41. VirgoLabel.Name = "VirgoLabel"
  42. VirgoLabel.Parent = Frame
  43. VirgoLabel.BackgroundColor3 = Color3.new(1, 1, 1)
  44. VirgoLabel.BackgroundTransparency = 1
  45. VirgoLabel.BorderSizePixel = 0
  46. VirgoLabel.Size = UDim2.new(1, 0, 0.25, 0)
  47. VirgoLabel.Font = Enum.Font.Code
  48. VirgoLabel.Text = "VIRGO 2.0"
  49. table.insert(CurrentTexts, VirgoLabel)
  50. --VirgoLabel.TextColor3 = Color3.fromRGB(255, 100, 0)
  51. VirgoLabel.TextSize = 45
  52. VirgoLabel.ZIndex = 10
  53.  
  54. MadeByLabel.Name = "MadeByLabel"
  55. MadeByLabel.Parent = Frame
  56. MadeByLabel.BackgroundColor3 = Color3.new(1, 1, 1)
  57. MadeByLabel.BackgroundTransparency = 1
  58. MadeByLabel.BorderSizePixel = 0
  59. MadeByLabel.Position = UDim2.new(0, 0, 0, 35)
  60. MadeByLabel.Size = UDim2.new(1, 0, 0.25, 0)
  61. MadeByLabel.Font = Enum.Font.Code
  62. MadeByLabel.Text = "By Classy"
  63. MadeByLabel.TextColor3 = Color3.new(1, 1, 1)
  64. MadeByLabel.TextSize = 20
  65. MadeByLabel.TextWrapped = true
  66. MadeByLabel.ZIndex = 10
  67. end;
  68.  
  69. local DebugMode = false;
  70. local P = game:GetService'Players'.LocalPlayer;
  71. local Misc = game:GetService'ReplicatedStorage'.Misc;
  72. local PGUI = P.PlayerGui;
  73. local ChatGui = PGUI.ChatGame;
  74.  
  75. local C = Color3.fromRGB(100, 100, 255);
  76.  
  77. local function Console(String, Color)
  78. local Msg = Misc.Msger;
  79. local Message = Msg:Clone();
  80. local MTag = Message.Tag;
  81. local Offset = 5;
  82. Message.Parent = ChatGui.GlobalChat;
  83. Message.Text = '[VIRGO]: ';
  84. table.insert(CurrentTexts, Message);
  85. Message.Msg.Text = String;
  86. Message.Msg.Position = UDim2.new(0, Message.TextBounds.x, 0, 0);
  87. if Color then
  88. Message.Msg.TextColor3 = Color;
  89. end;
  90. Message.Visible = true;
  91. Message.Msg.Visible = true;
  92. end;
  93.  
  94. spawn(function()
  95. repeat wait();
  96. for H = 0, 1, 1/300 do wait();
  97. for i, v in next, CurrentTexts do
  98. if v and v.Visible then
  99. v.TextColor3 = Color3.fromHSV(H, 1, 1);
  100. else
  101. table.remove(CurrentTexts, i);
  102. end;
  103. end;
  104. end;
  105. until nil;
  106. end);
  107.  
  108. local secret953 = secret953 or debug.getupvalues;
  109. local secret500 = secret500 or debug.setupvalue;
  110. local getreg = getreg or debug.getregistry;
  111.  
  112. --[[do
  113. spawn(loadstring(game:HttpGet('https://pastebin.com/raw/2yLa6Xhe',true))); -- Racist Dolphin's ESP GUI
  114. end;]]
  115.  
  116. local Client;
  117. local Functions;
  118.  
  119. do
  120. for i, v in next, getreg() do
  121. if type(v) == 'function' then
  122. local Upvalues = secret953(v);
  123. if not Client and Upvalues and Upvalues.network and Upvalues.char and Upvalues.gamelogic then
  124. Console'Accessed Client.';
  125. Client = Upvalues;
  126. elseif not Functions and Upvalues and Upvalues.funcs and Upvalues.funcs['updatemoney'] and Upvalues.funcs['purchasegunconfirm'] and Upvalues.funcs['purchaseattachment'] then
  127. Console'Accessed Functions.';
  128. Functions = Upvalues.funcs;
  129. end;
  130. end;
  131. end;
  132. end;
  133.  
  134. if not Client or not Functions then
  135. Console'Could not access Framework.';
  136. error'Stop using skidsploits without the debug library.';
  137. end;
  138.  
  139. local BlacklistedArguments = {
  140. ['closeconnection'] = true,
  141. ['logmessage'] = true
  142. };
  143.  
  144. do
  145. secret500(Client.network.send, 'settings', error);
  146. end;
  147.  
  148. local Toggles = {};
  149.  
  150. local function AddBool(Name)
  151. Toggles[Name] = false;
  152. end;
  153.  
  154. local function FlipBool(Name)
  155. Toggles[Name] = not Toggles[Name];
  156. Console(string.format('%s - %s', Name:upper(), tostring(Toggles[Name]):upper()), C);
  157. end;
  158.  
  159. local Commands = {}; -- Commands *not* to be printed.
  160. local PrintCommands = {}; -- Commands to be printed.
  161.  
  162. local function AddCommand(Prefix, Function, Usage, PrintBool)
  163. Commands[Prefix] = Function;
  164. if PrintBool then
  165. PrintCommands[Prefix] = Usage;
  166. end;
  167. end;
  168.  
  169. local function SplitString(String)
  170. local Table = {};
  171. for i in String:gmatch'%S+' do
  172. table.insert(Table, i);
  173. end;
  174. return Table;
  175. end;
  176.  
  177. local Prefix = '`';
  178.  
  179. do
  180.  
  181. local Network = Client.network;
  182. local Char = Client.char;
  183. local GameLogic = Client.gamelogic;
  184.  
  185. local Send = Network.send;
  186. local G = Char.loadgun;
  187. local GR = Char.loadgrenade;
  188.  
  189. local V = Vector3.new();
  190.  
  191. Network.send = function(self, ...)
  192. local Args = {...};
  193. if #Args > 0 then
  194. local Name = Args[1];
  195. --if not Name:find'ping' then for i, v in next, Args do warn(i, v, typeof(v)) end end
  196. if Name == 'changehealthx' then
  197. if #Args > 4 and type(Args[5]) == 'string' and Args[5] == 'Falling' and Toggles['nofall'] then
  198. Console'Nofall! Watch your legs next time :)';
  199. return;
  200. elseif Toggles['instakill'] and #Args > 3 and Args[2] and Args[2] ~= P and Args[4] > -100 then
  201. Console(string.format("Instakilling: %s", tostring(Args[2])));
  202. Args[4] = -100;
  203. return Send(self, unpack(Args));
  204. end;
  205. elseif Name == 'chatted' and #Args > 1 then
  206. local Msg = Args[2]:sub(2); -- Phantom Forces adds a " " to the start of each message... Lazy string parsing?
  207. if Msg:sub(1, 1) == Prefix then
  208. local CommandArgs = SplitString(Msg);
  209. local Command = CommandArgs[1]:sub(2):lower'';
  210. if Commands[Command] then
  211. Commands[Command](CommandArgs);
  212. else
  213. Console(string.format('%s is not a recognised command.', Command));
  214. end;
  215. return;
  216. end;
  217. end;
  218. end;
  219. return Send(self, ...);
  220. end;
  221.  
  222. Char.loadgun = function(...) -- TODO: implement a self arg to make things look more tidy.
  223. if Toggles['gunmod'] then
  224. local Args = {...}; if #Args == 0 then return G(...); end;
  225. local GunData = Args[2];
  226. Console(string.format('Modding %s (%s)', GunData.name, GunData.type));
  227. GunData.hideflash = true;
  228. GunData.hideminimap = true;
  229. GunData.hiderange = 0;
  230. GunData.sparerounds = 9999;
  231. GunData.magsize = 9999;
  232. GunData.camkickmin = V;
  233. GunData.camkickmax = V;
  234. GunData.aimcamkickmin = V;
  235. GunData.aimcamkickmax = V;
  236. GunData.aimtranskickmin = V;
  237. GunData.aimtranskickmax = V;
  238. GunData.transkickmin = V;
  239. GunData.transkickmax = V;
  240. GunData.rotkickmin = V;
  241. GunData.rotkickmax = V;
  242. GunData.aimrotkickmin = V;
  243. GunData.aimrotkickmax = V;
  244. GunData.hipfirespread = 0;
  245. GunData.hipfirestability = 0;
  246. GunData.swayamp = 0;
  247. GunData.swayspeed = 0;
  248. GunData.steadyspeed = 0;
  249. GunData.breathspeed = 0;
  250. GunData.hipfirespreadrecover = 100;
  251. GunData.hipfirespreadrecover = 100;
  252. GunData.bulletspeed = 5000;
  253. GunData.crosssize = 2;
  254. GunData.crossexpansion = 0;
  255. GunData.firerate = ScriptSettings['firerate'];
  256. GunData.variablefirerate = false;
  257. GunData.range0 = 1000;
  258. GunData.range1 = 1000;
  259. GunData.penetrationdepth = 100;
  260. GunData.firemodes = {true, 3, 1};
  261. GunData.requirechamber = false;
  262. GunData.animations.onfire = {};
  263. Args[2] = GunData;
  264. return G(unpack(Args));
  265. end;
  266. return G(...);
  267. end;
  268.  
  269. Char.loadgrenade = function(...) -- TODO: implement a self arg to make things look more tidy.
  270. if Toggles['nademod'] then
  271. Console'Throwing grenade(s).';
  272. GameLogic.gammo=math.huge;
  273. local Args = {...};
  274. local Grenade = Args[2];
  275. Grenade.animations.pull = {};
  276. Grenade.animations.throw = {};
  277. Args[2] = Grenade;
  278. Args[3][Grenade.mainpart].CFrame = P.Character.HumanoidRootPart.CFrame * CFrame.new(2,0,0);
  279. local ThrownGrenade = GR(unpack(Args));
  280. ThrownGrenade:pull();
  281. ThrownGrenade:throw();
  282. Char.grenadehold = false;
  283. repeat wait(1000) until nil;
  284. return;
  285. end;
  286. return GR(...);
  287. end;
  288.  
  289. AddCommand('cmds', function()
  290. local CommandCount = 0;
  291. local CommandAmount = 0; for i, v in next, PrintCommands do CommandAmount = CommandAmount + 1; end; -- Just gets the total amount of commands.
  292. for i,v in next, PrintCommands do
  293. CommandCount = CommandCount + 1;
  294. Console(string.format('%s/%s: %s - %s', tostring(CommandCount), tostring(CommandAmount), i:upper(), v)); -- Format: CurIndex/HighestIndex: CommandName - CommandDescription
  295. end;
  296. end, nil, nil);
  297.  
  298. AddCommand('credits', function()
  299. Functions['updatemoney'](math.huge);
  300. Console('Gave infinite credits, these cannot be used to buy cases/keys.', C);
  301. end, 'Gives infinite credits, does not save.', true);
  302.  
  303. AddCommand('unlockall', function()
  304. for i, v in next, game:GetService'ReplicatedStorage'.GunModules:GetChildren'' do
  305. Functions['purchasegunconfirm'](v.Name);
  306. for i2, v2 in next, game:GetService'ReplicatedStorage'.AttachmentModels:GetChildren'' do
  307. pcall(Functions['purchaseattachment'], v.Name, v2.Name);
  308. end;
  309. end;
  310. Console('Unlocked weapons and attachments.', C);
  311. end, 'Unlocks every gun & attachment, does not save, but can be used ingame.', true);
  312.  
  313. AddBool'instakill';
  314. AddCommand('instakill', function()
  315. FlipBool'instakill';
  316. end, 'Makes your weapon instantly kill enemies (self-explanatory.)', true);
  317.  
  318. AddBool'nofall';
  319. AddCommand('nofall', function()
  320. FlipBool'nofall';
  321. end, 'Grants immunity to fall damage.', true);
  322.  
  323. AddBool'nademod';
  324. AddCommand('nademod', function()
  325. FlipBool'nademod';
  326. end, 'Grants infinite grenades and removes the throwing cooldown.', true);
  327.  
  328. AddBool'gunmod';
  329. AddCommand('gunmod', function()
  330. FlipBool'gunmod';
  331. end, 'Grants infinite ammo, norecoil, increased fire-rate ( fully auto too! ) and more.', true);
  332. AddCommand('settings', function(Args)
  333. if #Args > 2 then
  334. for i, v in next, ScriptSettings do
  335. if Args[2]:lower() == i:lower() then
  336. if type(v) == 'number' then
  337. if tonumber(Args[3]) then
  338. ScriptSettings[i] = tonumber(Args[3]);
  339. else
  340. Console('Not a number...', Color3.fromRGB(255, 40, 40));
  341. return;
  342. end;
  343. end;
  344.  
  345. Console(string.format('Updated %s: %s to %s', i, tostring(v), Args[3]), C);
  346. end;
  347. end;
  348. end;
  349. end, nil, nil);
  350.  
  351. AddBool'globalesp';
  352. local ESPRoutine = coroutine.wrap(function()
  353. repeat wait(1)
  354. if Toggles['globalesp'] then
  355. local Spotted = {};
  356. for i, v in next, game:GetService'Players':GetPlayers'' do
  357. if v.TeamColor ~= P.TeamColor then
  358. table.insert(Spotted, v);
  359. end;
  360. end;
  361. Network:send('spotplayers', Spotted);
  362. end;
  363. until nil;
  364. end)();
  365. AddCommand('globalesp', function()
  366. FlipBool'globalesp';
  367. end, 'Permanently spots the enemy team ( shows for teammates too! )', true);
  368.  
  369. AddBool'killgame';
  370. AddCommand('killgame', function()
  371. FlipBool'killgame';
  372. if Toggles['killgame'] then
  373. spawn(function()
  374. repeat wait() -- This is the most cancerous scripting I've ever done, but it works, so hecc y'all.
  375. local Enemies = {};
  376. local Team;
  377. for i, v in next, game.Teams:GetChildren'' do
  378. if v.TeamColor == P.TeamColor then
  379. if i == 1 then
  380. Team = game.Teams:GetChildren''[2].Name;
  381. else
  382. Team = game.Teams:GetChildren''[1].Name;
  383. end;
  384. end;
  385. end;
  386. for i, v in next, game:GetService'Players':GetPlayers'' do
  387. if v ~= game:GetService'Players'.LocalPlayer then
  388. if v.TeamColor ~= P.TeamColor then
  389. table.insert(Enemies, v);
  390. end
  391. end;
  392. end;
  393. for i, v in next, Enemies do wait();
  394. pcall(function()
  395. Network:send('changehealthx', v, tick(), -100, GameLogic.currentgun.name, v.Character.Head, v.Character.Head.Position, {}, {});
  396. end);
  397. end;
  398. Network:send('changeteam', game.Teams[Team]);
  399. until not Toggles['killgame'];
  400. end);
  401. end;
  402. end, 'Kills the entire game repeatedly.', true);
  403.  
  404. local MegaskidCommands = {};
  405. function MegaskidCommands:Add(Name, Func) -- Switch up the functions every once in a while xd.
  406. MegaskidCommands[Name] = Func;
  407. end;
  408.  
  409. -- sub-commands
  410. local Megaskids = {};
  411. MegaskidCommands:Add('add', function(Args)
  412. if #Args > 1 then
  413. local PlrToAdd = Args[2]
  414. for i, v in next, game:GetService'Players':GetPlayers'' do
  415. if v.Name:lower'':find(PlrToAdd:lower()) and v ~= P then
  416. table.insert(Megaskids, v);
  417. Console(string.format('Added: %s', v.Name), Color3.fromRGB(40, 255, 40));
  418. return;
  419. end;
  420. end;
  421. Console(string.format('Could not find: %s', PlrToAdd), Color3.fromRGB(255, 40, 40));
  422. else
  423. Console'Invalid parameters.';
  424. end;
  425. end);
  426.  
  427. MegaskidCommands:Add('remove', function(Args)
  428. if #Args > 1 then
  429. local PlrToRemove = Args[2];
  430. for i, v in next, Megaskids do
  431. if v.Name:lower'':find(PlrToRemove:lower()) then
  432. table.remove(Megaskids, i);
  433. Console(string.format('Removed: %s', v.Name), Color3.fromRGB(40, 255, 40));
  434. return;
  435. end;
  436. end;
  437. Console(string.format('Could not find: %s', PlrToRemove), Color3.fromRGB(255, 40, 40));
  438. else
  439. Console'Invalid parameters.';
  440. end;
  441. end);
  442.  
  443. AddBool'megaskid_loopkill';
  444. MegaskidCommands:Add('loopkill', function()
  445. FlipBool'megaskid_loopkill';
  446. if Toggles['megaskid_loopkill'] then
  447. spawn(function()
  448. repeat wait(.25);
  449. for i, v in next, Megaskids do
  450. pcall(function()
  451. Network:send('changehealthx', v, tick(), -100, GameLogic.currentgun.name, v.Character.Head, v.Character.Head.Position, {}, {});
  452. end);
  453. end;
  454. until not Toggles['megaskid_loopkill'];
  455. end);
  456. end;
  457. end);
  458.  
  459. -- main command
  460. AddCommand('megaskid', function(Args)
  461. if #Args > 1 then
  462. if MegaskidCommands[Args[2]] then
  463. table.remove(Args, 1);
  464. MegaskidCommands[Args[1]](Args);
  465. end;
  466. end;
  467. end, nil, nil);
  468.  
  469. end;
  470.  
  471. Console(string.format('Fully loaded VIRGO! Init time: %s seconds', tostring(tick() - InitTime)));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement