private void AdministrateNewMission(MissionInProgress missionInProgress) { //initialize rewards and other stuff missionInProgress.OnMissionStarting().ThrowIfError(); //store running mission in sql missionInProgress.InsertMissionLog().ThrowIfError(); //write mission targets to sql missionInProgress.WriteAllTargetsToSql().ThrowIfError(); //spawn courier and other start related items SpawnStartItemsForConfigMissions(missionInProgress.myMission, missionInProgress); //add to ram cache AddMissionInProgress(missionInProgress); //add the owner for sure missionInProgress.ForceAddParticipant(); missionInProgress.SendZoneNewMission(); }