local Players = game:GetService("Players") local Lighting = game:GetService("Lighting") local TweenService = game:GetService("TweenService") local localPlayer = Players.LocalPlayer local playerGui = localPlayer:WaitForChild("PlayerGui") -- Add black highlight local function addBlackHighlight(part) local selectionBox = Instance.new("SelectionBox") selectionBox.Adornee = part selectionBox.Color3 = Color3.new(0, 0, 0) selectionBox.LineThickness = 0.05 selectionBox.Transparency = 0 selectionBox.Parent = part end -- Build NPC like a player local function createHumanoidNPC() local npc = Instance.new("Model") npc.Name = "NULL" local root = Instance.new("Part") root.Name = "HumanoidRootPart" root.Size = Vector3.new(2, 2, 1) root.Anchored = true root.BrickColor = BrickColor.new("Really black") root.Parent = npc addBlackHighlight(root) local torso = Instance.new("Part") torso.Name = "Torso" torso.Size = Vector3.new(2, 2, 1) torso.Anchored = true torso.BrickColor = BrickColor.new("Really black") torso.Parent = npc addBlackHighlight(torso) local head = Instance.new("Part") head.Name = "Head" head.Size = Vector3.new(2, 1, 1) head.Anchored = true head.BrickColor = BrickColor.new("Really black") head.Parent = npc addBlackHighlight(head) local leftArm = Instance.new("Part") leftArm.Name = "Left Arm" leftArm.Size = Vector3.new(1, 2, 1) leftArm.Anchored = true leftArm.BrickColor = BrickColor.new("Really black") leftArm.Parent = npc addBlackHighlight(leftArm) local rightArm = Instance.new("Part") rightArm.Name = "Right Arm" rightArm.Size = Vector3.new(1, 2, 1) rightArm.Anchored = true rightArm.BrickColor = BrickColor.new("Really black") rightArm.Parent = npc addBlackHighlight(rightArm) local leftLeg = Instance.new("Part") leftLeg.Name = "Left Leg" leftLeg.Size = Vector3.new(1, 2, 1) leftLeg.Anchored = true leftLeg.BrickColor = BrickColor.new("Really black") leftLeg.Parent = npc addBlackHighlight(leftLeg) local rightLeg = Instance.new("Part") rightLeg.Name = "Right Leg" rightLeg.Size = Vector3.new(1, 2, 1) rightLeg.Anchored = true rightLeg.BrickColor = BrickColor.new("Really black") rightLeg.Parent = npc addBlackHighlight(rightLeg) local humanoid = Instance.new("Humanoid") humanoid.Parent = npc npc.PrimaryPart = root return npc end -- Position NPC parts relative to HumanoidRootPart local function positionNPC(npc, spawnPos) npc:SetPrimaryPartCFrame(CFrame.new(spawnPos)) local root = npc:FindFirstChild("HumanoidRootPart") local torso = npc:FindFirstChild("Torso") local head = npc:FindFirstChild("Head") local leftArm = npc:FindFirstChild("Left Arm") local rightArm = npc:FindFirstChild("Right Arm") local leftLeg = npc:FindFirstChild("Left Leg") local rightLeg = npc:FindFirstChild("Right Leg") torso.CFrame = root.CFrame * CFrame.new(0, 1, 0) head.CFrame = torso.CFrame * CFrame.new(0, 1.5, 0) leftArm.CFrame = torso.CFrame * CFrame.new(-1.5, 0, 0) rightArm.CFrame = torso.CFrame * CFrame.new(1.5, 0, 0) leftLeg.CFrame = root.CFrame * CFrame.new(-0.5, -2, 0) rightLeg.CFrame = root.CFrame * CFrame.new(0.5, -2, 0) end -- Move NPC to player local function moveNPCToPlayer(npc, player) local root = npc:FindFirstChild("HumanoidRootPart") local targetPos = player.Character:FindFirstChild("HumanoidRootPart").Position local tweenInfo = TweenInfo.new(5, Enum.EasingStyle.Linear) local tween = TweenService:Create(root, tweenInfo, { Position = targetPos }) tween:Play() tween.Completed:Connect(function() player:Kick("YOU GOT CAUGHT=)") end) game:GetService("RunService").Heartbeat:Connect(function() local torso = npc:FindFirstChild("Torso") local head = npc:FindFirstChild("Head") local leftArm = npc:FindFirstChild("Left Arm") local rightArm = npc:FindFirstChild("Right Arm") local leftLeg = npc:FindFirstChild("Left Leg") local rightLeg = npc:FindFirstChild("Right Leg") torso.CFrame = root.CFrame * CFrame.new(0, 1, 0) head.CFrame = torso.CFrame * CFrame.new(0, 1.5, 0) leftArm.CFrame = torso.CFrame * CFrame.new(-1.5, 0, 0) rightArm.CFrame = torso.CFrame * CFrame.new(1.5, 0, 0) leftLeg.CFrame = root.CFrame * CFrame.new(-0.5, -2, 0) rightLeg.CFrame = root.CFrame * CFrame.new(0.5, -2, 0) end) end -- Freeze player movement local function freezePlayer() local char = localPlayer.Character if char then local humanoid = char:FindFirstChildOfClass("Humanoid") if humanoid then humanoid.WalkSpeed = 0 humanoid.JumpPower = 0 end end end -- Hide other players local function hideOtherPlayers() for _, player in pairs(Players:GetPlayers()) do if player ~= localPlayer and player.Character then for _, part in pairs(player.Character:GetChildren()) do if part:IsA("BasePart") then part.Transparency = 1 part.CanCollide = false elseif part:IsA("Decal") then part.Transparency = 1 end end end end end -- Dark sky local function darkenSky() Lighting.Ambient = Color3.fromRGB(20, 20, 20) Lighting.OutdoorAmbient = Color3.fromRGB(10, 10, 10) Lighting.FogColor = Color3.fromRGB(0, 0, 0) Lighting.FogEnd = 100 end -- Shaking scary text local function showScaryText() local screenGui = Instance.new("ScreenGui") screenGui.Name = "ScaryMessageGui" screenGui.Parent = playerGui local textLabel = Instance.new("TextLabel") textLabel.Size = UDim2.new(0, 400, 0, 100) textLabel.Position = UDim2.new(0.5, -200, 0.5, -50) textLabel.BackgroundColor3 = Color3.fromRGB(0, 0, 0) textLabel.BackgroundTransparency = 0.7 textLabel.TextColor3 = Color3.fromRGB(255, 0, 0) textLabel.TextStrokeColor3 = Color3.fromRGB(100, 0, 0) textLabel.TextStrokeTransparency = 0.2 textLabel.TextScaled = true textLabel.Font = Enum.Font.GothamBlack textLabel.Text = "YOU CAN'T ESCAPE NULL" textLabel.Parent = screenGui local shakeMagnitude = 10 local shakeFrequency = 0.05 local startPos = textLabel.Position while true do local offsetX = math.random(-shakeMagnitude, shakeMagnitude) local offsetY = math.random(-shakeMagnitude, shakeMagnitude) textLabel.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + offsetX, startPos.Y.Scale, startPos.Y.Offset + offsetY) wait(shakeFrequency) end end -- Lock first person local function lockFirstPerson() localPlayer.CameraMode = Enum.CameraMode.LockFirstPerson end -- Run scary event local function startScaryEvent() freezePlayer() local npc = createHumanoidNPC() npc.Parent = workspace local spawnPos = localPlayer.Character:FindFirstChild("HumanoidRootPart").Position + (localPlayer.Character.HumanoidRootPart.CFrame.LookVector * 50) positionNPC(npc, spawnPos) moveNPCToPlayer(npc, localPlayer) darkenSky() hideOtherPlayers() lockFirstPerson() coroutine.wrap(showScaryText)() end if localPlayer.Character and localPlayer.Character.Parent then wait(2) startScaryEvent() else localPlayer.CharacterAdded:Connect(function() wait(2) startScaryEvent() end) end