← Все практические скрипты
Порталы · Начинающий · 15 мин

Два портала: туда и обратно

Путешествуйте между двумя частями карты без зацикливания.

Иллюстрация: Два портала: туда и обратно
🎯 Что получится

При касании одного портала игрок переносится ко второму. Повторное касание доступно после паузы.

1. Подготовьте объект

Где разместить: Script в ServerScriptService

Создайте в Workspace два вертикальных Part: PortalA и PortalB. У обоих Anchored = true, CanTouch = true, CanCollide = false.
Поверните порталы так, чтобы их передняя сторона (направление LookVector) смотрела в безопасную свободную зону. Перед каждым порталом оставьте минимум 7 studs свободного пространства и пол под ногами.
В ServerScriptService создайте один обычный Script и вставьте код. В Play войдите в PortalA, затем попробуйте PortalB.
Порталы должны быть достаточно далеко друг от друга, чтобы выход не попадал в зону касания другого портала.

2. Вставьте код

Script
-- Script в ServerScriptService: два портала
local portalA = workspace:WaitForChild("PortalA")
local portalB = workspace:WaitForChild("PortalB")
local COOLDOWN = 2
local OFFSET = CFrame.new(0, 3, -7)
local cooldown = {}

local function link(source, destination)
    source.Touched:Connect(function(hit)
        local character = hit:FindFirstAncestorOfClass("Model")
        local humanoid = character and character:FindFirstChildOfClass("Humanoid")
        local root = character and character:FindFirstChild("HumanoidRootPart")
        if not humanoid or humanoid.Health <= 0 or not root or cooldown[character] then return end
        cooldown[character] = true
        -- Выход перед порталом, а не внутри него.
        character:PivotTo(destination.CFrame * OFFSET)
        root.AssemblyLinearVelocity = Vector3.zero
        root.AssemblyAngularVelocity = Vector3.zero
        task.delay(COOLDOWN, function() cooldown[character] = nil end)
    end)
end

link(portalA, portalB)
link(portalB, portalA)

3. Проверьте в игре

Нажмите Play в Roblox Studio и проверьте действие механики. Если механика не работает, откройте окно Output и проверьте тип скрипта, его расположение и названия объектов.

Ваш прогресс

Когда проверите механику в Roblox Studio, отметьте практику как выполненную. Отметка хранится только в этом браузере, не в личном кабинете.

Если объединяете несколько скриптов

Добавляйте механики по одной и проверяйте окно Output. Не создавайте несколько одинаковых систем монет или интерфейсов; скрипты, меняющие WalkSpeed, прыжок или освещение, могут влиять друг на друга.

⭐ Три шага к собственной игре
1. Повторите и измените

Измените смещение -6 на -9.

2. Улучшите

Оформите вход и выход разными цветами.

3. Придумайте своё

Создайте скрытую комнату сокровищ, куда ведёт портал.

4. Проверьте себя

Зачем порталам нужна защита от повторного срабатывания?

🛠 Если не работает

Проверьте имена PortalA/PortalB, CanTouch и свободное место перед порталами. Если игрок появляется за стеной, разверните Part или измените OFFSET. После телепорта работает задержка 2 секунды от повторного касания.