# 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.
- [Unity Samples](https://fish-networking.gitbook.io/docs/tutorials/unity-samples.md): Tutorials on how to convert Unity samples to support multiplayer using FishNet.
- [Starter Assets - Third Person](https://fish-networking.gitbook.io/docs/tutorials/unity-samples/starter-assets-third-person.md): These tutorials will show you how to convert the third person starter assets to support multiplayer.
- [Client Authoritative](https://fish-networking.gitbook.io/docs/tutorials/unity-samples/starter-assets-third-person/client-authoritative.md): This tutorial shows how to make the third person starter asset multiplayer in a client authoritative way.
- [Server Authoritative](https://fish-networking.gitbook.io/docs/tutorials/unity-samples/starter-assets-third-person/server-authoritative.md)
- [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 various 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): Detailed information about FishNet's available feature demos. These are simple demonstrations of some of FishNet's main features and are included in the FishNet package.
- [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).
- [TickNetworkBehaviour](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/components/network-behaviour-components/ticknetworkbehaviour.md): The TickNetworkBehaviour subscribes to tick events making them available as virtual methods.
- [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): Multipass lets a single server run multiple transports simultaneously, uniting players across platforms in the same game.
- [Yak (Pro Feature)](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/transports/yak-pro-feature.md): Yak is an offline transport that runs your multiplayer code without opening any sockets, seamlessly supporting offline/singleplayer play.
- [Bayou](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/transports/bayou.md): Bayou is a WebGL transport, evolved from SimpleWebTransport, built for seamless browser communication.
- [FishyWebRTC](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/transports/fishywebrtc.md): A WebRTC transport plugin for FishNetworking that brings UDP to the browser with reliable and unreliable channels, built on Bayou and SimpleWebTransport.
- [Canoe WebRTC](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/transports/canoe-webrtc.md): A WebRTC transport for FishNetworking, inspired by Bayou, FishyWebRTC, SimpleWebTransport, Tugboat, and more.
- [Blitz Relay for FishNet](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/transports/fishyblitzrelay.md): Blitz Relay for Fish-Networking is a transport for a free, self-hostable relay.
- [FishyUnityTransport](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/transports/fishyunitytransport.md): FishyUnityTransport integrates Unity’s Official Transport with FishNet, supporting both 1.0 and 2.0 while enabling Unity Multiplayer Services like Relay.
- [FishySteamworks (Steam)](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/transports/fishysteamworks.md): FishySteamworks is a reformed version of FizzySteamworks, delivering major performance gains and full support for Heathen Engineering’s Steamworks SDK Toolkit.
- [FishyEOS (Epic Online Services)](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/transports/fishyeos-epic-online-services.md): FishyEOS integrates Epic Online Services with FishNet, enabling matchmaking and relay through the PlayEveryware EOS Plugin for Unity.
- [FishyFacepunch (Steam)](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/transports/fishyfacepunch-steam.md): FishyFacepunch connects FishNet to Steam via the Facepunch.Steamworks API, offering a simpler wrapper over Steamworks.Net for your transport layer.
- [FishyRealtime (Photon)](https://fish-networking.gitbook.io/docs/fishnet-building-blocks/transports/fishyrealtime.md): A Photon Realtime transport for Fish-Networking.
- [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.
