Có thể gặp khó khăn trong việc tìm kiếm bạn bè trong trải nghiệm. Mô-đun SpawnWithFriends mô-đun phát triển tự động di chuyển những người chơi đang spawn gần một trong những người bạn có mặt trong trải nghiệm. Mô-đun này cũng có thể được cấu hình để dịch chuyển một người chơi theo lệnh thay vì tự động.
Cách Sử Dụng Mô-Đun
Cài Đặt
Để sử dụng mô-đun SpawnWithFriends trong một trải nghiệm:
Từ menu Cửa Sổ của Studio hoặc thanh công cụ Trang Chủ, mở Bảng Công Cụ và chọn tab Cửa Hàng Creators.

Đảm bảo rằng việc sắp xếp Mô Hình được chọn, sau đó nhấp vào nút Xem Tất Cả cho Danh Mục.

Tìm và nhấp vào ô Gói.
Tìm mô-đun Spawn Với Bạn Bè và nhấp vào nó, hoặc kéo-ném nó vào khung nhìn 3D.

Trong cửa sổ Khám Phá, di chuyển toàn bộ mô hình SpawnWithFriends vào ReplicatedStorage. Khi chạy trải nghiệm, mô-đun sẽ bắt đầu chạy.
Khu Vực Spawn Bị Hạn Chế
Mô-đun này có thể dẫn đến việc người chơi spawn ở những khu vực bị hạn chế như phòng VIP, không gian chỉ cho phép truy cập, v.v. Để ngăn người chơi dịch chuyển đến những khu vực này:
Lấp đầy khu vực bị hạn chế bằng các khối Anchored vô hình. Đảm bảo rằng CanCollide, CanTouch, và CanQuery đều tắt cho tất cả các khối.

Khối lấp đầy toàn bộ phòng ngục để ngăn người chơi spawn bên trong Sử dụng phần Thẻ trong thuộc tính của mỗi khối, áp dụng thẻ RestrictedSpawnArea để CollectionService phát hiện chúng.
Dán đoạn mã sau vào một Script trong ServerScriptService.
Scriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local SpawnWithFriends = require(ReplicatedStorage.SpawnWithFriends)local function validator(playerToTeleport, destinationPlayer, teleportationPoint)-- Duyệt qua tất cả các phần đã gán thẻfor _, 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 -- Điểm đến spawn nằm trong khu vực bị hạn chế; hủy bỏ dịch chuyểnendendreturn true -- Điểm đến spawn không nằm trong khu vực bị hạn chế; tiếp tục dịch chuyểnendSpawnWithFriends.setTeleportationValidator(validator)
Tham Khảo API
Các Hàm
cấu hình
configure(config: table)
Ghi đè các tùy chọn cấu hình mặc định thông qua các khóa/giá trị sau trong bảng config. Hàm này chỉ có thể được gọi từ một Script.
| Khóa | Mô Tả | Mặc Định |
|---|---|---|
| teleportToFriendOnRespawn | Nếu đặt là false, việc dịch chuyển đến một người bạn chỉ xảy ra thủ công thông qua teleportToRandomFriend. | true |
| teleportDistance | Khoảng cách mà người chơi nên spawn cách nhau, được đo bằng studs. | 5 |
| maxCharacterVelocity | Các nhân vật di chuyển nhanh hơn giá trị này sẽ không được chọn là ứng viên cho dịch chuyển, chẳng hạn như những người trong phương tiện di chuyển. | 48 |
| bypassFriendshipCheck | Nếu đặt thành true, tất cả người chơi sẽ là ứng viên cho dịch chuyển, không chỉ bạn bè. | false |
| showLogs | Liệu có nên hiển thị tin nhắn log trong đầu ra hay không. | 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
Kích hoạt dịch chuyển một người chơi đến một trong những người bạn của họ trong trải nghiệm. Trả về một boolean cho biết liệu dịch chuyển có thành công hay không; việc không thể dịch chuyển có thể do không có bạn bè trên máy chủ hoặc không thể tìm thấy một điểm dịch chuyển không bị cản trở. Hàm này chỉ có thể được gọi từ một Script.
setTeleportationValidator
setTeleportationValidator(validator: function)
Cho phép bạn thực hiện các kiểm tra trước dịch chuyển tùy chỉnh bằng cách tổ chức một hàm phản hồi xác thực. Hàm phản hồi nhận ba tham số:
| Tham Số | Mô Tả |
|---|---|
| playerToTeleport | Tham chiếu đến Player đang được dịch chuyển. |
| destinationPlayer | Tham chiếu đến Player mục tiêu mà playerToTeleport đang được dịch chuyển đến. |
| teleportationPoint | CFrame nơi mà playerToTeleport đang dịch chuyển đến. |
Hàm này và hàm phản hồi của nó chỉ có thể được sử dụng trong một Script và hàm phản hồi trả về một boolean cho biết liệu dịch chuyển có nên tiếp tục hay không. Ví dụ, logic return trong hàm xác thực sau đây đảm bảo rằng người chơi đang spawn và người chơi đích thuộc cùng một đội.
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage.SpawnWithFriends)
-- Dịch chuyển người chơi chỉ nếu họ thuộc cùng một đội
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)