# ReplicaManager2
[PluginInterface]

## Classes

class | RakNet::ReplicaManager2
| A management system for your game objects and players to make serialization, scoping, and object creation and destruction easier. More...
struct | RakNet::SerializationContext
| Contextual information about serialization, passed to some functions in Replica2. More...
class | RakNet::Replica2
| Base class for game objects that use the ReplicaManager2 system All game objects that want to use the ReplicaManager2 functionality must inherit from Replica2. Generally you will want to implement at a minimum Serialize(), Deserialize(), and SerializeConstruction(). More...
class | RakNet::Connection_RM2Factory
| Implement this factory class to return instances of your Connection_RM2 derived object. This is used as a class factory and exposes functionality related to the connection and the system. More...
class | RakNet::Connection_RM2
| This class represents a connection between two instances of ReplicaManager2 Represents a connection. Allocated by user supplied factory interface Connection_RM2Factory Implicitly created as needed Generally you will want to implement at a minimum the Construct() function, used as a factory function to create your game objects. More...

## Enumerations

enum

RakNet::SerializationType {
RakNet::SEND_SERIALIZATION_GENERIC_TO_SYSTEM, RakNet::BROADCAST_SERIALIZATION_GENERIC_TO_SYSTEM, RakNet::SEND_AUTO_SERIALIZE_TO_SYSTEM, RakNet::BROADCAST_AUTO_SERIALIZE_TO_SYSTEM,
RakNet::RELAY_SERIALIZATION_TO_SYSTEMS, RakNet::SEND_CONSTRUCTION_SERIALIZATION_AUTO_INITIAL_DOWNLOAD_TO_SYSTEM , RakNet::SEND_DATA_SERIALIZATION_AUTO_INITIAL_DOWNLOAD_TO_SYSTEM, RakNet::SEND_DESTRUCTION_GENERIC_TO_SYSTEM,
RakNet::SEND_DESTRUCTION_VISIBILITY_RECALCULATION_TO_SYSTEM, RakNet::BROADCAST_DESTRUCTION_GENERIC_TO_SYSTEM, RakNet::RELAY_DESTRUCTION_TO_SYSTEMS, RakNet::SEND_CONSTRUCTION_GENERIC_TO_SYSTEM,
RakNet::SEND_CONSTRUCTION_VISIBILITY_RECALCULATION_TO_SYSTEM, RakNet::BROADCAST_CONSTRUCTION_GENERIC_TO_SYSTEM, RakNet::SEND_CONSTRUCTION_REQUEST_TO_SERVER, RakNet::BROADCAST_CONSTRUCTION_REQUEST_ACCEPTED_TO_SYSTEM,
RakNet::SEND_CONSTRUCTION_REPLY_ACCEPTED_TO_CLIENT, RakNet::SEND_CONSTRUCTION_REPLY_DENIED_TO_CLIENT, RakNet::SEND_VISIBILITY_TRUE_TO_SYSTEM, RakNet::BROADCAST_VISIBILITY_TRUE_TO_SYSTEM,
RakNet::SEND_VISIBILITY_FALSE_TO_SYSTEM, RakNet::BROADCAST_VISIBILITY_FALSE_TO_SYSTEM, RakNet::RELAY_VISIBILITY_TRUE_TO_SYSTEMS, RakNet::RELAY_VISIBILITY_FALSE_TO_SYSTEMS,
RakNet::AUTOSERIALIZE_RESYNCH_ONLY, RakNet::AUTOSERIALIZE_DEFAULT, RakNet::UNDEFINED_REASON
}

| These are the types of events that can cause network data to be transmitted. More...
enum | RakNet::BooleanQueryResult { RakNet::BQR_ALWAYS, RakNet::BQR_YES, RakNet::BQR_NO, RakNet::BQR_NEVER }
| The result of various scope and construction queries. More...

## Enumeration Type Documentation

enum RakNet::BooleanQueryResult

The result of various scope and construction queries.

