diff --git a/Content.Shared/Execution/ExecutionComponent.cs b/Content.Shared/Execution/ExecutionComponent.cs
index 31477ead69..5dfb8ee634 100644
--- a/Content.Shared/Execution/ExecutionComponent.cs
+++ b/Content.Shared/Execution/ExecutionComponent.cs
@@ -23,49 +23,49 @@ public sealed partial class ExecutionComponent : Component
///
/// Shown to the person performing the melee execution (attacker) upon starting a melee execution.
///
- [DataField]
+ [DataField, AutoNetworkedField] //CP14 AutoNetworkedField
public LocId InternalMeleeExecutionMessage = "execution-popup-melee-initial-internal";
///
/// Shown to bystanders and the victim of a melee execution when a melee execution is started.
///
- [DataField]
+ [DataField, AutoNetworkedField] //CP14 AutoNetworkedField
public LocId ExternalMeleeExecutionMessage = "execution-popup-melee-initial-external";
///
/// Shown to the attacker upon completion of a melee execution.
///
- [DataField]
+ [DataField, AutoNetworkedField] //CP14 AutoNetworkedField
public LocId CompleteInternalMeleeExecutionMessage = "execution-popup-melee-complete-internal";
///
/// Shown to bystanders and the victim of a melee execution when a melee execution is completed.
///
- [DataField]
+ [DataField, AutoNetworkedField] //CP14 AutoNetworkedField
public LocId CompleteExternalMeleeExecutionMessage = "execution-popup-melee-complete-external";
///
/// Shown to the person performing the self execution when starting one.
///
- [DataField]
+ [DataField, AutoNetworkedField] //CP14 AutoNetworkedField
public LocId InternalSelfExecutionMessage = "execution-popup-self-initial-internal";
///
/// Shown to bystanders near a self execution when one is started.
///
- [DataField]
+ [DataField, AutoNetworkedField] //CP14 AutoNetworkedField
public LocId ExternalSelfExecutionMessage = "execution-popup-self-initial-external";
///
/// Shown to the person performing a self execution upon completion of a do-after or on use of /suicide with a weapon that has the Execution component.
///
- [DataField]
+ [DataField, AutoNetworkedField] //CP14 AutoNetworkedField
public LocId CompleteInternalSelfExecutionMessage = "execution-popup-self-complete-internal";
///
/// Shown to bystanders when a self execution is completed or a suicide via execution weapon happens nearby.
///
- [DataField]
+ [DataField, AutoNetworkedField] //CP14 AutoNetworkedField
public LocId CompleteExternalSelfExecutionMessage = "execution-popup-self-complete-external";
// Not networked because this is transient inside of a tick.
diff --git a/Resources/Locale/en-US/_CP14/execution/execution.ftl b/Resources/Locale/en-US/_CP14/execution/execution.ftl
new file mode 100644
index 0000000000..b9ad691e7a
--- /dev/null
+++ b/Resources/Locale/en-US/_CP14/execution/execution.ftl
@@ -0,0 +1,14 @@
+# All the below localisation strings have access to the following variables
+# attacker (the person committing the execution)
+# victim (the person being executed)
+# weapon (the weapon used for the execution)
+
+cp14-execution-popup-melee-initial-internal = You ready {THE($weapon)} to execute {THE($victim)}.
+cp14-execution-popup-melee-initial-external = { CAPITALIZE(THE($attacker)) } readies {POSS-ADJ($attacker)} {$weapon} to execute {THE($victim)}.
+cp14-execution-popup-melee-complete-internal = You executed {THE($victim)}!
+cp14-execution-popup-melee-complete-external = { CAPITALIZE(THE($attacker)) } executed {THE($victim)}!
+
+cp14-execution-popup-self-initial-internal = You ready {THE($weapon)} against your own head.
+cp14-execution-popup-self-initial-external = { CAPITALIZE(THE($attacker)) } readies {POSS-ADJ($attacker)} {$weapon} against their own head.
+cp14-execution-popup-self-complete-internal = You killed yourself!
+cp14-execution-popup-self-complete-external = { CAPITALIZE(THE($attacker)) } kills themself!
diff --git a/Resources/Prototypes/_CP14/ModularCraft/Blade/hammer.yml b/Resources/Prototypes/_CP14/ModularCraft/Blade/hammer.yml
index 3f1efbdfa8..fea5329389 100644
--- a/Resources/Prototypes/_CP14/ModularCraft/Blade/hammer.yml
+++ b/Resources/Prototypes/_CP14/ModularCraft/Blade/hammer.yml
@@ -9,6 +9,7 @@
- !type:Inherit
copyFrom:
- BaseWeaponThrowable
+ - BaseWeaponExecution
- !type:AddComponents
components:
- type: Tool
diff --git a/Resources/Prototypes/_CP14/ModularCraft/Blade/hoe.yml b/Resources/Prototypes/_CP14/ModularCraft/Blade/hoe.yml
index 2f28e2769d..dad8465f91 100644
--- a/Resources/Prototypes/_CP14/ModularCraft/Blade/hoe.yml
+++ b/Resources/Prototypes/_CP14/ModularCraft/Blade/hoe.yml
@@ -7,6 +7,7 @@
copyFrom:
- BaseWeaponChemical
- BaseWeaponThrowable
+ - BaseWeaponExecution
#components: TODO Add gathering tag
- !type:AddComponents
override: true
diff --git a/Resources/Prototypes/_CP14/ModularCraft/Blade/mace.yml b/Resources/Prototypes/_CP14/ModularCraft/Blade/mace.yml
index 0eff97f038..bb578b9d3e 100644
--- a/Resources/Prototypes/_CP14/ModularCraft/Blade/mace.yml
+++ b/Resources/Prototypes/_CP14/ModularCraft/Blade/mace.yml
@@ -8,6 +8,7 @@
- !type:Inherit
copyFrom:
- BaseWeaponChemical
+ - BaseWeaponExecution
- !type:EditMeleeWeapon
resetOnHandSelected: true # Disable fast swap
attackRateMultiplier: 0.85
diff --git a/Resources/Prototypes/_CP14/ModularCraft/Blade/pickaxe.yml b/Resources/Prototypes/_CP14/ModularCraft/Blade/pickaxe.yml
index a193428aa1..829c85e64c 100644
--- a/Resources/Prototypes/_CP14/ModularCraft/Blade/pickaxe.yml
+++ b/Resources/Prototypes/_CP14/ModularCraft/Blade/pickaxe.yml
@@ -1,6 +1,9 @@
- type: modularPart
id: BaseBladePickaxe
modifiers:
+ - !type:Inherit
+ copyFrom:
+ - BaseWeaponExecution
- !type:AddComponents
override: true
components:
diff --git a/Resources/Prototypes/_CP14/ModularCraft/Blade/shovel.yml b/Resources/Prototypes/_CP14/ModularCraft/Blade/shovel.yml
index f5b5c167f6..2faa6d2e9f 100644
--- a/Resources/Prototypes/_CP14/ModularCraft/Blade/shovel.yml
+++ b/Resources/Prototypes/_CP14/ModularCraft/Blade/shovel.yml
@@ -1,6 +1,9 @@
- type: modularPart
id: BaseBladeShovel
modifiers:
+ - !type:Inherit
+ copyFrom:
+ - BaseWeaponExecution
- !type:AddComponents
components:
- type: Shovel
diff --git a/Resources/Prototypes/_CP14/ModularCraft/baseModularModifier.yml b/Resources/Prototypes/_CP14/ModularCraft/baseModularModifier.yml
index ff4e2b9a99..89f3fe70aa 100644
--- a/Resources/Prototypes/_CP14/ModularCraft/baseModularModifier.yml
+++ b/Resources/Prototypes/_CP14/ModularCraft/baseModularModifier.yml
@@ -66,6 +66,7 @@
types:
- Knife
- type: CP14WallpaperRemover
+ - type: Execution
- type: modularPart
id: BaseWeaponRangedChemical
@@ -98,3 +99,18 @@
components:
- type: Item
size: Small
+
+- type: modularPart
+ id: BaseWeaponExecution
+ modifiers:
+ - !type:AddComponents
+ components:
+ - type: Execution
+ internalMeleeExecutionMessage: "cp14-execution-popup-melee-initial-internal"
+ externalMeleeExecutionMessage: "cp14-execution-popup-melee-initial-external"
+ completeInternalMeleeExecutionMessage: "cp14-execution-popup-melee-complete-internal"
+ completeExternalMeleeExecutionMessage: "cp14-execution-popup-melee-complete-external"
+ internalSelfExecutionMessage: "cp14-execution-popup-self-initial-internal"
+ externalSelfExecutionMessage: "cp14-execution-popup-self-initial-external"
+ completeInternalSelfExecutionMessage: "cp14-execution-popup-self-complete-internal"
+ completeExternalSelfExecutionMessage: "cp14-execution-popup-self-complete-external"