
KeylessUniversal

--// SERVICES
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local Lighting = game:GetService("Lighting")
local player = Players.LocalPlayer
--// IDS
local FACE_IMAGE = "rbxassetid://6862780932"
local FULL_IMAGE = "rbxassetid://10396152149"
local SKY_IMAGE = "rbxassetid://13675428955"
local MUSIC_ID = "rbxassetid://77586042839973"
local RANDOM_SOUND_ID = "rbxassetid://8389041427"
local JUMPSCARE_SOUND_ID = "rbxassetid://6787686247"
--// STATE
local trollStarted = false
--// GUI
local gui = Instance.new("ScreenGui")
gui.ResetOnSpawn = false
gui.Parent = player.PlayerGui
-- Start Button
local button = Instance.new("TextButton")
button.Size = UDim2.fromScale(0.25, 0.08)
button.Position = UDim2.fromScale(0.05, 0.1)
button.BackgroundColor3 = Color3.new(0,0,0)
button.Text = "Start Troll"
button.TextColor3 = Color3.new(1,1,1)
button.TextScaled = true
button.Parent = gui
-- Overlay
local overlay = Instance.new("ImageLabel")
overlay.Size = UDim2.fromScale(1,1)
overlay.BackgroundTransparency = 1
overlay.Visible = false
overlay.Parent = gui
-- Jumpscare
local jumpscare = Instance.new("ImageLabel")
jumpscare.Size = UDim2.fromScale(1,1)
jumpscare.BackgroundTransparency = 1
jumpscare.Visible = false
jumpscare.Parent = gui
--// SOUNDS
local music = Instance.new("Sound", workspace)
music.SoundId = MUSIC_ID
music.Looped = true
music.PlaybackSpeed = 0.15
local randomSound = Instance.new("Sound", workspace)
randomSound.SoundId = RANDOM_SOUND_ID
local jumpscareSound = Instance.new("Sound", workspace)
jumpscareSound.SoundId = JUMPSCARE_SOUND_ID
--// DRAG BUTTON
local dragging, dragStart, startPos
button.InputBegan:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = i.Position
startPos = button.Position
end
end)
button.InputEnded:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
UserInputService.InputChanged:Connect(function(i)
if dragging and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then
local delta = i.Position - dragStart
button.Position = UDim2.new(
startPos.X.Scale, startPos.X.Offset + delta.X,
startPos.Y.Scale, startPos.Y.Offset + delta.Y
)
end
end)
--// FACE IMAGE
local function addFaceImage(character)
local head = character:FindFirstChild("Head")
if not head or head:FindFirstChild("TrollFace") then return end
local bb = Instance.new("BillboardGui")
bb.Name = "TrollFace"
bb.Adornee = head
bb.Size = UDim2.new(3,0,3,0)
bb.AlwaysOnTop = true
bb.Parent = head
local img = Instance.new("ImageLabel")
img.Size = UDim2.fromScale(1,1)
img.BackgroundTransparency = 1
img.Image = FACE_IMAGE
img.Parent = bb
end
local function applyFaces()
for _, plr in pairs(Players:GetPlayers()) do
if plr.Character then
addFaceImage(plr.Character)
end
plr.CharacterAdded:Connect(addFaceImage)
end
end
--// PART EFFECTS
local function trollParts()
for _, obj in pairs(workspace:GetDescendants()) do
if obj:IsA("BasePart") then
for _, face in pairs(Enum.NormalId:GetEnumItems()) do
local d = Instance.new("Decal")
d.Texture = FACE_IMAGE
d.Face = face
d.Parent = obj
end
local p = Instance.new("ParticleEmitter")
p.Texture = FULL_IMAGE
p.Rate = 10
p.Parent = obj
end
end
end
--// SKYBOX
local function changeSky()
local sky = Lighting:FindFirstChildOfClass("Sky") or Instance.new("Sky")
for _, f in pairs({"Bk","Dn","Ft","Lf","Rt","Up"}) do
sky["Skybox"..f] = SKY_IMAGE
end
sky.Parent = Lighting
end
--// RANDOM SOUND LOOP (ONLY AFTER START)
task.spawn(function()
while true do
task.wait(10)
if trollStarted and math.random(1,2) == 1 then
randomSound:Play()
end
end
end)
--// JUMPSCARE LOOP (ONLY AFTER START)
task.spawn(function()
while true do
task.wait(15)
if trollStarted then
local images = {FACE_IMAGE, FULL_IMAGE, SKY_IMAGE}
jumpscare.Image = images[math.random(#images)]
jumpscare.Visible = true
jumpscareSound:Play()
task.wait(3)
jumpscare.Visible = false
end
end
end)
--// BUTTON CLICK
button.MouseButton1Click:Connect(function()
if trollStarted then return end
trollStarted = true
overlay.Image = FULL_IMAGE
overlay.Visible = true
overlay.ImageTransparency = 0
task.delay(5, function()
TweenService:Create(
overlay,
TweenInfo.new(2),
{ImageTransparency = 1}
):Play()
end)
music:Play()
changeSky()
trollParts()
applyFaces()
end)



@bigpapa1212 what
@bigpapa1212 bruh is a bot
@c00lVoid_8 ok sry