diff --git a/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs b/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs
index 29b7b91895..24f413dceb 100644
--- a/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs
+++ b/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs
@@ -184,6 +184,9 @@ public sealed class TraitorRuleSystem : GameRuleSystem
var startingBalance = _cfg.GetCVar(CCVars.TraitorStartingBalance);
+ if (mind.CurrentJob != null)
+ startingBalance = Math.Max(startingBalance - mind.CurrentJob.Prototype.AntagAdvantage, 0);
+
if (!_uplink.AddUplink(mind.OwnedEntity!.Value, startingBalance))
return false;
diff --git a/Content.Shared/Roles/JobPrototype.cs b/Content.Shared/Roles/JobPrototype.cs
index 300870bcaa..14bd3548bb 100644
--- a/Content.Shared/Roles/JobPrototype.cs
+++ b/Content.Shared/Roles/JobPrototype.cs
@@ -53,6 +53,13 @@ namespace Content.Shared.Roles
[DataField("weight")]
public int Weight { get; private set; }
+ ///
+ /// A numerical score for how much easier this job is for antagonists.
+ /// For traitors, reduces starting TC by this amount. Other gamemodes can use it for whatever they find fitting.
+ ///
+ [DataField("antagAdvantage")]
+ public int AntagAdvantage = 0;
+
[DataField("startingGear", customTypeSerializer: typeof(PrototypeIdSerializer))]
public string? StartingGear { get; private set; }