diff --git a/Content.Server/GameTicking/GameTicker.Spawning.cs b/Content.Server/GameTicking/GameTicker.Spawning.cs index cae4bfd863..f095b94435 100644 --- a/Content.Server/GameTicking/GameTicker.Spawning.cs +++ b/Content.Server/GameTicking/GameTicker.Spawning.cs @@ -209,7 +209,12 @@ namespace Content.Server.GameTicking speciesId = weights.Pick(_robustRandom); } - character = HumanoidCharacterProfile.RandomWithSpecies(speciesId); + // The random profile must retain the job priorities set by the player + var jobs = character.JobPriorities; + character = HumanoidCharacterProfile.RandomWithSpecies(speciesId).WithJobPriorities(jobs); + + // This does not utilize overflow job slots, so if the character profile + // had no available job priorities (ie Captain on Dev) set, then the player will spawn as a ghost } // We raise this event to allow other systems to handle spawning this player themselves. (e.g. late-join wizard, etc)