Doppelganger
Deceptive Tier 3 player mimic with hard void avoidance, safe traversal, real respawn timer and player-attributed hostility.
About this mod Author’s original text
Doppelganger for R.E.P.O. — alpha 0.4.12
A Tier 3 enemy that disguises itself as a player to lure and attack the group.
Implemented
- One configurable 70% roll per natural Tier 3 selection, starting on numbered
level 3. At most one Doppelganger can be selected naturally in a level;
explicit test/command spawns remain unlimited.
- Waits for player colors and cosmetics to synchronize, then copies one random
player's body, skin, cosmetics and display name on every client.
- Runs as its own registered enemy entity. No Huntsman behaviour, model,
animation, attack, weapon or audio component remains on the live prefab.
- Uses its own forward vision. Walls and objects block sight, and an unseen
player is not attacked.
- Crouches to look under furniture and can detect a crouched or crawling player
when the lowered sight line is clear.
- Sprints after close targets, can jump low obstacles, and investigates voice,
TTS chat, footsteps and other noises recognized by the game.
- Draws a visual clone of the real Handgun item. Its shots have distance-based
spread, can miss or hit another player, and deal 20 damage on actual impact.
- Uses the copied player's real eye bones to look toward nearby speakers,
investigated noises and combat targets, with player-style idle eye darts.
- Procedurally moves the copied player's head, upper body, lean, tilt and legs
while looking and moving. Navigation uses short lateral variations,
occasional jumps and strafing instead of following one perfectly straight
bot path.
- Can stop during a peaceful search or follow, open an independent visual copy
of the player's map with its arm pose and spatial sounds, look down at it and
scan the room before closing it and continuing. It never controls the real
player's TAB map.
- Its first spawn is moved to the valid level point farthest from every player.
It starts without knowing any player position, sprints through one room at a
time and scans with real line of sight until someone enters its view.
- Keeps one stable search route, validates complete paths and changes rooms
only after a sustained path failure. It disables risky lateral offsets near
stairs, catwalks and holes; after 2.25 seconds without progress it tries a
safe detour or returns to its last stable NavMesh point.
- Validates solid ground and death-pit triggers across the immediate walking
corridor, physically blocking movement before an unsupported edge. It first
retries without lateral variation, then stops and seeks another route if the
floor is still unsafe. Random jumps, obstacle jumps and landings also require
validated ground; a failed managed gap jump is recovered to a safe platform
before it can fall. Sprinting is suspended near voids. Stair ascent can use a
short assisted jump, while guided stair descent no longer repeatedly enters
Tumble or resets its route.
- Starts peaceful, hides its enemy grab label, follows a player only after
finding them naturally and answers nearby speech from its recorded voice
pool. Prolonged close interaction or being held builds aggression; taking
damage from a player makes it hostile immediately. Damage from monsters,
lasers, stairs, falls and unrelated physics does not break its disguise.
Wall and floor impacts caused by a player's recent Grab throw retain that
player attribution and do trigger hostility.
- Remembers the last visible position for 10 seconds. Losing an aggressive
target returns it to its room-search route and resets a 90-second hostile
search window; if that expires without finding anyone, it becomes peaceful.
- While peaceful, approaches a nearby cart from behind before using its real
Strong mode. Carts stay directly ahead with stabilized physics. A carried
valuable is kept under direct host control at head height in front of the
body, with collision sweeps preventing it from crossing or becoming wedged
in walls.
- After a cooldown of at least three minutes, it can fake a quick player tumble
and ground hit.
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.
Install these first, or the mod will not work: