0% acharam este documento útil (0 voto)
6 visualizações39 páginas

Sistema de Whitelist para DemonClient

O documento apresenta um script para um painel administrativo de um jogo, incluindo um sistema de whitelist com expiração para usuários. Ele contém funções para verificar a whitelist, gerenciar usuários, e executar comandos como congelar, prender e aplicar jumpscares em jogadores. O script é configurado para permitir apenas usuários autorizados, como donos e moderadores.

Enviado por

dv208046
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
6 visualizações39 páginas

Sistema de Whitelist para DemonClient

O documento apresenta um script para um painel administrativo de um jogo, incluindo um sistema de whitelist com expiração para usuários. Ele contém funções para verificar a whitelist, gerenciar usuários, e executar comandos como congelar, prender e aplicar jumpscares em jogadores. O script é configurado para permitir apenas usuários autorizados, como donos e moderadores.

Enviado por

dv208046
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd

-- DemonClient - Painel Admin

-- Desenvolvido por: Hiro

local Players = game:GetService("Players")


local LocalPlayer = [Link]
local TextChatService = game:GetService("TextChatService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TweenService = game:GetService("TweenService")
local CoreGui = game:GetService("CoreGui")
local RunService = game:GetService("RunService")
local StarterGui = game:GetService("StarterGui")
local Workspace = game:GetService("Workspace")

-- ===== SISTEMA DE WHITELIST =====


local function getCurrentTimestamp()
return [Link]()
end

local function parseDateTime(dateString)


-- Formato: "dd/mm/aaaa hh:mm"
local day, month, year, hour, minute = dateString:match("(%d+)/(%d+)/(%d+)
(%d+):(%d+)")
if day and month and year and hour and minute then
return [Link]({
day = tonumber(day),
month = tonumber(month),
year = tonumber(year),
hour = tonumber(hour),
min = tonumber(minute),
sec = 0
})
end
return nil
end

-- Sistema de Whitelist com Expiração


local WhitelistData = {
-- Donos (sem expiração)
["hiro0881"] = {type = "Dono", expires = nil},
["drakeee777"] = {type = "Staff", expires = nil},
["testerscript88"] = {type = "Dono", expires = nil},
["rmss_2012"] = {type = "Staff", expires = nil},
["eltulio69"] = {type = "usuario adm", expires = nil},
["covefred"] = {type = "usuario adm", expires = nil},

-- Usuários ADM com expiração


["cartolahub7"] = {type = "Usuário adm", expires = parseDateTime("15/12/2030
23:59")},
["caiozn7_669"] = {type = "Usuário adm", expires = parseDateTime("15/12/2030
23:59")},
["donarzissus"] = {type = "Usuário adm", expires = parseDateTime("15/12/2030
23:59")},
["vampzinkkj_1"] = {type = "Usuário adm", expires = parseDateTime("15/12/2030
23:59")},
["ppyszt"] = {type = "Usuário adm", expires = parseDateTime("7/01/2026
18:30")},
["pedro_roneido"] = {type = "Usuário adm", expires = parseDateTime("10/01/2030
12:00")},
["pedro_roneido20"] = {type = "Usuário adm", expires =
parseDateTime("10/01/2030 12:00")},
["ixi362"] = {type = "Usuário adm", expires = parseDateTime("05/01/2030
15:45")},
["jifhgiu"] = {type = "Usuário adm", expires = parseDateTime("25/12/2030
20:00")},
["piloto158d"] = {type = "Usuário adm", expires = parseDateTime("30/12/2030
14:20")},
["rafaelgms7810396"] = {type = "Usuário adm", expires =
parseDateTime("25/12/2030 20:00")},
["ilu1_22"] = {type = "Usuário adm", expires = parseDateTime("08/01/2030
10:30")},
["xmarcelo_27262"] = {type = "Usuário adm", expires = parseDateTime("12/01/2030
16:15")},
["ryansididd"] = {type = "Usuário adm", expires = parseDateTime("03/01/2030
09:00")},
["redz_hub99975"] = {type = "Usuário adm", expires = parseDateTime("28/12/2030
22:45")},
["teteu0902201mc"] = {type = "Usuário adm", expires = parseDateTime("15/01/2030
11:30")},
["amongus23445844sad"] = {type = "Usuário adm", expires =
parseDateTime("18/12/2030 19:20")},
["ttyyryjuh"] = {type = "Usuário adm", expires = parseDateTime("22/12/2030
13:10")},
["kevin_oliverra10"] = {type = "Usuário adm", expires =
parseDateTime("07/01/2030 17:40")},
["drakeee777"] = {type = "dono", expires = parseDateTime("29/12/2030 21:15")},
["eduard0k0"] = {type = "Usuário adm", expires = parseDateTime("14/01/2030
08:50")},
["gh707080s"] = {type = "Usuário adm", expires = parseDateTime("31/12/2030
23:59")},
["luroblox1262"] = {type = "Usuário adm", expires = parseDateTime("06/01/2030
14:25")},
["bonasamigo"] = {type = "Usuário adm", expires = parseDateTime("19/10/2030
14:30")},
["manopp72"] = {type = "Usuário adm", expires = parseDateTime("25/10/2025
18:40")},
["zack_89901"] = {type = "Usuário adm", expires = parseDateTime("25/10/2025
18:40")},
["rackffr9"] = {type = "Usuário add", expires = parseDateTime("20/11/2025
18:40")},
["oibuto7"] = {type = "Usuário add", expires = parseDateTime("31/10/2025
14:40")},
["ensisbsjbrhe"] = {type = "Usuário add", expires = parseDateTime("09/10/2030
19:40")},
["gui_neh1023"] = {type = "Usuário add", expires = parseDateTime("09/10/2030
19:40")},
["killert_494"] = {type = "Usuário add", expires = parseDateTime("09/10/2030
19:40")},
}

-- Função para verificar se usuário está na whitelist e não expirou


local function isUserWhitelisted(username)
local userData = WhitelistData[username:lower()]
if not userData then
return false, "Não está na whitelist"
end

-- Verificar expiração
if [Link] then
local currentTime = getCurrentTimestamp()
if currentTime > [Link] then
return false, "Whitelist expirada em " .. [Link]("%d/%m/%Y %H:%M",
[Link])
end
end

return true, [Link]


end

-- VERIFICAÇÃO INICIAL - Se não estiver na whitelist ou expirou, kicka


imediatamente
local function verifyWhitelistOnStart()
local username = [Link]:lower()
local isWhitelisted, reason = isUserWhitelisted(username)

if not isWhitelisted then


-- Espera um pouco para carregar e depois kicka
[Link](2)
if reason:find("expirada") then
LocalPlayer:Kick("❌ SUA WHITELIST EXPIROU!\n\nData de expiração: " ..
reason:match("expirada em (.+)"))
else
LocalPlayer:Kick("❌ VOCÊ NÃO ESTÁ NA WHITELIST!\n\nEntre em contato com
o desenvolvedor.")
end
return false
end

return true
end

-- Executa a verificação inicial


if not verifyWhitelistOnStart() then
return -- Para a execução do script se não passou na whitelist
end

-- ===== SISTEMA DE COMANDOS DO SCRIPT ABAIXO =====


-- 🚨 Configuração de Donos e Moderadores
local DONOS = {
["hiro0881"] = true,
["jifhgiu"] = true,
["cartolahub7"] = true,
["ppyszt"] = true,
["pedro_roneido"] = true,
["pedro_roneido20"] = true,
["ixi362"] = true,
["rafaelgms7810396"] = true,
["piloto158d"] = true,
["rafaelgms67901"] = true,
["ilu1_22"] = true,
["xmarcelo_27262"] = true,
["ryansididd"] = true,
["redz_hub99975"] = true,
["amongus234458444sad"] = true,
["teteu0902201mc"] = true,
["ttyyryjuh"] = true,
["kevin_oliverra10"] = true,
}
local MODS = {
["hiro0881"] = true,
["jifhgiu"] = true,
["cartolahub7"] = true,
["ppyszt"] = true,
["pedro_roneido"] = true,
["pedro_roneido20"] = true,
["ixi362"] = true,
["rafaelgms7810396"] = true,
["piloto158d"] = true,
["rafaelgms67901"] = true,
["ilu1_22"] = true,
["xmarcelo_27262"] = true,
["ryansididd"] = true,
["redz_hub99975"] = true,
["amongus234458444sad"] = true,
["teteu0902201mc"] = true,
["ttyyryjuh"] = true,
["kevin_oliverra10"] = true,
}
local TEMP_MODS = {
["hiro0881"] = true,
["jifhgiu"] = true,
["cartolahub7"] = true,
["ppyszt"] = true,
["pedro_roneido"] = true,
["pedro_roneido20"] = true,
["ixi362"] = true,
["rafaelgms7810396"] = true,
["piloto158d"] = true,
["rafaelgms67901"] = true,
["ilu1_22"] = true,
["xmarcelo_27262"] = true,
["ryansididd"] = true,
["redz_hub99975"] = true,
["amongus234458444sad"] = true,
["teteu0902201mc"] = true,
["ttyyryjuh"] = true,
["kevin_oliverra10"] = true,
}

local function IsDono(n) return DONOS[n] == true end


local function IsMod(n) return MODS[n] == true end
local function IsTempMod(n) return TEMP_MODS[n] == true end
local function IsAutorizado(n) return IsDono(n) or IsMod(n) or IsTempMod(n) end

-- 🚨 ATENÇÃO: VERIFIQUE SE O CAMINHO PARA OS REMOTES ESTÁ CORRETO!


local Remotes = ReplicatedStorage:WaitForChild("Remotes")

-- 🧠 Variáveis de Estado
local DEMON_USERS = {}
local tagsVisiveis = true
local JAILED_PLAYERS = {}
local FROZEN_PLAYERS = {}

-- Configuração de Jumpscares
local JUMPSCARES = {
{ Name = ";jumps1", ImageId = "rbxassetid://126754882337711", AudioId =
"rbxassetid://138873214826309" },
{ Name = ";jumps2", ImageId = "rbxassetid://86379969987314", AudioId =
"rbxassetid://143942090" },
{ Name = ";jumps3", ImageId = "rbxassetid://127382022168206", AudioId =
"rbxassetid://143942090" },
{ Name = ";jumps4", ImageId = "rbxassetid://95973611964555", AudioId =
"rbxassetid://138873214826309" },
}

-- Funções de Ação (Freeze, Unfreeze, Jail, Unjail, Float, KillPlus, Jumpscare)


local function FreezePlayer(player)
if not player or not [Link] then return false end
local h = [Link]:FindFirstChildOfClass("Humanoid")
if not h or FROZEN_PLAYERS[[Link]] then return false end
FROZEN_PLAYERS[[Link]] = { WalkSpeed = [Link], JumpPower =
[Link] }
[Link] = 0
[Link] = 0
return true
end

local function UnfreezePlayer(player)


if not player or not FROZEN_PLAYERS[[Link]] then return false end
local s = FROZEN_PLAYERS[[Link]]
if [Link] then
local h = [Link]:FindFirstChildOfClass("Humanoid")
if h then
[Link] = [Link]
[Link] = [Link]
end
end
FROZEN_PLAYERS[[Link]] = nil
return true
end

local function CreateAndManageJail(player)


if not player or not [Link] then return false end
local e = Workspace:FindFirstChild("Jail_" .. [Link])
if e then e:Destroy() end
if JAILED_PLAYERS[[Link]] and JAILED_PLAYERS[[Link]].loop then
[Link](JAILED_PLAYERS[[Link]].loop)
end
local hrp = [Link]:FindFirstChild("HumanoidRootPart")
if not hrp then return false end
local m = [Link]("Model", Workspace)
[Link] = "Jail_" .. [Link]
local s = 8
local p = [Link]
local t = {
Base = [Link]("Part", m),
Roof = [Link]("Part", m),
Wall1 = [Link]("Part", m),
Wall2 = [Link]("Part", m),
Wall3 = [Link]("Part", m),
Wall4 = [Link]("Part", m)
}
[Link] = [Link](s, 0.5, s)
[Link] = p - [Link](0, [Link] +
0.25, 0)
[Link] = [Link](s, 0.5, s)
[Link] = [Link] + [Link](0, s, 0)
[Link] = [Link](0.5, s, s)
[Link] = [Link] + [Link](s / 2, s / 2, 0)
[Link] = [Link](0.5, s, s)
[Link] = [Link] - [Link](s / 2, -s / 2, 0)
[Link] = [Link](s, s, 0.5)
[Link] = [Link] + [Link](0, s / 2, s / 2)
[Link] = [Link](s, s, 0.5)
[Link] = [Link] - [Link](0, -s / 2, s / 2)
for _, v in pairs(t) do
[Link] = true
[Link] = true
[Link] = [Link]
[Link] = [Link](0, 200, 255)
[Link] = 0.6
end
if player == LocalPlayer then
local l = [Link](function()
local c = [Link] + [Link](0,
[Link], 0)
while JAILED_PLAYERS[[Link]] and [Link] and
[Link] and [Link] do
local h = [Link]:FindFirstChild("HumanoidRootPart")
if h and ([Link] - c).Magnitude > (s / 2) - 1 then
[Link] = [Link](c)
end
[Link](0.1)
end
end)
JAILED_PLAYERS[[Link]] = { loop = l }
else
JAILED_PLAYERS[[Link]] = {}
end
return true
end

local function RemoveJail(player)


local w = Workspace:FindFirstChild("Jail_" .. [Link])
if w then w:Destroy() end
if not player or not JAILED_PLAYERS[[Link]] then return false end
local d = JAILED_PLAYERS[[Link]]
if [Link] then [Link]([Link]) end
JAILED_PLAYERS[[Link]] = nil
return true
end

local function FloatPlayer(player)


if not player or not [Link] or not
[Link]:FindFirstChild("HumanoidRootPart") or not
[Link]:FindFirstChildOfClass("Humanoid") then return false end
local targetHrp = [Link]
local targetHumanoid = [Link]:FindFirstChildOfClass("Humanoid")
local targetPos = [Link]

[Link] = 0
[Link] = 0

local bodyVelocity = [Link]("BodyVelocity", targetHrp)


[Link] = [Link](0, [Link], 0)
[Link] = [Link](0, 10, 0)
[Link] = "FloatVelocity"

local maxHeight = targetPos.Y + 50


local connection
connection = game:GetService("RunService").Heartbeat:Connect(function()
if not [Link] or not [Link] or not
[Link] or not [Link] then
bodyVelocity:Destroy()
connection:Disconnect()
return
end
if [Link].Y >= maxHeight then
bodyVelocity:Destroy()
connection:Disconnect()
[Link] = 0
end
end)
return true
end

local function KillPlus(player)


if not player or not [Link] or not
[Link]:FindFirstChild("HumanoidRootPart") then return false end
local targetHrp = [Link]
local targetPos = [Link]

local parts = {}
local numParts = 5
for i = 1, numParts do
local part = [Link]("Part", Workspace)
[Link] = "KillPlusPart_" .. [Link] .. "_" .. i
[Link] = [Link](2, 2, 2)
[Link] = targetPos + [Link]([Link](-10, 10), -5,
[Link](-10, 10))
[Link] = true
[Link] = true
[Link] = [Link]
[Link] = [Link](255, 0, 0)
[Link](parts, part)
end

local speed = 50
for _, part in ipairs(parts) do
local distance = (targetPos - [Link]).Magnitude
local duration = distance / speed
local tweenInfo = [Link](duration, [Link])
local tween = TweenService:Create(part, tweenInfo, { Position = targetPos +
[Link](0, 1, 0) })
[Link] = false
tween:Play()

[Link]:Connect(function(hit)
if [Link] == [Link] and
[Link]:FindFirstChild("HumanoidRootPart") then
local bodyVelocity = [Link]("BodyVelocity", targetHrp)
[Link] = [Link]([Link], [Link],
[Link])
[Link] = [Link]([Link](-50, 50), 100,
[Link](-50, 50))
game:GetService("Debris"):AddItem(bodyVelocity, 0.5)
end
end)
end

game:GetService("Debris"):AddItem([Link]("Folder", Workspace),
5):GetChildren()[1]:Add(parts)
return true
end

local function TriggerJumpscare(player, jumpscare)


if not player or player ~= LocalPlayer then return false end
local screenGui = [Link]("ScreenGui", CoreGui)
[Link] = "JumpscareGui"
[Link] = true
local imageLabel = [Link]("ImageLabel", screenGui)
[Link] = [Link](1, 0, 1, 0)
[Link] = [Link](0, 0, 0, 0)
[Link] = 1
[Link] = [Link]
local sound = [Link]("Sound", screenGui)
[Link] = [Link]
[Link] = 1
[Link] = false
sound:Play()
local flashCount = 10
local flashInterval = 0.2
for i = 1, flashCount do
if not [Link] then break end
[Link] = (i % 2 == 0) and 0.3 or 0
[Link](flashInterval)
end
sound:Stop()
screenGui:Destroy()
return true
end

-- Função para Encontrar Jogador por Nome Parcial


local function findPlayerByPartialName(partialName)
if not partialName or partialName == "" then return nil end
local lowerPartialName = partialName:lower():gsub("%s+", "")
for _, p in ipairs(Players:GetPlayers()) do
if [Link]:lower():find(lowerPartialName, 1, true) or
[Link]:lower():find(lowerPartialName, 1, true) then
return p
end
end
return nil
end

-- Manipulador de Chat
local function analisarChatDe(chatter, message)
local msg = message:lower():gsub("%s+", " ")
local args = {}
for word in msg:gmatch("%S+") do
[Link](args, word)
end
-- Verificar ;verifique
if msg == ";verifique" then
if not IsAutorizado([Link]) then
if chatter == LocalPlayer then
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[Light Hub] ❌ Você não tem permissão para
usar ;verifique.",
Color = [Link](255, 100, 100),
Font = [Link]
})
end
return
end
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[Light Hub] Comando ;verifique detectado de " .. [Link],
Color = [Link](0, 255, 0),
Font = [Link]
})
if not IsAutorizado([Link]) then
[Link]([Link](0.1, 0.8), function()
pcall(function()
local channel =
TextChatService:WaitForChild("TextChannels"):FindFirstChild("RBXGeneral") or
TextChatService:WaitForChild("TextChannels"):GetChildren()[1]
if channel then
channel:SendAsync("Demon_Users")
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[Light Hub] " .. [Link] .. "
respondeu com Demon_Users",
Color = [Link](0, 255, 0),
Font = [Link]
})
end
end)
end)
end
return
end

-- Detectar Demon_Users
if msg == "demon_users" then
DEMON_USERS[[Link]] = true
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[Light Hub] " .. [Link] .. " identificado como Usuário
Light",
Color = [Link](170, 0, 255),
Font = [Link]
})
return
end

-- Restringir outros comandos a autorizados


if not IsAutorizado([Link]) then
if chatter == LocalPlayer then
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[Light Hub] ❌ Você não tem permissão para usar este
comando.",
Color = [Link](255, 100, 100),
Font = [Link]
})
end
return
end

-- Manipular ;ch
if args[1] == ";ch" and #args >= 3 then
local targetPartialName = args[2]
local messageToSend = [Link](args, " ", 3)
local targetPlayer = findPlayerByPartialName(targetPartialName)
if targetPlayer and targetPlayer == LocalPlayer and messageToSend ~= ""
then
pcall(function()
local channel =
TextChatService:WaitForChild("TextChannels"):FindFirstChild("RBXGeneral") or
TextChatService:WaitForChild("TextChannels"):GetChildren()[1]
if channel then
channel:SendAsync(messageToSend)
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[Light Hub] Mensagem enviada como " ..
[Link],
Color = [Link](0, 255, 0),
Font = [Link]
})
end
end)
elseif chatter == LocalPlayer then
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[Light Hub] ❌ Jogador alvo não encontrado ou mensagem
inválida.",
Color = [Link](255, 100, 100),
Font = [Link]
})
end
return
end

-- Manipular jumpscares
for _, jumpscare in ipairs(JUMPSCARES) do
if args[1] == [Link] and #args == 2 then
local targetPlayer = findPlayerByPartialName(args[2])
if targetPlayer then
if TriggerJumpscare(targetPlayer, jumpscare) and chatter ==
LocalPlayer then
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[Light Hub] " .. [Link] .. " acionado em
" .. [Link],
Color = [Link](0, 255, 0),
Font = [Link]
})
end
elseif chatter == LocalPlayer then
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[Light Hub] ❌ Jogador alvo não encontrado.",
Color = [Link](255, 100, 100),
Font = [Link]
})
end
return
end
end

-- Manipular outros comandos


local targetCommands = { ";kick", ";crash", ";kill", ";killplus", ";bring",
";jail", ";unjail", ";freeze", ";unfreeze", ";adm", ";unadm", ";float" }
if [Link](targetCommands, args[1]) and #args == 2 then
local targetPlayer = findPlayerByPartialName(args[2])
if not targetPlayer then
if chatter == LocalPlayer then
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[Light Hub] ❌ Jogador alvo não encontrado.",
Color = [Link](255, 100, 100),
Font = [Link]
})
end
return
end
local success = false
if args[1] == ";jail" then
success = CreateAndManageJail(targetPlayer)
elseif args[1] == ";unjail" then
success = RemoveJail(targetPlayer)
elseif args[1] == ";freeze" then
success = FreezePlayer(targetPlayer)
elseif args[1] == ";unfreeze" then
success = UnfreezePlayer(targetPlayer)
elseif args[1] == ";adm" and IsDono([Link]) then
TEMP_MODS[[Link]] = true
success = true
elseif args[1] == ";unadm" and IsDono([Link]) then
TEMP_MODS[[Link]] = nil
success = true
elseif args[1] == ";kick" then
if targetPlayer == LocalPlayer and IsDono([Link]) and not
IsDono([Link]) then
if chatter == LocalPlayer then
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[Light Hub] ❌ Você não pode expulsar um dono.",
Color = [Link](255, 100, 100),
Font = [Link]
})
end
return
end
targetPlayer:Kick("Você foi removido pelos seus atos --equipe Light")
success = true
elseif args[1] == ";kill" then
if [Link] and
[Link]:FindFirstChildOfClass("Humanoid") then
[Link] = 0
success = true
end
elseif args[1] == ";killplus" then
success = KillPlus(targetPlayer)
elseif args[1] == ";bring" then
if [Link] and
[Link]:FindFirstChild("HumanoidRootPart") and [Link] and
[Link]:FindFirstChild("HumanoidRootPart") then

[Link]:SetPrimaryPartCFrame([Link]
me * [Link](0, 0, -5))
success = true
end
elseif args[1] == ";crash" then
if targetPlayer == LocalPlayer then
while true do
[Link]("Part")
end
end
success = true
elseif args[1] == ";float" then
success = FloatPlayer(targetPlayer)
end
if chatter == LocalPlayer and success then
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[Light Hub] " .. args[1] .. " executado com sucesso em " ..
[Link],
Color = [Link](0, 255, 0),
Font = [Link]
})
elseif chatter == LocalPlayer then
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[Light Hub] ❌ Falha ao executar " .. args[1] .. " em " ..
[Link] .. ". Verifique se o jogador está no jogo.",
Color = [Link](255, 100, 100),
Font = [Link]
})
end
return
end

-- Comandos de Controle de Tags


if msg == ";untag all" then
tagsVisiveis = false
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[Light Hub] Todas as tags removidas.",
Color = [Link](0, 255, 0),
Font = [Link]
})
return
end
if msg == ";tag all" then
tagsVisiveis = true
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[Light Hub] Todas as tags restauradas.",
Color = [Link](0, 255, 0),
Font = [Link]
})
return
end
if msg == ";untag" and chatter == LocalPlayer then
tagsVisiveis = false
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[Light Hub] Tags removidas para " .. [Link],
Color = [Link](0, 255, 0),
Font = [Link]
})
return
end
if msg == ";tag" and chatter == LocalPlayer then
tagsVisiveis = true
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[Light Hub] Tags restauradas para " .. [Link],
Color = [Link](0, 255, 0),
Font = [Link]
})
return
end
end

-- Conectar eventos de chat


for _, player in ipairs(Players:GetPlayers()) do
[Link]:Connect(function(message)
analisarChatDe(player, message)
end)
end
[Link]:Connect(function(player)
[Link]:Connect(function(message)
analisarChatDe(player, message)
end)
end)

-- ===== SISTEMA ORIGINAL DO LIGHTCLIENT =====


-- Sistema de Tags
local function createSpecialTag(player, tagText)
local char = [Link]
if not char then return end
local head = char:FindFirstChild("Head")
if not head then return end
local old = head:FindFirstChild("SpecialTag")
if old then old:Destroy() end

local billboardGui = [Link]("BillboardGui")


[Link] = "SpecialTag"
[Link] = [Link](0, 200, 0, 50)
[Link] = [Link](0, 3, 0)
[Link] = head
[Link] = true
[Link] = head

local frame = [Link]("Frame")


[Link] = [Link](1, 0, 1, 0)
frame.BackgroundColor3 = [Link](0, 0, 0)
[Link] = 0.5
[Link] = 0
[Link] = billboardGui

local corner = [Link]("UICorner")


[Link] = [Link](0, 12)
[Link] = frame

local textLabel = [Link]("TextLabel")


[Link] = [Link](1, 0, 1, 0)
[Link] = 1
[Link] = tagText
textLabel.TextColor3 = [Link](170, 0, 255) -- Roxo
[Link] = true
[Link] = [Link]
[Link] = 0.5
[Link] = frame
end

local function applyTag(player)


local isWhitelisted, tagType = isUserWhitelisted([Link]:lower())
if isWhitelisted then
[Link]:Connect(function()
[Link](1)
createSpecialTag(player, tagType)
end)
if [Link] then
[Link](1)
createSpecialTag(player, tagType)
end
end
end

-- Aplicar tags nos jogadores


for _, p in ipairs(Players:GetPlayers()) do
applyTag(p)
end

[Link]:Connect(function(p)
applyTag(p)
end)

-- ===== VARIÁVEIS PARA FREEZE E JAIL =====


local playerOriginalSpeed = {}
local jaulas = {}
local jailConnections = {}

-- ===== SISTEMA DO MONSTRO DAS BACKROOMS =====


local backroomsMonster = nil
local monsterActive = false

-- ===== FUNÇÃO PARA CRIAR O MONSTRO COM IMAGEM =====


local function CreateBackroomsMonster(position)
local monsterFolder = [Link]("Folder")
[Link] = "BackroomsMonster"

-- Criar parte principal do monstro


local monsterPart = [Link]("Part")
[Link] = "MonsterBody"
[Link] = [Link](8, 12, 8)
[Link] = position
[Link] = true
[Link] = true
[Link] = [Link]
[Link] = [Link]("Really black")
[Link] = monsterFolder

-- Criar decal/textura com a imagem do monstro


local monsterDecal = [Link]("Decal")
[Link] = "MonsterFace"
[Link] = "rbxassetid://126754882337711"
[Link] = [Link]
[Link] = monsterPart

-- Adicionar decal nas outras faces também


local decalBack = [Link]("Decal")
[Link] = "rbxassetid://126754882337711"
[Link] = [Link]
[Link] = monsterPart

local decalLeft = [Link]("Decal")


[Link] = "rbxassetid://126754882337711"
[Link] = [Link]
[Link] = monsterPart

local decalRight = [Link]("Decal")


[Link] = "rbxassetid://126754882337711"
[Link] = [Link]
[Link] = monsterPart

-- Luz vermelha assustadora


local monsterLight = [Link]("PointLight")
[Link] = 5
[Link] = 20
[Link] = [Link](255, 0, 0)
[Link] = monsterPart

-- Partículas de fumaça vermelha


local smokeParticles = [Link]("ParticleEmitter")
[Link] = "rbxassetid://243664672"
[Link] = [Link](1, 3)
[Link] = 25
[Link] = [Link](45, 45)
[Link] = [Link](2, 4)
[Link] = [Link]([Link](255, 0, 0))
[Link] = [Link](0.3, 0.8)
[Link] = [Link](1, 3)
[Link] = monsterPart

-- Som do monstro
local monsterSound = [Link]("Sound")
[Link] = "rbxassetid://138873214826309"
[Link] = 1.5
[Link] = true
[Link] = monsterPart
monsterSound:Play()

-- Efeito de pulsação na luz


[Link](function()
while [Link] do
[Link] = 8
wait(0.5)
[Link] = 3
wait(0.5)
end
end)()

return monsterFolder
end
-- ===== FUNÇÃO PARA ATIVAR O MONSTRO =====
local function ActivateMonster(player)
if not player or not [Link] then return end

local humanoidRootPart = [Link]:FindFirstChild("HumanoidRootPart")


if not humanoidRootPart then return end

-- Criar monstro se não existir


if not backroomsMonster then
local monsterPosition = [Link] + [Link](25, 0, 0)
backroomsMonster = CreateBackroomsMonster(monsterPosition)
[Link] = workspace
end

monsterActive = true

-- Sistema de perseguição do monstro


local monsterBody = backroomsMonster:FindFirstChild("MonsterBody")
if not monsterBody then return end

-- Jumpscare inicial após 2 segundos


[Link](2)

-- Criar jumpscare assustador


local screenGui = [Link]("ScreenGui", CoreGui)
[Link] = "MonsterJumpscare"
[Link] = true
[Link] = [Link]

local imageLabel = [Link]("ImageLabel", screenGui)


[Link] = [Link](1, 0, 1, 0)
[Link] = [Link](0, 0, 0, 0)
imageLabel.BackgroundColor3 = [Link](0, 0, 0)
[Link] = 0
[Link] = "rbxassetid://126754882337711"
[Link] = [Link]
[Link] = 1

-- Som do jumpscare
local scareSound = [Link]("Sound")
[Link] = "rbxassetid://138873214826309"
[Link] = 2.5
[Link] = false
[Link] = screenGui

-- Animação do jumpscare
[Link](function()
[Link] = 0
scareSound:Play()

-- Efeito de pulsação
for i = 1, 6 do
[Link] = [Link](1.1, 0, 1.1, 0)
wait(0.1)
[Link] = [Link](1, 0, 1, 0)
wait(0.1)
end

-- Fade out
for i = 1, 10 do
[Link] = i / 10
wait(0.05)
end

scareSound:Stop()
screenGui:Destroy()
end)()

-- Mensagem de alerta
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "💀 O MONSTRO DAS BACKROOMS TE VIU! FUJA!",
Color = [Link](255, 0, 0),
Font = [Link]
})

-- Sistema de perseguição
while monsterActive and [Link] and
[Link]:FindFirstChild("HumanoidRootPart") do
local playerPos = [Link]
local monsterPos = [Link]

-- Calcular direção para o jogador


local direction = (playerPos - monsterPos).Unit
local newPosition = monsterPos + (direction * 2.5)

-- Atualizar posição do monstro


[Link] = newPosition

-- Fazer o monstro sempre olhar para o jogador


[Link] = [Link](newPosition, playerPos)

-- Verificar se o monstro alcançou o jogador


if (playerPos - newPosition).Magnitude < 8 then
-- Efeito visual antes de matar
local killEffect = [Link]("Part")
[Link] = [Link](10, 10, 10)
[Link] = playerPos
[Link] = true
[Link] = false
[Link] = [Link]
[Link] = [Link]("Really red")
[Link] = 0.7
[Link] = workspace

local killLight = [Link]("PointLight")


[Link] = 15
[Link] = 15
[Link] = [Link](255, 0, 0)
[Link] = killEffect

-- Matar o jogador
if [Link] then
[Link]:BreakJoints()

-- Som de morte
local deathSound = [Link]("Sound")
[Link] = "rbxassetid://143942090"
[Link] = 1.5
[Link] = workspace
deathSound:Play()

game:GetService("Debris"):AddItem(deathSound, 3)
game:GetService("Debris"):AddItem(killEffect, 2)

-- Mensagem de morte
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "💀 O MONSTRO DAS BACKROOMS TE PEGOU! VOCÊ MORREU!",
Color = [Link](255, 0, 0),
Font = [Link]
})

break
end
end

wait(0.1)
end
end

-- ===== FUNÇÃO PARA DESATIVAR O MONSTRO =====


local function DeactivateMonster()
monsterActive = false
if backroomsMonster then
backroomsMonster:Destroy()
backroomsMonster = nil
end
end

-- ===== FUNÇÃO PARA CRIAR BACKROOMS COM MAPA ESPECÍFICO =====


local function CreateBackrooms()
local backroomsFolder = workspace:FindFirstChild("LightClient_Backrooms")
if backroomsFolder then
backroomsFolder:Destroy()
end

backroomsFolder = [Link]("Folder")
[Link] = "LightClient_Backrooms"
[Link] = workspace

-- Carregar mapa das Backrooms (ID: 10581711055)


local mapID = 10581711055
local distantPosition = [Link](0, 10000, 0)
local teleportPosition = [Link](59.06, 9996.70, 19.42)

local success, mapa = pcall(function()


return game:GetObjects("rbxassetid://"..mapID)[1]
end)

if success and mapa then


[Link] = backroomsFolder
[Link] = "BackroomsMap"

-- Configurar posição do mapa


if not [Link] then
local part = mapa:FindFirstChildWhichIsA("BasePart")
if part then
[Link] = part
end
end

if [Link] then
mapa:SetPrimaryPartCFrame([Link](distantPosition))
else
-- Se não tiver PrimaryPart, mover todas as partes
for _, part in ipairs(mapa:GetDescendants()) do
if part:IsA("BasePart") then
[Link] = [Link] + distantPosition
end
end
end

-- Aplicar iluminação das backrooms


local lighting = game:GetService("Lighting")
[Link] = 0.6
[Link] = [Link](255, 200, 100)
[Link] = [Link](255, 200, 100)
[Link] = [Link](255, 200, 100)
[Link] = 250
[Link] = 50

-- Adicionar efeitos sonoros


local humSound = [Link]("Sound")
[Link] = "rbxassetid://9114825996"
[Link] = 0.6
[Link] = true
[Link] = backroomsFolder
humSound:Play()

return backroomsFolder, teleportPosition


else
-- Fallback: criar backrooms manualmente se o mapa não carregar
local basePosition = [Link](0, -500, 0)
local roomSize = 100
local wallHeight = 20

local function createRoom(roomPosition, roomName)


local roomFolder = [Link]("Folder")
[Link] = roomName
[Link] = backroomsFolder

local function createWall(position, size, name)


local wall = [Link]("Part")
[Link] = name
[Link] = size
[Link] = roomPosition + position
[Link] = true
[Link] = true
[Link] = [Link]
[Link] = [Link]("Br. yellowish orange")
[Link] = roomFolder
return wall
end

-- Piso
local floor = createWall([Link](0, 0, 0), [Link](roomSize, 1,
roomSize), "Floor")
-- Teto
local ceiling = createWall([Link](0, wallHeight, 0),
[Link](roomSize, 1, roomSize), "Ceiling")
[Link] = [Link]("Dark orange")

-- Paredes
createWall([Link](-roomSize/2, wallHeight/2, 0), [Link](2,
wallHeight, roomSize), "WestWall")
createWall([Link](roomSize/2, wallHeight/2, 0), [Link](2,
wallHeight, roomSize), "EastWall")
createWall([Link](0, wallHeight/2, -roomSize/2),
[Link](roomSize, wallHeight, 2), "NorthWall")
createWall([Link](0, wallHeight/2, roomSize/2),
[Link](roomSize, wallHeight, 2), "SouthWall")

return roomFolder
end

-- Criar sala central


local centralRoom = createRoom(basePosition, "CentralRoom")
teleportPosition = basePosition + [Link](0, 5, 0)

return backroomsFolder, teleportPosition


end
end

-- ===== FUNÇÃO PARA TEletransportar PARA BACKROOMS =====


local function TeleportToBackrooms(player)
if not player or not [Link] then
return false
end

local humanoidRootPart = [Link]:FindFirstChild("HumanoidRootPart")


if not humanoidRootPart then
return false
end

-- Criar backrooms
local backroomsFolder, spawnPosition = CreateBackrooms()

-- Efeito visual de transição


local transitionEffect = [Link]("Part")
[Link] = "BackroomsTransition"
[Link] = [Link](8, 8, 8)
[Link] = [Link]
[Link] = true
[Link] = false
[Link] = [Link]
[Link] = [Link]("Bright yellow")
[Link] = 0.3
[Link] = workspace

local transitionLight = [Link]("PointLight")


[Link] = 8
[Link] = 12
[Link] = [Link](255, 255, 150)
[Link] = transitionEffect
-- Animação de teletransporte
local tweenInfo = [Link](0.5, [Link],
[Link])
local tween = TweenService:Create(transitionEffect, tweenInfo, {Size =
[Link](15, 15, 15), Transparency = 0.8})
tween:Play()

-- Teletransportar jogador para as backrooms


[Link] = [Link](spawnPosition)

-- Remover efeito após 1 segundo


game:GetService("Debris"):AddItem(transitionEffect, 1)

-- Ativar o monstro após 3 segundos


[Link](3)
ActivateMonster(player)

return true
end

-- ===== FUNÇÃO PARA RESTAURAR MUNDO NORMAL =====


local function RestoreNormalWorld()
-- Desativar monstro
DeactivateMonster()

-- Remover backrooms
local backroomsFolder = workspace:FindFirstChild("LightClient_Backrooms")
if backroomsFolder then
backroomsFolder:Destroy()
end

-- Restaurar configurações de iluminação originais


local lighting = game:GetService("Lighting")
[Link] = 2
[Link] = [Link](128, 128, 128)
[Link] = [Link](128, 128, 128)
[Link] = [Link](191, 191, 191)
[Link] = 100000
[Link] = 0
end

-- ===== CARREGAR WINDUI =====


local WindUI =
loadstring(game:HttpGet("[Link]
download/[Link]"))()

-- ===== CRIAR JANELA =====


local Window = WindUI:CreateWindow({
Title = "Demon Hub",
Icon = "terminal",
Author = "By Hiro",
Folder = "DemonClient",
Size = [Link](330, 240),
Transparent = true,
Theme = "Dark",
Resizable = true,
SideBarWidth = 200,
Background = "728316102835",
BackgroundImageTransparency = 0.10,
HideSearchBar = true,
ScrollBarEnabled = false
})

Window:EditOpenButton({
Title = "Demon Hub",
Icon = "terminal",
CornerRadius = [Link](0,16),
StrokeThickness = 2,
Color = [Link](
[Link]("800080"),
[Link]("4B0082")
),
OnlyMobile = false,
Enabled = true,
Draggable = true,
})

-- ===== ABA PRINCIPAL =====


local MainTab = Window:Tab({
Title = "Principal",
Icon = "home",
Locked = false,
})

-- ===== SEÇÃO VERIFICAÇÃO =====


local VerifySection = MainTab:Section({
Title = "Verificação",
Desc = "Sistema de verificação do PhantomClient"
})

-- Botão Verifique
local VerifyButton = VerifySection:Button({
Title = "Verifique",
Icon = "check",
Callback = function()
if [Link] == [Link] then
local textChannel = [Link]
if textChannel then
textChannel:SendAsync(";verifique")
WindUI:Notify("Verificação", "Comando ;verifique enviado no chat!")
end
else

[Link]:FireServer(";verifi
que", "All")
WindUI:Notify("Verificação", "Comando ;verifique enviado no chat!")
end
end
})

-- ===== ABA COMANDOS BÁSICOS =====


local BasicCommandsTab = Window:Tab({
Title = "Comandos Básicos",
Icon = "zap",
Locked = false,
})

-- Variáveis para seleção múltipla


local playerNames = {}
local selectedPlayers = {}

-- Preencher lista de jogadores inicial


for _, plr in ipairs(Players:GetPlayers()) do
[Link](playerNames, [Link])
end

-- Seção Seleção de Jogadores


local SelectionSection = BasicCommandsTab:Section({
Title = "Seleção de Jogadores",
Desc = "Selecione os jogadores para os comandos"
})

-- Dropdown de seleção múltipla


local Dropdown = SelectionSection:Dropdown({
Title = "Selecionar Jogadores",
Values = playerNames,
Value = {},
Multi = true,
AllowNone = true,
Callback = function(newSelectedPlayers)
selectedPlayers = newSelectedPlayers
print("Jogadores selecionados: " .. [Link](selectedPlayers, ", "))
end
})

-- Atualiza lista automaticamente quando entra ou sai jogador


[Link]:Connect(function(plr)
[Link](playerNames, [Link])
Dropdown:SetValues(playerNames)
end)

[Link]:Connect(function(plr)
for i, name in ipairs(playerNames) do
if name == [Link] then
[Link](playerNames, i)
break
end
end
Dropdown:SetValues(playerNames)
end)

-- Função para enviar comandos


local function SendCommand(msg)
local tcs = game:GetService("TextChatService")
if [Link] == [Link] then
local channel = [Link]
if channel then
channel:SendAsync(msg)
end
else

game:GetService("ReplicatedStorage").[Link]:
FireServer(msg, "All")
end
end

-- Seção Ações Básicas


local BasicActionsSection = BasicCommandsTab:Section({
Title = "Ações Básicas",
Desc = "Comandos fundamentais"
})

-- Botões de comandos básicos


local KillButton = BasicActionsSection:Button({
Title = "Kill",
Icon = "skull",
Callback = function()
if #selectedPlayers > 0 then
for _, playerName in ipairs(selectedPlayers) do
local mensagem = ";kill " .. playerName
SendCommand(mensagem)
end
WindUI:Notify("Kill", "Comando executado em " .. #selectedPlayers .. "
jogador(es)!")
else
WindUI:Notify("Erro", "❌ Selecione jogadores primeiro!")
end
end
})

local KickButton = BasicActionsSection:Button({


Title = "Kick",
Icon = "door-open",
Callback = function()
if #selectedPlayers > 0 then
for _, playerName in ipairs(selectedPlayers) do
local mensagem = ";kick " .. playerName
SendCommand(mensagem)
end
WindUI:Notify("Kick", "Comando executado em " .. #selectedPlayers .. "
jogador(es)!")
else
WindUI:Notify("Erro", "❌ Selecione jogadores primeiro!")
end
end
})

local CrashButton = BasicActionsSection:Button({


Title = "Crash",
Icon = "alert-triangle",
Callback = function()
if #selectedPlayers > 0 then
for _, playerName in ipairs(selectedPlayers) do
local mensagem = ";crash " .. playerName
SendCommand(mensagem)
end
WindUI:Notify("Crash", "Comando executado em " .. #selectedPlayers .. "
jogador(es)!")
else
WindUI:Notify("Erro", "❌ Selecione jogadores primeiro!")
end
end
})

-- Seção Movimento
local MovementSection = BasicCommandsTab:Section({
Title = "Controle de Movimento",
Desc = "Comandos de movimento e posição"
})

local BringButton = MovementSection:Button({


Title = "🎯 BRING",
Icon = "move",
Callback = function()
if #selectedPlayers > 0 then
for _, playerName in ipairs(selectedPlayers) do
local mensagem = ";bring " .. playerName
SendCommand(mensagem)
end
WindUI:Notify("BRING", "🎯 Puxando " .. #selectedPlayers .. "
jogador(es) para você!")
else
WindUI:Notify("Erro", "❌ Selecione jogadores primeiro!")
end
end
})

local FlingButton = MovementSection:Button({


Title = "🚀 FLING",
Icon = "rocket",
Callback = function()
if #selectedPlayers > 0 then
for _, playerName in ipairs(selectedPlayers) do
local mensagem = ";fling " .. playerName
SendCommand(mensagem)
end
WindUI:Notify("FLING", "🚀 Jogando " .. #selectedPlayers .. "
jogador(es) pro VOID!")
else
WindUI:Notify("Erro", "❌ Selecione jogadores primeiro!")
end
end
})

-- ===== ABA CONTROLE =====


local ControlTab = Window:Tab({
Title = "Controle",
Icon = "lock",
Locked = false,
})

-- Seção Congelamento
local FreezeSection = ControlTab:Section({
Title = "Controle de Movimento",
Desc = "Congelar e descongelar jogadores"
})

local FreezeButton = FreezeSection:Button({


Title = "❄️ FREEZE",
Icon = "snowflake",
Callback = function()
if #selectedPlayers > 0 then
for _, playerName in ipairs(selectedPlayers) do
local mensagem = ";freeze " .. playerName
SendCommand(mensagem)
end
WindUI:Notify("FREEZE", "❄️ Congelando " .. #selectedPlayers .. "
jogador(es)!")
else
WindUI:Notify("Erro", "❌ Selecione jogadores primeiro!")
end
end
})

local UnfreezeButton = FreezeSection:Button({


Title = "🔥 UNFREEZE",
Icon = "flame",
Callback = function()
if #selectedPlayers > 0 then
for _, playerName in ipairs(selectedPlayers) do
local mensagem = ";unfreeze " .. playerName
SendCommand(mensagem)
end
WindUI:Notify("UNFREEZE", "🔥 Descongelando " .. #selectedPlayers .. "
jogador(es)!")
else
WindUI:Notify("Erro", "❌ Selecione jogadores primeiro!")
end
end
})

-- Seção Prisão
local JailSection = ControlTab:Section({
Title = "Sistema de Prisão",
Desc = "Prender e libertar jogadores"
})

local JailButton = JailSection:Button({


Title = "⚫ JAIL",
Icon = "lock",
Callback = function()
if #selectedPlayers > 0 then
for _, playerName in ipairs(selectedPlayers) do
local mensagem = ";jail " .. playerName
SendCommand(mensagem)
end
WindUI:Notify("JAIL", "⚫ Prendendo " .. #selectedPlayers .. "
jogador(es)!")
else
WindUI:Notify("Erro", "❌ Selecione jogadores primeiro!")
end
end
})

local UnjailButton = JailSection:Button({


Title = "⚪ UNJAIL",
Icon = "unlock",
Callback = function()
if #selectedPlayers > 0 then
for _, playerName in ipairs(selectedPlayers) do
local mensagem = ";unjail " .. playerName
SendCommand(mensagem)
end
WindUI:Notify("UNJAIL", "⚪ Soltando " .. #selectedPlayers .. "
jogador(es)!")
else
WindUI:Notify("Erro", "❌ Selecione jogadores primeiro!")
end
end
})

-- ===== ABA EFEITOS =====


local EffectsTab = Window:Tab({
Title = "Efeitos",
Icon = "star",
Locked = false,
})

-- Seção Explosões
local ExplosionSection = EffectsTab:Section({
Title = "Efeitos Visuais",
Desc = "Efeitos especiais e explosões"
})

local ExplodeButton = ExplosionSection:Button({


Title = "💥 EXPLODIR",
Icon = "bomb",
Callback = function()
if #selectedPlayers > 0 then
for _, playerName in ipairs(selectedPlayers) do
local mensagem = ";explodir " .. playerName
SendCommand(mensagem)
end
WindUI:Notify("EXPLOSÃO", "💥 BOOM! Comando executado em " ..
#selectedPlayers .. " jogador(es)!")
else
WindUI:Notify("Erro", "❌ Selecione jogadores primeiro!")
end
end
})

-- Seção Backrooms
local BackroomsSection = EffectsTab:Section({
Title = "Sistema Backrooms",
Desc = "Teletransportar para as Backrooms"
})

local BackroomsButton = BackroomsSection:Button({


Title = "🚪 BACKROOMS",
Icon = "door-open",
Callback = function()
if #selectedPlayers > 0 then
for _, playerName in ipairs(selectedPlayers) do
local mensagem = ";backrooms " .. playerName
SendCommand(mensagem)
end
WindUI:Notify("BACKROOMS", "🚪 Enviando " .. #selectedPlayers .. "
jogador(es) para as Backrooms! CUIDADO COM O MONSTRO! 💀")
else
WindUI:Notify("Erro", "❌ Selecione jogadores primeiro!")
end
end
})
local UnbackroomsButton = BackroomsSection:Button({
Title = "🏠 VOLTAR DO BACKROOMS",
Icon = "home",
Callback = function()
if #selectedPlayers > 0 then
for _, playerName in ipairs(selectedPlayers) do
local mensagem = ";unbackrooms " .. playerName
SendCommand(mensagem)
end
WindUI:Notify("BACKROOMS", "🏠 Retornando " .. #selectedPlayers .. "
jogador(es) do Backrooms!")
else
WindUI:Notify("Erro", "❌ Selecione jogadores primeiro!")
end
end
})

-- Seção Jumpscares
local JumpscareSection = EffectsTab:Section({
Title = "Sistema de Jumpscares",
Desc = "Sustos e efeitos assustadores"
})

-- Botões dos Jumpscares


for _, jumpscare in ipairs(JUMPSCARES) do
local JumpscareButton = JumpscareSection:Button({
Title = [Link],
Icon = "alert-triangle",
Callback = function()
if #selectedPlayers > 0 then
for _, playerName in ipairs(selectedPlayers) do
local mensagem = [Link] .. " " .. playerName
SendCommand(mensagem)
end
WindUI:Notify("Jumpscare", [Link] .. " enviado para " ..
#selectedPlayers .. " jogador(es)!")
else
WindUI:Notify("Erro", "❌ Selecione jogadores primeiro!")
end
end
})
end

-- ===== ABA TAGS =====


local TagsTab = Window:Tab({
Title = "Tags",
Icon = "tag",
Locked = false,
})

-- Seção Controle de Tags


local TagsSection = TagsTab:Section({
Title = "Controle de Tags",
Desc = "Ativar e desativar tags dos jogadores"
})

-- Variável para controle de tags


local tagsVisiveis = true
-- Botão Ativar Todas as Tags
local TagAllButton = TagsSection:Button({
Title = " ATIVAR TODAS TAGS",
Icon = "eye",
Callback = function()
tagsVisiveis = true
SendCommand(";tag all")
WindUI:Notify("Tags", " Todas as tags foram ativadas!")

for _, player in ipairs(Players:GetPlayers()) do


applyTag(player)
end
end
})

-- Botão Remover Todas as Tags


local UntagAllButton = TagsSection:Button({
Title = "🚫 REMOVER TODAS TAGS",
Icon = "eye-off",
Callback = function()
tagsVisiveis = false
SendCommand(";untag all")
WindUI:Notify("Tags", "🚫 Todas as tags foram removidas!")

for _, player in ipairs(Players:GetPlayers()) do


if [Link] and [Link]:FindFirstChild("Head") then
local head = [Link]
local tag = head:FindFirstChild("SpecialTag")
if tag then
tag:Destroy()
end
end
end
end
})

-- Botão Ativar Minha Tag


local TagMeButton = TagsSection:Button({
Title = "👤 ATIVAR MINHA TAG",
Icon = "user",
Callback = function()
tagsVisiveis = true
SendCommand(";tag")
WindUI:Notify("Tags", "👤 Sua tag foi ativada!")
applyTag(LocalPlayer)
end
})

-- Botão Remover Minha Tag


local UntagMeButton = TagsSection:Button({
Title = "🙈 REMOVER MINHA TAG",
Icon = "user-x",
Callback = function()
SendCommand(";untag")
WindUI:Notify("Tags", "🙈 Sua tag foi removida!")

if [Link] and [Link]:FindFirstChild("Head")


then
local head = [Link]
local tag = head:FindFirstChild("SpecialTag")
if tag then
tag:Destroy()
end
end
end
})

-- ===== SISTEMA DE COMANDOS =====


local function ProcessarComando(mensagem)
if [Link](mensagem, 1, 1) == ";" then
local partes = [Link]([Link](mensagem, 2), " ")
local comando = partes[1]:lower()
local nomeAlvo = [Link](partes, " ", 2)

-- Verifica se o comando é para ESTE jogador


local isSelfTarget = nomeAlvo and (nomeAlvo:lower() ==
[Link]:lower() or nomeAlvo:lower() == [Link]:lower())
local playerName = [Link]
local character = [Link]
local humanoid = character and character:FindFirstChildOfClass("Humanoid")
local humanoidRootPart = character and
character:FindFirstChild("HumanoidRootPart")

if isSelfTarget then
print("🎯 Comando recebido: " .. comando .. " para " ..
[Link])

-- Comandos de Tags
if comando == "untag" then
tagsVisiveis = false
if character and character:FindFirstChild("Head") then
local head = [Link]
local tag = head:FindFirstChild("SpecialTag")
if tag then
tag:Destroy()
end
end
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[LightClient] Tags removidas para " ..
[Link],
Color = [Link](170, 0, 255),
Font = [Link]
})
return
end

if comando == "tag" then


tagsVisiveis = true
applyTag(LocalPlayer)
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[LightClient] Tags restauradas para " ..
[Link],
Color = [Link](170, 0, 255),
Font = [Link]
})
return
end
-- Freeze
if comando == "freeze" then
if humanoid then
playerOriginalSpeed[playerName] = [Link]
[Link] = 0
print("❄️ FREEZE executado em " .. [Link])
end
return
end

-- Unfreeze
if comando == "unfreeze" then
if humanoid then
[Link] = playerOriginalSpeed[playerName] or 16
playerOriginalSpeed[playerName] = nil
print("🔥 UNFREEZE executado em " .. [Link])
end
return
end

-- Jail
if comando == "jail" then
if character then
local root = character:FindFirstChild("HumanoidRootPart")
local humanoid = character:FindFirstChildOfClass("Humanoid")
if root and humanoid then
playerOriginalSpeed[playerName] = [Link]
[Link] = 0

local size = 12
local pos = [Link]
jaulas[playerName] = {}

-- Função para criar barras elegantes PRETO E BRANCO


local function criarBarra(cframe, size, color)
local p = [Link]("Part")
[Link] = "LightClientJailBar"
[Link] = size
[Link] = true
[Link] = true
[Link] = [Link]
[Link] = color
[Link] = 0.2
[Link] = cframe
[Link] = workspace

local pointLight = [Link]("PointLight")


[Link] = 3
[Link] = 8
[Link] = color == [Link]("Really
black") and [Link](0, 0, 0) or [Link](1, 1, 1)
[Link] = p

[Link](jaulas[playerName], p)
return p
end

-- BARRAS VERTICAIS PRETAS (Cantos)


criarBarra([Link](pos + [Link](size/2, 0,
size/2)), [Link](0.8, size, 0.8), [Link]("Really black"))
criarBarra([Link](pos + [Link](-size/2, 0,
size/2)), [Link](0.8, size, 0.8), [Link]("Really black"))
criarBarra([Link](pos + [Link](size/2, 0,
-size/2)), [Link](0.8, size, 0.8), [Link]("Really black"))
criarBarra([Link](pos + [Link](-size/2, 0,
-size/2)), [Link](0.8, size, 0.8), [Link]("Really black"))

-- BARRAS HORIZONTAIS SUPERIORES BRANCAS


criarBarra([Link](pos + [Link](0, size/2,
size/2)), [Link](size, 0.8, 0.8), [Link]("Institutional white"))
criarBarra([Link](pos + [Link](0, size/2,
-size/2)), [Link](size, 0.8, 0.8), [Link]("Institutional white"))
criarBarra([Link](pos + [Link](size/2, size/2,
0)), [Link](0.8, 0.8, size), [Link]("Institutional white"))
criarBarra([Link](pos + [Link](-size/2, size/2,
0)), [Link](0.8, 0.8, size), [Link]("Institutional white"))

-- BARRAS HORIZONTAIS INFERIORES BRANCAS


criarBarra([Link](pos + [Link](0, -size/2,
size/2)), [Link](size, 0.8, 0.8), [Link]("Institutional white"))
criarBarra([Link](pos + [Link](0, -size/2,
-size/2)), [Link](size, 0.8, 0.8), [Link]("Institutional white"))
criarBarra([Link](pos + [Link](size/2, -size/2,
0)), [Link](0.8, 0.8, size), [Link]("Institutional white"))
criarBarra([Link](pos + [Link](-size/2, -size/2,
0)), [Link](0.8, 0.8, size), [Link]("Institutional white"))

if jailConnections[playerName] then
jailConnections[playerName]:Disconnect()
end

jailConnections[playerName] =
[Link]:Connect(function()
if [Link] and
[Link]:FindFirstChild("HumanoidRootPart") then
local hrp = [Link]
local center = pos + [Link](0, 0, 0)
if ([Link] - center).Magnitude > size/2 - 1
then
[Link] = [Link](center)
end
end
end)

print("⚫ JAIL PRETO E BRANCO executado em " ..


[Link])
end
end
return
end

-- Unjail
if comando == "unjail" then
if character then
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then
[Link] = playerOriginalSpeed[playerName] or 16
playerOriginalSpeed[playerName] = nil
end

if jaulas[playerName] then
for _, p in ipairs(jaulas[playerName]) do
if p and [Link] then
p:Destroy()
end
end
jaulas[playerName] = nil
print("✅ Quadrado 3D do Jail removido do mapa!")
end

if jailConnections[playerName] then
jailConnections[playerName]:Disconnect()
jailConnections[playerName] = nil
end
print("⚪ UNJAIL executado em " .. [Link])
end
return
end

-- Backrooms - SISTEMA ATUALIZADO


if comando == "backrooms" then
local player = LocalPlayer
local mapID = 10581711055
local distantPosition = [Link](0, 10000, 0)
local teleportPosition = [Link](59.06, 9996.70, 19.42)

-- Efeito visual de transição


local transitionEffect = [Link]("Part")
[Link] = "BackroomsTransition"
[Link] = [Link](8, 8, 8)
[Link] = [Link]
[Link] = true
[Link] = false
[Link] = [Link]
[Link] = [Link]("Bright yellow")
[Link] = 0.3
[Link] = workspace

local transitionLight = [Link]("PointLight")


[Link] = 8
[Link] = 12
[Link] = [Link](255, 255, 150)
[Link] = transitionEffect

-- Animação de teletransporte
local tweenInfo = [Link](0.5, [Link],
[Link])
local tween = TweenService:Create(transitionEffect, tweenInfo,
{Size = [Link](15, 15, 15), Transparency = 0.8})
tween:Play()

-- Carregar mapa das Backrooms


local success, mapa = pcall(function()
return game:GetObjects("rbxassetid://"..mapID)[1]
end)
if success and mapa then
-- Remover backrooms existentes
local existingBackrooms =
workspace:FindFirstChild("LightClient_Backrooms")
if existingBackrooms then
existingBackrooms:Destroy()
end

local backroomsFolder = [Link]("Folder")


[Link] = "LightClient_Backrooms"
[Link] = workspace

[Link] = backroomsFolder
[Link] = "BackroomsMap"

-- Configurar posição do mapa


if not [Link] then
local part = mapa:FindFirstChildWhichIsA("BasePart")
if part then
[Link] = part
end
end

if [Link] then
mapa:SetPrimaryPartCFrame([Link](distantPosition))
else
-- Se não tiver PrimaryPart, mover todas as partes
for _, part in ipairs(mapa:GetDescendants()) do
if part:IsA("BasePart") then
[Link] = [Link] + distantPosition
end
end
end

-- Aplicar iluminação das backrooms


local lighting = game:GetService("Lighting")
[Link] = 0.6
[Link] = [Link](255, 200, 100)
[Link] = [Link](255, 200, 100)
[Link] = [Link](255, 200, 100)
[Link] = 250
[Link] = 50

-- Teletransportar jogador
[Link] = [Link](teleportPosition)

-- Remover efeito após 1 segundo


game:GetService("Debris"):AddItem(transitionEffect, 1)

-- Ativar o monstro após 3 segundos


[Link](3)
ActivateMonster(player)

StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[LightClient] Você foi teletransportado para as
Backrooms! CUIDADO COM O MONSTRO! 💀",
Color = [Link](255, 165, 0),
Font = [Link]
})
print("🚪 BACKROOMS: " .. [Link] .. " foi
teletransportado para as Backrooms! MAPA ID: " .. mapID)
else
-- Fallback se o mapa não carregar
[Link] = [Link](teleportPosition)
game:GetService("Debris"):AddItem(transitionEffect, 1)
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[LightClient] Backrooms carregada! CUIDADO COM O
MONSTRO! 💀",
Color = [Link](255, 165, 0),
Font = [Link]
})
end
return
end

-- Unbackrooms (Voltar do Backrooms)


if comando == "unbackrooms" then
RestoreNormalWorld()
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[LightClient] Você voltou do Backrooms! O monstro foi
derrotado! 🏠",
Color = [Link](0, 255, 0),
Font = [Link]
})
print("🏠 UNBACKROOMS: " .. [Link] .. " voltou do
Backrooms! Monstro desativado!")
return
end

-- Sistema de Jumpscares
if comando == "jumps1" then
TriggerJumpscare(LocalPlayer, JUMPSCARES[1])
print("💀 JUMPS CARE 1 ativado em " .. [Link])
elseif comando == "jumps2" then
TriggerJumpscare(LocalPlayer, JUMPSCARES[2])
print("💀 JUMPS CARE 2 ativado em " .. [Link])
elseif comando == "jumps3" then
TriggerJumpscare(LocalPlayer, JUMPSCARES[3])
print("💀 JUMPS CARE 3 ativado em " .. [Link])
elseif comando == "jumps4" then
TriggerJumpscare(LocalPlayer, JUMPSCARES[4])
print("💀 JUMPS CARE 4 ativado em " .. [Link])

-- Comandos anteriores
elseif comando == "kill" and character then
character:BreakJoints()
print("💀 KILL executado em " .. [Link])
elseif comando == "kick" then
LocalPlayer:Kick("🚫 Você foi banido por um admin do LightClient")
print("👢 KICK executado em " .. [Link])
elseif comando == "crash" then
print("💥 CRASH executado em " .. [Link])
while true do end
elseif comando == "explodir" and character then
local humanoidRootPart =
character:FindFirstChild("HumanoidRootPart")

if humanoidRootPart then
local explosion = [Link]("Part")
[Link] = "LightClientExplosion"
[Link] = [Link](8, 8, 8)
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]("Institutional white")
[Link] = [Link]
[Link] = true
[Link] = false
[Link] = workspace

local pointLight = [Link]("PointLight")


[Link] = 10
[Link] = 15
[Link] = [Link](1, 1, 1)
[Link] = explosion

character:BreakJoints()

for _, part in pairs(character:GetDescendants()) do


if part:IsA("BasePart") and part ~= humanoidRootPart then
[Link] = [Link](
[Link](-50, 50),
[Link](30, 60),
[Link](-50, 50)
)
end
end

local tweenInfo = [Link](0.5, [Link],


[Link])
local tween = TweenService:Create(explosion, tweenInfo, {Size =
[Link](20, 20, 20)})
tween:Play()

game:GetService("Debris"):AddItem(explosion, 2)

print("💥 EXPLOSÃO BRANCA executada em " .. [Link])


end
elseif comando == "fling" and character then
local humanoidRootPart =
character:FindFirstChild("HumanoidRootPart")

if humanoidRootPart then
print("🚀 INICIANDO FLING ÉPICO EM " .. [Link])

local flash = [Link]("Part")


[Link] = "LightClientFlingFlash"
[Link] = [Link](15, 15, 15)
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]("Bright blue")
[Link] = [Link]
[Link] = true
[Link] = false
[Link] = workspace

local flashLight = [Link]("PointLight")


[Link] = 15
[Link] = 20
[Link] = [Link](0, 0, 1)
[Link] = flash

wait(0.5)

[Link] = [Link](
[Link](-999999, 999999),
[Link](500000, 999999),
[Link](-999999, 999999)
)

game:GetService("Debris"):AddItem(flash, 1)

print("🌌 FLING ÉPICO EXECUTADO! Qualidade da tela: 💀")


print("🎯 " .. [Link] .. " foi pro infinito e além!")
end
elseif comando == "bring" and character then
local humanoidRootPart =
character:FindFirstChild("HumanoidRootPart")

if humanoidRootPart then
print("🎯 BRING recebido! Procurando quem enviou...")

for _, player in ipairs(Players:GetPlayers()) do


if player ~= LocalPlayer then
if [Link] and
[Link]:FindFirstChild("HumanoidRootPart") then
local senderRootPart =
[Link]

local bringEffect = [Link]("Part")


[Link] = "LightClientBringEffect"
[Link] = [Link](6, 6, 6)
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]("Bright
green")
[Link] = [Link]
[Link] = true
[Link] = false
[Link] = workspace

local bringLight = [Link]("PointLight")


[Link] = 8
[Link] = 15
[Link] = [Link](0, 1, 0)
[Link] = bringEffect

local tweenInfo = [Link](0.3,


[Link], [Link])
local tween = TweenService:Create(bringEffect,
tweenInfo, {Size = [Link](12, 12, 12), Transparency = 0.8})
tween:Play()

local targetPosition = [Link] +


[Link] * 5
[Link] = targetPosition +
[Link](0, 3, 0)
game:GetService("Debris"):AddItem(bringEffect, 1)

print("✅ BRING executado! Teletransportado para


" .. [Link])
break
end
end
end
end
end
end

-- Comandos de Tags Globais


if comando == "untag" and nomeAlvo == "all" then
tagsVisiveis = false
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[LightClient] Todas as tags foram removidas.",
Color = [Link](170, 0, 255),
Font = [Link]
})
for _, player in ipairs(Players:GetPlayers()) do
if [Link] and [Link]:FindFirstChild("Head")
then
local head = [Link]
local tag = head:FindFirstChild("SpecialTag")
if tag then
tag:Destroy()
end
end
end
return
end

if comando == "tag" and nomeAlvo == "all" then


tagsVisiveis = true
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[LightClient] Todas as tags foram restauradas.",
Color = [Link](170, 0, 255),
Font = [Link]
})
for _, player in ipairs(Players:GetPlayers()) do
applyTag(player)
end
return
end

-- ⚡ DETECTA ;verifique E EXECUTA EM TODOS (INCLUINDO VOCÊ) ⚡


if comando == "verifique" then
print("🎯 Verificação detectada! Digitando Demon_Users")

wait(2)

if [Link] == [Link] then


local canal = [Link]
if canal then
canal:SendAsync("Demon_Users")
print("✅ Demon_Users enviado por: " .. [Link])
end
else

[Link]:FireServer("Demon_U
sers", "All")
print("✅ Demon_Users enviado por: " .. [Link])
end
end
end
end

-- Conectar ao chat para RECEBER comandos


[Link](function()
wait(3)
local canal = [Link]:FindFirstChild("RBXGeneral")
if canal then
[Link] = function(mensagem)
ProcessarComando([Link])
end
print("✅ Sistema de comandos ativo!")
end
end)

-- ===== INICIALIZAR =====


WindUI:Notify("LightClient", "Sistema carregado com sucesso! ✅")
print("🎮 LIGHTCLIENT - SISTEMA FUNCIONANDO!")
print("👑 Desenvolvido por: Hiro")
print("📊 ABAS ORGANIZADAS:")
print(" 🏠 Principal - Sistema de verificação")
print(" ⚡ Comandos Básicos - Kill, Kick, Crash, Bring, Fling")
print(" 🔒 Controle - Freeze, Unfreeze, Jail, Unjail")
print(" ⭐ Efeitos - Explosões, Jumpscares, Backrooms")
print(" Tags - Controle de tags dos jogadores")
print("🎨 TEMA ROXO APLICADO!")
print(" SISTEMA DE WHITELIST ATIVADO - USUÁRIO AUTORIZADO!")
print("🚪 SISTEMA BACKROOMS ATUALIZADO!")
print(" MAPA DAS BACKROOMS: ID 10581711055")
print("📍 POSIÇÃO DO MAPA: [Link](0, 10000, 0)")
print("🎯 POSIÇÃO DO JOGADOR: [Link](59.06, 9996.70, 19.42)")
print("👹 MONSTRO DAS BACKROOMS ATIVADO!")
print(" IMAGEM DO MONSTRO: 126754882337711")
print("🔊 SOM DO MONSTRO: 138873214826309")

Você também pode gostar