用途:在 Roblox 中实现客户端(LocalScript)与服务器(Script)之间的通信,跨网络边界传递数据、同步状态。
主要能力:区分三类远程对象——RemoteEvent(任意方向、无返回值、即发即忘)、RemoteFunction(客户端调用服务器并等待返回)、UnreliableRemoteEvent(高频更新、允许丢包)。默认推荐 RemoteEvent;避免服务器→客户端的 RemoteFunction,因为客户端回调被冻结会无限阻塞服务器线程。
使用方式:远程对象统一放在 ReplicatedStorage,由服务器 Script 在任何 LocalScript 之前创建,例如建立 Remotes 文件夹并放入 DealDamage、GetInventory、SyncPosition。客户端用 FireServer 发往服务器,服务器用 OnServerEvent 监听;服务器用 FireClient 发给单个客户端、FireAllClients 广播,客户端用 OnClientEvent 监听;RemoteFunction 由服务器设置 OnServerInvoke,客户端用 InvokeServer 调用并等待返回。客户端应使用 WaitForChild 获取远程对象。
安全与限制:客户端不可信,服务器必须校验每个参数。资料给出的做法包括:按玩家做频率限制(如 0.5 秒冷却)、类型检查、数值范围钳制(如伤害上限 100)、服务器自行查询武器与目标、避免重复执行。常见漏洞有参数注入、伤害放大、远程刷屏、伪造目标、无限 yield、重复动作。常见错误包括在 LocalScript 中使用 OnServerEvent、把远程对象放进 ServerStorage、信任玩家身份以外的载荷、服务器→客户端 RemoteFunction、缺少 WaitForChild、多次赋值 OnServerInvoke、无节流地在紧循环中触发。
适用场景:玩家动作上报、状态广播、库存查询、高频位置同步等 Roblox 多人游戏网络通信。具体平台、收费与版本信息暂未提供。