
Key Required

local Players = game:GetService("Players")
local Teams = game:GetService("Teams")
local RunService = game:GetService("RunService")
-- Настройки
local TEAM_NAME = "Survivors" -- Название команды для телепортации
local TELEPORT_DURATION = 4 -- Длительность телепортации в секундах
local BEHIND_OFFSET = 2 -- Расстояние за спиной (установлено в 2 studs для небольшого расстояния)
local HEIGHT_OFFSET = 0 -- Высота относительно игрока
local CLUSTER_SPREAD = 0.5 -- Небольшой разброс для создания "кучки" (случайный offset в пределах 0.5 единиц)
-- Словарь для отслеживания активных телепортаций
local activeTeleportations = {}
-- Функция для получения команды
local function getTeam(teamName)
for _, team in pairs(Teams:GetTeams()) do
if team.Name:lower() == teamName:lower() then
return team
end
end
return nil
end
-- Функция для проверки, может ли игрок телепортировать
local function canPlayerTeleport(player)
-- Здесь можно добавить дополнительные проверки
-- Например, проверку на админ права, уровень и т.д.
return true -- Пока разрешаем всем
end
-- Функция для телепортации за спину
local function teleportBehind(targetPlayer, playerToTeleport)
if not targetPlayer.Character or not playerToTeleport.Character then
return false
end
local targetHRP = targetPlayer.Character:FindFirstChild("HumanoidRootPart")
local playerHRP = playerToTeleport.Character:FindFirstChild("HumanoidRootPart")
if not targetHRP or not playerHRP then
return false
end
-- Получаем направление взгляда
local lookVector = targetHRP.CFrame.LookVector
local upVector = Vector3.new(0, 1, 0)
-- Вычисляем базовую позицию за спиной
local behindPosition = targetHRP.Position - (lookVector * BEHIND_OFFSET)
behindPosition = behindPosition + (upVector * HEIGHT_OFFSET)
-- Добавляем небольшой случайный разброс для создания "кучки"
local randomOffset = Vector3.new(
(math.random() - 0.5) * CLUSTER_SPREAD * 2,
0,
(math.random() - 0.5) * CLUSTER_SPREAD * 2
)
behindPosition = behindPosition + randomOffset
-- Проверяем, не занято ли место
local rayOrigin = behindPosition + Vector3.new(0, 5, 0)
local rayDirection = Vector3.new(0, -10, 0)
local raycastParams = RaycastParams.new()
raycastParams.FilterType = Enum.RaycastFilterType.Blacklist
raycastParams.FilterDescendantsInstances = {targetPlayer.Character, playerToTeleport.Character}
local rayResult = workspace:Raycast(rayOrigin, rayDirection, raycastParams)
if rayResult then
behindPosition = rayResult.Position + Vector3.new(0, 3, 0)
end
-- Телепортируем
playerHRP.CFrame = CFrame.new(behindPosition, behindPosition + lookVector)
-- Визуальный эффект (опционально)
spawn(function()
local teleportEffect = Instance.new("Part")
teleportEffect.Size = Vector3.new(2, 0.1, 2)
teleportEffect.Position = behindPosition
teleportEffect.Anchored = true
teleportEffect.CanCollide = false
teleportEffect.Transparency = 0.5
teleportEffect.Color = Color3.fromRGB(0, 170, 255)
teleportEffect.Material = Enum.Material.Neon
teleportEffect.Parent = workspace
game:GetService("TweenService"):Create(
teleportEffect,
TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
{Transparency = 1, Size = Vector3.new(4, 0.1, 4)}
):Play()
wait(0.5)
teleportEffect:Destroy()
end)
return true
end
-- Основная функция телепортации
local function startMassTeleport(instigatorPlayer)
-- Проверяем, может ли игрок телепортировать
if not canPlayerTeleport(instigatorPlayer) then
instigatorPlayer:SetAttribute("LastTeleportMessage", "У вас нет прав для телепортации!")
return
end
-- Проверяем, не активна ли уже телепортация
if activeTeleportations[instigatorPlayer.UserId] then
instigatorPlayer:SetAttribute("LastTeleportMessage", "Телепортация уже активна!")
return
end
local survivorsTeam = getTeam(TEAM_NAME)
if not survivorsTeam then
instigatorPlayer:SetAttribute("LastTeleportMessage", "Команда '" .. TEAM_NAME .. "' не найдена!")
return
end
-- Получаем всех игроков в команде Survivors
local playersToTeleport = {}
for _, player in pairs(Players:GetPlayers()) do
if player.Team == survivorsTeam and player ~= instigatorPlayer then
if player.Character and player.Character:FindFirstChild("Humanoid") then
table.insert(playersToTeleport, player)
end
end
end
if #playersToTeleport == 0 then
instigatorPlayer:SetAttribute("LastTeleportMessage", "Нет игроков для телепортации!")
return
end
-- Помечаем телепортацию как активную
activeTeleportations[instigatorPlayer.UserId] = true
-- Уведомление игроку
instigatorPlayer:SetAttribute("LastTeleportMessage", "Телепортирую " .. #playersToTeleport .. " игроков!")
-- Запускаем телепортацию
local startTime = tick()
local connection
connection = RunService.Heartbeat:Connect(function()
-- Проверяем время
if tick() - startTime >= TELEPORT_DURATION then
connection:Disconnect()
activeTeleportations[instigatorPlayer.UserId] = nil
instigatorPlayer:SetAttribute("LastTeleportMessage", "Телепортация завершена!")
return
end
-- Проверяем, жив ли инициатор
if not instigatorPlayer.Character or not instigatorPlayer.Character:FindFirstChild("HumanoidRootPart") then
connection:Disconnect()
activeTeleportations[instigatorPlayer.UserId] = nil
return
end
-- Телепортируем каждого игрока
for _, player in pairs(playersToTeleport) do
if player and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
teleportBehind(instigatorPlayer, player)
end
end
end)
-- Автоматическое отключение через заданное время
delay(TELEPORT_DURATION, function()
if connection and connection.Connected then
connection:Disconnect()
end
activeTeleportations[instigatorPlayer.UserId] = nil
end)
end
-- Настройка команды чата для телепортации
local function setupChatCommand()
local function onPlayerChatted(player, message)
-- Команда для телепортации (можно изменить)
if message:lower() == "/tpbehind" or message:lower() == "!teleport" then
startMassTeleport(player)
end
end
-- Обработчик для новых игроков
Players.PlayerAdded:Connect(function(player)
player.Chatted:Connect(function(message)
onPlayerChatted(player, message)
end)
end)
-- Для уже подключенных игроков
for _, player in pairs(Players:GetPlayers()) do
player.Chatted:Connect(function(message)
onPlayerChatted(player, message)
end)
end
end
-- GUI для кнопки телепортации (опционально)
local function createTeleportGUI(player)
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "TeleportGUI"
screenGui.Parent = player:WaitForChild("PlayerGui")
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 200, 0, 50)
frame.Position = UDim2.new(0.5, -100, 0.9, -25)
frame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
frame.BorderSizePixel = 0
frame.Parent = screenGui
local button = Instance.new("TextButton")
button.Size = UDim2.new(1, -20, 1, -20)
button.Position = UDim2.new(0, 10, 0, 10)
button.BackgroundColor3 = Color3.fromRGB(0, 120, 215)
button.TextColor3 = Color3.fromRGB(255, 255, 255)
button.Text = "Телепортировать игроков"
button.Font = Enum.Font.GothamBold
button.TextSize = 14
button.Parent = frame
local cooldown = false
button.MouseButton1Click:Connect(function()
if not cooldown then
startMassTeleport(player)
cooldown = true
button.Text = "Перезарядка..."
button.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
wait(TELEPORT_DURATION + 5) -- 5 секунд дополнительной перезарядки
cooldown = false
button.Text = "Телепортировать игроков"
button.BackgroundColor3 = Color3.fromRGB(0, 120, 215)
end
end)
-- Label для сообщений
local messageLabel = Instance.new("TextLabel")
messageLabel.Size = UDim2.new(1, 0, 0, 30)
messageLabel.Position = UDim2.new(0, 0, -1, -5)
messageLabel.BackgroundTransparency = 1
messageLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
messageLabel.Text = ""
messageLabel.Font = Enum.Font.Gotham
messageLabel.TextSize = 12
messageLabel.Parent = frame
-- Обновление сообщений
while screenGui.Parent do
local message = player:GetAttribute("LastTeleportMessage") or ""
messageLabel.Text = message
wait(0.1)
end
end
-- Инициализация
setupChatCommand()
-- Создание GUI для игроков
Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Wait()
createTeleportGUI(player)
end)
-- Для уже подключенных игроков
for _, player in pairs(Players:GetPlayers()) do
if player.Character then
createTeleportGUI(player)
end
end
-- Экспорт функций
return {
startMassTeleport = startMassTeleport,
teleportBehind = teleportBehind,
-- Настройки (можно менять из других скриптов)
settings = {
TeamName = TEAM_NAME,
Duration = TELEPORT_DURATION,
Offset = BEHIND_OFFSET,
ClusterSpread = CLUSTER_SPREAD
}
}



@specialguest i have a request,can u make an autofarm like it auto shoot/kill the boss called santa sam,pleaseee
@alejandrosorrentino bro you are such a dumb* go play normally
@specialguest same could be said about you dumb*, look who's uploading scripts. go play normally idiot