You are viewing a potentially older version of this package. View all versions.
Revival-NetworkingRevived-1.1.1 icon

NetworkingRevived

Client-side prediction for R.E.P.O. - grabbing, dragging and throwing feels like singleplayer. Made by Revival.

By Revival
Date uploaded a day ago
Version 1.1.1
Download link Revival-NetworkingRevived-1.1.1.zip
Downloads 1
Dependency string Revival-NetworkingRevived-1.1.1

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100

README

NetworkingRevived

Made by Revival

A client-side mod for R.E.P.O. that makes multiplayer feel like singleplayer — grabbing, dragging and throwing objects responds instantly instead of waiting a full network round trip for the host to approve it.

This is a from-scratch rewrite of the abandoned NetworkingReworked mod, rebuilt against the current version of the game (the original broke when the game's overcharge update changed the network stream format and internal code).

What it does

R.E.P.O. is host-authoritative: when you grab something as a client, your game asks the host for permission, the host simulates the physics, and the result is streamed back to you. On any real connection that means visible input lag and rubberbanding.

NetworkingRevived changes that, only on your machine:

  • The moment you grab a valuable, prop, or cart, your game registers the grab and simulates the physics locally — zero delay.
  • While you hold it, the host's (laggy) position updates are recorded but not applied.
  • When you let go or throw, the object smoothly blends back to the host's authoritative state over about a second, so there's no snapping and no permanent desync.
  • If you drag a cart, the items riding inside it are simulated too, so they don't jitter.

The host and other players are untouched — the host still owns the "real" simulation, damage, breakage, and money. Only you need the mod, and it works in lobbies where the host is completely unmodded.

What is intentionally NOT predicted

Objects whose behavior is managed by host-side game logic stay vanilla to avoid breaking things: enemies, tumbled players, hinged objects (doors), and shop/inventory items (weapons, batteries, grenades, upgrades). Those still use the normal host round trip.

Config

BepInEx/config/com.Revival.networkingrevived.cfg

Setting Default What it does
SimulateCarts true Local prediction for carts
SimulateCartContents true Items inside your cart ride along locally
InstantCartHandle true Cart handle grabs register instantly
SoftSyncDuration 1.25 Seconds of blending back to host state after release
SoftSyncStrength 0.12 Blend strength per physics tick (higher = snappier)

Install

  1. Install BepInEx (BepInExPack for R.E.P.O.).
  2. Drop NetworkingRevived.dll into BepInEx/plugins.
  3. Remove/disable the old NetworkingReworked mod if you still have it — they patch the same code and must not run together.

Known quirks

  • A brief re-align jitter after throwing is normal — that's the hand-back to the host.
  • If you and another player grab the same object at the same moment, whoever's client you're watching wins locally until it settles.
  • If the game updates and internals change, the mod disables itself and logs an error instead of breaking your game — check the BepInEx console/log after game patches.

CHANGELOG

Made by Revival

2.2.0

  • Carts: the game only moves handle-held carts through its own steering drive, which depends on host-side conditions that are unreliable for clients — when it didn't engage, the cart crawled on raw grab forces. The steering drive is now guaranteed locally: a cart you grab always follows you at full speed (walking 5 m/s, sprinting 7 m/s)
  • Carts: quick grab-and-release no longer rolls the cart back toward the host's trailing copy — carts get a longer settle window after release
  • Doors/cupboards: disabled the unmanaged closing spring on the local hinge — doors no longer fight to stay shut, track the host's open/closed state properly, and you can actually pass items through an open door as a client
  • Objects wedged into geometry (yours stuck, host's copy fine) now snap free after a moment instead of grinding against the wall forever
  • Added per-second cart diagnostics when VerboseLogging is on

2.1.1

  • Fixed the ultra-slow cart for real this time: the held-object drift correction was treating the host's normal (ping-sized) trail behind you as desync and constantly braking your cart toward it. Correction is now velocity-aware — free movement while dragging, tight alignment when the cart is slow or parked (which is when loot gets dropped in, so drops land in the cart on both screens)
  • Doors no longer rip off their hinges for clients: the local joint is now unbreakable (the host stays in charge of actually breaking doors, and we mirror it), swing angle syncs gently instead of fighting you, and you can body-push doors open

2.1.0

  • Fixed carts feeling slow/heavy for clients: cargo inside a cart you're dragging was still being pulled toward the host's lagging positions, anchoring the cart and slamming loot through the cart walls. Cargo now rides your cart in pure local physics (like the original NetworkingReworked did)
  • Doors and cabinets now open instantly: vanilla clients destroy the hinge joint and let the host puppet doors (that's the slow-motion feel) — the joint is now kept and simulated locally, blended toward the host like everything else (config: SimulateHinges)
  • Held carts track the host's copy twice as tightly, so loot your teammate drops in lands in the cart on both screens more reliably
  • Deactivated/extracted objects are left alone properly

2.0.0

  • Rebuilt the sync architecture to match what made the original NetworkingReworked feel great: every eligible object is now simulated locally from the moment it spawns, and continuously blended toward the host's state while you're not holding it (passive shadowing)
  • No more switching between "host puppet" and "local simulation" on grab/release — those handoffs were the source of the desync, the frozen-cart bug, and the post-release teleporting
  • Objects at rest sleep locally like they should (no performance cost, no jitter)
  • Throws keep a short grace window so they fly the way they left your hand, then settle to the host's trajectory
  • New config: PassiveSyncStrength, PostThrowGrace, SnapDistance (replaces SoftSync settings)

1.2.0

  • Fixed players seeing held objects in completely different places: while you hold something, your copy now gently corrects toward the host's copy when they drift apart (configurable, default 1.5m), so both players keep seeing roughly the same world
  • If the host's copy gets stuck or diverges hard (default 4m), control is handed back to the host until you re-grab — no more permanent desync
  • Requires NetworkTweaksRevived 1.0.2+ if you use both (fixes objects snapping back to old positions after release)

1.1.1

  • Rebranded under Revival (plugin ID is now com.Revival.networkingrevived — config file name changed accordingly)

1.1.0

  • Added public API (NetworkingRevivedAPI.IsLocallySimulated) so other mods can defer to the local simulation
  • Serialize patch now respects other mods that skip PhotonTransformView serialization (no more double stream reads)
  • Warns in the log if the old NetworkingReworked or REPONetworkTweaks mods are still installed

1.0.0

  • Full rewrite of the NetworkingReworked concept for the current R.E.P.O. version
  • Instant local grab registration (no host round trip before objects respond)
  • Local physics authority while holding valuables, props and carts
  • Host state is cached while simulating and blended back smoothly on release
  • Local throw impulse for instant throw feedback
  • Cart contents ride along with locally-simulated carts
  • Compatible with the overcharge-era PhysGrabber network stream (the thing that broke the original)
  • Enemies, doors, players and shop/inventory items intentionally stay host-authoritative
  • Self-disables with a clear log message if a future game update changes internals