Gatling For Fishnet Networking - Gatling's Add-on
AnkleBreaker
$49.99
$99.99
50%OFF
(no ratings)
Jump AssetStore
The multiplayer add-on for Gatling on FishNet. Each shot crosses the network once, as a small fire order every peer replays, with lag compensation and per-shooter hit authority.💬 Join the AnkleBreaker Community! 💬Got a question, feedback, or a feature you'd love to see? Join our Discord - we actively improve our assets based on your input, and it's where we drop our latest announcements and run giveaways.👥 Discord: 👉 https://discord.gg/2D36VUmsYN🌐 Website: 👉 https://anklebreaker-consulting.com🌐 Gatling, Online 🌐Gatling FishNet is the multiplayer add-on for Gatling, our projectile and ballistics system. You built your weapons, rounds and impact rules with Gatling; this package puts those exact same assets on FishNet, host and clients, without rewriting them. The sample Showcase arena takes the whole Gatling sample arsenal online without a line of gameplay code.Gatling is required and sold separately. Everything on this page is the networking layer; the ballistics themselves - materials, ricochets, wind - are Gatling's, and they are shown on Gatling's own page.💥 One Shot, Every Screen 💥The usual way to network a projectile is one NetworkObject per bullet and a stream of positions. Fine for a rocket, ruinous for a minigun.Gatling FishNet sends the shot, not the bullet. A shot crosses the network once, as a small fire order stamped with the network tick, and every peer replays it through the same deterministic simulation. The rounds already in the air cost nothing more, so your bandwidth follows the shots fired - never the number of projectiles in flight.25 to 37 bytes for a typical fire order, 9 bytes to end a burst - measured with the package's own byte counter, not estimated.Zero NetworkObjects per projectile. A shotgun blast and a pistol round cost the same order.Spread without a byte on the wire - every peer derives the same dispersion from the order itself.🎯 Hits That Stay Fair 🎯Lag compensation - the server resolves a client's shot against the world that client actually saw. Latency is measured by the server itself, so nobody can claim to be further in the past than they are, and you cap how far back anyone can be hit.Your call on hit authority, per shooter - the server decides (the default), the shooter decides, or the shooter decides and the server checks it with a built-in validator: distance, impossible speed, damage ceiling, report rate, optional line of sight.Instant feedback for the shooter - the owner sees its shot the moment it fires, reconciled with the authoritative one, and dropped cleanly if the server refuses it.Impacts land on the victim - authoritative hits are replayed on the target's current pose, so the player who got shot sees the round land on themselves.🤝 Every Peer Agrees 🤝Mismatched builds are refused at connection. The ballistics that decide where a shot goes - spread, muzzle speed, impact rules - are hashed and compared when a client connects, so two builds never silently fight with different guns. Cosmetics are left out: players may run different muzzle flashes or sound banks.The same gust on every screen. Gatling's wind runs on the network tick, so a shot drifts the same everywhere, for no bandwidth at all.Players can join mid-match and fly the same shots through the same wind as everyone already there.🚀 Built to Scale 🚀Lag compensation that does not explode with the player count - a pose memo, a reach envelope and a spatial grid keep the rewind work off the targets a shot cannot reach, and shooters who share the same latency are rewound together.Relevance filtering when you want it - switch on region hubs and a shot is only sent to the players whose area its trajectory crosses. Off by default, so importing the package never changes who receives what.A stress bench that ships with it - 1,024 networked bot shooters, every one of them a NetworkObject, around 27,000 projectiles in flight at once.🛠 In the Editor 🛠Create Networked Simulation Rig - one menu entry (3D or 2D) turns an empty scene into a session that fires a replicated shot: network hub, NetworkManager, player spawner, a registry filled with your weapons, and a connect box. Press Play, Start Host.Live network diagnostics - a Network tab in the Gatling window: fire orders, bytes, catch-up, echoes, accepted and rejected hits, rewinds.Its own Dependencies window - lists the whole chain the add-on needs and installs the free packages in one click.In-editor documentation - 40+ pages across four tabs (Get Started, Manual, Scripting, Reference), searchable, with shortcuts into the windows and menus they describe.📦 What Is in the Box 📦7 networked sample scenes - the Showcase arena with the full Gatling sample arsenal, a PvP range, a co-op 2D bullet hell, thrown objects, server-side traps and turrets, a wind range and the stress bench - plus an optional ManagersLoader boot sample.Components you drop on what you already have - a network shooter per player, a rewind target on whatever can be hit, one manager per scene. Firing uses Gatling's own API.Full C# source. No DLLs.Setup - import Gatling and FishNet 4.x+ (free on the Asset Store), import this package, then click Install in the Dependencies window that opens. The free AnkleBreaker packages install themselves through Unity's Package Manager, which needs Git installed on your computer to install those in one click.Unity Version: 6000.0.41f1 (Unity 6.0 LTS) and newer - the same floor as Gatling
Git: required to install our free dependencies in one click - Unity's Package Manager fetches them from a Git URL and runs Git to do it. Free, about 50 MB, installed once: git-scm.com/downloads. Without Git you install them by hand instead.
Required - sold or distributed separately: Gatling - Projectile & Ballistics System (Asset Store, paid, sold separately), FishNet: Networking Evolved 4.x or newer (Asset Store, free - any 4.x+ build is accepted, Pro included, since the version is what gets checked, not the source).
Required - free, installed by the Dependencies window: AnkleBreaker Core, AnkleBreaker Utils Inspector, AnkleBreaker FishNet Core. The window (Tools > AnkleBreaker > Dependencies Installer > Gatling FishNet) opens on import, installs these three in one Package Manager operation, and offers a one-click Import for Gatling and FishNet when their archives are already in your Asset Store download cache - the store page otherwise.
Optional Dependencies: Burst (installed from its own row, from the Unity registry, no Git needed). AnkleBreaker Managers Loader and FishNet Managers Loader, for the ManagersLoader sample and the networked-managers integration.
Compilation Gating: until every required dependency is present, the add-on's assemblies are excluded from compilation (defines AB_GATLING, AB_CORE, AB_FISHNET_CORE, FISHNET_V4) instead of failing on missing types. The Dependencies, Welcome and Documentation windows stay reachable in every state.
Network Model: event-replicated projectiles. One GatlingNetworkManager per scene; a shot travels as one tick-stamped fire order that every peer resimulates through Gatling's deterministic simulation. No NetworkObject and no position stream per projectile. The simulation clock is the network tick.
Wire Format: hand-written serializer, flags byte for defaulted fields, aim direction octahedrally packed to 4 bytes, positions kept as full float32. Measured with NetworkFireDataSerializers.MeasureBytes: 25 bytes (aim from the muzzle), 37 bytes (aim from the eye, the FPS sample case), 9 bytes for an end-of-burst order. A held trigger sends one opening order, aim refreshes at Update Fire Hz (15 per second by default, adjustable) and one end order; every peer fires at the weapon's own cadence in between.
Lag Compensation: GatlingRewindTarget on anything that moves and can be hit, NetworkHitSection on hittable child colliders. Server-measured latency, Max Rewind Ticks cap. Cost bounded by a pose memo, a reach envelope (Rewind Envelope Margin) and a uniform spatial grid; owners sharing the same rewind tick are swept together. Swappable through IRewindProvider.
Hit Authority: per NetworkProjectileShooter - ServerOnly (default), Shooter, ShooterWithServerValidation. BasicHitValidator installed automatically in the validating mode: finiteness, damage ceiling, impossible speed, distance to target, report rate, optional line of sight. Damage multiplier and impact speed ceilings apply in every mode. Custom validators through IFireValidator.
Local Echo: muzzle effects only, or a full cosmetic projectile reconciled with its authoritative twin and dropped on timeout when the server refuses the shot.
Registry Handshake: NetworkProjectileRegistrySO gives every replicated weapon and projectile a stable id. A hash of the ballistic values (aiming and spread, flight, impact rules), mixed with the protocol version, is compared at connection; a build that disagrees stops replicating. Visual prefabs, tracers, materials, effects and audio are excluded from the hash.
Relevance Filtering: opt-in. Assign a Region Hub Prefab and a fire order only goes to the region hubs its trajectory crosses; the manager prints the observer range the hub prefab needs. With no prefab assigned, every order goes to every client.
Transport: uses FishNet RPCs and observers, so it runs on the transport your NetworkManager uses. The rig menu adds Tugboat when it creates a NetworkManager.
Render Pipelines: the networking layer renders nothing of its own. The sample scenes reuse Gatling's sample content and follow Gatling's render pipeline setup.
Diagnostics: always on - fire orders, bytes, catch-up histogram, echoes, reported, accepted and rejected hits, unresolved targets, refused fires, rewinds. Network tab of the Gatling window, plus a Gatling.Rewind profiler marker.
Editor Tools: Create Networked Simulation Rig and its (2D) twin (Tools menu and GameObject > AnkleBreaker > Gatling FishNet), Dependencies window, Welcome window, Documentation window (40+ pages, four tabs, searchable). Everything lives under Tools > AnkleBreaker > Gatling FishNet.
Sample Content: installed on demand from Tools > AnkleBreaker > Gatling FishNet > Install Optional Samples. FishNet Example - 7 scenes: ShowcaseFishNet (open first), SampleFishNet, SampleBulletHellFishNet, SampleThrownObjectsFishNet, SampleTrapsAndEnemiesFishNet, SampleWindFishNet, StressSceneFishNet (1,024 networked bot shooters). ManagersLoader Example - 1 scene. The environments are Gatling's sample content.
Namespaces: AnkleBreaker.Gatling.FishNet and its sub-namespaces. Assembly AnkleBreaker.Gatling.FishNet.
Source Code: Full C# source included. No DLLs.
Known Limitations:
A Dedicated Server build needs FISHNET and FISHNET_V4 added to the Server build target's scripting defines by hand.
Region routing is decided when a shot leaves: a ricochet carried into a region the original trajectory did not cross is not drawn there. Damage stays authoritative.
Shots streamed by a held trigger are not identity-stamped, so their ricochets can differ visually between two screens. Damage stays authoritative.
Not Included: Gatling, FishNet, a health or damage system (the sample health is sample code), the environment art seen in the trailer.


