# Guides

- [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.
- [Demos](https://fish-networking.gitbook.io/docs/guides/demos.md)
- [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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://fish-networking.gitbook.io/docs/guides.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.
