123Horror
Key RequiredUniversal

123Horror

Universal ScriptScritp123Scritp123 274 views 25 executesUpdated Feb 22, 2026
Unrated
00
Lua Script•323 lines (8710 chars)
--[[
    ☠ GİZLİ YARATIK KORKU SCRİPTİ - PART TABANLI ☠
    CanCollide = TRUE (Duvarlardan geçmez)
    Random jumpscare YOK
]]

local Players = game:GetService("Players")
local Lighting = game:GetService("Lighting")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer

--------------------------------------------------
-- ATMOSFER (SİLENT HILL HAVASI)
--------------------------------------------------

for _,v in pairs(Lighting:GetChildren()) do
	if v:IsA("Sky") or v:IsA("Atmosphere") or v:IsA("ColorCorrectionEffect") then
		v:Destroy()
	end
end

-- Gri gökyüzü
local sky = Instance.new("Sky", Lighting)
for _,side in pairs({"Bk","Dn","Ft","Lf","Rt","Up"}) do
	sky["Skybox"..side] = "rbxassetid://14421405417"
end

-- Sisli atmosfer
local atm = Instance.new("Atmosphere", Lighting)
atm.Density = 0.85
atm.Color = Color3.fromRGB(220,220,220)
atm.Decay = Color3.fromRGB(150,150,150)
atm.Haze = 2

-- Renk düzeltme (gri tonlar)
local cc = Instance.new("ColorCorrectionEffect", Lighting)
cc.Saturation = -0.7
cc.TintColor = Color3.fromRGB(200,200,200)

-- Işık ayarları
Lighting.ClockTime = 14
Lighting.Brightness = 0.8
Lighting.FogColor = Color3.fromRGB(220,220,220)
Lighting.FogEnd = 60
Lighting.FogStart = 10

--------------------------------------------------
-- SES SİSTEMİ
--------------------------------------------------

-- Gece ambiyansı (sürekli çalar)
local ambience = Instance.new("Sound", workspace)
ambience.SoundId = "rbxassetid://9112835827"
ambience.Looped = true
ambience.Volume = 0.4
ambience:Play()

-- Fısıltı (sürekli çalar)
local whisper = Instance.new("Sound", workspace)
whisper.SoundId = "rbxassetid://85064677546638"
whisper.Looped = true
whisper.Volume = 0.2
whisper:Play()

-- Jumpscare sesi
local jumpscareSound = Instance.new("Sound", workspace)
jumpscareSound.SoundId = "rbxassetid://109961399514238"
jumpscareSound.Volume = 1
jumpscareSound.Looped = false

-- Ölüm sesi
local deathSound = Instance.new("Sound", workspace)
deathSound.SoundId = "rbxassetid://137192919028248"
deathSound.Volume = 0.8
deathSound.Looped = false

--------------------------------------------------
-- GUI SİSTEMİ
--------------------------------------------------

local gui = Instance.new("ScreenGui")
gui.Name = "KorkuGUI"
gui.Parent = player:WaitForChild("PlayerGui")
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true

-- Siyah perde
local blackOverlay = Instance.new("Frame")
blackOverlay.Size = UDim2.new(1, 0, 1, 0)
blackOverlay.BackgroundColor3 = Color3.new(0, 0, 0)
blackOverlay.BackgroundTransparency = 1
blackOverlay.BorderSizePixel = 0
blackOverlay.ZIndex = 10
blackOverlay.Parent = gui

-- Ölüm yazısı
local deathText = Instance.new("TextLabel")
deathText.Size = UDim2.new(1, 0, 0.2, 0)
deathText.Position = UDim2.new(0, 0, 0.4, 0)
deathText.BackgroundTransparency = 1
deathText.Text = ""
deathText.TextColor3 = Color3.fromRGB(255, 0, 0)
deathText.TextScaled = true
deathText.Font = Enum.Font.GothamBlack
deathText.ZIndex = 11
deathText.Parent = gui

-- Kan efekti
local bloodFrame = Instance.new("Frame")
bloodFrame.Size = UDim2.new(1, 0, 1, 0)
bloodFrame.BackgroundColor3 = Color3.fromRGB(120, 0, 0)
bloodFrame.BackgroundTransparency = 1
bloodFrame.ZIndex = 9
bloodFrame.Parent = gui

--------------------------------------------------
-- YARDIMCI FONKSİYONLAR
--------------------------------------------------

-- Kan lekesi bırak
local function spawnBlood(pos)
	local bloodPart = Instance.new("Part", workspace)
	bloodPart.Size = Vector3.new(3, 0.2, 3)
	bloodPart.Position = pos
	bloodPart.Anchored = true
	bloodPart.CanCollide = false
	bloodPart.BrickColor = BrickColor.new("Really red")
	bloodPart.Transparency = 0.2
	
	local decal = Instance.new("Decal", bloodPart)
	decal.Texture = "rbxassetid://3776366804"
	decal.Face = Enum.NormalId.Top
	
	game:GetService("Debris"):AddItem(bloodPart, 30)
end

-- Titreşim efekti
local function shake(intensity)
	local camera = workspace.CurrentCamera
	for i = 1, 15 do
		camera.CFrame = camera.CFrame * CFrame.new(
			math.random(-intensity, intensity)/5,
			math.random(-intensity, intensity)/5,
			0
		)
		wait(0.02)
	end
end

