Lua virus

Lua viruses are infectious scripts that perform negative actions on player's places that they usually don't intend. It is sometimes used by exploiters.

How do I get a Lua virus?
Almost all viruses come from Free Models or Plugins. This is to ensure the people who make the viruses can get away with the malicious actions. Viruses can also come from Free Models that you cannot find in the Build or ROBLOX studio applications.

Can it break my place?
Your place can break, depending on the functionality of the virus itself. There are viruses that will rename objects in your game to things like "Infected" or "ROFL". The renaming can break legitimate scripts. Almost all viruses copy themselves to every object in your place, and this causes the file size of your game to inflate very quickly. When viral scripts copy themselves, the many  scripts that are created will run, which slow down your game and can typically prevent your place from even loading for your players. Some viruses are mostly harmless except for the fact that they may be used to insert other content into your place.

However, there are also viruses that are put in many models that insert the Explorer feature into your game, but the explorer feature does not work for the place's creator. Instead the people who made the virus gain access to the Explorer window. This effectively gives the people who made the virus the ability to do any thing to your place, even copy it, if one of the virus creators happen to visit your place.

Viruses have been found in Plugins as well as free models, and as scripts in Plugins have more functions and properties able to be accessed than normal scripts, such as being able to read and edit the source property of scripts, viruses hidden in Plugins may be able to do more damage than normal viruses could.

Why can't I see it in the Explorer Window?
Viruses are put inside objects that are not shown in the Explorer Window. These are known as "Hidden Classes". Common viruses will use hidden game services such as Timers or Geometry instances. Others may use joint objects like Welds, Glues, RotatePs or RotateVs.

These classes are not hidden in ROBLOX Studio 2.0 and thus the malicious scripts can be easily discovered and removed. However some of the instances in the DataModel's root is still hidden as you will see items such as the InsertService show up in the command line and not in the Explorer window.

How can I disinfect my place?
Save a copy before disinfecting your place, as you do not want to accidentally remove legitimate scripts from your place. Some antivirus tools can catch words in safe scripts that will make them think they are viruses.

What are the different anti virus scripts available?
There have been many scripts made to combat viruses. Some plugins have anti-virus functionality, but Plugins only work when the user is editing in ROBLOX Studio.
 * Roblox Defender by andyagent is the most modern antivirus plugin with perfect protection. And it is updated regularly which means that it will protect you. This plugin does not yet disinfect your place it only protects it. But the developers says he is going to add that function. NO LONGER WORKS (moderated)
 * Ro-Defender™ by : JetCrusherTorpedo is a fully working antivirus script with basic detection.
 * Virus Slayer Script made by MitchellJBridges101, takes viruses, and moves them into the Lighting folder into a model named Quarantine. NO LONGER WORKS
 * Protection (by naknak, has many more features besides an anti ban; once active it is nearly impossible to remove because of a virus) NO LONGER WORKS
 * ViCure Anti-Virus 360 made by Kog12. Lesser-known but still does a great job of finding and quarantining viruses. NO LONGER WORKS
 * Place Cleaner V0.2 made by moochoo8. Lesser-known but still quarantines any virus into Debris. Continuously updating. NO LONGER WORKS
 * Ajedi32's RS Anti-Virus 3.2 made by Ajedi32. Can stop viruses: Infected, Wildfire, Wormed, Spreadify,  and Vaccine, and more! It can quarantine as well. NO LONGER WORKS
 * Guardian Angel Defender made by TGazza. Can scan, remove and restore viruses. Mainly used to remove weld viruses and lag.

Many antivirus scripts outside of plugins do not work anymore due to the fact the Source property of Scripts was locked to Scripts for reading themselves. Plugins are still able to read and edit the Source property of scripts, even though it is locked in normal gameplay. Antiviruses would read the source of the scripts and check if they do bad things, such as copy themselves or make undesirable effects. This action of locking the Source property was highly undesirable for all scripters, as almost exactly a year ago the Source property was locked for writing (could not be changed or edited). The only antivirus that works is TGazza's Guardian Angel Defender plugin.

What is a more risky way to disinfect my place?
You must have a basic understanding of the XML language (it's what ROBLOX saves its places as, and it's not very difficult to get the hang of). Then open your place file with a simple text editor like Wordpad or Notepad. (Preferable Notepad++ if you have it.) Do a search (Ctrl+F) for a word mentioned in the virus. Normally the first result will be the actual code of the script. Find the opening object tag for the script, and delete it down to the closing tag, making sure you leave nothing unclosed. Do that for as many viruses as you have, save, then open that file with Roblox Studio. After performing these steps you should check and make sure that your place works and is clean of malicious scripts.

How can I prevent my place from getting infected?
Many builders and scripters have answered this question with a simple "Don't use Free Models!". This is the only way to protect your place 100% from getting infected with a Roblox Lua Virus. All viruses come from and transfer themselves through Free Models. There are other ways to still use Free Models and not be infected with a virus.

Since scripts do not run when the game is paused, pause your game right before you insert the model. If you have an antivirus, it will still run if it was inserted before you paused the game. Scripts added when the game is paused will not run, so you can check yourself and with an antivirus before un-pausing the game.

A not so well known fact is that Viruses can be found in Plugins. Scripts in installed Plugins do run even when the game is not running, otherwise plugins wouldn't work in Roblox Studio. Before using a Plugin, check in a blank place to make sure that the Plugin does not insert malicious scripts without you knowing. Run the place to make sure that nothing happens in the blank place, as if scripts appear to be running in a "blank place" that means that the Plugin has inserted infected scripts into it, and would most likely take malicious actions in a real place.

I know a different programming language (C#, C++, Python, Java, etc). Is it possible to make an antivirus for ROBLOX places?
It is completely possible. ROBLOX places are saved using XML, so if your language can open files for reading and writing and parse the XML you can make one. It would also be safer to scan places using these as the viruses themselves would not run and you can examine the Source of the viral scripts for malicious code. The basic functionality of your programming language would have to be:


 * File Input/Output for reading the .RBXM and .RBXL files.
 * XML Parsing to read the .RBXM and .RBXL files.
 * Advanced iterations to check all objects in the file.

Distributing an outside antivirus on the ROBLOX Website would be against ROBLOX's Terms and Conditions as this would force the person to use outside links.

Trivia

 * Another "Lua Virus" can be found in the game Garry's Mod (commonly referred to as GMOD), although the existence of this virus has been debated by many. The thread explaining it can be found here: https://steamcommunity.com/app/4000/discussions/1/648816742798726113/