Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

Why is my AV erroring?

I tried doing some changes, it only works once but then stops, the error says 13:41:55.070 - Workspace.TDC'sAV\:19: attempt to index local 'Object' (a nil value) 13:41:55.072 - Stack Begin 13:41:55.074 - Script 'Workspace.TDC'sAV\', Line 19 - upvalue Scan 13:41:55.075 - Script 'Workspace.TDC'sAV\', Line 26 - local Scan 13:41:55.076 - Script 'Workspace.TDC'sAV\', Line 31 13:41:55.078 - Stack End But, I don't understand what I'm doing wrong, I've checked lines 19, 26, and 31 but I can't figure out the problem, here is the script;

wait(0)

--local AntiVirus=plugin:CreateToolbar("TheeDeathCastre's Anti-Virus")
--local AVButton=AntiVirus:CreateButton("","Start Scan","http://www.roblox.com/asset/?id=163720453")

local Viruses = {"Infected"}

local function AntiVirus(Object)
for i,v in pairs(Viruses)do
if Object.Name:lower():find(v:lower())then
Object:Destroy()
end
wait(.1)
end
end

local function Scan(Object)
for i,virus in pairs(Viruses)do
for i , scanning in pairs(Object:GetChildren())do
if scanning.Name:lower():find(virus:lower())then
scanning:Destroy()
end
wait(.1)
end
wait(.1)
Scan(v)
end
end

--function StartScan()
Scan(game:GetService("Workspace"))
Scan(game:GetService("Lighting"))
Scan(game:GetService("ServerScriptService"))
Scan(game:GetService("Players"))
Scan(game:GetService("ReplicatedFirst"))
Scan(game:GetService("ReplicatedStorage"))
Scan(game:GetService("Teams"))
Scan(game:GetService("StarterGui"))
Scan(game:GetService("StarterPack"))
Scan(game:GetService("Debris"))
Scan(game:GetService("SoundService"))
--end

--AVButton.Click:connect(StartScan)

game.DescendantAdded:connect(AntiVirus)

1 answer

You never indicated what v is on line 26. So by saying Scan(v), you're basically saying Scan(nil) because you never defined what v is. When the function is called with v as the argument, it's trying to the get the children of nil, which isn't possible. I think you're supposed to replace v with scanning. Hope this helped!

EDIT: Fixed Code

wait()

--local AntiVirus=plugin:CreateToolbar("TheeDeathCastre's Anti-Virus")
--local AVButton=AntiVirus:CreateButton("","Start Scan","http://www.roblox.com/asset/?id=163720453")

local Viruses = {"Infected"}

local function AntiVirus(Object)
	for _,v in pairs(Viruses)do
		if pcall(function() local Test = Object.Name end) then --I added this here because sometimes it would say "an error occured" when it tried to get the Object's name
			if Object.Name:lower():find(v:lower())then
				Object:Destroy()
			end
		end
	end
end

local function Scan(Object)
	for _,virus in pairs(Viruses)do
		for _,scanning in pairs(Object:GetChildren())do
			if scanning.Name:lower():find(virus:lower())then
				scanning:Destroy()
			end
			Scan(scanning) --The calling of the function "Scan" was in the wrong place
		end
	end
end

--function StartScan()
Scan(game:GetService("Workspace"))
Scan(game:GetService("Lighting"))
Scan(game:GetService("ServerScriptService"))
Scan(game:GetService("Players"))
Scan(game:GetService("ReplicatedFirst"))
Scan(game:GetService("ReplicatedStorage"))
Scan(game:GetService("Teams"))
Scan(game:GetService("StarterGui"))
Scan(game:GetService("StarterPack"))
Scan(game:GetService("Debris"))
Scan(game:GetService("SoundService"))
--end

--AVButton.Click:connect(StartScan)

game.DescendantAdded:connect(AntiVirus)

3 comments

0

Alright, thanks, I'll do that. :)

0

It didn't work. D: Its saying the same error. :(

0

I edited my answer and posted the fixed code

This discussion is preserved as it was. New answers, comments, and votes are closed.