zg%HGX48Sx^0Md;YGDMe8f
z0L=3YAQlk|^nJf8r2ufwh3`$%1QChEmsH@uIY-;JVQ;Ms5`Pjz9Wci1-g~BLqHSBo
zaSZ>o)nEfgOP?lv_cU||lgXpat
w;M9emIv}}yv?IV(1Yj73TUm)jB9V9--_}TIlNG%usQ>@~07*qoM6N<$f_E^5b^rhX
diff --git a/Resources/Textures/Objects/Misc/coins.rsi/coin_salv_10000.png b/Resources/Textures/Objects/Misc/coins.rsi/coin_salv_10000.png
index a23702a35fe1b428b1d365b3381b30a28fb5a98a..8c8a7d1e926af442a3c6758895ca4c6e3d360531 100644
GIT binary patch
delta 356
zcmV-q0h|8c0*nKYF@Hu$L_t(oh3%CwZi6rshQC%tj=T_gV`5?9241)c7l9!ILvoSa
zfFrQ@5bSJ-EJ!E=UBE(BhuBdYRpp;-A^-1x-$OR++V$V{_RQg`s%C&72q=oe%ggJ~
zT386d@puHF?|T5}An!iKg%AiK0I2I40HqX4DK3}G{G$O@HGfS*9LMB&P8fzZh^w4%
zm1Q}P<46=m#Bq!<#(vXUbGzMO8ONie@FLJO4aOMKG^K4@(lo^wV=3J4_lLbcd;%m%
zg4Wuu!!Sf^O%z28!{FrQOh8Hr!1a2C1^sqEO_P(K7Xg;ejWM)sOO|D1S?1;A^$$oX
zEr}#a=(>(+nq8c`$Cto3jyA}u^2!M7_wNy4L*Y9DF5PNs{@za5C|avsOuU4r4&jjE|<&vqXAYmO@Bii$K-iV7=|{8tDJC^
zWjT-INEAiHaf~s>?rE*L-EOdquV=l_ASEbZrZOF$`Q
z*Qe9zVc)+;fDMK32)K0b9pGyafb;qMl-I6ZyI!VGN7|0ak{IUC00000NkvXXu0mjf
D6UD19
delta 310
zcmV-60m=T21Kt9VF@G3IL_t(oh3%EGjf5~11!qr(K#mYKPy`7j&;gC$fPjEX+zE+`
zpaw*Qgb27~u~>A$eWMeJC&D1!A3q`d;s#yU?Ep~}(KOA=C&TNdV{jbDq-hGkG)(|v
z5wSqmb$cAg01U(6?pIaiL?ja5Qh|eE7^v&ot&K5GLV~CPt$+2tEDPf}Qr9)sTKB9d
z3MV0H;Y+Oi##&2J6mIxgX4|$u=XeVo!>{Xko<%ug0i_gqo@0#p7;KE8EKAmP73Fz<
zgl7qWvMjxFyabd|PU1ki^IHPTvV4f}{wev0+-l$u0Z5X>Cn_`$8hE||@o}uR-mfA6
zS(dr$wr&6SI4^#*0ZuLa)_`R9-U3$Px$MM*?KR9J=Wl`(FEFcgNrRz;4y5P4%_Vc`Z|xCs}5Ap=8lk=%eIu=o({Y=|sK
zC<9%(E+Q2*L4q1fcJG
z0Oug@KE;I)2q6Hd>ly&16iO*Bm&^R40ai6lLmbECc}^IHHi)a7aFt~_kK;%bMZ|H8
zF~)w=T64SIU>V1wqwpfoG!4cW(ln)QThcVe7-K2i@ArqjK70ZsNrKkeuEQ`yYfThI
z48!2$_
literal 0
HcmV?d00001
From 64247b2cf78013ee85fdf78338509128267daf5e Mon Sep 17 00:00:00 2001
From: MNX <56132549+Mehnix@users.noreply.github.com>
Date: Sun, 1 Feb 2026 02:30:51 +0000
Subject: [PATCH 05/12] Oops
Missing DataField
Missing RSI field
---
Content.Shared/Cargo/Prototypes/CargoAccountPrototype.cs | 1 +
Resources/Textures/Objects/Misc/coins.rsi/meta.json | 3 +++
2 files changed, 4 insertions(+)
diff --git a/Content.Shared/Cargo/Prototypes/CargoAccountPrototype.cs b/Content.Shared/Cargo/Prototypes/CargoAccountPrototype.cs
index 5a0877965970f..fa0c1bd8adba1 100644
--- a/Content.Shared/Cargo/Prototypes/CargoAccountPrototype.cs
+++ b/Content.Shared/Cargo/Prototypes/CargoAccountPrototype.cs
@@ -46,5 +46,6 @@ public sealed partial class CargoAccountPrototype : IPrototype
///
/// Whether the account is Independently operated, and so should not appear within the funding allocation console
///
+ [DataField]
public bool Independent = false;
}
diff --git a/Resources/Textures/Objects/Misc/coins.rsi/meta.json b/Resources/Textures/Objects/Misc/coins.rsi/meta.json
index f433aec04fcc7..be4aba77a8f7e 100644
--- a/Resources/Textures/Objects/Misc/coins.rsi/meta.json
+++ b/Resources/Textures/Objects/Misc/coins.rsi/meta.json
@@ -31,6 +31,9 @@
{
"name": "coin_salv_1000"
},
+ {
+ "name": "coin_salv_5000"
+ },
{
"name": "coin_salv_10000"
},
From 6d93da1a199519d813fa0b5d2ba94b0bf3f650c0 Mon Sep 17 00:00:00 2001
From: MNX <56132549+Mehnix@users.noreply.github.com>
Date: Sun, 1 Feb 2026 02:53:15 +0000
Subject: [PATCH 06/12] The Evil and Malicious Typo
Testing code before pushing it? Damn why would I do that? It's just a 2-line quick and simple update made at half 2 in the morning after all. There's no way you could mess that up. Like who'd ever do that. Nobody. Nope.
Alternative PR Name: Ice that t
---
.../Prototypes/Entities/Objects/Specific/Salvage/ticket.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Salvage/ticket.yml b/Resources/Prototypes/Entities/Objects/Specific/Salvage/ticket.yml
index bf22ec67ad26f..7d7693271dc18 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Salvage/ticket.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Salvage/ticket.yml
@@ -15,7 +15,7 @@
- coin_salv
- coin_salv_100
- coin_salv_1000
- - coint_salv_5000
+ - coin_salv_5000
- coin_salv_10000
- coin_salv_25000
layerFunction: Threshold
From ace3fa228628372b9eadcde0513a4f4f45881685 Mon Sep 17 00:00:00 2001
From: MNX <56132549+Mehnix@users.noreply.github.com>
Date: Sun, 1 Feb 2026 03:11:58 +0000
Subject: [PATCH 07/12] PKA Arbitrage
Made them worth less
---
Resources/Prototypes/Entities/Objects/Tools/pka_upgrade.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Resources/Prototypes/Entities/Objects/Tools/pka_upgrade.yml b/Resources/Prototypes/Entities/Objects/Tools/pka_upgrade.yml
index e06597c0fab24..01c30f5078eb4 100644
--- a/Resources/Prototypes/Entities/Objects/Tools/pka_upgrade.yml
+++ b/Resources/Prototypes/Entities/Objects/Tools/pka_upgrade.yml
@@ -11,7 +11,7 @@
size: Small
- type: GunUpgrade
- type: StaticPrice
- price: 750
+ price: 300
- type: Tag
tags:
- PKAUpgrade
From 9ef042cf0ad52dcc0d35b9f02195d84586b4facb Mon Sep 17 00:00:00 2001
From: MNX <56132549+Mehnix@users.noreply.github.com>
Date: Sun, 1 Feb 2026 04:26:50 +0000
Subject: [PATCH 08/12] More nitpicks
You only need one stack of steel to make the shuttle
Less memey description
---
Resources/Prototypes/Catalog/Fills/Crates/salvage.yml | 3 +--
Resources/Prototypes/Entities/Structures/Machines/lathe.yml | 3 ---
2 files changed, 1 insertion(+), 5 deletions(-)
diff --git a/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml b/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml
index b9aab4eb75e67..9140c9c1bd3fd 100644
--- a/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml
+++ b/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml
@@ -210,7 +210,7 @@
id: CratePKAUpgrades
parent: CrateScience
name: PKA upgrade kit crate
- description: Contains 1 of each PKA upgrade. For use when the science department doesn't research armory technology again.
+ description: Contains 1 of each PKA upgrade. An alternative for when the Science Department is understaffed.
components:
- type: StorageFill
contents:
@@ -237,7 +237,6 @@
- id: ShuttleConsoleCircuitboard
- id: CableApcStack
- id: SheetSteel
- amount: 2
- type: entity
parent: CrateGenericSteel
diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml
index a4e2ed1069cdb..37377c46c4535 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml
@@ -605,9 +605,6 @@
- OreSmelting
- RGlassSmelting
- type: TicketPrinter
- whitelist:
- tags:
- - SalvageScrap
- type: entity
parent: OreProcessor
From 3830cf93ebcafa70460862dc1719b016393c37a1 Mon Sep 17 00:00:00 2001
From: MNX <56132549+Mehnix@users.noreply.github.com>
Date: Sun, 1 Feb 2026 14:25:11 +0000
Subject: [PATCH 09/12] Updates based on comments
Container Fills
Proper Parenting
---
.../Catalog/Fills/Crates/salvage.yml | 43 ++++++++++---------
1 file changed, 23 insertions(+), 20 deletions(-)
diff --git a/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml b/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml
index 9140c9c1bd3fd..1e7f0435eead8 100644
--- a/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml
+++ b/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml
@@ -136,7 +136,6 @@
containers:
entity_storage:
id: WeaponCrusher
- amount: 1
- type: entity
parent: CrateGenericSteel
@@ -207,36 +206,40 @@
id: ClothingNeckCloakSalvagerSupreme
- type: entity
- id: CratePKAUpgrades
parent: CrateScience
+ id: CratePKAUpgrades
name: PKA upgrade kit crate
description: Contains 1 of each PKA upgrade. An alternative for when the Science Department is understaffed.
components:
- - type: StorageFill
- contents:
- - id: PKAUpgradeDamage
- - id: PKAUpgradeRange
- - id: PKAUpgradeFireRate
+ - type: EntityTableContainerFill
+ containers:
+ entity_storage: !type:AllSelector
+ children:
+ - id: PKAUpgradeDamage
+ - id: PKAUpgradeRange
+ - id: PKAUpgradeFireRate
- type: entity
- id: CrateShuttleBuild
parent: CrateEngineering
+ id: CrateShuttleBuild
name: shuttle construction crate
description: Contains the bare essentials to create a questionably functional shuttle. Tools sold seperately, fuel not included.
Nanotrasen is not responsible for any space collisions caused as a result of a sudden loss of power.
components:
- - type: StorageFill
- contents:
- - id: DrinkBeerCan # essential for drunk driving and welding fuel storage
- amount: 2
- - id: ThrusterFlatpack
- amount: 4
- - id: GyroscopeFlatpack
- - id: PortableGeneratorJrPacmanFlatpack #total power draw 7.5kW, can provide 8kW.
- - id: SheetGlass10
- - id: ShuttleConsoleCircuitboard
- - id: CableApcStack
- - id: SheetSteel
+ - type: EntityTableContainerFill
+ containers:
+ entity_storage: !type:AllSelector
+ children:
+ - id: DrinkBeerCan # essential for drunk driving and welding fuel storage
+ amount: 2
+ - id: ThrusterFlatpack
+ amount: 4
+ - id: GyroscopeFlatpack
+ - id: PortableGeneratorJrPacmanFlatpack #total power draw 7.5kW, can provide 8kW.
+ - id: SheetGlass10
+ - id: ShuttleConsoleCircuitboard
+ - id: CableApcStack
+ - id: SheetSteel
- type: entity
parent: CrateGenericSteel
From 765db454ebf58d70db02366fe04fc04883b57033 Mon Sep 17 00:00:00 2001
From: MNX <56132549+Mehnix@users.noreply.github.com>
Date: Sun, 1 Mar 2026 14:26:17 +0000
Subject: [PATCH 10/12] updates based on comments
---
Content.Server/TicketPrinter/TicketPrinterSystem.cs | 2 +-
.../TicketPrinter/SharedTicketPrinterSystem.cs | 7 +++----
.../Entities/Structures/Storage/Crates/crates.yml | 12 ++++++------
3 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/Content.Server/TicketPrinter/TicketPrinterSystem.cs b/Content.Server/TicketPrinter/TicketPrinterSystem.cs
index 46d8e11abf558..fc7813a1401c8 100644
--- a/Content.Server/TicketPrinter/TicketPrinterSystem.cs
+++ b/Content.Server/TicketPrinter/TicketPrinterSystem.cs
@@ -1,6 +1,6 @@
+using Content.Server.Stack;
using Content.Shared.TicketPrinter;
using Robust.Shared.Prototypes;
-using Content.Server.Stack;
namespace Content.Server.TicketPrinter;
diff --git a/Content.Shared/TicketPrinter/SharedTicketPrinterSystem.cs b/Content.Shared/TicketPrinter/SharedTicketPrinterSystem.cs
index ca28ba15b856d..a257a19588147 100644
--- a/Content.Shared/TicketPrinter/SharedTicketPrinterSystem.cs
+++ b/Content.Shared/TicketPrinter/SharedTicketPrinterSystem.cs
@@ -1,9 +1,8 @@
using Content.Shared.Lathe;
-using Content.Shared.Stacks;
using Content.Shared.Materials;
+using Content.Shared.Stacks;
using Content.Shared.Whitelist;
using Robust.Shared.Prototypes;
-using Robust.Shared.GameObjects;
namespace Content.Shared.TicketPrinter;
@@ -49,7 +48,7 @@ private void OnReclaimed(Entity ent, ref ReclaimFinished
if (_whitelistSystem.IsWhitelistFail(ent.Comp.Whitelist, args.Item)) //plenty of things are reclaimable but only some salvagable, should only give tickets for salvage scrap.
return;
- if (!TryComp(args.Item, out var physComp))
+ if (!TryComp(args.Item, out var physComp)) //if we have no physical composition, this item was never reclaimable in the first place
return;
foreach (var (material, amount) in physComp.MaterialComposition) //for each material making up the reclaimed item's physical composition
@@ -62,7 +61,7 @@ private void OnReclaimed(Entity ent, ref ReclaimFinished
!entProto.TryGetComponent(out var matphysComp, EntityManager.ComponentFactory)) //use that to get TicketValue and PhysicalComposition Components
continue; //theoretically an entity may have some materials that do and some materials that don't have ticket values so we have to check them all.
- PrintTickets(ent, ticketComp.TicketValue * amount / matphysComp.MaterialComposition[materialProto.ID]);
+ PrintTickets(ent, ticketComp.TicketValue * amount / matphysComp.MaterialComposition[materialProto.ID]); //ticket value multiplied by amount of material divided by amount of material per sheet
}
}
diff --git a/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml b/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml
index b58e4e19eaa62..71ffeb9f59b6b 100644
--- a/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml
+++ b/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml
@@ -289,12 +289,12 @@
id: CrateCargoSecure
name: secure cargo crate
components:
- - type: Icon
- sprite: Structures/Storage/Crates/secure.rsi
- - type: Sprite
- sprite: Structures/Storage/Crates/secure.rsi
- - type: AccessReader
- access: [["Cargo"]]
+ - type: Icon
+ sprite: Structures/Storage/Crates/secure.rsi
+ - type: Sprite
+ sprite: Structures/Storage/Crates/secure.rsi
+ - type: AccessReader
+ access: [["Cargo"]]
- type: entity
parent: CrateBaseSecure
From 7421880f512fbc777e454dee6c35ecf6b122e7c1 Mon Sep 17 00:00:00 2001
From: MNX <56132549+Mehnix@users.noreply.github.com>
Date: Mon, 2 Mar 2026 21:33:27 +0000
Subject: [PATCH 11/12] H
---
Resources/Prototypes/Catalog/Fills/Crates/salvage.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml b/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml
index 30f0ff44ba87a..b322c5ef5b877 100644
--- a/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml
+++ b/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml
@@ -13,7 +13,7 @@
- id: OxygenTankFilled
- id: NitrogenTankFilled
- id: MiningDrill
- - id: HandheldMassScanner
+ - id: HandHeldMassScanner
- id: OreBag
- id: ClothingBeltSalvageWebbing
From c67a87f513b884133fe80a391d3505d906d1e84a Mon Sep 17 00:00:00 2001
From: MNX <56132549+Mehnix@users.noreply.github.com>
Date: Mon, 2 Mar 2026 23:45:29 +0000
Subject: [PATCH 12/12] gamble test fail prevention maybe
---
Content.IntegrationTests/Tests/CargoTest.cs | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Content.IntegrationTests/Tests/CargoTest.cs b/Content.IntegrationTests/Tests/CargoTest.cs
index df85e61550ad8..23d80d6c6b652 100644
--- a/Content.IntegrationTests/Tests/CargoTest.cs
+++ b/Content.IntegrationTests/Tests/CargoTest.cs
@@ -22,7 +22,8 @@ public sealed class CargoTest
private static readonly HashSet> Ignored =
[
// This is ignored because it is explicitly intended to be able to sell for more than it costs.
- new("FunCrateGambling")
+ new("FunCrateGambling"),
+ new("SalvFunCrateGambling")
];
[Test]