Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
TeamWars
WORK IN PROGRESS. Competitive 2-team mode: pick your team in the lobby; everyone hauls to the same truck, the money is split per team by who carried each valuable in, and each team gets its own colour-coded cart.
By repocacus
| Last updated | 13 hours ago |
| Total downloads | 127 |
| Total rating | 2 |
| Categories | Mods AI Generated |
| Dependency string | repocacus-TeamWars-0.8.38 |
| Dependants | 0 other packages depend on this package |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2305README
TeamWars
R.E.P.O. mod: competitive 2-team mode. Pick your team in the lobby; everyone hauls to the same vanilla truck, the money is split per team by who carried each valuable in, and each team gets its own colour-coded cart.
Work in progress — the mode is playable per-level (Red vs Blue with a running rounds score) but lacks series/seed mechanics.
Teams
- Red vs Blue. Teams are picked in the lobby with the small red/blue squares that TeamWars places next to every lobby player row (right of the ping); clicking a square asks the host to put you on that team. You can also re-pick mid-run from the pause menu: the same two squares appear under the MAIN MENU button.
- The host is authoritative and may also assign a square to any player. Players who never pick get auto-assigned by the host (30 s grace in the lobby, again at every level start), evenly so both teams stay balanced. A player without a team is never treated as a rival.
- Everyone else sees your choice too: roster strip up top in the lobby, coloured squares with a yellow frame on your current team, score line showing "you: Rojo/Azul".
Money and haul
- Everyone delivers to the same vanilla extraction. A valuable counts for the team of whoever carried it in — credit is pinned at the exact delivery instant and never moves afterwards, even when the other team grabs the object inside the truck.
- A valuable that rides a team cart is credited to the cart's team (the cart is the durable clue once nobody is holding it).
- Taking a valuable back out of the check un-does its delivery: it stops counting.
- Value that disappears inside the check waits briefly in limbo: if an extraction consumes it, it is banked on its team (the game zeroes its own haul at that point — without banking, a won round would score as a draw); if nothing consumes it, it likely broke or slid out and is dropped instead of counted at its last value.
- Per-team goals start at a configurable percentage of the level's total value and are capped by what is still unextracted, so they always stay reachable. The level's own extraction check is kept in step with the (higher) team goal, so delivering enough also satisfies it.
Carts
- Each team gets its own cart next to the truck, spawned and tinted in its team colour at every level start. The rival team cannot grab it (the grab is refused and even the aim prompt is suppressed). The run's free neutral starter cart is removed.
- Objects sitting in a team cart are claimed for that team — colour, grab block and haul credit — whether they are valuables or ordinary items.
Protection
- A rival cannot grab an object owned by the other team.
- A rival cannot break/crush an owned valuable by throwing, dropping or crashing it: the culprit's team is checked at the single point where impact damage becomes lost value, consistently on every machine.
Round close
- Normally the level ends when the vanilla check is met and someone grabs the truck screen. TeamWars adds a competitive round: once a team reaches its goal, the vanilla exit is held back until the minimum time for the level (base + per-module, host config) has passed and the living players are in the truck.
- A grace period after the minimum time is the safety valve: past it, players still outside cannot hold the close back, so a stuck player never locks the run.
- Grabbing the truck screen then closes the round, advances the level and scores the winner (GANA ROJO / GANA AZUL through the game's own center-screen popup). Ties score nothing. With no team at its goal, the vanilla exit is untouched and the round closes with no winner.
- Rounds won is shown for the whole session in the HUD counter.
Extraction surplus
- Vanilla folds every surplus dollar above the goal into a single moneybag — grab-and-run race, new owner dictated by speed. TeamWars pays each team its own bag instead, split by each team's contribution to the level's extraction (largest-remainder rounding), each bag claimed and coloured at spawn.
The shop
- An item is bought by putting it in the shop's check and confirming; the game charges the shared pot and destroys the object. TeamWars works on both charge paths (the tube's one-item-per-tick, and the shop's own extraction that charges the whole list at once): it pins which team the items in the check belong to (whoever put them there), only lets through what the owner team can pay, and books the charge per team.
- Each team pays out of its own purse: what it has extracted over the run minus what it has spent. Unaffordable items (or with no team attached yet) stay in the check untouched; the shop's shared money stays vanilla.
- The upgrade stand's reroll press is booked on the presser's team as well.
- The purchase record is kept by item name, so when the game re-creates the bought items on future spawns they are given back to the buyer's team.
- While in the shop the vanilla single-pot currency display is hidden and the HUD shows both purses instead.
HUD
- Persistent counter at the top of the screen:
Rojo haul/goal (players) — Azul haul/goal (players), rounds won, a close-state line (countdown to the minimum time, waiting on N players outside the truck, round closed, etc.) and which team you are on. - Uses the game's own font and styling; no external assets.
Networking
- Host-authoritative: the host owns rosters, goals, tallies, ownership and round results and broadcasts them as Photon events; clients ask to join teams and to close rounds. Offline singleplayer works with no room at all.
- State is re-synced periodically (roster, ownership, tallies, cart ownership), so a client that joined late or lost an event always converges. Late joiners get current goals and tallies too, not just the roster.
Configuration (BepInEx config, host values win in multiplayer)
| Setting | Default | Meaning |
|---|---|---|
Economy.GoalStartPercent |
28 | Each team's starting goal, as percent of the level's total value. |
Round.MinTimeBaseMinutes |
10 | Base minimum round time. |
Round.MinTimePerModuleMinutes |
3 | Extra minutes per level module. |
Round.CloseGraceMinutes |
5 | Extra minutes after the minimum time before players outside the truck stop blocking the close. |
Installation
Requirements: BepInEx-BepInExPack (5.4.2305).
Install through r2modman / Thunderstore as cacus-TeamWars, or drop the DLL into
BepInEx/plugins.