Doppelganger

v0.4.12·Updated 2026-07-31

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

  1. The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
  2. 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.
  3. Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
  4. 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.

Dependencies

Install these first, or the mod will not work:

BepInEx-BepInExPackZehs-REPOLibRune580-REPO_SteamNetworking_Lib

File & checksum

Filename
Doppelganger-0.4.12.zip
File size
129.4 KiB