of     1   

Soybeen
#129429561Monday, March 31, 2014 1:21 AM GMT

I think my place has been infected by a 4D Being script. Essentially it clones itself into every model in my place, and I cannot find where it lives to remove it. All research I've done on the "4D Being" led to a dead end. Could someone who's dealt with the 4D being, or knows what it is, give me pointers on how best to combat it?
cntkillme
#129429869Monday, March 31, 2014 1:23 AM GMT

It's a script that is cloning it. Run this and see what doesn't look right (in studio) local scripts = {} function a(b) for i,v in next, b:GetChildren() do if v:IsA("BaseScript") then scripts[#scripts + 1] = v:GetFullName() end a(v) end end for i,v in next, scripts do print(i .. ")", v) end
cntkillme
#129430047Monday, March 31, 2014 1:25 AM GMT

Forgot to call it... local scripts = {} function a(b) for i,v in next, b:GetChildren() do if v:IsA("BaseScript") then scripts[#scripts + 1] = v:GetFullName() end a(v) end end a(workspace) for i,v in next, scripts do print(i .. ")", v) end
Soybeen
#129430479Monday, March 31, 2014 1:29 AM GMT

I assume you wanted me to put that code in a script, inside of the Workspace. It didn't actually print anything in the output. If it helps, 4D Being puts something in the output. This essentially fills my output window, and it takes forever to scroll up and down. 21:26:57.066 - Workspace.Model.Script.4D Being.AntiVirus:92: attempt to call global 'ScanForViruses' (a nil value) 21:26:57.067 - Script 'Workspace.Model.Script.4D Being.AntiVirus', Line 92 21:26:57.067 - stack end 21:26:57.067 - Something unexpectedly tried to set the parent of Script to 4D Being while trying to set the parent of Script. Current parent is Model. 21:26:57.068 - Workspace.Model.Script.4D Being.AntiVirus:92: attempt to call global 'ScanForViruses' (a nil value) 21:26:57.068 - Script 'Workspace.Model.Script.4D Being.AntiVirus', Line 92 21:26:57.069 - stack end
cntkillme
#129430697Monday, March 31, 2014 1:31 AM GMT

No, just in the command bar in studio. You will see all scripts that exist in workspace, which is where it is. This should work if that didn't local scripts = {} function a(b) for i,v in next, b:GetChildren() do if v:IsA("Script") then scripts[#scripts + 1] = v:GetFullName() end a(v) end end a(workspace) for i,v in next, scripts do print(i, "=", v) end
Soybeen
#129430947Monday, March 31, 2014 1:34 AM GMT

Oh thank you. I actually didn't see the second post you made when I replied to the first one. I'll search through and see if anything looks fishy; thanks.
Soybeen
#129431158Monday, March 31, 2014 1:36 AM GMT

Found something already: 127) Workspace.Model.4D Being.Script 128) Workspace.Model.4D Being.Script.4D Being.Wildfire 129) Workspace.Model.4D Being.Script.4D Being.AntiVirus 130) Workspace.4D Being.Script 131) Workspace.4D Being.Script.4D Being.Wildfire 132) Workspace.4D Being.Script.4D Being.AntiVirus The only problem is that I have dozens and dozens of models in the Workspace with the name "Model". It would take me hours to find this particular one. How could I remove these 6 items by using the Command Bar?
cntkillme
#129431268Monday, March 31, 2014 1:37 AM GMT