-- Jumpscare göster (SADECE YAKALANINCA)
local function showJumpscare()
	blackOverlay.BackgroundTransparency = 0
	
	local jumpscareImg = Instance.new("ImageLabel", gui)
	jumpscareImg.Size = UDim2.new(1, 0, 1, 0)
	jumpscareImg.BackgroundTransparency = 1
	jumpscareImg.Image = "rbxassetid://115982280618058"
	jumpscareImg.ZIndex = 12
	
	jumpscareSound:Play()
	shake(3)
	
	wait(1)
	jumpscareImg:Destroy()
	blackOverlay.BackgroundTransparency = 1
end

-- Ölüm anı
local function onDeath()
	print("💀 OYUNCU YAKALANDI!")
	
	ambience:Stop()
	whisper:Stop()
	deathSound:Play()
	
	blackOverlay.BackgroundTransparency = 0
	bloodFrame.BackgroundTransparency = 0.3
	shake(5)
	deathText.Text = "O SENİ YAKALADI.."
	
	wait(4)
	
	if player.Character and player.Character.Humanoid then
		player.Character.Humanoid.Health = 0
	end
	
	wait(2)
	
	deathText.Text = ""
	blackOverlay.BackgroundTransparency = 1
	bloodFrame.BackgroundTransparency = 1
	
	wait(3)
	ambience:Play()
	whisper:Play()
end

--------------------------------------------------
-- KOVALAMA SİSTEMİ (CanCollide = TRUE)
--------------------------------------------------

local function startChase()
	local char = player.Character
	if not char then return end
	
	local humanoid = char:FindFirstChild("Humanoid")
	if not humanoid or humanoid.Health <= 0 then return end
	
	local root = char:FindFirstChild("HumanoidRootPart")
	if not root then return end
	
	print("🔥 KOVALAMACA BAŞLIYOR!")
	
	-- KOVALAYAN PART (CanCollide = TRUE)
	local monster = Instance.new("Part", workspace)
	monster.Name = "KovalayanYaratik"
	monster.Size = Vector3.new(6, 8, 1)
	monster.Anchored = false  -- Fizik motoru açık
	monster.CanCollide = true   -- DUVARLARDAN GEÇMEZ!
	monster.Material = Enum.Material.Neon
	monster.BrickColor = BrickColor.new("Really black")
	monster.Transparency = 0.2
	
	-- Yerçekimi etkisini azalt ama tamamen kapatma
	monster.CustomPhysicalProperties = PhysicalProperties.new(0.3, 0.3, 0.3, 0.3, 0.3)
	
	-- Arkanda spawn ol
	local spawnPos = root.Position - (root.CFrame.LookVector * 40)
	spawnPos = Vector3.new(spawnPos.X, 3, spawnPos.Z)
	monster.Position = spawnPos
	
	-- KORKUNÇ RESMİ EKLE
	local decal = Instance.new("Decal", monster)
	decal.Texture = "rbxassetid://92860161440693"
	decal.Face = Enum.NormalId.Front
	
	-- Kan bırak
	spawnBlood(monster.Position)
	
	-- Kovalama değişkenleri
	local chasing = true
	local chaseSpeed = 2.0
	local connection
	
	-- Kovalama döngüsü
	connection = RunService.Heartbeat:Connect(function(dt)
		if not chasing or not root or not monster or not monster.Parent then
			if connection then connection:Disconnect() end
			return
		end
		
		-- Yön bul
		local direction = (root.Position - monster.Position).Unit
		
		-- Hedef pozisyon (yerçekimi etkisiyle oynamamak için velocity kullan)
		local targetPos = monster.Position + direction * (chaseSpeed * 30 * dt)
		targetPos = Vector3.new(targetPos.X, 3, targetPos.Z)
		
		-- Velocity ile hareket (fizik motorunu kullan)
		local velocity = (targetPos - monster.Position) / dt
		monster.Velocity = velocity * 0.5  -- Yumuşak hareket
		
		-- Yönünü oyuncuya çevir
		monster.CFrame = CFrame.new(monster.Position, root.Position)
		
		-- Yakalama kontrolü
		local distance = (monster.Position - root.Position).Magnitude
		if distance < 10 then
			print("💀 YAKALANDI! Mesafe: " .. tostring(distance))
			chasing = false
			connection:Disconnect()
			
			spawnBlood(monster.Position)
			monster:Destroy()
			
			showJumpscare()
			onDeath()
			return
		end
	end)
	
	-- 30 saniye sonra kovalamaca bitsin
	task.wait(30)
	if chasing and monster and monster.Parent then
		print("🏃 Kovalamaca bitti (kaçtın!)")
		chasing = false
		connection:Disconnect()
		monster:Destroy()
	end
end

--------------------------------------------------
-- RASTGELE KOVALAMACA (Random jumpscare YOK)
--------------------------------------------------

-- Karakterin gelmesini bekle
repeat
	print("👤 Karakter bekleniyor...")
	task.wait(1)
until player.Character and player.Character:FindFirstChild("HumanoidRootPart")

print("🎮 Karakter hazır! Korku başlıyor...")
task.wait(3)

-- SADECE KOVALAMACA - random jumpscare YOK!
task.spawn(function()
	while true do
		-- 60-120 saniye arası bekle (daha uzun)
		local waitTime = math.random(60, 120)
		print("⏱️ Sonraki kovalama: " .. waitTime .. " saniye")
		
		-- Bekleme süresi - sadece bekle, ekstra efekt YOK
		task.wait(waitTime)
		
		-- KOVALAMACA BAŞLAT
		startChase()
		
		-- Kovalamacadan sonra biraz bekle
		task.wait(15)
	end
end)

print("☠ TÜM SİSTEMLER HAZIR! Sadece kovalama var, random jumpscare YOK.")

Features & Information

This script For all game. Someon was here.. He will catch your...

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts