# Fish-Net: Networking Evolved

## FishNet: Networking Evolved

- [What Is FishNet?](https://fish-networking.gitbook.io/docs/overview/readme.md)
- [Features](https://fish-networking.gitbook.io/docs/overview/readme/features.md)
- [Unity Compatibility](https://fish-networking.gitbook.io/docs/overview/readme/features/unity-compatibility.md): Fish-Networking's compatibility with recent Unity versions
- [Performance](https://fish-networking.gitbook.io/docs/overview/readme/features/performance.md)
- [Benchmark Setup](https://fish-networking.gitbook.io/docs/overview/readme/features/performance/benchmark-setup.md): Everything looks good on paper but dedicated benchmarks can show you what to really expect.
- [Fish-Networking vs Mirror](https://fish-networking.gitbook.io/docs/overview/readme/features/performance/fish-networking-vs-mirror.md)
- [Pro, Projects, and Support](https://fish-networking.gitbook.io/docs/overview/readme/pro-projects-and-support.md): Learn how to access a variety of enhancements for your Fish-Networking experience. We aim to provide reasonable pricing ranging from smaller indie developers to large studios.
- [Business Support](https://fish-networking.gitbook.io/docs/overview/readme/business-support.md)
- [Development](https://fish-networking.gitbook.io/docs/overview/readme/development.md): Fish-Networking is under constant improvement, receiving regular updates containing new features and bug fixes.
- [Branding](https://fish-networking.gitbook.io/docs/overview/readme/branding.md)
- [Legal Restrictions](https://fish-networking.gitbook.io/docs/overview/readme/legal-restrictions.md)
- [Showcase](https://fish-networking.gitbook.io/docs/overview/showcase.md): Because seeing is believing.
- [Upcoming Releases](https://fish-networking.gitbook.io/docs/overview/showcase/upcoming-releases.md): Here are some upcoming titles we expect in the near future.
- [Asset Integrations](https://fish-networking.gitbook.io/docs/overview/asset-integrations.md): You'll find here a collection of third-party integrations for Fish-Networking in other assets, as well as assets that work well with FishNet.
- [Community Resources](https://fish-networking.gitbook.io/docs/overview/community-resources.md): You'll find here a collection of third-party tutorials and resources.
- [Getting Started](https://fish-networking.gitbook.io/docs/tutorials/getting-started.md): Whether you're new to network programming or transitioning to Fish-Networking for your latest project, this guide will provide the essential foundation you need to get started smoothly.
- [Installing Fish-Networking](https://fish-networking.gitbook.io/docs/tutorials/getting-started/installing-fish-networking.md): Step-by-step instructions for installing Fish-Networking into your Unity project.
- [Getting Connected](https://fish-networking.gitbook.io/docs/tutorials/getting-started/getting-connected.md): The first step to networking is connecting over the network. Learn about that process here!
- [Preparing Your Player](https://fish-networking.gitbook.io/docs/tutorials/getting-started/preparing-your-player.md): Spawn an object over the network to represent each client's player.
- [Moving Your Player Around](https://fish-networking.gitbook.io/docs/tutorials/getting-started/moving-your-player-around.md): Get your player objects moving around and synchronized!
- [Spawning and Despawning Items](https://fish-networking.gitbook.io/docs/tutorials/getting-started/spawning-and-despawning-items.md): Learn about spawning and despawning by having your players throw cubes around!
- [Using SyncVars to Sync Colors](https://fish-networking.gitbook.io/docs/tutorials/getting-started/using-syncvars-to-sync-colors.md): Synchronizing color with synchronized variables!
- [Setting Up a Camera](https://fish-networking.gitbook.io/docs/tutorials/getting-started/setting-up-a-camera.md): How to setup a player camera for your multiplayer setup.
- [Instantiating a Local Camera](https://fish-networking.gitbook.io/docs/tutorials/getting-started/setting-up-a-camera/instantiating-a-local-camera.md): Using a Camera Prefab to instantiate your local player's camera.
- [Using the Scene Camera](https://fish-networking.gitbook.io/docs/tutorials/getting-started/setting-up-a-camera/using-the-scene-camera.md): Using the camera in the scene for your local player.
- [Basic Setup with Cinemachine](https://fish-networking.gitbook.io/docs/tutorials/getting-started/setting-up-a-camera/basic-setup-with-cinemachine.md): Managing a Cinemachine Camera in multiplayer.
- [Connecting to Remote Devices](https://fish-networking.gitbook.io/docs/tutorials/getting-started/connecting-to-remote-devices.md): Learn how to connect clients to a remote FishNet server, allowing players on different machines to join your game.
- [Beyond the Basics](https://fish-networking.gitbook.io/docs/tutorials/getting-started/commonly-used-guides.md): Where to go from here?
- [Common Tasks](https://fish-networking.gitbook.io/docs/tutorials/simple.md): Simple step-by-step tutorials on how to perform common tasks in FishNet.
- [Starting FishNet's Connections](https://fish-networking.gitbook.io/docs/tutorials/simple/starting-fishnets-connections.md): A guide on starting the FishNet server and client connections yourself.
- [Making a Custom Player Spawner](https://fish-networking.gitbook.io/docs/tutorials/simple/making-a-custom-player-spawner.md): Step-by-step instructions for how to write a custom player spawner for various scenarios.
- [Spawning Players Manually](https://fish-networking.gitbook.io/docs/tutorials/simple/making-a-custom-player-spawner/manually.md): Tutorial for creating a script to manually spawn your players when you call a method.
- [Spawning Selected Player](https://fish-networking.gitbook.io/docs/tutorials/simple/making-a-custom-player-spawner/spawning-selected-player.md): Tutorial for allowing your players to choose a character object before spawning it.
- [Spawning Players When Set Number of Players Joined](https://fish-networking.gitbook.io/docs/tutorials/simple/making-a-custom-player-spawner/set-player-number.md): Tutorial for spawning players as soon as a set number of clients have joined your game.
- [Spawning Players on Scene Load](https://fish-networking.gitbook.io/docs/tutorials/simple/making-a-custom-player-spawner/on-scene-load.md): Tutorial for spawning players as soon as they are loaded by FishNet into a specific scene.
- [Making a Loading Screen](https://fish-networking.gitbook.io/docs/tutorials/simple/making-a-loading-screen.md): A tutorial for creating a loading screen when using FishNet's Scene Management instead of Unity's default one.
- [Testing with Multiple Editors](https://fish-networking.gitbook.io/docs/tutorials/simple/testing-with-multiple-editors.md): A tutorial for running multiple Unity Editor windows for testing multiplayer.
- [Simulating Bad Network Connections](https://fish-networking.gitbook.io/docs/tutorials/simple/simulating-bad-network-connections.md): This page covers how to simulate poor network conditions when testing with FishNet.
- [Building a Dedicated Server](https://fish-networking.gitbook.io/docs/tutorials/simple/building-a-dedicated-server.md): Instructions for how to build a dedicated FishNet server.
- [Complete Games](https://fish-networking.gitbook.io/docs/tutorials/complete-games.md): Step-by-step tutorials on how to create simple games in order to show you how to the core concepts fit together.
- [High-Level Overview](https://fish-networking.gitbook.io/docs/guides/high-level-overview.md): A general overview of networking using FishNet.
- [Fundamentals](https://fish-networking.gitbook.io/docs/guides/high-level-overview/fundamentals.md): To understand FishNet, it's helpful to grasp a few fundamental concepts
- [Networking Models](https://fish-networking.gitbook.io/docs/guides/high-level-overview/networking-models.md): This page discusses the varius networking models and architectures used in games and what Fish-Networking uses.
- [Terminology](https://fish-networking.gitbook.io/docs/guides/high-level-overview/terminology.md): The following pages give some commonly used terminology for Fish-Networking as well as general networking terms you are likely to encounter.
- [Server, Client, Host](https://fish-networking.gitbook.io/docs/guides/high-level-overview/terminology/server-client-host.md)
- [Communicating](https://fish-networking.gitbook.io/docs/guides/high-level-overview/terminology/communicating.md): There are a variety of ways to send communications between server and clients.
- [Miscellaneous](https://fish-networking.gitbook.io/docs/guides/high-level-overview/terminology/miscellaneous.md): There are a several commonly terms which you may encounter throughout your development experience with FishNet.
- [Transports](https://fish-networking.gitbook.io/docs/guides/high-level-overview/transports.md): Transports control how data is sent, received, and handled over the network.
- [Features](https://fish-networking.gitbook.io/docs/guides/features.md): The following are guides on the many features Fish-Networking provides.
- [Server and Client Identification](https://fish-networking.gitbook.io/docs/guides/features/server-and-client-identification.md): Find out how to know if your code is executing on the server or client, as well as how to identify clients from each other.
- [Executing on Server or Client](https://fish-networking.gitbook.io/docs/guides/features/server-and-client-identification/executing-on-server-or-client.md): How you can run certain code on only the server, or only a client, or only on a host.
- [NetworkConnections](https://fish-networking.gitbook.io/docs/guides/features/server-and-client-identification/networkconnections.md): A look at how Fish-Networking distinguishes clients from one another.
- [Networked GameObjects and Scripts](https://fish-networking.gitbook.io/docs/guides/features/networked-gameobjects-and-scripts.md)
- [NetworkObjects](https://fish-networking.gitbook.io/docs/guides/features/networked-gameobjects-and-scripts/networkobjects.md): Details on the different types of NetworkObjects that will be referenced throughout the guides.
- [Nested NetworkObjects](https://fish-networking.gitbook.io/docs/guides/features/networked-gameobjects-and-scripts/networkobjects/nested-networkobjects.md)
- [NetworkBehaviour](https://fish-networking.gitbook.io/docs/guides/features/networked-gameobjects-and-scripts/network-behaviour-guides.md): NetworkBehaviours are a fundamental part of networking which allow you to easily synchronize data and access network related information.
- [Spawning and Despawning](https://fish-networking.gitbook.io/docs/guides/features/networked-gameobjects-and-scripts/spawning.md): Information about how to spawn and despawn objects on the network.
- [Spawn Payloads](https://fish-networking.gitbook.io/docs/guides/features/networked-gameobjects-and-scripts/spawning/spawn-payloads.md): Spawn Payloads allow the sending additional information along with an object's Spawn call.
- [Predicted Spawning](https://fish-networking.gitbook.io/docs/guides/features/networked-gameobjects-and-scripts/spawning/predicted-spawning.md): Predicted spawning an object allows a client to spawn an object locally and begin using networked features immediately, including RPCs.
- [Object Pooling](https://fish-networking.gitbook.io/docs/guides/features/networked-gameobjects-and-scripts/spawning/object-pooling.md): Information about how to use object pooling for networked objects.
- [Network State Events](https://fish-networking.gitbook.io/docs/guides/features/network-callbacks.md): You can take advantage of numerous available events to stay informed about the current state of the network.
- [Network Communication](https://fish-networking.gitbook.io/docs/guides/features/network-communication.md): Read more about the various methods you can use to communicate over the network!
- [Remote Procedure Calls](https://fish-networking.gitbook.io/docs/guides/features/network-communication/remote-procedure-calls.md): Information about how to run methods across the network using remote procedure calls.
- [SyncTypes](https://fish-networking.gitbook.io/docs/guides/features/network-communication/synchronizing.md)
- [Customizing Behavior](https://fish-networking.gitbook.io/docs/guides/features/network-communication/synchronizing/customizing-behavior.md): There are settings and attributes unique to SyncTypes which allow various ways of customizing your SyncType.
- [SyncVar](https://fish-networking.gitbook.io/docs/guides/features/network-communication/synchronizing/syncvar.md): SyncVars are the most simple way to automatically synchronize a single variable over the network.
- [SyncList](https://fish-networking.gitbook.io/docs/guides/features/network-communication/synchronizing/synclist.md): SyncList is an easy way to keep a List collection automatically synchronized over the network.
- [SyncHashSet](https://fish-networking.gitbook.io/docs/guides/features/network-communication/synchronizing/synchashset.md): SyncHashSet is an easy way to keep a HashSet collection automatically synchronized over the network.
- [SyncDictionary](https://fish-networking.gitbook.io/docs/guides/features/network-communication/synchronizing/syncdictionary.md): SyncDictionary is an easy way to keep a Dictionary collection automatically synchronized over the network.
- [SyncTimer](https://fish-networking.gitbook.io/docs/guides/features/network-communication/synchronizing/synctimer.md): SyncTimer provides an efficient way to synchronize a timer between server and clients.
- [SyncStopwatch](https://fish-networking.gitbook.io/docs/guides/features/network-communication/synchronizing/syncstopwatch.md): SyncStopwatch provides an efficient way to synchronize a stopwatch between server and clients.
- [Custom SyncType](https://fish-networking.gitbook.io/docs/guides/features/network-communication/synchronizing/custom-synctype.md): With a customized SynType you can decide how and what data to synchronize, and make optimizations as you see fit.
- [Broadcasts](https://fish-networking.gitbook.io/docs/guides/features/network-communication/broadcasts.md)
- [Data Serialization](https://fish-networking.gitbook.io/docs/guides/features/data-serialization.md): Serialization and deserialization of data for the purpose of sending it across the network.
- [Custom Serializers](https://fish-networking.gitbook.io/docs/guides/features/data-serialization/custom-serializers-guides.md): Custom serializers are useful where an automatic serializer may not be possible, or where you want data to be serialized in a specific manner.
- [Interface Serializers](https://fish-networking.gitbook.io/docs/guides/features/data-serialization/custom-serializers-guides/interface-serializers.md)
- [Inheritance Serializers](https://fish-networking.gitbook.io/docs/guides/features/data-serialization/custom-serializers-guides/inheritance-serializers.md): Learn how to serialize classes and any their children classes.
- [Ownership](https://fish-networking.gitbook.io/docs/guides/features/ownership.md): Understanding how to use ownership, as well how it affects clients and the server is essential for any project.
- [Using Ownership to Read Values](https://fish-networking.gitbook.io/docs/guides/features/ownership/using-ownership-to-read-values.md): Learn how to store values for clients and read them on unlinked objects by reading owner information.
- [Area of Interest (Observer System)](https://fish-networking.gitbook.io/docs/guides/features/observers.md): Fish-Networking features an advanced area-of-interest system that controls which clients receive updates about specific objects.
- [Modifying Conditions](https://fish-networking.gitbook.io/docs/guides/features/observers/modifying-conditions.md)
- [Custom Conditions](https://fish-networking.gitbook.io/docs/guides/features/observers/custom-conditions.md): A simple guide on how to write a custom observer condition.
- [Scene Management](https://fish-networking.gitbook.io/docs/guides/features/scene-management.md): Fish-Networking comes with a powerful scene manager tool that enables you to synchronize networked scenes with minimal effort, while also exposing a lot of powerful options.
- [Scene Events](https://fish-networking.gitbook.io/docs/guides/features/scene-management/scene-events.md): Information about FishNet's many available scene events, the order they are invoked in, and how to use them.
- [Scene Data](https://fish-networking.gitbook.io/docs/guides/features/scene-management/scene-data.md): Scene Data is the data types used that the user will interface with when using the SceneManager.
- [SceneLookupData](https://fish-networking.gitbook.io/docs/guides/features/scene-management/scene-data/scenelookupdata.md): SceneLookupData is how the server determines to load clients into a new instance of a Scene, or load a client into a scene that the server already has loaded.
- [SceneLoadData](https://fish-networking.gitbook.io/docs/guides/features/scene-management/scene-data/sceneloaddata.md): The Data Class needed for the SceneManager to know how to handle loading a scene.
- [SceneUnloadData](https://fish-networking.gitbook.io/docs/guides/features/scene-management/scene-data/sceneunloaddata.md): The Data Class needed for the SceneManager to know how to handle unloading a scene.
- [Loading Scenes](https://fish-networking.gitbook.io/docs/guides/features/scene-management/loading-scenes.md): Instructions for loading networked scenes with FishNet, both on the server and on clients.
- [Automatic Online and Offline Scenes](https://fish-networking.gitbook.io/docs/guides/features/scene-management/loading-scenes/automatic-online-and-offline-scenes.md): Using the DefaultScene component to automatically manage simple scene setups.
- [Unloading Scenes](https://fish-networking.gitbook.io/docs/guides/features/scene-management/unloading-scenes.md): Instructions for how to unload networked scenes in FishNet.
- [Scene Stacking](https://fish-networking.gitbook.io/docs/guides/features/scene-management/scene-stacking.md): Scene Stacking is the ability for server or host to load multiple instances of the same scene at once, usually with different clients/observers in each scene.
- [Scene Caching](https://fish-networking.gitbook.io/docs/guides/features/scene-management/scene-caching.md): Scene Caching is the ability for the Server to keep a scene loaded when either all clients have unloaded that scene, or stopped observing that scene.
- [Scene Visibility](https://fish-networking.gitbook.io/docs/guides/features/scene-management/scene-visibility.md): Scene Visibility offers details of using the "Scene Condition" with the ObserverManager, and how to manage Observers in a Scene.
- [Persisting NetworkObjects](https://fish-networking.gitbook.io/docs/guides/features/scene-management/persisting-networkobjects.md): This page will go over details on the options available to users for persisting NetworkObjects across scene loading and unloading
- [Custom Scene Processors](https://fish-networking.gitbook.io/docs/guides/features/scene-management/custom-scene-processors.md): You can create a custom scene processor to handle how a scene is loaded/unloaded.
- [Addressables](https://fish-networking.gitbook.io/docs/guides/features/scene-management/custom-scene-processors/addressables.md)
- [InstanceFinder](https://fish-networking.gitbook.io/docs/guides/features/instancefinder-guides.md)
- [Addressables](https://fish-networking.gitbook.io/docs/guides/features/addressables.md): How to manage prefab and scene addressables with FishNet.
- [Transports](https://fish-networking.gitbook.io/docs/guides/features/transports.md): Some transports offer features additional to what is configured within the inspector. Within this section are guides on using unique features of each official transport.
- [Multipass](https://fish-networking.gitbook.io/docs/guides/features/transports/multipass.md)
- [Prediction](https://fish-networking.gitbook.io/docs/guides/features/prediction.md): Prediction is the act of server-authoritative actions while allowing clients to move in real-time without delay.
- [What Is Client-Side Prediction](https://fish-networking.gitbook.io/docs/guides/features/prediction/what-is-client-side-prediction.md): Client-Side Prediction allows clients to perform actions in real-time while maintaining server authority.
- [Configuring PredictionManager](https://fish-networking.gitbook.io/docs/guides/features/prediction/configuring-predictionmanager.md): The PredictionManager is responsible for global prediction settings, and other prediction related information.
- [Configuring TimeManager](https://fish-networking.gitbook.io/docs/guides/features/prediction/configuring-timemanager.md): Very little of the TimeManager has to be configured for prediction.
- [Configuring NetworkObject](https://fish-networking.gitbook.io/docs/guides/features/prediction/configuring-networkobject.md): Setting up the NetworkObject inspector for prediction is mandatory for using prediction methods in scripts belonging to the NetworkObject.
- [Offline Rigidbodies](https://fish-networking.gitbook.io/docs/guides/features/prediction/offline-rigidbodies.md): In some cases you will want the player to be able to interact with non-networked rigidbodies; these require a special component.
- [Interpolations](https://fish-networking.gitbook.io/docs/guides/features/prediction/interpolations.md): Both the PredictionManager and NetworkObject have interpolation values, but with separate objectives
- [Creating Code](https://fish-networking.gitbook.io/docs/guides/features/prediction/creating-code.md): This guide provides examples of creating prediction code, understanding important aspects of the code, and leveraging it to your game.
- [Controlling an Object](https://fish-networking.gitbook.io/docs/guides/features/prediction/creating-code/controlling-an-object.md): Learn how to create a predicted object that the owner or server can control.
- [Non-Controlled Object](https://fish-networking.gitbook.io/docs/guides/features/prediction/creating-code/non-controlled-object.md): A very simple script for keeping non-controlled objects in synchronization with the prediction system.
- [Understanding ReplicateState](https://fish-networking.gitbook.io/docs/guides/features/prediction/creating-code/understanding-replicatestate.md): Being familiar with what each state means will help you fine-tune your gameplay on spectated objects.
- [Using States in Code](https://fish-networking.gitbook.io/docs/guides/features/prediction/creating-code/understanding-replicatestate/using-states-in-code.md): Understanding how to use states will greatly improve your experience when writing code for your replicate method.
- [Predicting States in Code](https://fish-networking.gitbook.io/docs/guides/features/prediction/creating-code/understanding-replicatestate/predicting-states-in-code.md): Due to the unpredictability of the Internet inputs may drop or arrive late. Predicting states is a simple way to compensate for these events.
- [Advanced Controls](https://fish-networking.gitbook.io/docs/guides/features/prediction/creating-code/advanced-controls.md): This guide supplements the basic prediction guide by showing how to introduce more complexities to your controls.
- [Custom Comparers](https://fish-networking.gitbook.io/docs/guides/features/prediction/custom-comparers.md): Fish-Networking generates comparers for prediction data to perform internal optimizations, but on occasion certain types cannot have comparers automatically generated.
- [PredictionRigidbody](https://fish-networking.gitbook.io/docs/guides/features/prediction/predictionrigidbody.md): This class provides accurate simulations and re-simulations when applying outside forces, most commonly through collisions.
- [Using NetworkColliders](https://fish-networking.gitbook.io/docs/guides/features/prediction/using-networkcolliders.md): Using each NetworkCollider component is the same, and can be used very similar to Unity callbacks.
- [Lag Compensation](https://fish-networking.gitbook.io/docs/guides/features/lag-compensation.md)
- [States](https://fish-networking.gitbook.io/docs/guides/features/lag-compensation/states.md)
- [Raycast](https://fish-networking.gitbook.io/docs/guides/features/lag-compensation/raycast.md)
- [Projectiles](https://fish-networking.gitbook.io/docs/guides/features/lag-compensation/projectiles.md)
- [Code Stripping (Pro Feature)](https://fish-networking.gitbook.io/docs/guides/features/code-stripping.md): FishNet's code stripping feature allows your server-only code to be automatically stripped from client builds and client-only code to be stripped from server builds.
- [Level of Detail (Pro Feature)](https://fish-networking.gitbook.io/docs/guides/features/level-of-detail.md): FishNet's LOD system enables a reduction in network traffic by reducing the network data sent for objects that are further away.
- [Updating FishNet](https://fish-networking.gitbook.io/docs/guides/updating-fishnet.md): Instructions for how to update FishNet to the latest or Pro version.
- [Changes in API](https://fish-networking.gitbook.io/docs/guides/updating-fishnet/upgrading-api.md): Sometimes logic has to be changed for the better, but it doesn't have to be a rough experience. You may find planned breaks here, and how to resolve them.
- [Upgrading to FishNet Pro](https://fish-networking.gitbook.io/docs/guides/updating-fishnet/upgrading-to-fishnet-pro.md): Instructions for how to purchase and then install FishNet Pro in your Unity project.
- [Server Hosting](https://fish-networking.gitbook.io/docs/guides/server-hosting.md): Hosting is a way for players to access your game and play together.
- [Terminology](https://fish-networking.gitbook.io/docs/guides/server-hosting/terminology.md): Overview of key server hosting terms, comparing session-based vs persistent architectures, and outlining the roles of relays and dedicated servers.
- [Services](https://fish-networking.gitbook.io/docs/guides/server-hosting/services.md): A comparison of third-party hosting and relay services compatible with FishNet, including our recommended providers.
- [PlayFlow Cloud (Recommended)](https://fish-networking.gitbook.io/docs/guides/server-hosting/services/playflow-cloud.md): PlayFlow handles the server hosting, matchmaking, & lobbies so you can focus on your game.
- [Getting Started with PlayFlow](https://fish-networking.gitbook.io/docs/guides/server-hosting/services/playflow-cloud/getting-started-with-playflow.md): Step-by-step tutorial for getting up and running with PlayFlow Cloud.
- [Easy WebGL Hosting with PlayFlow](https://fish-networking.gitbook.io/docs/guides/server-hosting/services/playflow-cloud/easy-webgl-hosting-with-playflow.md): Simple tutorial showing how easy PlayFlow makes it to host a server for your WebGL game.
- [Getting Started with AWS](https://fish-networking.gitbook.io/docs/guides/server-hosting/services/getting-started-with-aws.md): A community-made guide for using AWS to host a FishNet server.
- [Moving to Fish-Networking](https://fish-networking.gitbook.io/docs/guides/upgrading-to-fish-net.md): Helpful tips for how to move your project from another solution to FishNet.
- [Troubleshooting](https://fish-networking.gitbook.io/docs/guides/troubleshooting.md): This section will go over common limitations and issues you may run into, what FishNet's warning and error logs mean, and how to report problems.
- [Technical Limitations](https://fish-networking.gitbook.io/docs/guides/troubleshooting/technical-limitations.md)
- [Creating Bug Reports](https://fish-networking.gitbook.io/docs/guides/troubleshooting/creating-bug-reports.md): A well crafted bug report will result in bugs being resolved much quicker.
- [Report Example](https://fish-networking.gitbook.io/docs/guides/troubleshooting/creating-bug-reports/report-example.md): This is an example of what a created bug report might look like.
- [FAQ](https://fish-networking.gitbook.io/docs/guides/troubleshooting/frequently-asked-questions-faq.md): Discover frequently asked questions and their answers.
- [Components](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components.md): Components are included scripts which you may attach to your objects for additional functionality.
- [Managers](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/managers.md): Manager components are generally only added once per NetworkManager and play a vital role on configuring your project.
- [NetworkManager](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/managers/network-manager.md): The NetworkManager is an essential component for running the client and server. It acts as a bridge between core components and configuring your network.
- [TimeManager](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/managers/time-manager.md): The TimeManager handles and provides callbacks related to network timing.
- [PredictionManager](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/managers/predictionmanager.md): The PredictionManager provides states, callbacks, and settings to fine tuning prediction for your game type.
- [ServerManager](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/managers/server-manager.md): The ServerManager handles validation of clients and a variety of settings only applicable to the server.
- [ClientManager](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/managers/clientmanager.md): The ClientManager provides settings unique to clients.
- [SceneManager](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/managers/scenemanager.md): The SceneManager handles networking scenes between the server and clients, including updating active scenes, addressable scenes, provide helpful callbacks, and more.
- [TransportManager](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/managers/transportmanager.md): The TransportManager handles talking to the transports as well sending, receiving, and even customizing packets on the fly.
- [IntermediateLayer](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/managers/transportmanager/intermediatelayer.md): The IntermediateLayer is a pass-through for data in and out. This feature can be used to encrypt data, inject headers, and more.
- [StatisticsManager](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/managers/statisticsmanager.md): The StatisticManager provides statics about Fish-Networking for a variety of tasks, including monitoring network traffic.
- [ObserverManager](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/managers/observermanager.md): The ObserverManager assists in controlling what network objects each client may see.
- [HashGrid](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/managers/observermanager/hashgrid.md): The HashGrid is the managing script for when using the Grid Observer Condition.
- [RollbackManager (Pro Feature)](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/managers/rollbackmanager-pro-feature.md): RollbackManager contains configurations and optimizations for how colliders are sent back in time when using lag compensation.
- [DebugManager](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/managers/debugmanager.md): The DebugManager helps you debug various networking functions when in the Unity Editor or Development builds.
- [Prediction](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/prediction.md): Prediction components are for use with FishNet's prediction systems. Learn more about each of them here!
- [Network Collider](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/prediction/network-collider.md): The NetworkCollider components are a simple way to use Trigger and Collision callbacks with prediction.
- [NetworkCollision](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/prediction/network-collider/networkcollision.md): NetworkCollision is used to execute collision events for use with prediction.
- [NetworkCollision2D](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/prediction/network-collider/networkcollision2d.md): NetworkCollision2D is used to execute collision2D events for use with prediction.
- [NetworkTrigger](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/prediction/network-collider/networktrigger.md): NetworkTrigger is used to execute trigger events for use with prediction.
- [NetworkTrigger2D](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/prediction/network-collider/networktrigger2d.md): NetworkTrigger2D is used to execute trigger2D events for use with prediction.
- [OfflineRigidbody](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/prediction/offlinerigidbody.md): This component can be used to prevent client side objects from running physics too quickly due to prediction replays.
- [PredictedOwner](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/prediction/predictedowner.md): The PredictedOwner component allows a user to claim ownership of an object immediately and be able to use it before the server officially gives the ownership over.
- [PredictedSpawn](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/prediction/predictedspawn.md): The PredictedSpawn component allows you to spawn this Network Object directly on the client side.
- [Utilities](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/utilities.md): There are multiple commonly needed helper or debugging components that come with Fish-Networking.
- [PingDisplay](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/utilities/pingdisplay.md): The PingDisplay can be used to easily display the client's network ping during development.
- [BandwidthDisplay](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/utilities/bandwidthdisplay.md): The BandwidthDisplay component is a simple development GUI to show the bandwidth ingress and egress.
- [Authenticator](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/utilities/authenticator.md): Authenticators are an additional layer of security. A client must pass the authenticator in order to communicate with the game server.
- [Tick Smoothers](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/tick-smoothers.md): These components smooths a child graphical object over frames between each network tick. These are useful for prediction and smoothing graphics on larger physics steps.
- [NetworkTickSmoother](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/tick-smoothers/networkticksmoother.md): The Network Tick Smoother component ensures smooth and visually consistent movement of networked objects by interpolating their positions, rotations, and scale between network updates.
- [OfflineTickSmoother](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/tick-smoothers/offlineticksmoother.md): The Offline Tick Smoother component ensures smooth and visually consistent movement of non-networked objects by interpolating their positions, rotations, and scale between network updates.
- [MonoTickSmoother \[Obsolete\]](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/tick-smoothers/monoticksmoother-obsolete.md): MonoTickSmoother smooths a child graphical object over frames between each network tick. This component can be used on non-networked objects.
- [DetachableNetworkTickSmoother \[Obsolete\]](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/tick-smoothers/detachablenetworkticksmoother-obsolete.md): This component is primarily used for smooth camera movement between ticks. It can be used with prediction or normal design.
- [NetworkObject](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/network-object.md): This component is attached automatically anytime a script which inherits from NetworkBehaviour is added to your object.
- [NetworkBehaviour](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/network-behaviour-components.md): NetworkBehaviour allows your scripts to perform networked actions, such as synchronizing data, responding to network events, and handling remote procedure calls (RPCs).
- [NetworkTransform](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/network-transform.md): The NetworkTransform synchronizes transform properties across the network.
- [NetworkAnimator](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/networkanimator.md): The NetworkAnimator component synchronizes animations across the network.
- [NetworkObserver](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/network-observer.md): This component lets you override the default observer conditions for a specific network object.
- [DefaultScene](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/defaultscene.md): This component can be used to easily load an online scene when network starts and an offline one when it stops.
- [PlayerSpawner](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/playerspawner.md): The Player Spawner component can be used to spawn a game object for a client once they connect to the game.
- [ServerSpawner](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/serverspawner.md): An easy tool to assist with spawning specific objects as soon as the server starts.
- [ColliderRollback (Pro Feature)](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/colliderrollback.md): ColliderRollback allows an object's colliders to be rolled back for lag compensation.
- [Prefabs](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/prefabs.md): Prefabs are reusable GameObject assets containing components, property values, and child GameObjects.
- [NetworkManager](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/prefabs/networkmanager.md): A pre-configured NetworkManager prefab, for ease-of-use.
- [NetworkHudCanvas](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/prefabs/networkhudcanvas.md): A basic HUD for starting and stopping the client and server, useful for development.
- [ScriptableObjects](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/scriptableobjects.md): Scriptable Objects utilized by FishNet for configuration.
- [ObserverConditions](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/scriptableobjects/observerconditions.md)
- [DistanceCondition](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/scriptableobjects/observerconditions/distancecondition.md)
- [GridCondition](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/scriptableobjects/observerconditions/gridcondition.md)
- [HostOnlyCondition](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/scriptableobjects/observerconditions/hostonlycondition.md)
- [MatchCondition](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/scriptableobjects/observerconditions/matchcondition.md)
- [OwnerOnlyCondition](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/scriptableobjects/observerconditions/owneronlycondition.md)
- [SceneCondition](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/scriptableobjects/observerconditions/scenecondition.md)
- [SpawnablePrefabs](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/scriptableobjects/spawnableprefabs.md)
- [DefaultPrefabObjects](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/scriptableobjects/spawnableprefabs/defaultprefabobjects.md)
- [SinglePrefabObjects](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/scriptableobjects/spawnableprefabs/singleprefabobjects.md)
- [DualPrefabObjects](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/scriptableobjects/spawnableprefabs/dualprefabobjects.md)
- [LevelLoggingConfiguration](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/scriptableobjects/levelloggingconfiguration.md): The scriptable object that allows you to customize what FishNet will output logs of.
- [Transports](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/transports.md): Transports control how data is sent, received, and handled over the network.
- [Tugboat](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/transports/tugboat.md): The default transport of FishNet, utilizing the power, efficiency and reliability of LiteNetLib.
- [Multipass](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/transports/multipass.md)
- [Yak (Pro Feature)](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/transports/yak-pro-feature.md)
- [Bayou](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/transports/bayou.md)
- [FishyWebRTC](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/transports/fishywebrtc.md)
- [FishyUnityTransport](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/transports/fishyunitytransport.md)
- [FishySteamworks (Steam)](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/transports/fishysteamworks.md)
- [FishyEOS (Epic Online Services)](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/transports/fishyeos-epic-online-services.md)
- [FishyFacepunch (Steam)](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/transports/fishyfacepunch-steam.md)
- [FishyRealtime (Photon)](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/transports/fishyrealtime.md)
- [Configuration and Tools](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/configuration-and-tools.md): Information about FishNet's additional configuration and editor tools.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information, you can query the documentation dynamically by asking a question.
Perform an HTTP GET request on a page URL with the `ask` query parameter:
```
GET https://fish-networking.gitbook.io/docs/overview/readme.md?ask=<question>
```
The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.
Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
