PingDrivenRobots
PingDrivenRobots is a PEAK BepInEx mod that lets the host spawn ping-driven computer zombie companions. They follow the latest valid ping placed by any player, plan a route locally, and try to move with player-like actions such as walking, running, jumping, climbing, and controlled drop-downs.
Highlights
- Press J to spawn a controlled zombie robot.
- Press K to remove the nearest controlled zombie.
- Robots always follow the latest valid ping from any real player.
- Local route planning for direct travel, detours, climbing, jump-grab attempts, gap jumps, and safer drop-downs.
- Stamina is not simulated or overwritten by the mod; the original game handles consumption, while the AI only plans movement around current stamina.
- If a climb attempt fails after starting with near-full stamina, the robot waits until stamina recovers and retries that climb point once before giving up.
- Defensive handling for destroyed objects, invalid network references, missing components, carried/dragged states, and abnormal runtime conditions.
Controls
| Key |
Action |
| J |
Spawn a ping-driven zombie robot near the local player |
| K |
Delete the nearest controlled robot |
| Player ping |
Set the newest destination for all controlled robots |
How it works
When a robot is spawned, the mod creates a networked MushroomZombie and attaches a custom controller. The controller records ping positions generated by real players and always selects the newest valid ping as its active destination.
The robot does not use a full map-wide NavMesh. Instead, it performs local terrain probes and route scoring, then chooses an action such as:
- Direct: move straight toward the target when the path looks clear.
- Detour: steer around local obstacles or approach from a better angle.
- Climb: try a climb when the target is above and the wall appears usable.
- JumpGrab: attempt a jump-grab for reachable raised surfaces.
- GapJump: jump across a small gap when a viable landing area is detected.
- DropDown: descend when the drop appears acceptable.
- Hold: pause when no safe movement choice is available.
The controller replans while moving. Failed segments are remembered briefly so the robot is less likely to repeat the same bad local route immediately.
Navigation notes
PingDrivenRobots is designed for short-to-medium player-guided travel, especially when pings are placed on or near reasonable ground targets.
It performs best when:
- The destination is on walkable terrain or a reachable platform.
- The route requires normal movement, a small detour, a jump, or a climb.
- Players use pings as clear movement targets rather than vague directional hints.
It can still struggle when:
- A ping is placed on a wall, cliff face, unsupported ledge, or inaccessible geometry.
- The correct human route requires moving far away from the target first.
- The area requires long global path reasoning rather than local terrain decisions.
- Network ownership or room state changes unexpectedly during movement.
Multiplayer behavior
The AI logic is driven by the client that owns the spawned robot object. Other clients receive replicated network state and visuals. For the most stable behavior, spawning and cleanup should be performed by the host or master client.
Installation
- Install BepInEx for PEAK.
- Put the compiled
PingDrivenRobots.dll into:
BepInEx/plugins/
- Launch the game and enter a room.
- Press J to spawn a robot.
- Use any player's ping to direct it.
- Press K to delete the nearest controlled robot.
Configuration
The mod creates a BepInEx config file after first launch. Common options include:
| Setting |
Purpose |
SpawnZombieKey |
Key used to spawn a robot |
DeleteZombieKey |
Key used to delete the nearest controlled robot |
ZombiePrefabName |
Photon prefab used for the robot object |
SpawnForwardOffset |
Spawn distance in front of the player |
SpawnNearPlayer |
Whether to spawn near the local player |
Current concept
PingDrivenRobots is meant to feel like a player-guided helper zombie rather than a normal passive NPC. It listens to the latest player ping, interprets nearby terrain, and tries to travel there with ordinary in-game movement rules.
中文介绍
PingDrivenRobots 是一个用于 PEAK 的 BepInEx 模组。它可以生成由电脑控制的僵尸机器人,并让它们默认追踪 任意真实玩家最后一次有效标点,然后通过局部寻路尝试走到目标位置。
主要功能
- 按 J 生成一个受控僵尸机器人。
- 按 K 删除最近的受控机器人。
- 默认始终响应 最后一次任意玩家标点。
- 支持局部路线规划,包括:
- 直接前进
- 绕障碍
- 攀爬
- 跳抓高处
- 跳过小断层
- 谨慎下落
- 模组不主动扣体力,也不覆盖原版体力消耗;只读取当前体力,用于判断什么时候适合跑、跳、爬和等待。
- 如果某个攀爬点第一次在接近满体力时仍失败,机器人会先等待体力恢复满,再对同一攀爬点额外重试一次。
- 增加了对空引用、网络对象失效、被玩家搬运/拖拽、对象销毁等情况的保护。
默认按键
| 按键 |
功能 |
| J |
在玩家附近生成一个僵尸机器人 |
| K |
删除最近的受控机器人 |
| 玩家标点 |
更新机器人当前要前往的目标 |
工作方式
机器人生成后,会持续监听玩家打出的标点,并以最新有效标点作为当前目的地。它不会依赖完整地图 NavMesh,而是通过局部探测和路线评分,决定当前应该:
- 直接走过去;
- 绕开障碍;
- 尝试攀爬;
- 做跳抓;
- 跨过小 gap;
- 从相对安全的位置下落;
- 或者临时等待重新规划。
如果当前路线片段失败,机器人会短时间记住失败区域,减少反复在同一个坏位置无效重试。
适用场景
这个模组更适合:
- 短到中距离的标点引导;
- 普通平台、缓坡、台阶、简单攀爬点;
- 玩家把标点打在合理的落脚区域或明显目标点上。
可能仍然不够稳定的情况:
- 标点直接打在墙面、悬崖边、无支撑位置;
- 需要先长距离绕远再靠近的路线;
- 需要强全局理解的复杂地图;
- 联机房间中网络所有权状态发生异常变化。
安装方法
- 安装 PEAK 对应的 BepInEx。
- 将编译后的
PingDrivenRobots.dll 放入:
BepInEx/plugins/
- 启动游戏并进入房间。
- 按 J 生成机器人。
- 通过玩家标点引导它移动。
- 按 K 删除最近的受控机器人。
作者