Enumerator:

  BQR_ALWAYS | The query is always true, for all systems. Certain optimizations are performed here, but you should not later return any other value without first calling ReplicaManager2::RecalculateVisibility.
  BQR_YES | True.
  BQR_NO | False.
  BQR_NEVER | The query is never true, for all systems. Certain optimizations are performed here, but you should not later return any other value without first calling ReplicaManager2::RecalculateVisibility.

enum RakNet::SerializationType

These are the types of events that can cause network data to be transmitted.

Enumerator:

  SEND_SERIALIZATION_GENERIC_TO_SYSTEM | Serialization command initiated by the user.
  BROADCAST_SERIALIZATION_GENERIC_TO_SYSTEM | Serialization command initiated by the user.
  SEND_AUTO_SERIALIZE_TO_SYSTEM | Automatic serialization of data, based on Replica2::AddAutoSerializeTimer.
  BROADCAST_AUTO_SERIALIZE_TO_SYSTEM | Automatic serialization of data, based on Replica2::AddAutoSerializeTimer.
  RELAY_SERIALIZATION_TO_SYSTEMS | Received a serialization command, relaying to systems other than the sender.
  SEND_CONSTRUCTION_SERIALIZATION_AUTO_INITIAL_DOWNLOAD_TO_SYSTEM | If SetAutoAddNewConnections is true, this is the command sent when sending all game objects to new connections automatically.
  SEND_DATA_SERIALIZATION_AUTO_INITIAL_DOWNLOAD_TO_SYSTEM | The data portion of the game download, preceeded by SEND_CONSTRUCTION_SERIALIZATION_AUTO_INITIAL_DOWNLOAD_TO_SYSTEM.
  SEND_DESTRUCTION_GENERIC_TO_SYSTEM | Default reason to send a destruction command.
  SEND_DESTRUCTION_VISIBILITY_RECALCULATION_TO_SYSTEM | Triggered by ReplicaManager2::RecalculateVisibility - A replica is now never constructed, so needs to be destroyed.
  BROADCAST_DESTRUCTION_GENERIC_TO_SYSTEM | Triggered by Replica2::BroadcastDestruction.
  RELAY_DESTRUCTION_TO_SYSTEMS | Received destruction message, relaying to other systems.
  SEND_CONSTRUCTION_GENERIC_TO_SYSTEM | Default reason to send a construction command.
  SEND_CONSTRUCTION_VISIBILITY_RECALCULATION_TO_SYSTEM | Triggered by ReplicaManager2::RecalculateVisibility - A replica is now always constructed, so needs to be created.
  BROADCAST_CONSTRUCTION_GENERIC_TO_SYSTEM | Triggered by Replica2::BroadcastConstruction().
  SEND_CONSTRUCTION_REQUEST_TO_SERVER | Replica2::QueryIsConstructionAuthority()==false yet we called ReplicaManager2::SendConstruction().
  BROADCAST_CONSTRUCTION_REQUEST_ACCEPTED_TO_SYSTEM | A non-authority object was created by a client, accepted, and is now relayed to all other connected systems.
  SEND_CONSTRUCTION_REPLY_ACCEPTED_TO_CLIENT | A non-authority object was created by a client, accepted.
  SEND_CONSTRUCTION_REPLY_DENIED_TO_CLIENT | A non-authority object was created by a client, denied.
  SEND_VISIBILITY_TRUE_TO_SYSTEM | An object is visible.
  BROADCAST_VISIBILITY_TRUE_TO_SYSTEM | An object is visible.
  SEND_VISIBILITY_FALSE_TO_SYSTEM | An object is not visible.
  BROADCAST_VISIBILITY_FALSE_TO_SYSTEM | An object is not visible.
  RELAY_VISIBILITY_TRUE_TO_SYSTEMS | An object is visible, and we are telling other systems about this.
  RELAY_VISIBILITY_FALSE_TO_SYSTEMS | An object is visible, and we are telling other systems about this.
  AUTOSERIALIZE_RESYNCH_ONLY | Calling Replica2::Serialize() for the purpose of reading memory to compare against later. This read will not be transmitted.
  AUTOSERIALIZE_DEFAULT | Calling Replica2::Serialize() to compare against a prior call. The serialization may be transmitted.
  UNDEFINED_REASON | Start your own reasons one unit past this enum.