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