diff --git a/Content.Client/DeltaV/Options/UI/Tabs/DeltaTab.xaml b/Content.Client/DeltaV/Options/UI/Tabs/DeltaTab.xaml
new file mode 100644
index 00000000000..f1dae68077d
--- /dev/null
+++ b/Content.Client/DeltaV/Options/UI/Tabs/DeltaTab.xaml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Content.Client/DeltaV/Options/UI/Tabs/DeltaTab.xaml.cs b/Content.Client/DeltaV/Options/UI/Tabs/DeltaTab.xaml.cs
new file mode 100644
index 00000000000..892ddfc15bf
--- /dev/null
+++ b/Content.Client/DeltaV/Options/UI/Tabs/DeltaTab.xaml.cs
@@ -0,0 +1,46 @@
+using Content.Shared.DeltaV.CCVars;
+using Robust.Client.AutoGenerated;
+using Robust.Client.UserInterface;
+using Robust.Client.UserInterface.Controls;
+using Robust.Client.UserInterface.XAML;
+using Robust.Shared.Configuration;
+
+namespace Content.Client.DeltaV.Options.UI.Tabs;
+
+[GenerateTypedNameReferences]
+public sealed partial class DeltaTab : Control
+{
+ [Dependency] private readonly IConfigurationManager _cfg = default!;
+
+ public DeltaTab()
+ {
+ RobustXamlLoader.Load(this);
+ IoCManager.InjectDependencies(this);
+
+ DisableFiltersCheckBox.OnToggled += OnCheckBoxToggled;
+ DisableFiltersCheckBox.Pressed = _cfg.GetCVar(DCCVars.NoVisionFilters);
+
+ ApplyButton.OnPressed += OnApplyButtonPressed;
+ UpdateApplyButton();
+ }
+
+ private void OnCheckBoxToggled(BaseButton.ButtonToggledEventArgs args)
+ {
+ UpdateApplyButton();
+ }
+
+ private void OnApplyButtonPressed(BaseButton.ButtonEventArgs args)
+ {
+ _cfg.SetCVar(DCCVars.NoVisionFilters, DisableFiltersCheckBox.Pressed);
+
+ _cfg.SaveToFile();
+ UpdateApplyButton();
+ }
+
+ private void UpdateApplyButton()
+ {
+ var isNoVisionFiltersSame = DisableFiltersCheckBox.Pressed == _cfg.GetCVar(DCCVars.NoVisionFilters);
+
+ ApplyButton.Disabled = isNoVisionFiltersSame;
+ }
+}
diff --git a/Content.Client/DeltaV/Overlays/UltraVisionOverlay.cs b/Content.Client/DeltaV/Overlays/UltraVisionOverlay.cs
index 64e5e762df6..64c002b609f 100644
--- a/Content.Client/DeltaV/Overlays/UltraVisionOverlay.cs
+++ b/Content.Client/DeltaV/Overlays/UltraVisionOverlay.cs
@@ -2,7 +2,7 @@
using Robust.Client.Player;
using Robust.Shared.Enums;
using Robust.Shared.Prototypes;
-using Content.Shared.DeltaV.Abilities;
+using Content.Shared.Abilities;
namespace Content.Client.DeltaV.Overlays;
@@ -23,22 +23,29 @@ public UltraVisionOverlay()
_ultraVisionShader = _prototypeManager.Index("UltraVision").Instance().Duplicate();
}
+ protected override bool BeforeDraw(in OverlayDrawArgs args)
+ {
+ if (_playerManager.LocalEntity is not { Valid: true } player
+ || !_entityManager.HasComponent(player))
+ {
+ return false;
+ }
+
+ return base.BeforeDraw(in args);
+ }
+
protected override void Draw(in OverlayDrawArgs args)
{
- if (ScreenTexture == null)
+ if (ScreenTexture is null)
return;
- if (_playerManager.LocalPlayer?.ControlledEntity is not {Valid: true} player)
- return;
- if (!_entityManager.HasComponent(player))
- return;
-
- _ultraVisionShader?.SetParameter("SCREEN_TEXTURE", ScreenTexture);
+ _ultraVisionShader.SetParameter("SCREEN_TEXTURE", ScreenTexture);
var worldHandle = args.WorldHandle;
var viewport = args.WorldBounds;
worldHandle.SetTransform(Matrix3.Identity);
worldHandle.UseShader(_ultraVisionShader);
worldHandle.DrawRect(viewport, Color.White);
+ worldHandle.UseShader(null); // important - as of writing, construction overlay breaks without this
}
}
diff --git a/Content.Client/DeltaV/Overlays/UltraVisionSystem.cs b/Content.Client/DeltaV/Overlays/UltraVisionSystem.cs
index 3c23d4f423d..828ca9e5215 100644
--- a/Content.Client/DeltaV/Overlays/UltraVisionSystem.cs
+++ b/Content.Client/DeltaV/Overlays/UltraVisionSystem.cs
@@ -1,11 +1,16 @@
-using Content.Shared.DeltaV.Abilities;
+using Content.Shared.Abilities;
+using Content.Shared.DeltaV.CCVars;
using Robust.Client.Graphics;
+using Robust.Shared.Configuration;
+using Robust.Shared.Player;
namespace Content.Client.DeltaV.Overlays;
public sealed partial class UltraVisionSystem : EntitySystem
{
[Dependency] private readonly IOverlayManager _overlayMan = default!;
+ [Dependency] private readonly IConfigurationManager _cfg = default!;
+ [Dependency] private readonly ISharedPlayerManager _playerMan = default!;
private UltraVisionOverlay _overlay = default!;
@@ -15,17 +20,42 @@ public override void Initialize()
SubscribeLocalEvent(OnUltraVisionInit);
SubscribeLocalEvent(OnUltraVisionShutdown);
-
+ SubscribeLocalEvent(OnPlayerAttached);
+ SubscribeLocalEvent(OnPlayerDetached);
+
+ Subs.CVar(_cfg, DCCVars.NoVisionFilters, OnNoVisionFiltersChanged);
+
_overlay = new();
}
private void OnUltraVisionInit(EntityUid uid, UltraVisionComponent component, ComponentInit args)
{
- _overlayMan.AddOverlay(_overlay);
+ if (uid == _playerMan.LocalEntity && !_cfg.GetCVar(DCCVars.NoVisionFilters))
+ _overlayMan.AddOverlay(_overlay);
}
private void OnUltraVisionShutdown(EntityUid uid, UltraVisionComponent component, ComponentShutdown args)
+ {
+ if (uid == _playerMan.LocalEntity)
+ _overlayMan.RemoveOverlay(_overlay);
+ }
+
+ private void OnPlayerAttached(EntityUid uid, UltraVisionComponent component, LocalPlayerAttachedEvent args)
+ {
+ if (!_cfg.GetCVar(DCCVars.NoVisionFilters))
+ _overlayMan.AddOverlay(_overlay);
+ }
+
+ private void OnPlayerDetached(EntityUid uid, UltraVisionComponent component, LocalPlayerDetachedEvent args)
{
_overlayMan.RemoveOverlay(_overlay);
}
+
+ private void OnNoVisionFiltersChanged(bool enabled)
+ {
+ if (enabled)
+ _overlayMan.RemoveOverlay(_overlay);
+ else
+ _overlayMan.AddOverlay(_overlay);
+ }
}
diff --git a/Content.Client/Nyanotrasen/Overlays/DogVisionOverlay.cs b/Content.Client/Nyanotrasen/Overlays/DogVisionOverlay.cs
new file mode 100644
index 00000000000..01fa35fc609
--- /dev/null
+++ b/Content.Client/Nyanotrasen/Overlays/DogVisionOverlay.cs
@@ -0,0 +1,51 @@
+using Robust.Client.Graphics;
+using Robust.Client.Player;
+using Robust.Shared.Enums;
+using Robust.Shared.Prototypes;
+using Content.Shared.Abilities;
+
+namespace Content.Client.Nyanotrasen.Overlays;
+
+public sealed partial class DogVisionOverlay : Overlay
+{
+ [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
+ [Dependency] private readonly IPlayerManager _playerManager = default!;
+ [Dependency] IEntityManager _entityManager = default!;
+
+
+ public override bool RequestScreenTexture => true;
+ public override OverlaySpace Space => OverlaySpace.WorldSpace;
+ private readonly ShaderInstance _dogVisionShader;
+
+ public DogVisionOverlay()
+ {
+ IoCManager.InjectDependencies(this);
+ _dogVisionShader = _prototypeManager.Index("DogVision").Instance().Duplicate();
+ }
+
+ protected override bool BeforeDraw(in OverlayDrawArgs args)
+ {
+ if (_playerManager.LocalEntity is not { Valid: true } player
+ || !_entityManager.HasComponent(player))
+ {
+ return false;
+ }
+
+ return base.BeforeDraw(in args);
+ }
+
+ protected override void Draw(in OverlayDrawArgs args)
+ {
+ if (ScreenTexture is null)
+ return;
+
+ _dogVisionShader.SetParameter("SCREEN_TEXTURE", ScreenTexture);
+
+ var worldHandle = args.WorldHandle;
+ var viewport = args.WorldBounds;
+ worldHandle.SetTransform(Matrix3.Identity);
+ worldHandle.UseShader(_dogVisionShader);
+ worldHandle.DrawRect(viewport, Color.White);
+ worldHandle.UseShader(null); // important - as of writing, construction overlay breaks without this
+ }
+}
diff --git a/Content.Client/Nyanotrasen/Overlays/Overlays/DogVisionSystem.cs b/Content.Client/Nyanotrasen/Overlays/DogVisionSystem.cs
similarity index 63%
rename from Content.Client/Nyanotrasen/Overlays/Overlays/DogVisionSystem.cs
rename to Content.Client/Nyanotrasen/Overlays/DogVisionSystem.cs
index 4ca4b25b48c..b52d23f1958 100644
--- a/Content.Client/Nyanotrasen/Overlays/Overlays/DogVisionSystem.cs
+++ b/Content.Client/Nyanotrasen/Overlays/DogVisionSystem.cs
@@ -1,14 +1,16 @@
using Content.Shared.Abilities;
-using Robust.Client.GameObjects;
+using Content.Shared.DeltaV.CCVars;
using Robust.Client.Graphics;
-using Robust.Client.Player;
+using Robust.Shared.Configuration;
using Robust.Shared.Player;
namespace Content.Client.Nyanotrasen.Overlays;
-public sealed class DogVisionSystem : EntitySystem
+
+public sealed partial class DogVisionSystem : EntitySystem
{
- [Dependency] private readonly IPlayerManager _player = default!;
[Dependency] private readonly IOverlayManager _overlayMan = default!;
+ [Dependency] private readonly IConfigurationManager _cfg = default!;
+ [Dependency] private readonly ISharedPlayerManager _playerMan = default!;
private DogVisionOverlay _overlay = default!;
@@ -18,34 +20,42 @@ public override void Initialize()
SubscribeLocalEvent(OnDogVisionInit);
SubscribeLocalEvent(OnDogVisionShutdown);
-
SubscribeLocalEvent(OnPlayerAttached);
SubscribeLocalEvent(OnPlayerDetached);
+ Subs.CVar(_cfg, DCCVars.NoVisionFilters, OnNoVisionFiltersChanged);
+
_overlay = new();
}
- private void OnPlayerAttached(EntityUid uid, DogVisionComponent component, LocalPlayerAttachedEvent args)
+ private void OnDogVisionInit(EntityUid uid, DogVisionComponent component, ComponentInit args)
{
- _overlayMan.AddOverlay(_overlay);
+ if (uid == _playerMan.LocalEntity && !_cfg.GetCVar(DCCVars.NoVisionFilters))
+ _overlayMan.AddOverlay(_overlay);
}
- private void OnPlayerDetached(EntityUid uid, DogVisionComponent component, LocalPlayerDetachedEvent args)
+ private void OnDogVisionShutdown(EntityUid uid, DogVisionComponent component, ComponentShutdown args)
{
- _overlayMan.RemoveOverlay(_overlay);
+ if (uid == _playerMan.LocalEntity)
+ _overlayMan.RemoveOverlay(_overlay);
}
- private void OnDogVisionInit(EntityUid uid, DogVisionComponent component, ComponentInit args)
+ private void OnPlayerAttached(EntityUid uid, DogVisionComponent component, LocalPlayerAttachedEvent args)
{
- if (_player.LocalPlayer?.ControlledEntity == uid)
+ if (!_cfg.GetCVar(DCCVars.NoVisionFilters))
_overlayMan.AddOverlay(_overlay);
}
- private void OnDogVisionShutdown(EntityUid uid, DogVisionComponent component, ComponentShutdown args)
+ private void OnPlayerDetached(EntityUid uid, DogVisionComponent component, LocalPlayerDetachedEvent args)
{
- if (_player.LocalPlayer?.ControlledEntity == uid)
- {
+ _overlayMan.RemoveOverlay(_overlay);
+ }
+
+ private void OnNoVisionFiltersChanged(bool enabled)
+ {
+ if (enabled)
_overlayMan.RemoveOverlay(_overlay);
- }
+ else
+ _overlayMan.AddOverlay(_overlay);
}
}
diff --git a/Content.Client/Nyanotrasen/Overlays/Overlays/DogVisionOverlay.cs b/Content.Client/Nyanotrasen/Overlays/Overlays/DogVisionOverlay.cs
deleted file mode 100644
index 7aa6864a2b2..00000000000
--- a/Content.Client/Nyanotrasen/Overlays/Overlays/DogVisionOverlay.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using Robust.Client.Graphics;
-using Robust.Client.Player;
-using Robust.Shared.Enums;
-using Robust.Shared.Prototypes;
-using Content.Shared.Abilities;
-
-namespace Content.Client.Nyanotrasen.Overlays
-{
- public sealed class DogVisionOverlay : Overlay
- {
- [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
- [Dependency] private readonly IPlayerManager _playerManager = default!;
- [Dependency] IEntityManager _entityManager = default!;
-
-
- public override bool RequestScreenTexture => true;
- public override OverlaySpace Space => OverlaySpace.WorldSpace;
- private readonly ShaderInstance _dogVisionShader;
-
- public DogVisionOverlay()
- {
- IoCManager.InjectDependencies(this);
- _dogVisionShader = _prototypeManager.Index("DogVision").Instance().Duplicate();
- }
-
- protected override void Draw(in OverlayDrawArgs args)
- {
- if (ScreenTexture == null)
- return;
- if (_playerManager.LocalPlayer?.ControlledEntity is not {Valid: true} player)
- return;
- if (!_entityManager.HasComponent(player))
- return;
-
- _dogVisionShader?.SetParameter("SCREEN_TEXTURE", ScreenTexture);
-
-
- var worldHandle = args.WorldHandle;
- var viewport = args.WorldBounds;
- worldHandle.SetTransform(Matrix3.Identity);
- worldHandle.UseShader(_dogVisionShader);
- worldHandle.DrawRect(viewport, Color.White);
- }
- }
-}
diff --git a/Content.Client/Options/UI/OptionsMenu.xaml b/Content.Client/Options/UI/OptionsMenu.xaml
index ab3b88ca4e6..f445f18a2ca 100644
--- a/Content.Client/Options/UI/OptionsMenu.xaml
+++ b/Content.Client/Options/UI/OptionsMenu.xaml
@@ -1,5 +1,6 @@
@@ -8,5 +9,6 @@
+
diff --git a/Content.Client/Options/UI/OptionsMenu.xaml.cs b/Content.Client/Options/UI/OptionsMenu.xaml.cs
index c3a8e664705..f0b0cae7578 100644
--- a/Content.Client/Options/UI/OptionsMenu.xaml.cs
+++ b/Content.Client/Options/UI/OptionsMenu.xaml.cs
@@ -20,6 +20,7 @@ public OptionsMenu()
Tabs.SetTabTitle(2, Loc.GetString("ui-options-tab-controls"));
Tabs.SetTabTitle(3, Loc.GetString("ui-options-tab-audio"));
Tabs.SetTabTitle(4, Loc.GetString("ui-options-tab-network"));
+ Tabs.SetTabTitle(5, Loc.GetString("ui-options-tab-extra")); // Extra settings
UpdateTabs();
}
diff --git a/Content.Server/Cloning/CloningSystem.cs b/Content.Server/Cloning/CloningSystem.cs
index e5e2b7d7d59..46b06eb7a11 100644
--- a/Content.Server/Cloning/CloningSystem.cs
+++ b/Content.Server/Cloning/CloningSystem.cs
@@ -203,6 +203,19 @@ public bool TryCloning(EntityUid uid, EntityUid bodyToClone, Entity(bodyToClone, out _))
+ {
+ if (clonePod.ConnectedConsole != null)
+ {
+ _chatSystem.TrySendInGameICMessage(clonePod.ConnectedConsole.Value,
+ Loc.GetString("cloning-console-uncloneable-trait-error"),
+ InGameICChatType.Speak, false);
+ }
+
+ return false;
+ }
+
// biomass checks
var biomassAmount = _material.GetMaterialAmount(uid, clonePod.RequiredMaterial);
diff --git a/Content.Server/Traits/Assorted/UncloneableComponent.cs b/Content.Server/Traits/Assorted/UncloneableComponent.cs
new file mode 100644
index 00000000000..650b78cd0f2
--- /dev/null
+++ b/Content.Server/Traits/Assorted/UncloneableComponent.cs
@@ -0,0 +1,10 @@
+namespace Content.Server.Traits.Assorted;
+
+///
+/// This is used for the uncloneable trait.
+///
+[RegisterComponent]
+public sealed partial class UncloneableComponent : Component
+{
+
+}
diff --git a/Content.Server/_NF/VulpLanguage/VulpLangaugeListenerComponent.cs b/Content.Server/_NF/VulpLanguage/VulpLangaugeListenerComponent.cs
deleted file mode 100644
index 5f4ca7f3ca3..00000000000
--- a/Content.Server/_NF/VulpLanguage/VulpLangaugeListenerComponent.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace Content.Server.VulpLangauge
-{
- [RegisterComponent]
- public partial class VulpLangaugeListenerComponent : Component
- {
- }
-}
diff --git a/Content.Server/_NF/VulpLanguage/VulpLanguageSpeakerComponent.cs b/Content.Server/_NF/VulpLanguage/VulpLanguageSpeakerComponent.cs
deleted file mode 100644
index ac1b6d3aa36..00000000000
--- a/Content.Server/_NF/VulpLanguage/VulpLanguageSpeakerComponent.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace Content.Server.VulpLangauge
-{
- [RegisterComponent]
- public partial class VulpLanguageSpeakerComponent : Component
- {
- }
-}
diff --git a/Content.Server/_NF/VulpLanguage/VulpTranslatorComponent.cs b/Content.Server/_NF/VulpLanguage/VulpTranslatorComponent.cs
deleted file mode 100644
index 0ce8b145f84..00000000000
--- a/Content.Server/_NF/VulpLanguage/VulpTranslatorComponent.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace Content.Server.VulpLangauge
-{
- [RegisterComponent]
- public partial class VulpTranslatorComponent : Component
- {
- }
-}
diff --git a/Content.Shared/DeltaV/Abilities/UltraVisionComponent.cs b/Content.Shared/DeltaV/Abilities/UltraVisionComponent.cs
index c601d5bd8a8..5f631c54f25 100644
--- a/Content.Shared/DeltaV/Abilities/UltraVisionComponent.cs
+++ b/Content.Shared/DeltaV/Abilities/UltraVisionComponent.cs
@@ -1,5 +1,5 @@
using Robust.Shared.GameStates;
-namespace Content.Shared.DeltaV.Abilities;
+namespace Content.Shared.Abilities;
[RegisterComponent]
[NetworkedComponent]
diff --git a/Content.Shared/DeltaV/CCVars/DCCVars.cs b/Content.Shared/DeltaV/CCVars/DCCVars.cs
new file mode 100644
index 00000000000..bf1fe82adcc
--- /dev/null
+++ b/Content.Shared/DeltaV/CCVars/DCCVars.cs
@@ -0,0 +1,24 @@
+using Robust.Shared.Configuration;
+
+namespace Content.Shared.DeltaV.CCVars;
+
+///
+/// DeltaV specific cvars.
+///
+[CVarDefs]
+// ReSharper disable once InconsistentNaming - Shush you
+public sealed class DCCVars
+{
+ ///
+ /// Anti-EORG measure. Will add pacified to all players upon round end.
+ /// Its not perfect, but gets the job done.
+ ///
+ //public static readonly CVarDef RoundEndPacifist =
+ // CVarDef.Create("game.round_end_pacifist", false, CVar.SERVERONLY);
+
+ ///
+ /// Disables all vision filters for species like Vulpkanin or Harpies. There are good reasons someone might want to disable these.
+ ///
+ public static readonly CVarDef NoVisionFilters =
+ CVarDef.Create("accessibility.no_vision_filters", false, CVar.CLIENTONLY | CVar.ARCHIVE);
+}
diff --git a/Content.Shared/Station/SharedStationSpawningSystem.cs b/Content.Shared/Station/SharedStationSpawningSystem.cs
index 9522daed717..8a063938ee3 100644
--- a/Content.Shared/Station/SharedStationSpawningSystem.cs
+++ b/Content.Shared/Station/SharedStationSpawningSystem.cs
@@ -2,7 +2,6 @@
using Content.Shared.Hands.EntitySystems;
using Content.Shared.Inventory;
using Content.Shared.Roles;
-using Content.Shared.VulpLangauge;
using Content.Shared.Storage;
using Content.Shared.Storage.EntitySystems;
using Robust.Shared.Collections;
diff --git a/Content.Shared/_NF/VulpLangauge/VulpGiveTranslatorComponent.cs b/Content.Shared/_NF/VulpLangauge/VulpGiveTranslatorComponent.cs
deleted file mode 100644
index 5ca2763dfcd..00000000000
--- a/Content.Shared/_NF/VulpLangauge/VulpGiveTranslatorComponent.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace Content.Shared.VulpLangauge
-{
- [RegisterComponent]
- public partial class VulpGiveTranslatorComponent : Component
- {
- }
-}
diff --git a/Resources/Locale/en-US/deltav/escape-menu/options-menu.ftl b/Resources/Locale/en-US/deltav/escape-menu/options-menu.ftl
new file mode 100644
index 00000000000..aa491ed1f6d
--- /dev/null
+++ b/Resources/Locale/en-US/deltav/escape-menu/options-menu.ftl
@@ -0,0 +1,4 @@
+ui-options-tab-extra = Extra
+ui-options-general-forknotice = Note: These settings are fork-specific and might not apply on other servers.
+
+ui-options-no-filters = Disable species vision filters
diff --git a/Resources/Locale/en-US/deltav/traits/traits.ftl b/Resources/Locale/en-US/deltav/traits/traits.ftl
index d10746274a9..b73c63215b9 100644
--- a/Resources/Locale/en-US/deltav/traits/traits.ftl
+++ b/Resources/Locale/en-US/deltav/traits/traits.ftl
@@ -4,3 +4,10 @@ trait-scottish-accent-desc = Fer tha folk who come frae Hielan clan.
trait-ultravision-name = Ultraviolet Vision
trait-ultravision-desc = Whether through custom bionic eyes, random mutation,
or being a Harpy, you perceive the world with ultraviolet light.
+
+trait-deuteranopia-name = Deuteranopia
+trait-deuteranopia-desc = Whether through custom bionic eyes, random mutation,
+ or being a Vulpkanin, you have red–green colour blindness.
+
+trait-uncloneable-name = Uncloneable
+trait-uncloneable-desc = Cannot be cloned
\ No newline at end of file
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/vendomat.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/vendomat.yml
index f494bbc2c4c..02569537810 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/vendomat.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/vendomat.yml
@@ -11,5 +11,4 @@
CapacitorStockPart: 8
MicroManipulatorStockPart: 8
Beaker: 8 # Frontier - beakers are required for some machines
- VulpTranslator: 10
AirFreshener: 10
diff --git a/Resources/Prototypes/DeltaV/Damage/modifier_sets.yml b/Resources/Prototypes/DeltaV/Damage/modifier_sets.yml
index a2b8be8bf6a..3d90f3c3165 100644
--- a/Resources/Prototypes/DeltaV/Damage/modifier_sets.yml
+++ b/Resources/Prototypes/DeltaV/Damage/modifier_sets.yml
@@ -8,4 +8,4 @@
coefficients:
Blunt: 1.15
Slash: 1.15
- Piercing: 1.15
+ Piercing: 1.15
\ No newline at end of file
diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Player/vulpkanin.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/vulpkanin.yml
index aa8c90b942c..6ce1e0e4f71 100644
--- a/Resources/Prototypes/DeltaV/Entities/Mobs/Player/vulpkanin.yml
+++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/vulpkanin.yml
@@ -7,9 +7,9 @@
- type: CombatMode
- type: InteractionPopup
successChance: 1
- interactSuccessString: pat-success-generic
+ interactSuccessString: pat-success-generic # Frontier - pat-success-generic