Pode ser desafiador localizar amigos durante a experiência. O módulo SpawnWithFriends módulo de desenvolvedor move automaticamente os jogadores que estão aparecendo perto de um de seus amigos presentes na experiência. Este módulo também pode ser configurado para teletransportar um jogador sob comando, em vez de automaticamente.
Uso do Módulo
Instalação
Para usar o módulo SpawnWithFriends em uma experiência:
No menu Janela do Studio ou na barra de ferramentas da guia Início, abra a Caixa de Ferramentas e selecione a guia Loja do Criador.

Certifique-se de que a classificação Modelos esteja selecionada e clique no botão Ver Todos para Categorias.

Localize e clique no bloco Pacotes.
Localize o módulo Spawn Com Amigos e clique nele, ou arraste e solte-o na visualização 3D.

Na janela Explorador, mova o modelo SpawnWithFriends inteiro para ReplicatedStorage. Ao executar a experiência, o módulo começará a funcionar.
Áreas de Aparecimento Restritas
Este módulo pode resultar em jogadores aparecendo em áreas restritas, como salas VIP, espaços de acesso restrito, etc. Para evitar que jogadores sejam teletransportados para essas áreas:
Preencha a área restrita com blocos invisíveis Anchored. Certifique-se de que CanCollide, CanTouch e CanQuery estejam desabilitados para todos os blocos.

Bloco preenchendo toda a sala da prisão para evitar que jogadores apareçam dentro Usando a seção Tags das propriedades de cada bloco, aplique a tag RestrictedSpawnArea para que CollectionService os detecte.
Cole o seguinte código em um Script dentro de ServerScriptService.
Scriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local SpawnWithFriends = require(ReplicatedStorage.SpawnWithFriends)local function validator(playerToTeleport, destinationPlayer, teleportationPoint)-- Itera através de todas as partes marcadasfor _, area in CollectionService:GetTagged("RestrictedSpawnArea") dolocal relativePosition = area.CFrame:PointToObjectSpace(teleportationPoint.Position)local size = area.Sizelocal inXBounds = relativePosition.X < size.X / 2 and relativePosition.X > -size.X / 2local inZBounds = relativePosition.Z < size.Z / 2 and relativePosition.Z > -size.Z / 2if inXBounds and inZBounds thenreturn false -- O destino de spawn está dentro da área restrita; abortar teletransporteendendreturn true -- O destino de spawn não se sobrepõe a nenhuma área restrita; proceder com o teletransporteendSpawnWithFriends.setTeleportationValidator(validator)
Referência da API
Funções
configure
configure(config: table)
Substitui as opções de configuração padrão através das seguintes chaves/valores na tabela config. Esta função só pode ser chamada de um Script.
| Chave | Descrição | Padrão |
|---|---|---|
| teleportToFriendOnRespawn | Se configurado como false, o teletransporte para um amigo ocorrerá apenas manualmente através de teleportToRandomFriend. | true |
| teleportDistance | A quão longe os jogadores devem aparecer uns dos outros, medido em studs. | 5 |
| maxCharacterVelocity | Personagens movendo-se mais rápido que este valor não serão escolhidos como candidatos ao teletransporte, por exemplo, aqueles em veículos em movimento. | 48 |
| bypassFriendshipCheck | Se configurado como verdadeiro, todos os jogadores serão candidatos ao teletransporte, não apenas amigos. | false |
| showLogs | Se exibir ou não mensagens de log na saída. | false |
Scriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SpawnWithFriends = require(ReplicatedStorage.SpawnWithFriends)SpawnWithFriends.configure({teleportToFriendOnRespawn = true,teleportDistance = 5,maxCharacterVelocity = 48,bypassFriendshipCheck = false,showLogs = false})
teleportToRandomFriend
teleportToRandomFriend(playerToTeleport: Player): boolean
Aciona manualmente o teletransporte de um jogador para um de seus amigos na experiência. Retorna um booleano indicando se o teletransporte foi bem-sucedido ou não; a falha ao teletransportar pode ser causada pela ausência de amigos no servidor ou pela incapacidade de encontrar um ponto de teletransporte desobstruído. Esta função só pode ser chamada de um Script.
setTeleportationValidator
setTeleportationValidator(validator: function)
Permite realizar verificações personalizadas antes do teletransporte, conectando uma função de validação. O callback recebe três parâmetros:
| Parâmetro | Descrição |
|---|---|
| playerToTeleport | Referência ao Player que está sendo teletransportado. |
| destinationPlayer | Referência ao Player alvo para o qual playerToTeleport está sendo teletransportado. |
| teleportationPoint | CFrame para onde playerToTeleport está sendo teletransportado. |
Esta função e seu callback só podem ser usadas em um Script, e o callback retorna um booleano indicando se o teletransporte deve prosseguir. Por exemplo, a lógica de return na seguinte função de validação garante que o jogador que está aparecendo e o jogador de destino estejam no mesmo time.
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage.SpawnWithFriends)
-- Teletransporta jogadores apenas se estiverem no mesmo time
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)