Puede ser un desafío localizar amigos en el juego. El módulo SpawnWithFriends módulo de desarrollador mueve automáticamente a los jugadores que aparecen cerca de uno de sus amigos presentes en el juego. Este módulo también se puede configurar para teletransportar a un jugador bajo demanda en lugar de hacerlo automáticamente.
Uso del Módulo
Instalación
Para usar el módulo SpawnWithFriends en un juego:
Desde el menú Ventana de Studio o la barra de herramientas de la pestaña Inicio, abre el Toolbox y selecciona la pestaña Tienda del Creador.

Asegúrate de que la clasificación de Modelos esté seleccionada, luego haz clic en el botón Ver Todo para Categorías.

Localiza y haz clic en el mosaico Paquetes.
Localiza el módulo Aparecer Con Amigos y haz clic en él, o arrástralo y suéltalo en la vista 3D.

En la ventana del Explorador, mueve todo el modelo SpawnWithFriends a ReplicatedStorage. Al ejecutar el juego, el módulo comenzará a funcionar.
Áreas de Aparición Restringidas
Este módulo puede resultar en que los jugadores aparezcan en áreas restringidas como salas VIP, espacios de acceso exclusivo, etc. Para evitar que los jugadores se teletransporten a estas áreas:
Llena el área restringida con bloques invisibles Anchored. Asegúrate de que CanCollide, CanTouch, y CanQuery estén desactivados para todos los bloques.

Bloque llenando toda la sala de prisión para evitar que los jugadores aparezcan dentro Usando la sección de Etiquetas de las propiedades de cada bloque, aplica la etiqueta RestrictedSpawnArea para que CollectionService las detecte.
Pega el siguiente código en un 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)-- Iterar a través de todas las partes etiquetadasfor _, 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 -- El destino de aparición está dentro del área restringida; abortar teletransportaciónendendreturn true -- El destino de aparición no se superpone con ninguna área restringida; proceder con la teletransportaciónendSpawnWithFriends.setTeleportationValidator(validator)
Referencia de la API
Funciones
configure
configure(config: table)
Sobrescribe las opciones de configuración predeterminadas a través de las siguientes claves/valores en la tabla config. Esta función solo se puede llamar desde un Script.
| Clave | Descripción | Predeterminado |
|---|---|---|
| teleportToFriendOnRespawn | Si se establece en false, la teletransportación a un amigo solo ocurrirá manualmente a través de teleportToRandomFriend. | true |
| teleportDistance | Qué tan lejos deben aparecer los jugadores entre sí, medido en studs. | 5 |
| maxCharacterVelocity | Los personajes que se muevan más rápido que este valor no serán seleccionados como candidatos para la teletransportación, por ejemplo, aquellos en vehículos en movimiento. | 48 |
| bypassFriendshipCheck | Si se establece en true, todos los jugadores serán candidatos para la teletransportación, no solo los amigos. | false |
| showLogs | Si se deben mostrar o no mensajes de registro en la salida. | false |
local 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
Activa manualmente la teletransportación de un jugador a uno de sus amigos en el juego. Devuelve un booleano que indica si la teletransportación tuvo éxito o no; la falla en la teletransportación puede ser causada por la ausencia de amigos en el servidor o la incapacidad de encontrar un punto de teletransportación sin obstrucciones. Esta función solo se puede llamar desde un Script.
setTeleportationValidator
setTeleportationValidator(validator: function)
Te permite realizar verificaciones personalizadas antes de la teletransportación conectando una función de validación de retorno. El retorno recibe tres parámetros:
| Parámetro | Descripción |
|---|---|
| playerToTeleport | Referencia al Player que está siendo teletransportado. |
| destinationPlayer | Referencia al Player objetivo al que playerToTeleport está siendo teletransportado. |
| teleportationPoint | CFrame al que playerToTeleport se está teletransportando. |
Esta función y su retorno solo se pueden usar en un Script y el retorno devuelve un booleano que indica si la teletransportación debe proceder. Por ejemplo, la lógica de return en la siguiente función de validación asegura que el jugador que aparece y el jugador de destino estén en el mismo equipo.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage.SpawnWithFriends)
-- Teletransporta a los jugadores solo si están en el mismo equipo
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)