Il peut être difficile de localiser des amis dans l'expérience. Le module SpawnWithFriends pour développeurs déplace automatiquement les joueurs faisant leur apparition près de l'un de leurs amis présents dans l'expérience. Ce module peut également être configuré pour téléporter un joueur sur commande au lieu de le faire automatiquement.
Utilisation du Module
Installation
Pour utiliser le module SpawnWithFriends dans une expérience :
Depuis le menu Fenêtre de Studio ou la barre d'outils de l'onglet Accueil, ouvrez la Boîte à outils et sélectionnez l'onglet Magasin du créateur.

Assurez-vous que le tri par Modèles est sélectionné, puis cliquez sur le bouton Voir Tout pour les Catégories.

Localisez et cliquez sur la tuile Packages.
Localisez le module Apparaitre Avec des Amis et cliquez dessus, ou faites-le glisser dans la vue 3D.

Dans la fenêtre Explorateur, déplacez le modèle entier SpawnWithFriends dans ReplicatedStorage. Dès que vous exécutez l'expérience, le module commencera à fonctionner.
Zones d'Apparition Restreintes
Ce module peut entraîner des joueurs faisant leur apparition dans des zones restreintes comme des salles VIP, des espaces réservés, etc. Pour empêcher les joueurs de se téléporter dans ces zones :
Remplissez la zone restreinte avec des blocs invisibles Anchored. Assurez-vous que CanCollide, CanTouch, et CanQuery sont désactivés pour tous les blocs.

Bloc remplissant toute la salle de prison pour empêcher les joueurs d'apparaître à l'intérieur En utilisant la section Tags des propriétés de chaque bloc, appliquez le tag RestrictedSpawnArea afin que CollectionService puisse les détecter.
Collez le code suivant dans un Script au sein de ServerScriptService.
Scriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local SpawnWithFriends = require(ReplicatedStorage.SpawnWithFriends)local function validator(playerToTeleport, destinationPlayer, teleportationPoint)-- Itérer à travers tous les blocs étiquetésfor _, 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 -- La destination de l'apparition est dans une zone restreinte ; annuler la téléportationendendreturn true -- La destination de l'apparition ne chevauche aucune zone restreinte ; procéder à la téléportationendSpawnWithFriends.setTeleportationValidator(validator)
Référence API
Fonctions
configure
configure(config: table)
Remplace les options de configuration par défaut par les clés/valeurs suivantes dans la table config. Cette fonction ne peut être appelée que depuis un Script.
| Clé | Description | Par défaut |
|---|---|---|
| teleportToFriendOnRespawn | Si défini sur false, la téléportation vers un ami ne se fera que manuellement via teleportToRandomFriend. | true |
| teleportDistance | Quelle distance les joueurs doivent apparaître les uns des autres, mesurée en studs. | 5 |
| maxCharacterVelocity | Les personnages se déplaçant plus vite que cette valeur ne seront pas pris comme candidats à la téléportation, par exemple ceux dans des véhicules en mouvement. | 48 |
| bypassFriendshipCheck | Si défini sur vrai, tous les joueurs seront candidats à la téléportation, pas seulement les amis. | false |
| showLogs | Pour savoir s'il faut afficher des messages de journal dans la sortie. | 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
Déclenche manuellement la téléportation d'un joueur vers l'un de ses amis dans l'expérience. Renvoie un booléen indiquant si la téléportation a réussi ou non ; l'échec de la téléportation peut être causé par l'absence d'amis sur le serveur ou par l'incapacité à trouver un point de téléportation dégagé. Cette fonction ne peut être appelée que depuis un Script.
setTeleportationValidator
setTeleportationValidator(validator: function)
Vous permet d'effectuer des vérifications personnalisées avant la téléportation en connectant une fonction de validation. La fonction de rappel reçoit trois paramètres :
| Paramètre | Description |
|---|---|
| playerToTeleport | Référence au Player qui est téléporté. |
| destinationPlayer | Référence au Player cible vers lequel playerToTeleport est téléporté. |
| teleportationPoint | CFrame où playerToTeleport est téléporté. |
Cette fonction et sa fonction de rappel ne peuvent être utilisées que dans un Script et la fonction de rappel renvoie un booléen indiquant si la téléportation doit se poursuivre ou non. Par exemple, la logique return dans la fonction de validation suivante garantit que le joueur apparaissant et le joueur cible sont dans la même équipe.
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage.SpawnWithFriends)
-- Téléporte les joueurs uniquement s'ils sont dans la même équipe
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)