Skip to content

Echoes — your other characters live in the towns

Echoes is a small mod for Outward that puts your other saved characters into the world as townsfolk. Whichever region a character last saved in, you will find them strolling that region's town: saved in Chersonese → Cierzo; Enmerkar → Berg; Abrassar → Levant; Hallowed Marsh → Monsoon; Antique Plateau → Harmattan; Caldera → New Sirocco. A character who saved inside a town wanders that town.

They look like themselves (face, hair, skin, gender) and wear the armour they had on. They walk the same routes the town's real NPCs walk. You cannot talk to them, trade with them, hurt them or make them fight — they are echoes, not companions.

At a glance - Type: gameplay mod (cosmetic) - Requires: BepInEx 5 (Mono branch), ForgeKit, SideLoader - Config: BepInEx/config/cobalt.echoes.cfg - Commands: BepInEx/config/Echoes_cmd.txt - Save: nothing — echoes are never saved; they are re-made every time a town loads

For players

Install, play. Every time you enter a town, each of your other characters whose last save was in that town's region appears somewhere along a townsperson's route. The character you are currently playing never echoes. Retired (legacy) characters are skipped unless you turn IncludeRetired on.

Save another character somewhere new and their echo moves the next time you load a town (the mod re-reads your save folders at game start; the echoreload command re-reads them without a restart).

Settings — BepInEx/config/cobalt.echoes.cfg

[General]
## Spawn echoes of your other saved characters in towns.
Enabled = true
## Also echo retired (legacy) characters.
IncludeRetired = false

[Look]
## Give the echo the weapon/shield the character had equipped. Off = armour only.
ShowWeapons = false

[Behaviour]
## Echoes cannot be killed. They never fight back or target anyone regardless.
Invulnerable = true
## Borrow a waypoint patrol when the town has one; otherwise a free-wander area.
PreferPatrols = true
## Walk speed modifier (0.3 = the vanilla stroll, 1.1 = a run). 0 = copy the borrowed NPC's own value.
WanderSpeed = 0
## How many echoes a town shows at once (0 = every eligible character). With EnableCycling on,
## the rest wait in reserve and rotate in as shown echoes wander off-screen.
MaxPerTown = 5

[Cycling]
## Rotate the reserve in: when a shown echo leaves the camera view (far enough, for long enough),
## despawn it and promote the next character in reserve. Off = the MaxPerTown picks stay put.
EnableCycling = true
## How often (seconds, real time) the cycling tick checks for off-screen echoes.
CyclePollSeconds = 1.5
## Consecutive off-screen ticks before an echo is cycled out (a brief pan should not churn it).
CycleDebounceTicks = 2
## Only cycle an echo that is at least this many metres away, even if just off the screen edge.
CycleDistanceFloor = 8
## The carousel: a shown echo stays at least this long (seconds) before it can cycle out — time
## to find and talk to it — then leaves once off-camera, and only while someone is in reserve.
## 0 = cycle the moment it is off-screen.
CarouselMinSeconds = 180
## Retired echoes rejoin the back of the reserve so the carousel keeps turning. Off = once per visit.
CarouselRecycle = true

[Placement]
## Echoes arrive as a TRICKLE: nothing spawns in view or at your feet. 1-2 appear at a spot the
## camera cannot see, the next batch waits until you have walked TrickleMoveMetres, up to
## MaxPerTown. Off = the old behaviour (every pick placed on the scene load).
TrickleEnabled = true
## Fewest / most echoes per batch (alternates between the two).
TrickleBatchMin = 1
TrickleBatchMax = 2
## How far you must walk from where the last batch was placed before the next batch is due.
TrickleMoveMetres = 20
## Off-camera spawn spots are between these distances from you; a spot the camera can see is
## never used, whatever the distance.
SpawnMinMetres = 12
SpawnMaxMetres = 35

[Inn]
## Extra echoes scattered across the town's inn (hallways, stairs, common room — never the
## rentable bed room). Each load picks a count between these two. A separate budget from
## MaxPerTown. InnMaxPerTown = 0 turns the inn pass off.
InnMinPerTown = 1
InnMaxPerTown = 3
## Reject any inn scatter point within this many metres of a bed cluster (the sleeping room).
InnBedExcludeRadius = 6
## Beds within this many metres of each other count as one sleeping-room cluster.
InnBedMergeRadius = 4
## How close a resident NPC must be to an inn bed to count as an inn resident (the scatter anchors).
InnResidentRadius = 25

[Multiplayer]
## Spawn echoes while hosting a room with guests. Off by default — a guest has no
## template for the host's saves, so they would see an un-dressed body.
SpawnInMultiplayer = false

Commands — BepInEx/config/Echoes_cmd.txt

Write one line into the file and it runs on the next poll.

Command What
echoes List every saved character, the town it echoes into, whether it belongs to the current scene and is live, and the routes the town offers.
echoreload Re-read the save folders and rebuild the echoes (after saving another character).
echospawn [name] Put every echo (or one, by name) in the current scene regardless of region — for looking at them.
echodespawn Remove every echo in the scene.
echoinnscan Report the inn this town holds: bed clusters (excluded), inn-bed clusters, resident-NPC anchors, and the proposed scatter points — for tuning the inn pass live. Master only.

Notes

  • A town shows up to MaxPerTown echoes (default 5), reshuffled per load. With EnableCycling on (default), the rest wait in reserve and rotate in as shown echoes wander off the camera (at least CycleDistanceFloor away, for CycleDebounceTicks consecutive polls) — never one you are talking to. echospawn <name> ignores the cap.
  • The inn pass places between InnMinPerTown and InnMaxPerTown extra echoes (default 1–3, a separate budget) across the inn's common area — hallways, stairs, main room — and never the rentable bed room. It finds the inn from the town's own inn beds. It spreads the echoes around the inn's resident NPCs when there are any, and otherwise around a ring just outside the bed rooms. The town's own spare characters come first; if there aren't enough, the inn borrows characters from other towns. If the town has no inn bed at all it places none and logs why. echoinnscan shows where they would go. Inn placement is owed a live pass.
  • Echoes exist only in the six towns. Dungeons, the overworld and interiors get none.
  • If a town has no walking NPCs at all (an unusual state), the echo stands where it spawned.
  • Multiplayer: the host places echoes; guests see them only when SpawnInMultiplayer is on, and then without the outfit and look (SideLoader needs the template on the guest's side too).