diff --git a/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml b/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml
index 2503c51e02c..51c2b63ce24 100644
--- a/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml
+++ b/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml
@@ -71,6 +71,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml.cs b/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml.cs
index 70ece76888f..92bf2669acc 100644
--- a/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml.cs
+++ b/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml.cs
@@ -186,6 +186,10 @@ public HumanoidProfileEditor(
NameEdit.OnTextChanged += args => { SetName(args.Text); };
NameEdit.IsValid = args => args.Length <= _maxNameLength;
+ CallsignEdit.OnTextChanged += args => { SetCallsign(args.Text); };
+ CallsignEdit.IsValid = args => args.Length <= _maxNameLength;
+ SyntheticNameEdit.OnTextChanged += args => { SetSyntheticName(args.Text); };
+ SyntheticNameEdit.IsValid = args => args.Length <= _maxNameLength;
NameRandomize.OnPressed += args => RandomizeName();
RandomizeEverythingButton.OnPressed += args => { RandomizeEverything(); };
WarningLabel.SetMarkup($"[color=red]{Loc.GetString("humanoid-profile-editor-naming-rules-warning")}[/color]");
@@ -922,6 +926,8 @@ public void SetProfile(HumanoidCharacterProfile? profile, int? slot)
JobOverride = null;
UpdateNameEdit();
+ UpdateCallsignEdit();
+ UpdateSyntheticNameEdit();
UpdateFlavorTextEdit();
UpdateSexControls();
UpdateGenderControls();
@@ -1435,6 +1441,18 @@ private void SetName(string newName)
_entManager.System().SetEntityName(PreviewDummy, newName);
}
+ private void SetCallsign(string callsign)
+ {
+ Profile = Profile?.WithCallsign(callsign);
+ SetDirty();
+ }
+
+ private void SetSyntheticName(string syntheticName)
+ {
+ Profile = Profile?.WithSyntheticName(syntheticName);
+ SetDirty();
+ }
+
private void SetSpawnPriority(SpawnPriorityPreference newSpawnPriority)
{
Profile = Profile?.WithSpawnPriorityPreference(newSpawnPriority);
@@ -1599,6 +1617,16 @@ private void UpdateNameEdit()
NameEdit.Text = Profile?.Name ?? "";
}
+ private void UpdateCallsignEdit()
+ {
+ CallsignEdit.Text = Profile?.Callsign ?? "";
+ }
+
+ private void UpdateSyntheticNameEdit()
+ {
+ SyntheticNameEdit.Text = Profile?.SyntheticName ?? "";
+ }
+
private void UpdateFlavorTextEdit()
{
if (_flavorTextEdit != null)
diff --git a/Content.Server.Database/Migrations/Postgres/20260510120000_CallsignSyntheticName.cs b/Content.Server.Database/Migrations/Postgres/20260510120000_CallsignSyntheticName.cs
new file mode 100644
index 00000000000..5609490f979
--- /dev/null
+++ b/Content.Server.Database/Migrations/Postgres/20260510120000_CallsignSyntheticName.cs
@@ -0,0 +1,43 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+
+#nullable disable
+
+namespace Content.Server.Database.Migrations.Postgres
+{
+ ///
+ [DbContext(typeof(PostgresServerDbContext))]
+ [Migration("20260510120000_CallsignSyntheticName")]
+ public partial class CallsignSyntheticName : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AddColumn(
+ name: "callsign",
+ table: "profile",
+ type: "text",
+ nullable: false,
+ defaultValue: "");
+
+ migrationBuilder.AddColumn(
+ name: "synthetic_name",
+ table: "profile",
+ type: "text",
+ nullable: false,
+ defaultValue: "");
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropColumn(
+ name: "callsign",
+ table: "profile");
+
+ migrationBuilder.DropColumn(
+ name: "synthetic_name",
+ table: "profile");
+ }
+ }
+}
diff --git a/Content.Server.Database/Migrations/Postgres/PostgresServerDbContextModelSnapshot.cs b/Content.Server.Database/Migrations/Postgres/PostgresServerDbContextModelSnapshot.cs
index 6198d128fe8..fbd38c4ab37 100644
--- a/Content.Server.Database/Migrations/Postgres/PostgresServerDbContextModelSnapshot.cs
+++ b/Content.Server.Database/Migrations/Postgres/PostgresServerDbContextModelSnapshot.cs
@@ -845,6 +845,13 @@ protected override void BuildModel(ModelBuilder modelBuilder)
.HasColumnType("text")
.HasColumnName("char_name");
+ b.Property("Callsign")
+ .IsRequired()
+ .ValueGeneratedOnAdd()
+ .HasColumnType("text")
+ .HasDefaultValue("")
+ .HasColumnName("callsign");
+
b.Property("EyeColor")
.IsRequired()
.HasColumnType("text")
@@ -925,6 +932,13 @@ protected override void BuildModel(ModelBuilder modelBuilder)
.HasColumnType("text")
.HasColumnName("species");
+ b.Property("SyntheticName")
+ .IsRequired()
+ .ValueGeneratedOnAdd()
+ .HasColumnType("text")
+ .HasDefaultValue("")
+ .HasColumnName("synthetic_name");
+
b.Property("XenoPostfix")
.IsRequired()
.ValueGeneratedOnAdd()
diff --git a/Content.Server.Database/Migrations/Sqlite/20260510120000_CallsignSyntheticName.cs b/Content.Server.Database/Migrations/Sqlite/20260510120000_CallsignSyntheticName.cs
new file mode 100644
index 00000000000..b84f13f6e8d
--- /dev/null
+++ b/Content.Server.Database/Migrations/Sqlite/20260510120000_CallsignSyntheticName.cs
@@ -0,0 +1,43 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+
+#nullable disable
+
+namespace Content.Server.Database.Migrations.Sqlite
+{
+ ///
+ [DbContext(typeof(SqliteServerDbContext))]
+ [Migration("20260510120000_CallsignSyntheticName")]
+ public partial class CallsignSyntheticName : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AddColumn(
+ name: "callsign",
+ table: "profile",
+ type: "TEXT",
+ nullable: false,
+ defaultValue: "");
+
+ migrationBuilder.AddColumn(
+ name: "synthetic_name",
+ table: "profile",
+ type: "TEXT",
+ nullable: false,
+ defaultValue: "");
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropColumn(
+ name: "callsign",
+ table: "profile");
+
+ migrationBuilder.DropColumn(
+ name: "synthetic_name",
+ table: "profile");
+ }
+ }
+}
diff --git a/Content.Server.Database/Migrations/Sqlite/SqliteServerDbContextModelSnapshot.cs b/Content.Server.Database/Migrations/Sqlite/SqliteServerDbContextModelSnapshot.cs
index 183a9064de8..79670a788a3 100644
--- a/Content.Server.Database/Migrations/Sqlite/SqliteServerDbContextModelSnapshot.cs
+++ b/Content.Server.Database/Migrations/Sqlite/SqliteServerDbContextModelSnapshot.cs
@@ -796,6 +796,13 @@ protected override void BuildModel(ModelBuilder modelBuilder)
.HasColumnType("TEXT")
.HasColumnName("char_name");
+ b.Property("Callsign")
+ .IsRequired()
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TEXT")
+ .HasDefaultValue("")
+ .HasColumnName("callsign");
+
b.Property("EyeColor")
.IsRequired()
.HasColumnType("TEXT")
@@ -876,6 +883,13 @@ protected override void BuildModel(ModelBuilder modelBuilder)
.HasColumnType("TEXT")
.HasColumnName("species");
+ b.Property("SyntheticName")
+ .IsRequired()
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TEXT")
+ .HasDefaultValue("")
+ .HasColumnName("synthetic_name");
+
b.Property("XenoPostfix")
.IsRequired()
.ValueGeneratedOnAdd()
diff --git a/Content.Server.Database/Model.cs b/Content.Server.Database/Model.cs
index 5594d4291a0..8070ace516e 100644
--- a/Content.Server.Database/Model.cs
+++ b/Content.Server.Database/Model.cs
@@ -86,6 +86,14 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
.Property(p => p.XenoPostfix)
.HasDefaultValue(string.Empty);
+ modelBuilder.Entity()
+ .Property(p => p.Callsign)
+ .HasDefaultValue(string.Empty);
+
+ modelBuilder.Entity()
+ .Property(p => p.SyntheticName)
+ .HasDefaultValue(string.Empty);
+
modelBuilder.Entity()
.HasIndex(p => new {HumanoidProfileId = p.ProfileId, p.AntagName})
.IsUnique();
@@ -584,6 +592,8 @@ public class Profile
public string EyeColor { get; set; } = null!;
public string SkinColor { get; set; } = null!;
public int SpawnPriority { get; set; } = 0;
+ public string Callsign { get; set; } = string.Empty;
+ public string SyntheticName { get; set; } = string.Empty;
public List Jobs { get; } = new();
public List Antags { get; } = new();
public List Traits { get; } = new();
diff --git a/Content.Server/Database/ServerDbBase.cs b/Content.Server/Database/ServerDbBase.cs
index ddaf10590f2..e995ad0dde5 100644
--- a/Content.Server/Database/ServerDbBase.cs
+++ b/Content.Server/Database/ServerDbBase.cs
@@ -320,7 +320,9 @@ private static HumanoidCharacterProfile ConvertProfiles(Profile profile)
profile.XenoPrefix,
profile.XenoPostfix,
allegiance,
- origin
+ origin,
+ profile.Callsign,
+ profile.SyntheticName
);
}
@@ -336,6 +338,8 @@ private static Profile ConvertProfiles(HumanoidCharacterProfile humanoid, int sl
var markings = JsonSerializer.SerializeToDocument(markingStrings);
profile.CharacterName = humanoid.Name;
+ profile.Callsign = humanoid.Callsign;
+ profile.SyntheticName = humanoid.SyntheticName;
profile.FlavorText = humanoid.FlavorText;
profile.Species = humanoid.Species;
profile.Age = humanoid.Age;
diff --git a/Content.Server/GameTicking/GameTicker.Spawning.cs b/Content.Server/GameTicking/GameTicker.Spawning.cs
index 88bd7d1b83e..7843e8eab94 100644
--- a/Content.Server/GameTicking/GameTicker.Spawning.cs
+++ b/Content.Server/GameTicking/GameTicker.Spawning.cs
@@ -467,10 +467,10 @@ private void SpawnPlayer(ICommonSession player,
DebugTools.AssertNotNull(data);
- var newMind = _mind.CreateMind(data!.UserId, character.Name);
- _mind.SetUserId(newMind, data.UserId);
-
var jobPrototype = _prototypeManager.Index(jobId);
+ var characterSpawnName = character.GetSpawnName(jobPrototype);
+ var newMind = _mind.CreateMind(data!.UserId, characterSpawnName);
+ _mind.SetUserId(newMind, data.UserId);
_playTimeTrackings.PlayerRolesChanged(player);
@@ -523,13 +523,13 @@ private void SpawnPlayer(ICommonSession player,
{
_adminLogger.Add(LogType.LateJoin,
LogImpact.Medium,
- $"Player {player.Name} late joined as {character.Name:characterName} on station {Name(station):stationName} with {ToPrettyString(mob):entity} as a {jobName:jobName}.");
+ $"Player {player.Name} late joined as {characterSpawnName:characterName} on station {Name(station):stationName} with {ToPrettyString(mob):entity} as a {jobName:jobName}.");
}
else
{
_adminLogger.Add(LogType.RoundStartJoin,
LogImpact.Medium,
- $"Player {player.Name} joined as {character.Name:characterName} on station {Name(station):stationName} with {ToPrettyString(mob):entity} as a {jobName:jobName}.");
+ $"Player {player.Name} joined as {characterSpawnName:characterName} on station {Name(station):stationName} with {ToPrettyString(mob):entity} as a {jobName:jobName}.");
}
// Make sure they're aware of extended access.
diff --git a/Content.Server/Station/Systems/StationSpawningSystem.cs b/Content.Server/Station/Systems/StationSpawningSystem.cs
index 6ccf841ec26..d4326298905 100644
--- a/Content.Server/Station/Systems/StationSpawningSystem.cs
+++ b/Content.Server/Station/Systems/StationSpawningSystem.cs
@@ -147,6 +147,7 @@ public EntityUid SpawnPlayerMob(
_prototypeManager.TryIndex(job ?? string.Empty, out var prototype, false);
// Get the original job prototype for access/faction/ID
_prototypeManager.TryIndex(originalJob ?? string.Empty, out var originalPrototype, false);
+ var namePrototype = originalPrototype ?? prototype;
RoleLoadout? loadout = null;
// Need to get the loadout up-front to handle names if we use an entity spawn override.
@@ -213,8 +214,9 @@ public EntityUid SpawnPlayerMob(
if (profile != null)
{
+ var spawnName = profile.GetSpawnName(namePrototype);
_humanoidSystem.LoadProfile(entity.Value, profile);
- _metaSystem.SetEntityName(entity.Value, profile.Name);
+ _metaSystem.SetEntityName(entity.Value, spawnName);
if (profile.FlavorText != "" && _configurationManager.GetCVar(CCVars.FlavorText))
{
@@ -233,6 +235,13 @@ public EntityUid SpawnPlayerMob(
EquipStartingGear(entity.Value, startingGear, raiseEvent: false);
}
+ if (profile != null)
+ {
+ var spawnName = profile.GetSpawnName(namePrototype);
+ if (spawnName != profile.Name)
+ _metaSystem.SetEntityName(entity.Value, spawnName);
+ }
+
if (!Equals(job, originalJob) && originalPrototype?.StartingGear != null)
{
var origGear = _prototypeManager.Index(originalPrototype.StartingGear);
diff --git a/Content.Shared/Preferences/HumanoidCharacterProfile.cs b/Content.Shared/Preferences/HumanoidCharacterProfile.cs
index 906ab0f5aaa..d8ab7e154a5 100644
--- a/Content.Shared/Preferences/HumanoidCharacterProfile.cs
+++ b/Content.Shared/Preferences/HumanoidCharacterProfile.cs
@@ -67,6 +67,12 @@ public sealed partial class HumanoidCharacterProfile : ICharacterProfile
[DataField]
public string Name { get; set; } = "John Doe";
+ [DataField]
+ public string Callsign { get; private set; } = string.Empty;
+
+ [DataField]
+ public string SyntheticName { get; private set; } = string.Empty;
+
///
/// Detailed text that can appear for the character if is enabled.
///
@@ -184,9 +190,13 @@ public HumanoidCharacterProfile(
string xenoPrefix,
string xenoPostfix,
ProtoId? allegiance = null,
- ProtoId? origin = null)
+ ProtoId? origin = null,
+ string callsign = "",
+ string syntheticName = "")
{
Name = name;
+ Callsign = callsign;
+ SyntheticName = syntheticName;
FlavorText = flavortext;
Species = species;
Age = age;
@@ -246,7 +256,9 @@ public HumanoidCharacterProfile(HumanoidCharacterProfile other)
other.XenoPrefix,
other.XenoPostfix,
other.Allegiance,
- other.Origin)
+ other.Origin,
+ other.Callsign,
+ other.SyntheticName)
{
}
@@ -334,6 +346,16 @@ public HumanoidCharacterProfile WithName(string name)
return new(this) { Name = name };
}
+ public HumanoidCharacterProfile WithCallsign(string callsign)
+ {
+ return new(this) { Callsign = callsign };
+ }
+
+ public HumanoidCharacterProfile WithSyntheticName(string syntheticName)
+ {
+ return new(this) { SyntheticName = syntheticName };
+ }
+
public HumanoidCharacterProfile WithFlavorText(string flavorText)
{
return new(this) { FlavorText = flavorText };
@@ -560,6 +582,8 @@ public bool MemberwiseEquals(ICharacterProfile maybeOther)
{
if (maybeOther is not HumanoidCharacterProfile other) return false;
if (Name != other.Name) return false;
+ if (Callsign != other.Callsign) return false;
+ if (SyntheticName != other.SyntheticName) return false;
if (Age != other.Age) return false;
if (Sex != other.Sex) return false;
if (Gender != other.Gender) return false;
@@ -650,6 +674,22 @@ public void EnsureValid(ICommonSession session, IDependencyCollection collection
name = GetName(Species, gender);
}
+ string ValidateOptionalName(string value)
+ {
+ value = value.Trim();
+
+ if (value.Length > maxNameLength)
+ value = value[..maxNameLength];
+
+ if (configManager.GetCVar(CCVars.RestrictedNames))
+ value = RestrictedNameRegex.Replace(value, string.Empty);
+
+ if (configManager.GetCVar(CCVars.ICNameCase))
+ value = ICNameCaseRegex.Replace(value, m => m.Groups["word"].Value.ToUpper());
+
+ return value.Trim();
+ }
+
string flavortext;
var maxFlavorTextLength = configManager.GetCVar(CCVars.MaxFlavorTextLength);
if (FlavorText.Length > maxFlavorTextLength)
@@ -708,6 +748,8 @@ public void EnsureValid(ICommonSession session, IDependencyCollection collection
.ToList();
Name = name;
+ Callsign = ValidateOptionalName(Callsign);
+ SyntheticName = ValidateOptionalName(SyntheticName);
FlavorText = flavortext;
Age = age;
Sex = sex;
@@ -903,6 +945,8 @@ public override int GetHashCode()
hashCode.Add(_traitPreferences);
hashCode.Add(_loadouts);
hashCode.Add(Name);
+ hashCode.Add(Callsign);
+ hashCode.Add(SyntheticName);
hashCode.Add(FlavorText);
hashCode.Add(Species);
hashCode.Add(Age);
@@ -927,6 +971,29 @@ public void SetLoadout(RoleLoadout loadout)
_loadouts[loadout.Role.Id] = loadout;
}
+ public string GetSpawnName(JobPrototype? job)
+ {
+ if (job?.UseSyntheticName == true)
+ return !string.IsNullOrWhiteSpace(SyntheticName) ? SyntheticName : Name;
+
+ if (job?.UseCallsign == true && !string.IsNullOrWhiteSpace(Callsign))
+ return InsertCallsign(Name, Callsign);
+
+ return Name;
+ }
+
+ private static string InsertCallsign(string name, string callsign)
+ {
+ name = name.Trim();
+ callsign = callsign.Trim();
+
+ var split = name.LastIndexOf(' ');
+ if (split <= 0 || split >= name.Length - 1)
+ return $"{name} \"{callsign}\"";
+
+ return $"{name[..split]} \"{callsign}\" {name[(split + 1)..]}";
+ }
+
public HumanoidCharacterProfile WithLoadout(RoleLoadout loadout)
{
// Deep copies so we don't modify the DB profile.
diff --git a/Content.Shared/Roles/JobPrototype.cs b/Content.Shared/Roles/JobPrototype.cs
index 9f962305494..0b313c9c353 100644
--- a/Content.Shared/Roles/JobPrototype.cs
+++ b/Content.Shared/Roles/JobPrototype.cs
@@ -76,6 +76,18 @@ public sealed partial class JobPrototype : IPrototype
[DataField]
public bool ApplyTraits { get; private set; } = true;
+ ///
+ /// Whether this job should insert the character callsign into the spawned name.
+ ///
+ [DataField("useCallsign")]
+ public bool UseCallsign { get; private set; }
+
+ ///
+ /// Whether this job should use the character's synthetic name instead of their regular name.
+ ///
+ [DataField("useSyntheticName")]
+ public bool UseSyntheticName { get; private set; }
+
///
/// Whether this job should show in the ID Card Console.
/// If set to null, it will default to SetPreference's value.
diff --git a/Resources/Locale/en-US/preferences/ui/humanoid-profile-editor.ftl b/Resources/Locale/en-US/preferences/ui/humanoid-profile-editor.ftl
index 56238e4abdf..75afd62f992 100644
--- a/Resources/Locale/en-US/preferences/ui/humanoid-profile-editor.ftl
+++ b/Resources/Locale/en-US/preferences/ui/humanoid-profile-editor.ftl
@@ -26,6 +26,8 @@ humanoid-profile-editor-spawn-priority-label = Spawn priority:
humanoid-profile-editor-preferred-squad-label = Preferred squad:
humanoid-profile-editor-preferred-armor-label = Preferred armor:
humanoid-profile-editor-enable-playtime-perks = Enable playtime perks:
+humanoid-profile-editor-callsign = Callsign:
+humanoid-profile-editor-synthetic-name = Synthetic name:
humanoid-profile-editor-xeno-prefix = Xeno prefix:
humanoid-profile-editor-xeno-prefix-tooltip = Up to 3 letters. You cannot have a postfix with a 3 letter prefix.
humanoid-profile-editor-xeno-postfix = Xeno postfix:
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Colony/base/colonysynth.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Colony/base/colonysynth.yml
index 0a23490c718..3ef11431ee6 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Colony/base/colonysynth.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Colony/base/colonysynth.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: AU14JobCivilianColonySynthetic
+ useSyntheticName: true
name: au14-job-name-civiliancolonysynthetic
description: au14-job-description-civiliancolonysynthetic
setPreference: true
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/General/Base/workingjoeBase.yml b/Resources/Prototypes/_AU14/Roles/Jobs/General/Base/workingjoeBase.yml
index 337daf60ff9..d1eaf068922 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/General/Base/workingjoeBase.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/General/Base/workingjoeBase.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: AU14JobWorkingJoeBase
+ useSyntheticName: true
name: au14-job-name-workingjoe
description: au14-job-description-workingjoe
abstract: true
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/DSPilotBase.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/DSPilotBase.yml
index 73e284adfbd..03b522cc3e0 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/DSPilotBase.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/DSPilotBase.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: AU14JobDSPilotBase
+ useCallsign: true
name: au14-job-name-govfordspilot
description: au14-job-description-govfordspilot
playTimeTracker: AU14JobGOVFORDSPilot
@@ -9,4 +10,4 @@
- type: playTimeTracker
id: AU14JobGOVFORDSPilot
- isHumanoid: true
\ No newline at end of file
+ isHumanoid: true
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/advisorBase.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/advisorBase.yml
index 85bb55ee0c8..27863a6ec6a 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/advisorBase.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/advisorBase.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: AU14JobadvisorBase
+ useCallsign: true
name: au14-job-name-govforadvisor
description: au14-job-description-govforadvisor
playTimeTracker: AU14JobGOVFORadvisor
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/auxiliarysupportsynthBase.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/auxiliarysupportsynthBase.yml
index 6dadecc696a..7e3137fb784 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/auxiliarysupportsynthBase.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/auxiliarysupportsynthBase.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: AU14JobAuxSupportSynthBase
+ useSyntheticName: true
name: au14-job-name-govforauxsupportsynth
description: au14-job-description-govforauxsupportsynth
playTimeTracker: AU14JobGOVFORAuxSupportSynth
@@ -9,4 +10,4 @@
- type: playTimeTracker
id: AU14JobGOVFORAuxSupportSynth
- isHumanoid: true
\ No newline at end of file
+ isHumanoid: true
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/commanderBase.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/commanderBase.yml
index 0f8cfa22be1..a148b36ccb6 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/commanderBase.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/commanderBase.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: AU14JobPlatCoBase
+ useCallsign: true
name: au14-job-name-govforplatco
description: au14-job-description-govforplatco
playTimeTracker: AU14JobGOVFORPlatCo
@@ -9,4 +10,4 @@
- type: playTimeTracker
id: AU14JobGOVFORPlatCo
- isHumanoid: true
\ No newline at end of file
+ isHumanoid: true
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/corpsmanBase.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/corpsmanBase.yml
index e1b96c45807..3b0de634bd3 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/corpsmanBase.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/corpsmanBase.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: AU14JobPlatoonCorpsmanBase
+ useCallsign: true
name: au14-job-name-govforplatooncorpsman
description: au14-job-description-govforplatooncorpsman
playTimeTracker: AU14JobGOVFORPlatoonCorpsman
@@ -9,4 +10,4 @@
- type: playTimeTracker
id: AU14JobGOVFORPlatoonCorpsman
- isHumanoid: true
\ No newline at end of file
+ isHumanoid: true
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/dropshipcrewchiefBase.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/dropshipcrewchiefBase.yml
index 79c620ff327..b42e41f9a11 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/dropshipcrewchiefBase.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/dropshipcrewchiefBase.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: AU14JobDCCBase
+ useCallsign: true
name: au14-job-name-govfordcc
description: au14-job-description-govfordcc
playTimeTracker: AU14JobGOVFORDCC
@@ -9,4 +10,4 @@
- type: playTimeTracker
id: AU14JobGOVFORDCC
- isHumanoid: true
\ No newline at end of file
+ isHumanoid: true
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/militarydoctorbase.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/militarydoctorbase.yml
index cab986734a2..8badcd4286f 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/militarydoctorbase.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/militarydoctorbase.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: AU14JobMilitaryDoctorBase
+ useCallsign: true
name: au14-job-name-govforMilitaryDoctor
description: au14-job-description-govforMilitaryDoctor
playTimeTracker: AU14JobGOVFORMilitaryDoctor
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/militarypolicebase.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/militarypolicebase.yml
index e74b8a36f9b..2a30fc42ce7 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/militarypolicebase.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/militarypolicebase.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: AU14JobMilitaryPoliceBase
+ useCallsign: true
name: au14-job-name-govformilitarypoliceman
description: au14-job-description-govformilitarypoliceman
playTimeTracker: AU14JobGOVFORMilitaryPoliceMan
@@ -9,4 +10,4 @@
- type: playTimeTracker
id: AU14JobGOVFORMilitaryPoliceMan
- isHumanoid: true
\ No newline at end of file
+ isHumanoid: true
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/operationsofficerBase.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/operationsofficerBase.yml
index 9fda2ac85ad..e548ca28247 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/operationsofficerBase.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/operationsofficerBase.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: AU14JobPlatOpBase
+ useCallsign: true
name: au14-job-name-govforplatop
description: au14-job-description-govforplatop
playTimeTracker: AU14JobGOVFORPlatOp
@@ -9,4 +10,4 @@
- type: playTimeTracker
id: AU14JobGOVFORPlatOp
- isHumanoid: true
\ No newline at end of file
+ isHumanoid: true
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/radiotelephoneoperatorBase.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/radiotelephoneoperatorBase.yml
index e24bca389ec..aad5fad0acc 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/radiotelephoneoperatorBase.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/radiotelephoneoperatorBase.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: AU14JobRadioTelephoneOperatorBase
+ useCallsign: true
name: au14-job-name-radiotelephoneoperator
description: au14-job-description-radiotelephoneooerator
playTimeTracker: AU14JobGOVFORRadioTelephoneOperator
@@ -9,4 +10,4 @@
- type: playTimeTracker
id: AU14JobGOVFORRadioTelephoneOperator
- isHumanoid: true
\ No newline at end of file
+ isHumanoid: true
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/sectionsergeantBase.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/sectionsergeantBase.yml
index e6835507266..333fa0eef00 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/sectionsergeantBase.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/sectionsergeantBase.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: AU14JobSectionSergeantBase
+ useCallsign: true
name: au14-job-name-govforSSG
description: au14-job-description-govforSSG
playTimeTracker: AU14JobGOVFORSectionSergeant
@@ -9,4 +10,4 @@
- type: playTimeTracker
id: AU14JobGOVFORSectionSergeant
- isHumanoid: true
\ No newline at end of file
+ isHumanoid: true
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/squadautomaticriflemanBase.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/squadautomaticriflemanBase.yml
index 3f272cfdc2a..240897fb0b2 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/squadautomaticriflemanBase.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/squadautomaticriflemanBase.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: AU14JobSquadAutomaticRiflemanBase
+ useCallsign: true
name: au14-job-name-govforsquadautomaticrifleman
description: au14-job-description-govforsquadautomaticrifleman
playTimeTracker: AU14JobGOVFORSquadAutomaticRifleman
@@ -9,4 +10,4 @@
- type: playTimeTracker
id: AU14JobGOVFORSquadAutomaticRifleman
- isHumanoid: true
\ No newline at end of file
+ isHumanoid: true
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/squadcombattechBase.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/squadcombattechBase.yml
index aa7c972a28e..15a80a8499f 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/squadcombattechBase.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/squadcombattechBase.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: AU14JobSquadCombatTechBase
+ useCallsign: true
name: au14-job-name-govforsquadcombattech
description: au14-job-description-govforsquadcombattech
playTimeTracker: AU14JobGOVFORSquadCombatTech
@@ -9,4 +10,4 @@
- type: playTimeTracker
id: AU14JobGOVFORSquadCombatTech
- isHumanoid: true
\ No newline at end of file
+ isHumanoid: true
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/squadriflemanBase.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/squadriflemanBase.yml
index 6c443a14701..fc4287bd533 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/squadriflemanBase.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/squadriflemanBase.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: AU14JobSquadRiflemanBase
+ useCallsign: true
name: au14-job-name-govforsquadrifleman
description: au14-job-description-govforsquadrifleman
playTimeTracker: AU14JobGOVFORSquadRifleman
@@ -9,4 +10,4 @@
- type: playTimeTracker
id: AU14JobGOVFORSquadRifleman
- isHumanoid: true
\ No newline at end of file
+ isHumanoid: true
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/squadsergeantBase.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/squadsergeantBase.yml
index 86355eece1f..453b31cf86d 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/squadsergeantBase.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Base/squadsergeantBase.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: AU14JobSquadSergeantBase
+ useCallsign: true
name: au14-job-name-govforsquadsergeant
description: au14-job-description-govforsquadsergeant
playTimeTracker: AU14JobGOVFORSquadSergeant
@@ -9,4 +10,4 @@
- type: playTimeTracker
id: AU14JobGOVFORSquadSergeant
- isHumanoid: true
\ No newline at end of file
+ isHumanoid: true
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/militarydoctor.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/militarydoctor.yml
index d32af9b3a48..10cbec2f481 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/militarydoctor.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/militarydoctor.yml
@@ -1,6 +1,7 @@
- type: job
parent: AU14JobMilitaryDoctorBase
id: AU14JobOPFORMilitaryDoctor
+ useCallsign: false
name: au14-job-name-opforMilitaryDoctor
description: au14-job-description-opforMilitaryDoctor
setPreference: false
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonadvisor.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonadvisor.yml
index cdb287512cf..78adc61cf0d 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonadvisor.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonadvisor.yml
@@ -1,6 +1,7 @@
- type: job
parent: AU14JobadvisorBase
id: AU14JobOPFORadvisor
+ useCallsign: false
name: au14-job-name-opforadvisor
description: au14-job-description-opforadvisor
setPreference: false
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platooncommander.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platooncommander.yml
index b3060adee4a..91bb3594add 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platooncommander.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platooncommander.yml
@@ -1,6 +1,7 @@
- type: job
parent: AU14JobPlatCoBase
id: AU14JobOpforPlatCo
+ useCallsign: false
name: au14-job-name-opforplatco
description: au14-job-description-opforplatco
setPreference: false
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platooncorpsman.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platooncorpsman.yml
index 21183cb42b9..1e2edbe9cc4 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platooncorpsman.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platooncorpsman.yml
@@ -1,6 +1,7 @@
- type: job
parent: AU14JobPlatoonCorpsmanBase
id: AU14JobOpforPlatoonCorpsman
+ useCallsign: false
name: au14-job-name-opforplatooncorpsman
description: au14-job-description-opforplatooncorpsman
setPreference: false
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoondropshipcrewchief.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoondropshipcrewchief.yml
index 90e2b845fe2..bbabb935646 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoondropshipcrewchief.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoondropshipcrewchief.yml
@@ -1,6 +1,7 @@
- type: job
parent: AU14JobDCCBase
id: AU14JobOpforDCC
+ useCallsign: false
name: au14-job-name-opfordcc
description: au14-job-description-opfordcc
setPreference: false
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonoperationsofficer.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonoperationsofficer.yml
index b97582713ae..2ae6e8dd2b0 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonoperationsofficer.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonoperationsofficer.yml
@@ -1,6 +1,7 @@
- type: job
parent: AU14JobPlatOpBase
id: AU14JobOpforPlatOp
+ useCallsign: false
name: au14-job-name-opforplatop
description: au14-job-description-opforplatop
setPreference: false
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonpilotofficer.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonpilotofficer.yml
index 2453b62c4fe..583c0cfdf11 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonpilotofficer.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonpilotofficer.yml
@@ -1,6 +1,7 @@
- type: job
parent: AU14JobDSPilotBase
id: AU14JobOpforDSPilot
+ useCallsign: false
name: au14-job-name-opfordspilot
description: au14-job-description-opfordspilot
setPreference: false
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonradiotelephoneoperator.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonradiotelephoneoperator.yml
index 6b11093c843..e76dafad283 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonradiotelephoneoperator.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonradiotelephoneoperator.yml
@@ -1,6 +1,7 @@
- type: job
parent: AU14JobRadioTelephoneOperatorBase
id: AU14JobOpforRadioTelephoneOperator
+ useCallsign: false
name: au14-job-name-radiotelephoneoperator
description: au14-job-description-radiotelephoneoperator
setPreference: false
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonsectionsergeant.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonsectionsergeant.yml
index fc0d6257044..87c38a554f7 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonsectionsergeant.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonsectionsergeant.yml
@@ -1,6 +1,7 @@
- type: job
parent: AU14JobSectionSergeantBase
id: AU14JobOpforSectionSergeant
+ useCallsign: false
name: au14-job-name-opforSSG
description: au14-job-description-opforSSG
setPreference: false
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonsquadautomaticrifleman.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonsquadautomaticrifleman.yml
index fce7a39847d..3935d33adff 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonsquadautomaticrifleman.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonsquadautomaticrifleman.yml
@@ -1,6 +1,7 @@
- type: job
parent: AU14JobSquadAutomaticRiflemanBase
id: AU14JobOpforSquadAutomaticRifleman
+ useCallsign: false
name: au14-job-name-opforsquadautomaticrifleman
description: au14-job-description-opforsquadautomaticrifleman
setPreference: false
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonsquadcombattech.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonsquadcombattech.yml
index ef29b2684ca..dd861e213b0 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonsquadcombattech.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonsquadcombattech.yml
@@ -1,6 +1,7 @@
- type: job
parent: AU14JobSquadCombatTechBase
id: AU14JobOPFORSquadCombatTech
+ useCallsign: false
name: au14-job-name-opforsquadcombattech
description: au14-job-description-opforsquadcombattech
setPreference: false
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonsquadrifleman.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonsquadrifleman.yml
index 79bda001b10..707c742ba8e 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonsquadrifleman.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonsquadrifleman.yml
@@ -1,6 +1,7 @@
- type: job
parent: AU14JobSquadRiflemanBase
id: AU14JobOpforSquadRifleman
+ useCallsign: false
name: au14-job-name-opforsquadrifleman
description: au14-job-description-opforsquadrifleman
setPreference: true
diff --git a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonsquadsergeant.yml b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonsquadsergeant.yml
index 2cb016372af..17e9de30450 100644
--- a/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonsquadsergeant.yml
+++ b/Resources/Prototypes/_AU14/Roles/Jobs/Military/Opfor/platoonsquadsergeant.yml
@@ -1,6 +1,7 @@
- type: job
parent: AU14JobSquadSergeantBase
id: AU14JobOpforSquadSergeant
+ useCallsign: false
name: au14-job-name-opforsquadsergeant
description: au14-job-description-opforsquadsergeant
setPreference: false
diff --git a/Resources/Prototypes/_AU14/thirdParties/FORECON/Survs/FORECONSynth.yml b/Resources/Prototypes/_AU14/thirdParties/FORECON/Survs/FORECONSynth.yml
index 89aa4fb14d6..81e3a8a1537 100644
--- a/Resources/Prototypes/_AU14/thirdParties/FORECON/Survs/FORECONSynth.yml
+++ b/Resources/Prototypes/_AU14/thirdParties/FORECON/Survs/FORECONSynth.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: AU14FORECONSynth
+ useSyntheticName: true
name: rmc-job-name-forecon-synth
description: rmc-job-description-forecon
playTimeTracker: AU14JobFORECONSynth
@@ -121,4 +122,4 @@
ears: RMCHeadsetForecon
- type: playTimeTracker
- id: AU14JobFORECONSynth
\ No newline at end of file
+ id: AU14JobFORECONSynth
diff --git a/Resources/Prototypes/_AU14/thirdParties/USArmy/ERT/USArmyArmoredSynth.yml b/Resources/Prototypes/_AU14/thirdParties/USArmy/ERT/USArmyArmoredSynth.yml
index 451a64ae23d..832c2084998 100644
--- a/Resources/Prototypes/_AU14/thirdParties/USArmy/ERT/USArmyArmoredSynth.yml
+++ b/Resources/Prototypes/_AU14/thirdParties/USArmy/ERT/USArmyArmoredSynth.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: AU14USArmySynthBase
+ useSyntheticName: true
name: rmc-job-name-forecon-synth
description: au14-job-description-usarmy
playTimeTracker: AU14JobUSArmySynth
diff --git a/Resources/Prototypes/_RMC14/Roles/Jobs/Other/TSE/TSEPA/tsepa_synthetic.yml b/Resources/Prototypes/_RMC14/Roles/Jobs/Other/TSE/TSEPA/tsepa_synthetic.yml
index e531508ffc1..d7ce2afb764 100644
--- a/Resources/Prototypes/_RMC14/Roles/Jobs/Other/TSE/TSEPA/tsepa_synthetic.yml
+++ b/Resources/Prototypes/_RMC14/Roles/Jobs/Other/TSE/TSEPA/tsepa_synthetic.yml
@@ -2,6 +2,7 @@
- type: job
parent: CMJobBase
id: RMCJobTSEPASynthetic
+ useSyntheticName: true
name: rmc-job-name-tsepa-synth
description: rmc-job-description-tsepa-synth
playTimeTracker: RMCJobTSEPASynthetic
diff --git a/Resources/Prototypes/_RMC14/Roles/Jobs/Other/WeYa/pmc_synthetic.yml b/Resources/Prototypes/_RMC14/Roles/Jobs/Other/WeYa/pmc_synthetic.yml
index c4d442d54d1..0b4e027e07b 100644
--- a/Resources/Prototypes/_RMC14/Roles/Jobs/Other/WeYa/pmc_synthetic.yml
+++ b/Resources/Prototypes/_RMC14/Roles/Jobs/Other/WeYa/pmc_synthetic.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: RMCPMCSynthetic
+ useSyntheticName: true
name: rmc-job-name-pmc-synth
description: rmc-job-description-pmc-synth
playTimeTracker: RMCJobPMCSynthetic
diff --git a/Resources/Prototypes/_RMC14/Roles/Jobs/Other/WeYa/weya_synthetic.yml b/Resources/Prototypes/_RMC14/Roles/Jobs/Other/WeYa/weya_synthetic.yml
index cc07891e736..a6d6fe49733 100644
--- a/Resources/Prototypes/_RMC14/Roles/Jobs/Other/WeYa/weya_synthetic.yml
+++ b/Resources/Prototypes/_RMC14/Roles/Jobs/Other/WeYa/weya_synthetic.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: RMCCorporateSynthetic
+ useSyntheticName: true
name: rmc-job-name-corp-synthetic
description: rmc-job-description-corp-synthetic
playTimeTracker: RMCJobCorporateSynthetic
diff --git a/Resources/Prototypes/_RMC14/Roles/Jobs/Other/synth.yml b/Resources/Prototypes/_RMC14/Roles/Jobs/Other/synth.yml
index c0ee76987f7..e8e3e4f9974 100644
--- a/Resources/Prototypes/_RMC14/Roles/Jobs/Other/synth.yml
+++ b/Resources/Prototypes/_RMC14/Roles/Jobs/Other/synth.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMJobBase
id: RMCJobSynthetic
+ useSyntheticName: true
name: rmc-job-name-synth
description: rmc-job-description-synth
playTimeTracker: RMCJobSynthetic
diff --git a/Resources/Prototypes/_RMC14/Roles/Jobs/Survivor/Base_Survs/colony_synth.yml b/Resources/Prototypes/_RMC14/Roles/Jobs/Survivor/Base_Survs/colony_synth.yml
index d42d0d5a7ee..5bb5855e95f 100644
--- a/Resources/Prototypes/_RMC14/Roles/Jobs/Survivor/Base_Survs/colony_synth.yml
+++ b/Resources/Prototypes/_RMC14/Roles/Jobs/Survivor/Base_Survs/colony_synth.yml
@@ -1,6 +1,7 @@
- type: job
parent: CMSurvivor
id: RMCJobSyntheticColony
+ useSyntheticName: true
name: rmc-job-name-synth-colony
description: rmc-job-description-synth-colony
playTimeTracker: RMCJobSyntheticColony
diff --git a/Resources/Prototypes/_RMC14/Roles/Jobs/Survivor/ForceRecon/recon_synth.yml b/Resources/Prototypes/_RMC14/Roles/Jobs/Survivor/ForceRecon/recon_synth.yml
index 04a95ad681d..371fb45f2c1 100644
--- a/Resources/Prototypes/_RMC14/Roles/Jobs/Survivor/ForceRecon/recon_synth.yml
+++ b/Resources/Prototypes/_RMC14/Roles/Jobs/Survivor/ForceRecon/recon_synth.yml
@@ -1,6 +1,7 @@
- type: job
parent: RMCSurvivorForeconBase
id: RMCSurvivorForeconSynth
+ useSyntheticName: true
name: rmc-job-name-forecon-synth
description: rmc-job-description-forecon
playTimeTracker: RMCJobSyntheticColony
diff --git a/Resources/Prototypes/_RMC14/Roles/Jobs/Survivor/Hybrisa_Prospera/Paramarines/Para_Synth.yml b/Resources/Prototypes/_RMC14/Roles/Jobs/Survivor/Hybrisa_Prospera/Paramarines/Para_Synth.yml
index 345757f75a9..106b149d558 100644
--- a/Resources/Prototypes/_RMC14/Roles/Jobs/Survivor/Hybrisa_Prospera/Paramarines/Para_Synth.yml
+++ b/Resources/Prototypes/_RMC14/Roles/Jobs/Survivor/Hybrisa_Prospera/Paramarines/Para_Synth.yml
@@ -1,6 +1,7 @@
- type: job
parent: RMCSurvivorParaBase
id: RMCSurvivorParaSupportSynthetic
+ useSyntheticName: true
name: rmc-job-name-para-synth
ranks:
RMCRankSyntheticColonist: [ ]