public void Host(string hostName, int port = 0) { _playerCamera.gameObject.SetActive(true); _ramnet.MessageRouter.ClearHandlers(); _ramnet.MessageRouter .RegisterHandler <BasicMessage.Ping>(OnClientClockSyncRequest) .RegisterHandler <BasicMessage.ToObject>((connectionId, endpoint, message, reader) => { _ramnet.ReplicatedObjectStore.DispatchMessage(connectionId, message.ReceiverId, reader); }); _ramnet.GroupRouter.ClearConnectionHandlers(); _ramnet.GroupRouter.SetConnectionHandler(NetworkGroup.Default, this); var hostConfig = new NetPeerConfiguration("RigidbodyParty"); hostConfig.Port = port; hostConfig.MaximumConnections = 64; hostConfig.AcceptIncomingConnections = true; _transporter.Open(hostConfig); foreach (var preExistingObject in _ramnet.PreExistingObjects) { var gameObject = preExistingObject.Value; Debug.Log("replicating existing instance " + gameObject + " under id " + preExistingObject.Key); _replicator.AddPreExistingInstance(ObjectRole.Authority, ConnectionId.NoConnection, gameObject, preExistingObject.Key); } _facilitatorRegistration = _coroutineScheduler.Run(_ramnet.NatFacilitatorConnection.Register()); _masterServerRegistration = _coroutineScheduler.Run(RegisterAtMasterServer(hostName)); _isStarted = true; if (OnStarted != null) { OnStarted(); } }