Here: local scripts = {} function a(b) for i,v in next, b:GetChildren() do if v:IsA("Script") then scripts[#scripts + 1] = v:GetFullName() end a(v) end end a(workspace) for i = 127, 132 do scripts[i]:Destroy() end for i,v in next, scripts do print(i, "=", v) end
Soybeen
#129432025Monday, March 31, 2014 1:45 AM GMT

21:45:31.295 - local scripts = {} function a(b) for i,v in next, b:GetChi:12: attempt to call method 'Destroy' (a nil value) 21:45:31.295 - Script 'local scripts = {} function a(b) for i,v in next, b:GetChi', Line 12 21:45:31.296 - stack end
cntkillme
#129432102Monday, March 31, 2014 1:46 AM GMT

Just do this: local scripts = {} function a(b) for i,v in next, b:GetChildren() do if v:IsA("Script") then scripts[#scripts + 1] = v:GetFullName() end a(v) end end a(workspace) for i,v in next, scripts do if v.Name:find("4D") then v:Destroy() else print(i, "=", v) end end
Soybeen
#129432522Monday, March 31, 2014 1:51 AM GMT

I've put that in the output, but unfortunately it's giving me an error: 21:50:49.910 - local scripts = {} function a(b) for i,v in next, b:GetChi:12: attempt to index field 'Name' (a nil value) 21:50:49.911 - Script 'local scripts = {} function a(b) for i,v in next, b:GetChi', Line 12 21:50:49.911 - stack end
cntkillme
#129432656Monday, March 31, 2014 1:52 AM GMT

Oops, just realized why local scripts = {} function a(b) for i,v in next, b:GetChildren() do if v:IsA("Script") then scripts[#scripts + 1] = v end a(v) end end a(workspace) for i,v in next, scripts do if v.Name:find("4D") then v:Destroy() else print(i, "=", v:GetFullName()) end end
[rfa#hidefromsearch]
#129432705Monday, March 31, 2014 1:53 AM GMT

[rfa#hidefromsearch]
George_Becker
#129433308Monday, March 31, 2014 1:59 AM GMT

What does it look like?
Soybeen
#129435576Monday, March 31, 2014 2:25 AM GMT

@Cntkill: I've tried that, and it did not give me an error in the output, however it didn't remove the 4D Being. I think there's more to it than meets the eye.
cntkillme
#129435958Monday, March 31, 2014 2:30 AM GMT

It was meant to remove the scripts. Here: local scripts = {} function a(b) for i,v in next, b:GetChildren() do if v.Name:find("4D") then v:Destroy() end a(v) end end a(workspace)
Soybeen
#129475562Monday, March 31, 2014 7:30 PM GMT

Beautiful! This works as far as I can tell. Thank you Cntkillme for your large help. -- Soybeen
mjgh06
#142979555Friday, August 08, 2014 1:16 PM GMT

I know I am late on this but wanted to add some info - I have been using a lot of free models and most have viruses written in them - 4D, You Got Owned, Infected, even a Vaccine virus etc.... I have learned to go to Studio and open the starter Flat Terrain. There I check one model at a time before ever using it in my place. There it is easy to check - just delete all the bs and then save the model to your inventory w/o the virus scripts before using. Delete the original from your inventory so you don't use the infected one. I know it doesn't help with yours already infected, but will help prevent it in the future.
Waffloid
#142979768Friday, August 08, 2014 1:21 PM GMT

space = game.Workspace function KillViruses(names) if names == nil then names = {"Virus";"Vaccine","AntiVirus";"Fire";"N0ISE";"[N0ISESCRIPT]","Virus script.","Double Click";"Hint Script";"4D Being";"WildFire";"AI"} end function Recurse(part) for i,v in pairs(part:GetChildren()) do print(v) for _,name in pairs(names) do if name:lower() == v.Name:lower() then -- kills virus v:Destroy() end if v then Recurse(v) end end end end function CheckOnCreation(Obj) for _,name in pairs(names) do if Obj.Name:lower() == name:lower() then Obj:Destroy() end end end game.Workspace.ChildAdded:connect(CheckOnCreation) Recurse(space) space.Name = "Workspace" end KillViruses() I always knew this'd come in handy. Just put this in your game. As long as the script doesn't crash the game automatticaly using a while true do end then it'll ~Swagilitious and not Nutricious~
RetiredColonel
#142980031Friday, August 08, 2014 1:27 PM GMT

I have easy way to get rid of virus scripts. You need to know name of virus script though. Make sure your output window is opened. Put this into your command bar: game:findFirstChild("4D Being",true):Destroy() Spam "Enter" key until it starts to return error.

    of     1