
Keyless
loadstring([[
-- WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TweenService = game:GetService("TweenService")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local currentSpies = {}
local lastClue = ""
local lastSpyWord = ""
local function createLabel(character, text, textColor)
local billboardGui = Instance.new("BillboardGui")
billboardGui.Name = "StatusLabel"
billboardGui.Adornee = character:FindFirstChild("Head")
billboardGui.Size = UDim2.new(0, 100, 0, 50)
billboardGui.StudsOffset = Vector3.new(0, 4, 0)
billboardGui.AlwaysOnTop = true
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.BackgroundTransparency = 1
textLabel.Text = text
textLabel.TextColor3 = textColor
textLabel.TextScaled = true
textLabel.Font = Enum.Font.SourceSansBold
textLabel.Parent = billboardGui
billboardGui.Parent = character
end
local function showNotifier(name)
local notify = Instance.new("TextLabel")
notify.Size = UDim2.new(0.6, 0, 0, 60)
notify.Position = UDim2.new(0.2, 0, 0.05, 0)
notify.BackgroundTransparency = 0.2
notify.BackgroundColor3 = Color3.fromRGB(60, 0, 0)
notify.TextColor3 = Color3.new(1, 0, 0)
notify.Text = name .. " is the SPY!"
notify.Font = Enum.Font.GothamBold
notify.TextScaled = true
notify.TextStrokeTransparency = 0.3
notify.Parent = PlayerGui
wait(4)
TweenService:Create(notify, TweenInfo.new(1), {
TextTransparency = 1,
BackgroundTransparency = 1
}):Play()
wait(1)
notify:Destroy()
end
local spyGui = Instance.new("ScreenGui", PlayerGui)
spyGui.Name = "SpyGui"
spyGui.ResetOnSpawn = false
local frame = Instance.new("Frame", spyGui)
frame.Size = UDim2.new(0, 240, 0, 120)
frame.Position = UDim2.new(0.75, 0, 0.2, 0)
frame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
frame.BorderSizePixel = 0
frame.Active = true
frame.Draggable = true
local title = Instance.new("TextLabel", frame)
title.Size = UDim2.new(1, 0, 0, 30)
title.Text = "Current Spies"
title.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
title.TextColor3 = Color3.new(1, 1, 1)
title.Font = Enum.Font.GothamBold
title.TextSize = 16
local spyList = Instance.new("TextLabel", frame)
spyList.Position = UDim2.new(0, 0, 0, 30)
spyList.Size = UDim2.new(1, 0, 1, -60)
spyList.BackgroundTransparency = 1
spyList.TextColor3 = Color3.fromRGB(255, 0, 0)
spyList.Text = "Waiting..."
spyList.TextWrapped = true
spyList.TextYAlignment = Enum.TextYAlignment.Top
spyList.Font = Enum.Font.Gotham
spyList.TextSize = 14
local toggleBtn = Instance.new("TextButton", frame)
toggleBtn.Size = UDim2.new(1, 0, 0, 30)
toggleBtn.Position = UDim2.new(0, 0, 1, -30)
toggleBtn.Text = "Minimize"
toggleBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
toggleBtn.TextColor3 = Color3.new(1, 1, 1)
toggleBtn.Font = Enum.Font.Gotham
toggleBtn.TextSize = 14
local minimized = false
toggleBtn.MouseButton1Click:Connect(function()
minimized = not minimized
if minimized then
spyList.Visible = false
toggleBtn.Text = "Maximize"
else
spyList.Visible = true
toggleBtn.Text = "Minimize"
end
end)
local function checkPlayerForStatus(player)
local boolFolder = player:FindFirstChild("boolFolder")
if not boolFolder then return end
local isSpy = boolFolder:FindFirstChild("isSpy")
if not isSpy or not isSpy:IsA("BoolValue") then return end
if not player.Character or not player.Character:FindFirstChild("Head") then return end
local existing = player.Character:FindFirstChild("StatusLabel")
if existing then existing:Destroy() end
local chosenMode = ReplicatedStorage:FindFirstChild("String") and ReplicatedStorage.String:FindFirstChild("ChosenMode")
if not chosenMode then return end
if isSpy.Value then
local word = ReplicatedStorage.String:FindFirstChild("SpyWord")
local label = word and word:IsA("StringValue") and word.Value or "Spy"
createLabel(player.Character, label, Color3.new(1, 0, 0))
table.insert(currentSpies, player)
else
local clue = ReplicatedStorage.String:FindFirstChild("ClueWord")
local label = clue and clue:IsA("StringValue") and clue.Value or "Innocent"
createLabel(player.Character, label, Color3.new(0, 1, 0))
end
end
local function refreshSpies()
currentSpies = {}
for _, player in pairs(Players:GetPlayers()) do
checkPlayerForStatus(player)
end
if #currentSpies > 0 then
local names = {}
for _, spy in ipairs(currentSpies) do
table.insert(names, spy.DisplayName or spy.Name)
showNotifier(spy.DisplayName or spy.Name)
end
spyList.Text = table.concat(names, "\\n")
else
spyList.Text = "Waiting..."
end
end
local function detectRoundChange()
local clue = ReplicatedStorage.String:FindFirstChild("ClueWord")
local spy = ReplicatedStorage.String:FindFirstChild("SpyWord")
local newClue = clue and clue.Value or ""
local newSpy = spy and spy.Value or ""
if newClue ~= lastClue or newSpy ~= lastSpyWord then
lastClue = newClue
lastSpyWord = newSpy
refreshSpies()
end
end
Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function()
wait(1)
checkPlayerForStatus(player)
end)
end)
while true do
detectRoundChange()
wait(2)
end
]])()
im pro now with this script
I see u everywhere bro
Nice script W