
Key RequiredUniversal

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local SCP049_USERNAME = "youruserhere"
local player = Players.LocalPlayer
if player.Name ~= SCP049_USERNAME then return end
if player.PlayerGui:FindFirstChild("SCP049GUI") then return end
local character = player.Character or player.CharacterAdded:Wait()
local hrp = character:WaitForChild("HumanoidRootPart")
local humanoid = character:WaitForChild("Humanoid")
humanoid.WalkSpeed = 8
player.CharacterAdded:Connect(function(char)
character = char
hrp = char:WaitForChild("HumanoidRootPart")
humanoid = char:WaitForChild("Humanoid")
humanoid.WalkSpeed = 8
end)
local C = {
bg = Color3.fromRGB(10, 5, 5),
panel = Color3.fromRGB(20, 8, 8),
panelMid = Color3.fromRGB(30, 12, 12),
blood = Color3.fromRGB(140, 10, 10),
bloodDark = Color3.fromRGB(80, 5, 5),
bloodGlow = Color3.fromRGB(200, 20, 20),
dim = Color3.fromRGB(50, 20, 20),
text = Color3.fromRGB(220, 200, 200),
subtext = Color3.fromRGB(120, 80, 80),
white = Color3.fromRGB(230, 215, 215),
line = Color3.fromRGB(60, 25, 25),
green = Color3.fromRGB(15, 110, 40),
orange = Color3.fromRGB(150, 70, 0),
cyan = Color3.fromRGB(0, 180, 200),
}
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "SCP049GUI"
screenGui.ResetOnSpawn = false
screenGui.IgnoreGuiInset = true
screenGui.DisplayOrder = 999
screenGui.Parent = player.PlayerGui
local glow = Instance.new("Frame")
glow.Size = UDim2.new(0, 240, 0, 375)
glow.Position = UDim2.new(0, 8, 0.5, -185)
glow.BackgroundColor3 = C.blood
glow.BackgroundTransparency = 0.6
glow.BorderSizePixel = 0
glow.Parent = screenGui
Instance.new("UICorner", glow).CornerRadius = UDim.new(0, 12)
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 232, 0, 368)
frame.Position = UDim2.new(0, 12, 0.5, -184)
frame.BackgroundColor3 = C.bg
frame.BackgroundTransparency = 0
frame.BorderSizePixel = 0
frame.Parent = screenGui
Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 10)
local topBar = Instance.new("Frame")
topBar.Size = UDim2.new(1, 0, 0, 4)
topBar.BackgroundColor3 = C.bloodGlow
topBar.BorderSizePixel = 0
topBar.Parent = frame
Instance.new("UICorner", topBar).CornerRadius = UDim.new(0, 10)
local header = Instance.new("Frame")
header.Size = UDim2.new(1, 0, 0, 85)
header.Position = UDim2.new(0, 0, 0, 4)
header.BackgroundColor3 = C.panel
header.BorderSizePixel = 0
header.Parent = frame
local tag = Instance.new("TextLabel")
tag.Size = UDim2.new(1, -16, 0, 14)
tag.Position = UDim2.new(0, 8, 0, 7)
tag.BackgroundTransparency = 1
tag.TextColor3 = C.subtext
tag.Text = "/ / SCP-049 EUCLID ACTIVE / /"
tag.Font = Enum.Font.Code
tag.TextSize = 10
tag.TextXAlignment = Enum.TextXAlignment.Left
tag.Parent = header
local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, -16, 0, 36)
titleLabel.Position = UDim2.new(0, 8, 0, 22)
titleLabel.BackgroundTransparency = 1
titleLabel.TextColor3 = C.white
titleLabel.Text = "PLAGUE DOCTOR"
titleLabel.Font = Enum.Font.GothamBold
titleLabel.TextSize = 26
titleLabel.TextXAlignment = Enum.TextXAlignment.Left
titleLabel.Parent = header
local subTitle = Instance.new("TextLabel")
subTitle.Size = UDim2.new(1, -16, 0, 16)
subTitle.Position = UDim2.new(0, 8, 0, 60)
subTitle.BackgroundTransparency = 1
subTitle.TextColor3 = C.blood
subTitle.Text = "THE PESTILENCE WALKS AMONG YOU"
subTitle.Font = Enum.Font.Code
subTitle.TextSize = 9
subTitle.TextXAlignment = Enum.TextXAlignment.Left
subTitle.Parent = header
local headerLine = Instance.new("Frame")
headerLine.Size = UDim2.new(1, 0, 0, 1)
headerLine.Position = UDim2.new(0, 0, 0, 89)
headerLine.BackgroundColor3 = C.blood
headerLine.BorderSizePixel = 0
headerLine.Parent = frame
local statusBg = Instance.new("Frame")
statusBg.Size = UDim2.new(1, 0, 0, 30)
statusBg.Position = UDim2.new(0, 0, 0, 90)
statusBg.BackgroundColor3 = C.panelMid
statusBg.BorderSizePixel = 0
statusBg.Parent = frame
local blinkDot = Instance.new("Frame")
blinkDot.Size = UDim2.new(0, 7, 0, 7)
blinkDot.Position = UDim2.new(0, 10, 0.5, -3)
blinkDot.BackgroundColor3 = C.bloodGlow
blinkDot.BorderSizePixel = 0
blinkDot.Parent = statusBg
Instance.new("UICorner", blinkDot).CornerRadius = UDim.new(0.5, 0)
task.spawn(function()
while true do
TweenService:Create(blinkDot, TweenInfo.new(0.6), {BackgroundTransparency = 1}):Play()
task.wait(0.6)
TweenService:Create(blinkDot, TweenInfo.new(0.6), {BackgroundTransparency = 0}):Play()
task.wait(0.6)
end
end)
local statusLabel = Instance.new("TextLabel")
statusLabel.Size = UDim2.new(1, -30, 1, 0)
statusLabel.Position = UDim2.new(0, 24, 0, 0)
statusLabel.BackgroundTransparency = 1
statusLabel.TextColor3 = C.bloodGlow
statusLabel.Text = "SYSTEM NOMINAL — AWAITING COMMAND"
statusLabel.Font = Enum.Font.Code
statusLabel.TextSize = 10
statusLabel.TextXAlignment = Enum.TextXAlignment.Left
statusLabel.Parent = statusBg
local statusLine = Instance.new("Frame")
statusLine.Size = UDim2.new(1, 0, 0, 1)
statusLine.Position = UDim2.new(0, 0, 0, 120)
statusLine.BackgroundColor3 = C.line
statusLine.BorderSizePixel = 0
statusLine.Parent = frame
local cureCountLabel = Instance.new("TextLabel")
cureCountLabel.Size = UDim2.new(1, -16, 0, 18)
cureCountLabel.Position = UDim2.new(0, 8, 0, 124)
cureCountLabel.BackgroundTransparency = 1
cureCountLabel.TextColor3 = C.subtext
cureCountLabel.Text = "SUBJECTS CURED: 0"
cureCountLabel.Font = Enum.Font.Code
cureCountLabel.TextSize = 10
cureCountLabel.TextXAlignment = Enum.TextXAlignment.Left
cureCountLabel.Parent = frame
local cureCountLine = Instance.new("Frame")
cureCountLine.Size = UDim2.new(1, 0, 0, 1)
cureCountLine.Position = UDim2.new(0, 0, 0, 145)
cureCountLine.BackgroundColor3 = C.line
cureCountLine.BorderSizePixel = 0
cureCountLine.Parent = frame
local function makeButton(title, desc, key, yPos, activeColor)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, -16, 0, 58)
btn.Position = UDim2.new(0, 8, 0, yPos)
btn.BackgroundColor3 = C.panel
btn.Text = ""
btn.BorderSizePixel = 0
btn.AutoButtonColor = false
btn.Parent = frame
Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 7)
local strip = Instance.new("Frame")
strip.Size = UDim2.new(0, 3, 0.6, 0)
strip.Position = UDim2.new(0, 0, 0.2, 0)
strip.BackgroundColor3 = activeColor
strip.BorderSizePixel = 0
strip.Parent = btn
Instance.new("UICorner", strip).CornerRadius = UDim.new(1, 0)
local titleLbl = Instance.new("TextLabel")
titleLbl.Size = UDim2.new(1, -70, 0, 24)
titleLbl.Position = UDim2.new(0, 14, 0, 8)
titleLbl.BackgroundTransparency = 1
titleLbl.TextColor3 = C.text
titleLbl.Text = title
titleLbl.Font = Enum.Font.GothamBold
titleLbl.TextSize = 14
titleLbl.TextXAlignment = Enum.TextXAlignment.Left
titleLbl.Parent = btn
local descLbl = Instance.new("TextLabel")
descLbl.Size = UDim2.new(1, -70, 0, 16)
descLbl.Position = UDim2.new(0, 14, 0, 32)
descLbl.BackgroundTransparency = 1
descLbl.TextColor3 = C.subtext
descLbl.Text = desc
descLbl.Font = Enum.Font.Code
descLbl.TextSize = 10
descLbl.TextXAlignment = Enum.TextXAlignment.Left
descLbl.Parent = btn
local keyBg = Instance.new("Frame")
keyBg.Size = UDim2.new(0, 26, 0, 20)
keyBg.Position = UDim2.new(1, -34, 0.5, -10)
keyBg.BackgroundColor3 = C.dim
keyBg.BorderSizePixel = 0
keyBg.Parent = btn
Instance.new("UICorner", keyBg).CornerRadius = UDim.new(0, 4)
local keyLbl = Instance.new("TextLabel")
keyLbl.Size = UDim2.new(1, 0, 1, 0)
keyLbl.BackgroundTransparency = 1
keyLbl.TextColor3 = C.subtext
keyLbl.Text = key
keyLbl.Font = Enum.Font.GothamBold
keyLbl.TextSize = 10
keyLbl.Parent = keyBg
local dot = Instance.new("Frame")
dot.Size = UDim2.new(0, 7, 0, 7)
dot.Position = UDim2.new(1, -46, 0.5, -3)
dot.BackgroundColor3 = C.dim
dot.BorderSizePixel = 0
dot.Parent = btn
Instance.new("UICorner", dot).CornerRadius = UDim.new(0.5, 0)
btn.MouseEnter:Connect(function()
TweenService:Create(btn, TweenInfo.new(0.12), {BackgroundColor3 = C.panelMid}):Play()
end)
btn.MouseLeave:Connect(function()
TweenService:Create(btn, TweenInfo.new(0.12), {BackgroundColor3 = C.panel}):Play()
end)
return btn, titleLbl, descLbl, strip, dot
end
local function makeSeparator(y)
local s = Instance.new("Frame")
s.Size = UDim2.new(1, -16, 0, 1)
s.Position = UDim2.new(0, 8, 0, y)
s.BackgroundColor3 = C.line
s.BorderSizePixel = 0
s.Parent = frame
end
local btnStalk, stalkTitle, stalkDesc, stalkStrip, stalkDot = makeButton("STALK", "teleport behind nearest target", "F", 150, C.blood)
makeSeparator(212)
local btnESP, espTitle, espDesc, espStrip, espDot = makeButton("SUBJECT ESP", "reveal all players through walls", "Z", 216, C.cyan)
makeSeparator(278)
local btnArm, armTitle, armDesc, armStrip, armDot = makeButton("CURE", "extend arm to eliminate subject", "R", 282, C.green)
local bottomBar = Instance.new("Frame")
bottomBar.Size = UDim2.new(1, 0, 0, 26)
bottomBar.Position = UDim2.new(0, 0, 1, -26)
bottomBar.BackgroundColor3 = C.panel
bottomBar.BorderSizePixel = 0
bottomBar.Parent = frame
Instance.new("UICorner", bottomBar).CornerRadius = UDim.new(0, 10)
local bottomText = Instance.new("TextLabel")
bottomText.Size = UDim2.new(1, -16, 1, 0)
bottomText.Position = UDim2.new(0, 8, 0, 0)
bottomText.BackgroundTransparency = 1
bottomText.TextColor3 = C.subtext
bottomText.Text = "DRAG // SCP-049 // CLASS: EUCLID"
bottomText.Font = Enum.Font.Code
bottomText.TextSize = 9
bottomText.Parent = bottomBar
-- Drag
local dragging, dragStart, startGlow, startFrame
header.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startGlow = glow.Position
startFrame = frame.Position
end
end)
header.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local delta = input.Position - dragStart
glow.Position = UDim2.new(startGlow.X.Scale, startGlow.X.Offset + delta.X, startGlow.Y.Scale, startGlow.Y.Offset + delta.Y)
frame.Position = UDim2.new(startFrame.X.Scale, startFrame.X.Offset + delta.X, startFrame.Y.Scale, startFrame.Y.Offset + delta.Y)
end
end)
-- STATE
local espOn = false
local armOut = false
local cureCount = 0
local stalkCooldown = false
local espHighlights = {}
-- Cure touch detection while arm is out
local cureTouchConn = nil
local function getMotor()
if not character then return nil end
local torso = character:FindFirstChild("Torso")
if not torso then return nil end
return torso:FindFirstChild("Right Shoulder")
end
-- ARM / CURE
local function extendArm()
armOut = true
armTitle.Text = "CURE: ACTIVE"
armDesc.Text = "touch a subject to cure them"
armStrip.BackgroundColor3 = Color3.fromRGB(30, 180, 80)
armDot.BackgroundColor3 = Color3.fromRGB(30, 180, 80)
statusLabel.Text = "CURE SEQUENCE INITIATED..."
local motor = getMotor()
if not motor then return end
TweenService:Create(motor, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
C0 = CFrame.new(1, 0.5, 0) * CFrame.Angles(math.rad(90), math.rad(90), 0)
}):Play()
RunService:BindToRenderStep("ArmLock", Enum.RenderPriority.Last.Value, function()
local m = getMotor()
if m then
m.C0 = CFrame.new(1, 0.5, 0) * CFrame.Angles(math.rad(90), math.rad(90), 0)
m.Transform = CFrame.new()
end
end)
-- Check every frame if touching a player while arm is out
cureTouchConn = RunService.Heartbeat:Connect(function()
if not hrp then return end
for _, p in ipairs(Players:GetPlayers()) do
if p ~= player and p.Character then
local pHRP = p.Character:FindFirstChild("HumanoidRootPart")
local pHum = p.Character:FindFirstChild("Humanoid")
if pHRP and pHum and pHum.Health > 0 then
if (hrp.Position - pHRP.Position).Magnitude <= 5 then
pHum.Health = 0
cureCount += 1
cureCountLabel.Text = "SUBJECTS CURED: " .. cureCount
statusLabel.Text = "SUBJECT " .. p.Name .. " HAS BEEN CURED."
end
end
end
end
end)
end
local function retractArm()
armOut = false
armTitle.Text = "CURE"
armDesc.Text = "extend arm to eliminate subject"
armStrip.BackgroundColor3 = C.green
armDot.BackgroundColor3 = C.dim
statusLabel.Text = "SYSTEM NOMINAL — AWAITING COMMAND"
RunService:UnbindFromRenderStep("ArmLock")
if cureTouchConn then cureTouchConn:Disconnect(); cureTouchConn = nil end
local motor = getMotor()
if not motor then return end
motor.Transform = CFrame.new()
TweenService:Create(motor, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {
C0 = CFrame.new(1, 0.5, 0) * CFrame.Angles(0, math.rad(90), 0)
}):Play()
end
local function toggleArm()
if armOut then retractArm() else extendArm() end
end
-- STALK
local function doStalk()
if stalkCooldown then
statusLabel.Text = "STALK RECHARGING — PATIENCE"
task.delay(1, function() statusLabel.Text = "SYSTEM NOMINAL — AWAITING COMMAND" end)
return
end
local nearest, nearestDist = nil, math.huge
for _, p in ipairs(Players:GetPlayers()) do
if p ~= player and p.Character then
local pHRP = p.Character:FindFirstChild("HumanoidRootPart")
if pHRP then
local d = (hrp.Position - pHRP.Position).Magnitude
if d < nearestDist then
nearestDist = d
nearest = pHRP
end
end
end
end
if not nearest then
statusLabel.Text = "NO SUBJECT DETECTED."
task.delay(1.5, function() statusLabel.Text = "SYSTEM NOMINAL — AWAITING COMMAND" end)
return
end
hrp.CFrame = nearest.CFrame * CFrame.new(0, 0, 3)
stalkCooldown = true
statusLabel.Text = "STALKING SUBJECT..."
stalkTitle.Text = "STALK: RECHARGING"
stalkDesc.Text = "please wait..."
stalkStrip.BackgroundColor3 = C.orange
stalkDot.BackgroundColor3 = C.orange
task.delay(8, function()
stalkTitle.Text = "STALK"
stalkDesc.Text = "teleport behind nearest target"
stalkStrip.BackgroundColor3 = C.blood
stalkDot.BackgroundColor3 = C.dim
statusLabel.Text = "SYSTEM NOMINAL — AWAITING COMMAND"
stalkCooldown = false
end)
end
-- ESP
local function clearESP()
for _, h in pairs(espHighlights) do
if h and h.Parent then h:Destroy() end
end
espHighlights = {}
end
local function enableESP()
espOn = true
espTitle.Text = "SUBJECT ESP: ON"
espDesc.Text = "tracking all subjects"
espStrip.BackgroundColor3 = C.cyan
espDot.BackgroundColor3 = C.cyan
statusLabel.Text = "ESP ACTIVE — ALL SUBJECTS VISIBLE"
clearESP()
for _, p in ipairs(Players:GetPlayers()) do
if p ~= player and p.Character then
local highlight = Instance.new("Highlight")
highlight.FillColor = Color3.fromRGB(200, 20, 20)
highlight.OutlineColor = Color3.fromRGB(255, 80, 80)
highlight.FillTransparency = 0.5
highlight.OutlineTransparency = 0
highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
highlight.Parent = p.Character
espHighlights[p.Name] = highlight
end
end
for _, p in ipairs(Players:GetPlayers()) do
if p ~= player then
p.CharacterAdded:Connect(function(char)
if not espOn then return end
task.wait(0.5)
local highlight = Instance.new("Highlight")
highlight.FillColor = Color3.fromRGB(200, 20, 20)
highlight.OutlineColor = Color3.fromRGB(255, 80, 80)
highlight.FillTransparency = 0.5
highlight.OutlineTransparency = 0
highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
highlight.Parent = char
espHighlights[p.Name] = highlight
end)
end
end
end
local function disableESP()
espOn = false
espTitle.Text = "SUBJECT ESP"
espDesc.Text = "reveal all players through walls"
espStrip.BackgroundColor3 = C.cyan
espDot.BackgroundColor3 = C.dim
statusLabel.Text = "SYSTEM NOMINAL — AWAITING COMMAND"
clearESP()
end
local function toggleESP()
if espOn then disableESP() else enableESP() end
end
-- BUTTONS
btnStalk.MouseButton1Click:Connect(function() doStalk() end)
btnESP.MouseButton1Click:Connect(function() toggleESP() end)
btnArm.MouseButton1Click:Connect(function() toggleArm() end)
-- KEYBINDS
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode.F then doStalk() end
if input.KeyCode == Enum.KeyCode.Z then toggleESP() end
if input.KeyCode == Enum.KeyCode.R then toggleArm() end
end)
print("SCP-049 loaded for " .. player.Name)No comments yet for this script.



