New plugin: Virus Scanner V2.0

:sparkles: Hello, developers! I’m happy to announce you a new plugin I made called Virus Scanner V2.0

Current Version: V2.0

What does it do?

It’s a free plugin that detects Suspected Viruses around the game. It detects suspicious scripts around the game, or around the path you choose!
Virus Scanner V2.0 allows you to personalize your experience with studio, allowing you to detect for intrusive scripts.
It also provides you a Script Search to search Scripts’ sources around the game, depending on the input you put. This way you can find the Scripts that have that input in their sources. There’s also a Insert Anti-Virus Script, which is almost the same as the plugin, but it detects Scripts that insert fires or others. It’s meant to run in Runtime (rin-game). And the last button is Auto Verification, where it auto verifys models you put into your game from the toolbox, which is the best feature in the plugin, since most viruses come from the toolbox, obviously.

How to use it? And how does it work?

The plugin provides you 4 buttons, with different functions:
Karilbol's Virus Scanner V2.0 Plugin, Toolbar Showing
In this clip you can see the plugin’s toolbar along with the 4 different buttons. The buttons are Scan for Viruses, the main button, Insert Anti-Virus Script (inserts into Workspace, only for Runtime/in-game), Script Search, to search Scripts’ Sources, and Auto Verification, that checks models that you insert from the toolbox, to check for suspicion.
Let’s break down those functions (in order, left to right):

* Scan for Viruses Button

Karilbol's Virus Scanner V2.0 Plugin, Scan for Viruses Toolbox
When you click this button, it brings you to the main panel. It will bring you the panel as full screen so the experience is better, but you can resize the window (User is always priority):

** Functions of the main panel’s buttons

  1. Use AI Toggle – Still in progress, but its objective is to detect with AI. so it’s more correct, but it’s predicted that it will take too long, so I’m still not decided if I should release that function;
  2. Open Logs after checking Toggle – It’s a toggle (Default Activated) that, when activated, after completeting a complete (or a personalized) check, it opens the logs for you in a disabled script, with the amount of detected suspected scripts, their reason, and their line. located in AntivirusV2Data in game’s path.; but when disabled, it won’t create the script and it won’t open it. This is a toggle made so the user can personalize everything within his choice when developing.
    Example of what it printed when it detected a suspicious plugin (on purpose for testing purposes):
Example
--[[
		# LOG - PATH: Place1\n
		\n
		|| MAIN SCRIPTS:\n
		Detected: 
		
|| PLUGIN ELEMENTS (SCRIPTS):
Detected:
PLUGIN SCRIPT | PATH: PluginGuiService.PluginGui.Frame.RequestBar.SendButton.RequestSend | NAME: RequestSend
~HttpService detected, which may indicate external communication (e.g., webhook leaks);
~---------


TOTAL DETECTIONS: 1
--]]
  1. Check all Button – It’s the main button of the panel, that checks a path you selected or the main path (Game). For every suspected script it creates a panel inside the black box/sub-panel with the classification (if it’s a script that works in-game, known as running in Runtime, or if it’s a script inside a plugin’s Dock/CoreUI. It detects the scripts inside PluginGuiService and CoreGui, for the plugins). The sub-panel (in the black box) is divided like a table, with the classification, the reason for it detecting as suspicious (it opens a disabled script also, but it’s diferent than the main logs script since its source is only the script you wanted to see the reason), a button that brings you to the script and the line where it detected the suspicious “activity” and a delete option (for the user’s safety there’s a double-check for clicking on that button, for unconscious reasons of pressing it). Everytime you press this button it also clears everything on the black box. When detecting a suspicious script, it normally takes 1 second so you are conscious of what’s happening and of what it detected. You may ask: How does it work? Well, when checking, it checks all scripts (descendants included) in the selected path. It checks for HTTPService requests, requires, loadstrings, etc.. Everything used to create viruses. Even the oldest ones that we don’t know they exist. It also checks for spammy FireServer calls and for spammy fire Instance creations, especially when it’s in a loop.
Example

The suspicious activity it detected (testing purposes):


