* if a player's profile has an invalid species, station spawning will always try to fallback to the default humanoid species
* validation always ensures that if a species can't be indexed, the species falls back to the default species
return jobEntity;
}
- var entity = EntityManager.SpawnEntity(
- _prototypeManager.Index<SpeciesPrototype>(profile?.Species ?? HumanoidAppearanceSystem.DefaultSpecies).Prototype,
- coordinates);
+ if (!_prototypeManager.TryIndex(profile?.Species ?? HumanoidAppearanceSystem.DefaultSpecies, out SpeciesPrototype? species))
+ {
+ species = _prototypeManager.Index<SpeciesPrototype>(HumanoidAppearanceSystem.DefaultSpecies);
+ }
+
+ var entity = EntityManager.SpawnEntity(species.Prototype, coordinates);
if (job?.StartingGear != null)
{
{
var prototypeManager = IoCManager.Resolve<IPrototypeManager>();
- prototypeManager.TryIndex<SpeciesPrototype>(Species, out var speciesPrototype);
+ if (!prototypeManager.TryIndex<SpeciesPrototype>(Species, out var speciesPrototype))
+ {
+ Species = SharedHumanoidAppearanceSystem.DefaultSpecies;
+ speciesPrototype = prototypeManager.Index<SpeciesPrototype>(Species);
+ }
var sex = Sex switch
{