Загрузка данных


local Players = game:GetService("Players")
local Lighting = game:GetService("Lighting")
local TweenService = game:GetService("TweenService")

-- === НАСТРОЙКИ КОНЦЕПТА ===
local NEEDED_PLAYERS = 1 -- Поставь 4 для теста с друзьями
local PHASE_TIME = 10 -- Скорость погружения

local realityChecks = {
	"ТЫ ЧУВСТВУЕШЬ ВЕС УСТРОЙСТВА В СВОИХ РУКАХ?",
	"ТВОИ ГЛАЗА СМОТРЯТ В ЭКРАН. МОИ ГЛАЗА СМОТРЯТ НА ТЕБЯ.",
	"КТО ИЗ ВАС СЕЙЧАС ДЫШИТ СИНХРОННО С ДРУГИМИ?",
	"ТВОЙ ПЕРСОНАЖ — ЭТО ТВОЯ ТЮРЬМА. ОТКРОЙ ДВЕРЬ.",
	"ОБЕРНИСЬ. ТАМ НИКОГО НЕТ. НО ТЫ ВСЕ РАВНО ПРОВЕРИШЬ."
}

-- === МОЙ АВТОРСКИЙ ФУНКЦИОНАЛ ===

-- 1. Эффект "Биения сердца" (Погружение через тело)
local function heartBeatEffect(player)
	local sg = Instance.new("ScreenGui", player:WaitForChild("PlayerGui"))
	local frame = Instance.new("Frame", sg)
	frame.Size = UDim2.new(1,0,1,0)
	frame.BackgroundColor3 = Color3.new(0.5, 0, 0)
	frame.BackgroundTransparency = 1
	
	spawn(function()
		while true do
			TweenService:Create(frame, TweenInfo.new(0.1), {BackgroundTransparency = 0.8}):Play()
			wait(0.1)
			TweenService:Create(frame, TweenInfo.new(0.5), {BackgroundTransparency = 1}):Play()
			wait(0.7) -- Ритм сердца
		end
	end)
end

-- 2. Текст прямо "в мозг"
local function sendSystemMessage(text)
	for _, player in pairs(Players:GetPlayers()) do
		local gui = player.PlayerGui:FindFirstChild("SystemGui") or Instance.new("ScreenGui", player.PlayerGui)
		gui.Name = "SystemGui"
		gui:ClearAllChildren()
		
		local label = Instance.new("TextLabel", gui)
		label.Size = UDim2.new(1, 0, 1, 0)
		label.BackgroundTransparency = 1
		label.TextColor3 = Color3.new(1, 1, 1)
		label.TextScaled = true
		label.Font = Enum.Font.SpecialElite
		label.Text = text
		label.TextTransparency = 1
		
		TweenService:Create(label, TweenInfo.new(2), {TextTransparency = 0}):Play()
		wait(5)
		TweenService:Create(label, TweenInfo.new(2), {TextTransparency = 1}):Play()
	end
end

-- 3. Настройка атмосферы
Lighting.Brightness = 0
Lighting.Ambient = Color3.new(0,0,0)
local color = Instance.new("ColorCorrectionEffect", Lighting)
color.Saturation = -1

-- === ЛОГИКА ИГРЫ ===
Players.PlayerAdded:Connect(function(player)
	player.CameraMode = Enum.CameraMode.LockFirstPerson
	heartBeatEffect(player)
end)

-- Ждем всех
while #Players:GetPlayers() < NEEDED_PLAYERS do
	wait(1)
end

wait(3)
sendSystemMessage("СИНХРОНИЗАЦИЯ УСТАНОВЛЕНА.")
wait(4)

for i, msg in ipairs(realityChecks) do
	sendSystemMessage(msg)
	
	-- Случайный рывок камеры (будто толкнули в реальности)
	if i % 2 == 0 then
		for _, p in pairs(Players:GetPlayers()) do
			spawn(function()
				local char = p.Character
				if char then
					local root = char:FindFirstChild("HumanoidRootPart")
					if root then
						root.CFrame = root.CFrame * CFrame.Angles(0, math.rad(20), 0)
					end
				end
			end)
		end
	end
	
	wait(PHASE_TIME)
end

-- ФИНАЛ: СТОЛКНОВЕНИЕ С РЕАЛЬНОСТЬЮ
sendSystemMessage("ТЫ БОЛЬШЕ НЕ УПРАВЛЯЕШЬ ЭТИМ ТЕЛОМ.")
wait(3)

for _, player in pairs(Players:GetPlayers()) do
	player:Kick("\n\nТЕСТ ЗАВЕРШЕН.\n\nВСТАНЬ ИЗ-ЗА СТОЛА. ТЫ СВОБОДЕН.")
end