The reason it gave:

--[[
					# SCRIPT\n
					Name: RequestSend\n
					Path: PluginGuiService.PluginGui.Frame.RequestBar.SendButton.RequestSend\n
					~HttpService detected, which may indicate external communication (e.g., webhook leaks);
~--]]
  1. Choose path button – It’s a simple button to increase user’s personalization experience with the plugin, that brings you to this window:

    What you need to do is just selecting an Instance in Explorer and click on “Apply”. Then you can close the window; That way you can check for suspicious scripts in a specific path.

* Insert Anti-Virus Script Button

Karilbol's Virus Scanner V2.0 Plugin, Insert Anti-Virus Script Button - Toolbar
When you click this button it inserts a Anti-Virus script into Workspace. This scripts runs in Runtime (in-game), instead of being in studio. But it’s different since it doesn’t detect HTTPService, require, … what it does is that it warns the user about scripts with suspicious names (like “virus”, “SnAp!”, etc..). But if you want you can enable a variable so it deletes them, instead of only warning about them (console log)

Source
-- KarilbolsVirusScannerV2.0_Script
-- Inserted into Workspace
-- Made by Karilbol

wait(5) -- Delay before starting
local delayDetection = 30

local deleteSuspectedScripts = false -- not recommended on true because it can delete legit scripts (suspected script ≠ virus)

-- Name-based suspicious patterns
local suspiciousNamePatterns = {
	"virus",
	"infect",
	"steal",
	"backdoor",
	"hack",
	"exploit",
	"malware",
	"remote",
	"fireserver",
	"hintspam",
	"messagespam",
	"🔥", -- If someone uses this emoji bruh
}

local function checkScriptByName(scr)
	local isSuspicious = false
	local reason = ""

	for _, pattern in ipairs(suspiciousNamePatterns) do
		if string.lower(scr.Name):find(pattern) then
			isSuspicious = true
			reason ..= "Script name matches suspicious keyword: '" .. pattern .. "'; "
		end
	end

	-- ClassName/Instance filter
	if scr:IsA("LocalScript") and scr.Parent == game:GetService("ReplicatedStorage") then
		isSuspicious = true
		reason ..= "LocalScript stored in ReplicatedStorage, could be exploitable; "
	end

	return isSuspicious, reason
end

local function scanAllScriptsByName()
	local detectedCount = 0
	for _, descendant in ipairs(game:GetDescendants()) do
		if descendant:IsA("Script") or descendant:IsA("LocalScript") or descendant:IsA("ModuleScript") then
			if descendant ~= script then
				local suspicious, reason = checkScriptByName(descendant)
				if suspicious then
					detectedCount += 1
					if deleteSuspectedScripts then
						descendant:Destroy()
					end
					print("[Karilbol's Anti-Virus V2.0] Found suspicious script:", descendant:GetFullName(), "Reason:", reason)
				end
			end
		end
	end
	print("[Karilbol's Anti-Virus V2.0] Detected "..detectedCount.." suspicious scripts")

	if detectedCount == 0 then
		print("[Karilbol's Anti-Virus V2.0] No suspicious scripts detected in this scan (Name-based).")
	end
end

while true do
	scanAllScriptsByName()
	task.wait(delayDetection)
end

* Script Search Button

Karilbol's Virus Scanner V2.0 Plugin, Script Search Button - Toolbar
When you click this button it brings you to the Script Search Panel Window. This function allows you to search around scripts’ sources around the game with the input you put in the panel’s box. To be honest, this is 2nd best button that exists here since many developers, including me, has to write in the command bar to search around scripts in the game with what I input in (example: “source:find(input)”). This function allows you to do that with just a sentence and a single button. It’s even more optimized than doing it in the command bar.


Here’s a video of me testing it, serving as example for the user:

Video Footage

* Auto Verification Button

Karilbol's Virus Scanner V2.0 Plugin, Auto Verification Button - Toolbar
This is a toggle button. It’s default to be enabled. Its purpose is to verify models you put from the toolbox. This is the coolest feature, since almost every virus comes from models from the toolbox, so it’s pretty useful. How does it work?.. Whenever you insert a model from the toolbox, a little “hint” / frame will appear on your screen. It normally is very fast and lasts 0.3-0.5 seconds. But if the model is huge, then it would be around 1-3 seconds. Its purpose is to warn you about the size of the model, which gives you an idea of how huge it is. The text is normally white, but when you insert a model and our plugin detects it as suspicious, then the text is yellow. To not annoy the user, I made it so its just a small text, no details. But details get printed on the console log. Normally, if it doesn’t detect any suspected script inside that model, then the text is white and it will print “Nothing was detected!” in white letters. Otherwise, it will print the script’s full name (path) in yellow letters, along with the reason.
It’s set default to enabled, but you can disable it if you want.
Here’s a video of me showcasing some models (as example):

Video Footage

This is about it about the plugin. Also the plugin provides settings, so whenever you log into the game again it saves your configurations (ex.: check logs button disabled, no auto verification,..)

How to download?

Well Roblox doesn’t trust me with this plugin so I can’t upload this into the MarketPlace sadly. I know this is gonna make people less motivated to download this, but trust me, this isn’t a virus or anything that makes your game slow or that robs your data or whatever. This is a genuine plugin that took me days to make. But somehow i’m “not respecting” their Community Standards. But I have it locally so you can download it:

Karilbol’s Virus Scanner V2.0.rbxmx (262.4 KB)

How do install it on Studio?

After downloading the file, go on studio, open any game or template, go to Plugins, click on the first button “tools” and then go to Plugins Folder or something called like that (second button). It’s gonna open you a folder. Paste the downloaded file into the folder. Now exit the game and join again. You know the plugin is working when you see a configuration folder on the game called “AntivirusV2Data”. (You can’t delete it because the plugin is using it). If it isn’t, try restarting studio. If you guys want I can show you a video showcasing.

:warning: Warning

This plugin is still in the first version so it may not be what users really want. That’s why you can suggest me ideas (it’s called V2.0 but it’s still on the first version because the V2 stands for the second version of another plugin I made that’s supposedly an Anti-Virus, but it’s way worse than this one)

How to update it?

Make sure to follow my devforum page to check for new updates of the plugin!
Do you have any suggestion of what I can do to make it better to update it?

Polls

I’m gonna open a poll so you guys can vote on this.

  • First of all, did you like it?

  • Yes!
  • Could be better (suggest so you can help make it better)
0 voters
  • Should I make it for sale?

  • Yes!
  • No, let it be free!
0 voters
  • If I should make it for sale, what price?

  • 1.00$
  • 2.00$
  • Other (suggest below)
0 voters

Suggestions and opinions

If you have any suggestion or opinion to this..

! comment below :backhand_index_pointing_down: !

1 Like

That not even a parser
Its just detects text and that it.
Nobody is gonna buy that and CTRL+SHIFT+F does far better job than this plugin.
Also i have looked at source code and really very awful
Get better bro :skull_and_crossbones:
Script capabilities | Documentation - Roblox Creator Hub is far better than any of this plugins if you are a skid who cant make own code yourself for a game.

No offense but this plugin reminds me of this corporate slop lowkey
Loud announcements/ads and 0 actual use of product.

1 Like

Don’t need to be so rude. And it’s not only doing ctrl+shift+F. I can see you didn’t read. It detects all scripts around the game. Ctrl+shift+F is only one script.

What? How’s is it bad

Really professional look of a comment. Don’t tell me to get better if you talk like that with that humor.

You literally see me using the product. Literally showed footages and everything

First test the product and talk, not talk and not test the product just “by the source”.. Source says anything.. and what do you mean the source is bad? Explain.

Who said that? I can, that’s why I made this plugin. Do you think the source appeared for no reason? Are you delusional? Or just ragebaiting

1 Like

Have you tried before saying that?
Bro you cant just make string.find() and slap a plugin on it.

Also yk what?

Here is literally your entire plugin but without bloat:

local suspiciousNamePatterns:{string} = {
	"virus";
	"infect";
	"steal";
	"backdoor";
	"hack";
	"exploit";
	"malware";
	"remote";
	"fireserver";
	"hintspam";
	"messagespam";
	"🔥";
}


for i,v in game:GetDescendants() do
	if not v:IsA("LuaSourceContainer") then continue end
	for ii,vv in suspiciousNamePatterns do
		if string.find(v.Source::string,vv)~=nil then
			warn(v)
			break
		end
	end
end

what? It isnt that. Thats the inject script, which is different. Clearly didnt read
Thats not the actual plugin script
First of all, it detects suspicious things INSIDE scripts’ sources, not their name. Clearly you didn’t read
The source I gave isn’t the entire plugin. The scan does a complete different thing

Can you find backdoors inside CSGDictionaryService with this
d5d18f9c17a19de2

Good suggestion! Never thought of that service. May aswell add that
Thank you for helping and not hating

Its a service with RobloxEngine SecurityCapability. I don’t think you can access CSGDictionaryService from plugins that easily.

I think you can’t. I tried RobloxPluginService too but it wasn’t possible
Roblox services can’t be accesed. But I will let you know!

1 Like

“We acknowledge your enthusiasm, Citizen Developer. :magnifying_glass_tilted_left: :eyes:
However, efficiency is not determined by the volume of announcements or the decoration of panels - it is determined by the elimination of excess. Your plugin, though ambitious, introduces layers of ceremony where none are required. :warning:

:classical_building: At Yarik_SuperPro Industries®, we believe in tools that serve the user silently, without spectacle. A single line of logic that performs with precision is more valuable than entire frameworks built on appearance. :handshake:

:brain: Control is not achieved through toggles, menus, and slogans - it is achieved through simplicity and inevitability. Your scanner adds noise where clarity is needed. :detective:

:hammer: We encourage you to adapt, refine, and remove the unnecessary. In this way, your work may one day align with the principles of true efficiency. Until then, we will continue to observe.” :eye:

2 Likes

another of the 1000 virus plugins…

i dont even think atp that people get viruses in their game anymore

1 Like

yeah how do you even get viruses in your game unless you use free models 24/7 :folded_hands:

also rodefender is good, its literally lightweight but does the job

1 Like

It’s not the same as the other “1000 virus plugins”.. Clearly you didn’t read
First of all, it’s not like the other ones, it doesnt detect just “fire”, “virus” as those scripts’ names. It’s the source. It’s way better, more personalized, and better by printing logs and everything
Second of all, It doesn’t do only that. The main part is the script search and the auto verification.
This plugin is to make the user only understand what can be a potential virus or a practical script that can access the web

Same thing to say to you.

How isn’t 262.4 KB not lightweight??

There are so many people hating thinking this is a simple plugin.. No, it isn’t. It’s more advanced. Please read before commenting. I’m not obliging but it would be better
Since so many people are thinking this plugin is simple (maybe because of the name of it), should I make it another name??

  • Yes (reply what name)
  • No
0 voters

(Not being rude)

Did u test it? :folded_hands:
Does it actually work? :folded_hands:

I don’t understand are you replying to me or to someone? Yes of course I tested it, I literally made the plugin and it works

1 Like

Apart that it detects widely known resources like ProfileStore and the CameraShake module why are you storing the configuration in the game directory? This is the first plugin that I see to do this, and why are we checking if it exists every frame and even if it does we rename it and reparent it to the same place? Even if you needed that loop (you don’t as there are way better options) :FindFirstChild()'ing to find the values in the loop is horrible for optimization. When he meant lightweight I would guess he meant that it performs better than this plugins (not a high ceiling to hit) not the actual size. Making this paid is a horrible idea I would say, the only people getting viruses in their roblox game in 2025 are rookie dev’s and most of them aren’t in the paid plugin scene.

And how are you planning to add AI to this? Are you going to pay for the AI or will we have to order it ourselves?

Well since no one liked this plugin I’m thinking off releasing seperately Script Search from this plugin. No updates coming then :confused:
What do you think?