Как сделать лобби в роблокс студио с телепортом

Что бы сделать простое лобби в Роблокс Студио, которое будет телепортировать игроков в другое место как только на платформе окажется определенное количество игроков, нужно создать два скрипта серверный и клиентский. Прописать в них код с количеством игроков при котором телепортация будет срабатывать, а так же координаты или название блока куда будут телепортироваться игроки.

Пошаговая инструкция

Будем делать скрипт на примере двух блоков. Один из блоков будет платформой на которую должны будут становиться игроки для телепортации, а другой блок будет местом куда будут телепортированы игроки.

1. С помощью инструмента Part создайте 2 блока

Как сделать лобби в роблокс студио с телепортом

2. Измените размер блоков с помощью инструмента Scale (не обязательно)

Как сделать лобби в роблокс студио с телепортом

3. Переименуйте платформы Part. Платформу на которую будут становится игроки для телепортации назовите TeleportPlatform, а вторую (куда будут телепортированы игроки) DestinationPart.

Как сделать лобби в роблокс студио с телепортом

4. Внутри блока TeleportPlatform создайте Script и пропишите в нем следующий код (нажми на него что бы скопировать).

-- Серверный скрипт (вставить в платформу или ServerScriptService)
local platform = script.Parent -- или workspace.TeleportPlatform
local requiredPlayers = 1
local countdownTime = 5
local teleportCFrame = workspace.DestinationPart.CFrame
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local countdownEvent = ReplicatedStorage:FindFirstChild("CountdownEvent") or Instance.new("RemoteEvent")
countdownEvent.Name = "CountdownEvent"
countdownEvent.Parent = ReplicatedStorage
local playersOnPlatform = {} -- Ключ: игрок, Значение: количество частей на платформе
local countdownActive = false
local function getPlayerCount()
local count = 0
for _ in pairs(playersOnPlatform) do
count += 1
end
return count
end
local function teleportPlayers()
for player in pairs(playersOnPlatform) do
local character = player.Character
if character and character:FindFirstChild("HumanoidRootPart") then
character:SetPrimaryPartCFrame(teleportCFrame)
end
end
playersOnPlatform = {}
countdownActive = false
countdownEvent:FireAllClients("hide")
end
local function startCountdown()
countdownActive = true
for timeRemaining = countdownTime, 0, -1 do
countdownEvent:FireAllClients("update", timeRemaining)
task.wait(1)
if getPlayerCount() < requiredPlayers then countdownEvent:FireAllClients("hide") countdownActive = false return end end teleportPlayers() end platform.Touched:Connect(function(hit) local player = Players:GetPlayerFromCharacter(hit.Parent) if player then playersOnPlatform[player] = (playersOnPlatform[player] or 0) + 1 if playersOnPlatform[player] == 1 then if getPlayerCount() >= requiredPlayers and not countdownActive then
startCountdown()
end
end
end
end)
platform.TouchEnded:Connect(function(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
if player and playersOnPlatform[player] then
playersOnPlatform[player] -= 1
if playersOnPlatform[player] <= 0 then
playersOnPlatform[player] = nil
if countdownActive and getPlayerCount() < requiredPlayers then
countdownEvent:FireAllClients("hide")
countdownActive = false
end
end
end
end)
Players.PlayerRemoving:Connect(function(player)
playersOnPlatform[player] = nil
if countdownActive and getPlayerCount() < requiredPlayers then
countdownEvent:FireAllClients("hide")
countdownActive = false
end
end)

Как сделать лобби в роблокс студио с телепортом

5. Внутри StarterPlayer — StarterPlayerScripts создайте LocalScript и пропишите в нем код

-- Клиентский скрипт (LocalScript в StarterPlayerScripts)
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local countdownEvent = ReplicatedStorage:WaitForChild("CountdownEvent")
local player = Players.LocalPlayer
local gui = Instance.new("ScreenGui")
gui.DisplayOrder = 10
gui.ResetOnSpawn = false
local countdownText = Instance.new("TextLabel")
countdownText.Size = UDim2.new(0, 300, 0, 80)
countdownText.Position = UDim2.new(0.5, -150, 0.8, -40)
countdownText.AnchorPoint = Vector2.new(0.5, 0.5)
countdownText.BackgroundTransparency = 0.7
countdownText.BackgroundColor3 = Color3.new(0, 0, 0)
countdownText.TextColor3 = Color3.new(1, 1, 1)
countdownText.TextScaled = true
countdownText.Font = Enum.Font.SourceSansBold
countdownText.Visible = false
countdownText.Parent = gui
gui.Parent = player:WaitForChild("PlayerGui")
countdownEvent.OnClientEvent:Connect(function(action, value)
if action == "update" then
countdownText.Text = "Телепортация через: "..value
countdownText.Visible = true
elseif action == "hide" then
countdownText.Visible = false
end
end)

Как сделать лобби в роблокс студио с телепортом

6. Попробуйте телепортироваться став на платформу TeleportPlatform

Параметры телепортации в Script:

  • local requiredPlayers = 1 — минимальное количество игроков на платформе для телепортации
  • local countdownTime = 5 — секунд до телепортации
  • local teleportCFrame = workspace.DestinationPart.CFrame замените на local teleportCFrame = CFrame.new(0, 10, 0) чтобы телепортироваться по конкретным координатам а не на блок.

Как сделать лобби в роблокс студио с телепортом

Видео демонстрация