summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjc_gargma <jc_gargma@iserlohn-fortress.net>2022-05-28 22:00:05 -0700
committerjc_gargma <jc_gargma@iserlohn-fortress.net>2022-05-28 22:00:05 -0700
commit19706f99eb954ea5fcc0019594b71e54e8ed8103 (patch)
tree772526f28a14e37e233ebb471df5402688ab5f46
parentUpdated to 2022-04-21-1455 (diff)
downloadcataclysm-bn-19706f99eb954ea5fcc0019594b71e54e8ed8103.tar.xz
Updated to 2022-05-28-1540
Fix ammo order patch Fix revert-no-filth patch Add revert-remove-hub01-basement patch Add revert-remove-handload-quality patch
-rw-r--r--PKGBUILD33
-rw-r--r--ammo-10_ammo-order-fix.patch54
-rw-r--r--revert-05_No-filth-and-fault-on-uninstalled-bionics-1389.patch (renamed from revert_05-No-filth-and-fault-on-uninstalled-bionics-1389.patch)0
-rw-r--r--revert-06_Obsolete-useless-hub01-basement-1457.patch1150
-rw-r--r--revert-07_Remove-handload-quality-distinction-1481.patch4968
5 files changed, 6194 insertions, 11 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 672398c..1618396 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -13,9 +13,9 @@ pkgbase=cataclysm-bn
pkgname=(cataclysm-bn cataclysm-bn-tiles)
pkgname=cataclysm-bn
_pkgname=Cataclysm-BN-cbn-experimental
-pkgver=202204211455
-_pkgver=2022-04-21-1455
-pkgrel=2
+pkgver=202205281540
+_pkgver=2022-05-28-1540
+pkgrel=1
pkgdesc="A post-apocalyptic roguelike."
#url="http://cataclysmrl.blogspot.com/"
#url="http://www.cataclysm.glyphgryph.com/"
@@ -34,7 +34,9 @@ source=("$pkgname-$_pkgver.tar.gz::https://github.com/cataclysmbnteam/Cataclysm-
"revert-02_revert-book-revamp.patch"
"revert-03_generic-nv.patch"
"revert-04_telescopic-lenses.patch"
- "revert_05-No-filth-and-fault-on-uninstalled-bionics-1389.patch"
+ "revert-05_No-filth-and-fault-on-uninstalled-bionics-1389.patch"
+ "revert-06_Obsolete-useless-hub01-basement-1457.patch"
+ "revert-07_Remove-handload-quality-distinction-1481.patch"
"ammo-01_inconsistent-ammo-names.patch"
"ammo-02_fix-20x66mm-loudness.patch"
@@ -126,7 +128,7 @@ source=("$pkgname-$_pkgver.tar.gz::https://github.com/cataclysmbnteam/Cataclysm-
"cataclysm-dda-soundpack_jcsoundpack.tar.xz::https://library.iserlohn-fortress.net/cataclysm-dda-soundpack_jcsoundpack.git/snapshot/cataclysm-dda-soundpack_jcsoundpack-master.tar.xz"
"cataclysm-dda-musicpack_coag-musicpack.tar.xz::https://library.iserlohn-fortress.net/cataclysm-dda-musicpack_coag-musicpack.git/snapshot/cataclysm-dda-musicpack_coag-musicpack-master.tar.xz"
)
-b2sums=('cf7aeed14e838465914996f63c53056fd6a5949069a506f27a057ba0c70ebdbf7c22b1052f8c32b9a66c09428c906fffc4f6bddf617639d3d60d8f00ef63a2a3'
+b2sums=('eeaad9ef73a917e8901b3e935994fe21064d47e9e4291fea37e611c83e0825c0cca26e0e73b489bd947c2c1f30e73547f43d80da27822c7041f26b6925c2bbb3'
'069ecde58859b3d44cd687c4b6e718610cefb693ff86e66f199ebfb1b3072023ad2b6f0c28e27ef9c1ce4997f6a5b2ca0d45046996b3ff35a4aeaeb1a7cf9421'
'ad88bc6c1e3c8183a313b5eec42f98d6956afea349feff34a86e4536c9921fa99d2594282caf27de8ebb7ffb56376ed2e76d572227bfd6d8173c7bb1f01e23b8'
'6f70e90359a14e4839d9a2683debb88850e5dd387add911ad68fd87e5512cfcdd435da63e1e370358153673fd5a72a9b1e9c94f1979edb7948b4da8c82407bad'
@@ -135,11 +137,13 @@ b2sums=('cf7aeed14e838465914996f63c53056fd6a5949069a506f27a057ba0c70ebdbf7c22b10
'32f7c7090c094bcf87c116ccc4843f63c2f7600f591e26ab7d5a31d7c3abfcc5dec0edf5a9750dba07fe087c3880bbd6d322d0435ebbce06c930bd32c9c814d9'
'4563b0454c67b003fc1e266345d609d8cce5d60f5d19e9936f441c3b75a98d7c162959286da9507e79def7544675cba8c9e589cca55ed9a1ed261ac608ac7c1a'
'1ccdb603f476b642475d95acae66bf85377ad05740d4886e72cecdfb55f1df0b059f4f4dee2dbdb3a976d9e3c23b88972b26e91b15d10f2b53d39e6d167d9668'
+ '2d197903715263628e767e867e9b20b9ebd3d85f8983ac8f1e2b534f2b6f8c0470886c79a409f117ad43348aa6aef2a6298925ae27faa32814183ad7677528ac'
+ '1a54b9a3e742061d34409e24fb347c00735cfaf29f945e29881fd2571f3cd57eddc711750dd2fd914da761c26ae3db6810c88cbff493df353b7533244c990637'
'207f765e998c5a92db2030e25779c98d57ed50ce6664d94439e4fdb4654466b764723f7b58872a186dea5f7504793efe4d93df2d8390139649a45d32eec06848'
'6dbcf4833dabb68443e50a644cc26309785593f757f7484771a101873aeb02d2e8f3869c0679132a6883ea86bd5fd47494281d0f70dcae9f4bec9b06a7d69b19'
'7fa3cc2cc13171aa395accc061a8582f0254a01377b3d60ded4c8d82c5a4f1af65b8e1b6c4fccf0b5fb9a6de1cd59121aae353e6d374726f058c3718bfb9743f'
'67cdb7e097bbb46da5cf04708bc2858b080d1a85742afc4c088da3e4e3fdeb6e4c51240fc5a6b9a1c7d927b30b3d251236e025ee4e5496142a7716d4ba51b82c'
- '5373d056122de79bb3348897f08d00fdcfba3f140446894efa8aaddeab34d3f303301e9553853940adfde095bc967bd1f67c4d7066799d5e083fb0af1ff64b31'
+ '4ebc6160e28b7852b4ae689062a9b92f3ff3f2c7990bfe84ed62ce617d5589d53d375627cf544abb10b41e68b213af1507af39f5148fa4f119abcc15055033d8'
'0884229f513f843099dbd397d96fd8b37aad2d1ae0aee2771f57f54188241d6ed0ede8750780b9564bd9e3dc8d215039d409081a8eb46ce25b90edb196eb6bf4'
'f4ad4c90cfcf11af42c6cfc6d2027b21af3f58ac274b9bd0852a52ef60b606476766f194b281f6baf12f81647b384a98f745519bb48bc2e4f5fe03984c7c0e65'
'f3bdbaac5dbe9384571fe5ec14d2d25035f227a977c25349b8188e7343804e3973b898b44c34f9abe9318666294f4fdfe780fd516dcbdb29c4ac52f6d0ed6cad'
@@ -198,7 +202,7 @@ b2sums=('cf7aeed14e838465914996f63c53056fd6a5949069a506f27a057ba0c70ebdbf7c22b10
'd05c48c376f23dd7fda2b5249b5985665de8344774f420a95151f7484ab33c38fb78b2ff279cedf762877dca3abd91c4d9e4900547e9c31e7636e1d90cc13d2b'
'e8edef84346ec74a39225665d65f404aeb5db3be12572fc9539f27aec06c54d208a5fdab67c881237866c4e9795b06445d426baf32d9b3a223a0e661de13be0c'
'a56efdaae0344726debf5b74846edce8df7aa2357fbc7a05a3d369d1f457b02934a0d0ce2330072e03f1ac901e06e333c9393f795c761f8440307e7649ed5596'
- 'ec8f713c6fae84f6659f76d4edc0f237766329080e33e65a5affc5d0c37cc7906b0daaaa1f275d89c8ddacb5db0ee16b69222956c9f2c402ce44b55aa040ead0'
+ 'ce10e7d8457ad71d7bad75c68b32c60f4ea12ddf52407816f27ff05677bc789f6af33dabb734d17fbb5037d58c6041673752f332d2bf676604565f8d60e8078c'
'b9309da09b165fb57e83f84e3584d2479bd3336ed86e181e5df2d27daa92bd55d03d7f3fc226f03696af5f0f32d8e0e7ecd26ae7e50eed0200d0b0feaad07efb')
prepare() {
@@ -216,7 +220,7 @@ prepare() {
sed -i 's|cataclysm-dda|cataclysm-bn|' src/path_info.cpp
# Fix version
- sed -i 's|VERSION = unstable|VERSION = 2022-04-21-1455|' Makefile
+ sed -i 's|VERSION = unstable|VERSION = 2022-05-28-1540|' Makefile
# # # Hotfixes
@@ -224,9 +228,15 @@ prepare() {
# # # Reverts
+ echo "Applying revert patches"
+ # Revert removal of reloaded ammunition.
+ patch -NREp1 -i "$srcdir"/revert-07_Remove-handload-quality-distinction-1481.patch
- # Revert clean bionics patch
- patch -NREp1 -i "$srcdir"/revert_05-No-filth-and-fault-on-uninstalled-bionics-1389.patch
+ # Revert Hub 01 removal.
+ patch -NREp1 -i "$srcdir"/revert-06_Obsolete-useless-hub01-basement-1457.patch
+
+ # Revert removal of filthy/faulty bionics patch.
+ patch -NREp1 -i "$srcdir"/revert-05_No-filth-and-fault-on-uninstalled-bionics-1389.patch
# Revert the book changes for now.
patch -NREp1 -i "$srcdir"/revert-02_revert-book-revamp.patch
@@ -292,6 +302,7 @@ prepare() {
# Fix faction food supply being calculated at 288 calories per person instead of 2500.
patch -Np1 -i "$srcdir"/faction-03_fix-food-supply-calculations.patch
+
# # faction camp fixes
echo "Applying faction camp fixes"
# cur_level is set to -1 on all modern basecamps. Remove the recruiting penalty this legacy variable inadvertently induces.
@@ -426,7 +437,7 @@ prepare() {
echo "Applying terrain and overmap fixes"
# Set t_platform_resin movecost to 2:
- # This allows helicopters to land on the the mi-go landing pad.
+ # This allows helicopters to land on the mi-go landing pad.
patch -Np1 -i "$srcdir"/terrain-01_migo-platform-landing-pad.patch
# Fix missing floor in the tacoma clinic:
diff --git a/ammo-10_ammo-order-fix.patch b/ammo-10_ammo-order-fix.patch
index fbefbbb..9fd6e55 100644
--- a/ammo-10_ammo-order-fix.patch
+++ b/ammo-10_ammo-order-fix.patch
@@ -224,6 +224,60 @@
"copy-from": "40fmj",
"type": "AMMO",
+--- a/data/json/items/ammo/44.json
++++ b/data/json/items/ammo/44.json
+@@ -1,14 +1,5 @@
+ [
+ {
+- "id": "44fmj",
+- "copy-from": "44magnum",
+- "type": "AMMO",
+- "name": { "str": ".44 Magnum FMJ" },
+- "description": "A brass-jacketed variant of the .44 Magnum round. This increases penetration at the cost of reduced damage from expansion.",
+- "//": "Base damage of 36, balance increase of one-nineth.",
+- "relative": { "damage": { "damage_type": "bullet", "amount": -10, "armor_penetration": 23 } }
+- },
+- {
+ "id": "44magnum",
+ "type": "AMMO",
+ "name": { "str": ".44 Magnum" },
+@@ -33,13 +24,13 @@
+ "effects": [ "COOKOFF" ]
+ },
+ {
+- "id": "reloaded_44fmj",
+- "copy-from": "44fmj",
++ "id": "44fmj",
++ "copy-from": "44magnum",
+ "type": "AMMO",
+- "name": { "str": ".44 Magnum FMJ, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ "name": { "str": ".44 Magnum FMJ" },
++ "description": "A brass-jacketed variant of the .44 Magnum round. This increases penetration at the cost of reduced damage from expansion.",
++ "//": "Base damage of 36, balance increase of one-nineth.",
++ "relative": { "damage": { "damage_type": "bullet", "amount": -10, "armor_penetration": 23 } }
+ },
+ {
+ "id": "reloaded_44magnum",
+@@ -49,6 +40,15 @@
+ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+ "extend": { "effects": [ "RECYCLED" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_44fmj",
++ "copy-from": "44fmj",
++ "type": "AMMO",
++ "name": { "str": ".44 Magnum FMJ, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ },
+ {
+ "id": "bp_44magnum",
+
--- a/data/json/items/ammo/45.json
+++ b/data/json/items/ammo/45.json
@@ -1,14 +1,5 @@
diff --git a/revert_05-No-filth-and-fault-on-uninstalled-bionics-1389.patch b/revert-05_No-filth-and-fault-on-uninstalled-bionics-1389.patch
index c04562e..c04562e 100644
--- a/revert_05-No-filth-and-fault-on-uninstalled-bionics-1389.patch
+++ b/revert-05_No-filth-and-fault-on-uninstalled-bionics-1389.patch
diff --git a/revert-06_Obsolete-useless-hub01-basement-1457.patch b/revert-06_Obsolete-useless-hub01-basement-1457.patch
new file mode 100644
index 0000000..c106c70
--- /dev/null
+++ b/revert-06_Obsolete-useless-hub01-basement-1457.patch
@@ -0,0 +1,1150 @@
+From 8c5a757dd08a7b8222a12f13972c00f551456259 Mon Sep 17 00:00:00 2001
+From: HoneyButterToast <103519677+HoneyButterToast@users.noreply.github.com>
+Date: Tue, 3 May 2022 05:48:08 +0200
+Subject: [PATCH 04/10] Obsolete useless hub01 basement (#1457)
+
+* Obsolete useless hub01 basement
+
+* turn off the elevator control
+
+* Obsolete NPC that doesn't spawn anymore
+
+* obsolete NPC that doesn't spawn
+---
+ data/json/mapgen/robofachq_static.json | 519 +-----------------
+ data/json/obsoletion/map.json | 519 ++++++++++++++++++
+ .../npc.json} | 0
+ .../overmap/overmap_special/specials.json | 50 --
+ 4 files changed, 520 insertions(+), 568 deletions(-)
+ create mode 100644 data/json/obsoletion/map.json
+ rename data/json/{npcs/robofac/NPC_Ulysses_Rourke.json => obsoletion/npc.json} (100%)
+
+diff --git a/data/json/mapgen/robofachq_static.json b/data/json/mapgen/robofachq_static.json
+index 93e999c36a..74d3c55ee5 100644
+--- a/data/json/mapgen/robofachq_static.json
++++ b/data/json/mapgen/robofachq_static.json
+@@ -98,7 +98,7 @@
+ "-": "t_wall_metal",
+ "G": "t_card_robofac",
+ "e": "t_elevator",
+- "E": "t_elevator_control",
++ "E": "t_elevator_control_off",
+ "Y": "t_utility_light",
+ "I": "t_intercom"
+ },
+@@ -109,522 +109,5 @@
+ },
+ "place_npcs": [ { "class": "robofac_intercom", "x": 46, "y": 17 } ]
+ }
+- },
+- {
+- "type": "mapgen",
+- "om_terrain": [
+- [ "robofachq_exe_a0", "robofachq_exe_a1", "robofachq_exe_a2", "robofachq_exe_a3" ],
+- [ "robofachq_exe_b0", "robofachq_exe_b1", "robofachq_exe_b2", "robofachq_exe_b3" ]
+- ],
+- "method": "json",
+- "object": {
+- "fill_ter": "t_thconc_floor",
+- "rows": [
+- "############################################| |############################################",
+- "########|||||||||||||||||||||||||#|||||||||||||22|||############################################",
+- "########|k ht|A h ^|#|lll|lllll| YY |############################################",
+- "########|i k k htth ht| Cd6ddC |#|bYb|bYbYb|T YY T|########||||||||############################",
+- "########|k o k htth ht| CCCCCC |#|b b|b b b|| YY ||######||=A6666A=||##########################",
+- "########| W ^|^ h ^|#|l l|l l l| YY |######|,=Y Y=,|##########################",
+- "########|FFFF| htth ?||||[[||||||l l|l l l|T YY T|######|,= htth =,|##########################",
+- "########|||||| htth ?||^^ ^^|| |||22||||||||||,= htth =,|##########################",
+- "########|ffff| 2 YY 2Y bbb bbbb| |L | i|,= htth =,|##########################",
+- "########| |^??t t??^| ,, ||||||||||||| |LY2 Y;|,= htth =,|##########################",
+- "###||||||hd ||||||||||| ,, 2 r r r| d( Y b|||||2||,= htth =,|##########################",
+- "###|;i|T|dd 2 2 (d r r r| Gd( Y b|AhQ ^|,= =,|##########################",
+- "###|@ 2Y2 | T T |G YY G(dh r| 2 Y b|ddd H|,[Y Y[,|##########################",
+- "###|||| |||||||||||||||||||22|||||||||||||||| ^| h ||||| |||||##########################",
+- "###|;i| |''''''''''''''''R R''''''''''''''( ^| YH|###|YY|##############################",
+- "###|@ 2Yh|''''''''''''''''R R''''''''''''''|||22|||====[=|||||22|||||||||||####################",
+- "###|||| t|''''''''''''''''R R''''''''''''''(< GY Y =,,,,,,,,|||||||||############",
+- "###|;i| h|''''''''''''''''R R''''''''''''''(> CC Y G=,,,,,,,,|^BB ^^|#|||||######",
+- "###|@ 2Y |''''''''''''''''R R'''''''|======|| CC ||(RRRRRRRR =======[=(YY CCC |||:::|######",
+- "###|||||||''''''''''''''''R R'''''''=Eeeeee2Y CC ^('''''''([( Y Y(H Cdd 5T Y|######",
+- "#########|''''''''''''''''RYYR'''''''=eeeeee2CCCC.dG('''''''R<( CCCCCCCCCC 2 C6C Y5 6|######",
+- "#########|''''''''''''''''RYYR'''''''=eeeeee2CCCC dh('''''''R>( CCCCCCCCCC 2 hCdh Y5 :|######",
+- "#########|''''''''''''''''R R'''''''=Eeeeee2Y CC ^('''''''([( Y Y( Cdd 5T Y|######",
+- "#########|''''''''''''''''R R'''''''|======|| CC ||(RRRRRRRR =======[=(YY CCC |||:::|######",
+- "#########|''''''''''''''''R R''''''''''''''(> CC Y G=,,,,,,,,|^ A ^|#|||||######",
+- "#########|''''''''''''''''R R''''''''''''''(< GY Y =,,,,,,,,||||55||||###########",
+- "#########|''''''''''''''''R R''''''''''''''|||22|||((2||||||||22|||||||||||^ ^|###########",
+- "#########|''''''''''''''''R R''''''''''''''( Y(dG L|L6dd|^YY^|::::::::| YY |###########",
+- "#########|====|====|=====||22||=======||||||| Y(dh 2 Yhd|^ ^| Y Y | htth |###########",
+- "#########| h ^|h B|h B| |A dh B|A dCCCCCCC ||||||||||||| ||[=======| htth |###########",
+- "#########|dd ^|dd B|dd B| |Bh6 ^| hdCCCCCCC 5Y |Wt| dh dh dh f| h tth |###########",
+- "#|||||||||^h Y|h Y^|h Y^| |B Y2 dCCCCCCC 5Y d d d f| htth |###########",
+- "#|iii |===[|==[=|===[=||YY|||||||||| ((((( d dh dh Y f| YY |###########",
+- "#|Y Y Y |Y ^ ^ ^ ^ Y(,,,(. dh d dY Y d d d Yf|^ ^|###########",
+- "#|2|2|2| |Y CCC Y(,,,[ dh dh dh f||||66||||###########",
+- "#|;|;|;|Y =========================t CCC (,,,[ dh d dY Yf|##||||##############",
+- "#|||||||Y [,,,,,,,,,,,,,,,,,,,,,,,=t CCC (,,,( d dh dh Y d d d f|||||||||||||########",
+- "#|;|;|;|Y =========================t cCC ((((( Y dh dh dh f|^^^^^^^^^^^|########",
+- "#|2|2|2| |YG CCC Y 5Y Y ^|########",
+- "#|Y Y Y |Y Y 5Y G Y ^|########",
+- "#|iii |====[[||=====|===[=|===[|[==||==[=||2||2|||[=======|| |||=====||||||2|||2||||########",
+- "#||||||||| ^| hd^|^ H| | |^ |f ff f| d dh dh| |Y Y^|;2Y | Y2;|########",
+- "#########|dd [ dh|h t|h h | | d |f ff f| dh d d | 2 hhhhh ^||| ||| |||########",
+- "#########| h [ hh |6dd H|ddd |6dd |hd |f ff f| Y Y| 2 ttttt ^|;2Y i|i Y2;|########",
+- "#########|dd dd|Y |h YB|Yh |Yhd |^ Y|f f| d d dh| | hhh h ^||| i|i |||########",
+- "#########|Yh h|BBBB^|^^BBB|A6^^| |BBBB|ffffff| dh d d |^^|Y h Y^|;2Y i|i Y2;|########",
+- "#########|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||########",
+- "################################################################################################"
+- ],
+- "palettes": [ "robofachq" ],
+- "terrain": {
+- ",": [ "t_shrub_rose", "t_shrub", "t_grass", "t_grass", "t_grass_tall" ],
+- "-": "t_wall_metal",
+- "'": "t_open_air",
+- "e": "t_elevator",
+- "C": "t_carpet_red",
+- "E": "t_elevator_control",
+- "Y": "t_thconc_floor_olight",
+- "#": "t_rock",
+- "6": "t_console",
+- "R": "t_railing",
+- "W": "t_water_dispenser"
+- },
+- "furniture": { ":": "f_server", "K": "f_counter", "H": "f_armchair", "L": "f_locker", "f": "f_filing_cabinet" },
+- "item": { "A": { "item": "american_flag" } },
+- "items": {
+- "F": { "item": "fridge", "chance": 80 },
+- "f": { "item": "file_room", "repeat": [ 10, 30 ] },
+- "@": { "item": "bed", "chance": 80 },
+- "r": [
+- { "item": "cop_armory", "chance": 80 },
+- { "item": "energy_weapon_armory", "chance": 33 },
+- { "item": "ammo_milspec", "chance": 40 },
+- { "item": "mags_milspec", "chance": 40 },
+- { "item": "guns_milspec", "chance": 40 }
+- ],
+- "L": [
+- { "item": "energy_weapon_armory", "chance": 33 },
+- { "item": "ammo_milspec", "chance": 40 },
+- { "item": "mags_milspec", "chance": 40 },
+- { "item": "guns_milspec", "chance": 40 }
+- ],
+- "K": { "item": "kitchen", "chance": 40 },
+- "o": { "item": "oven", "chance": 70 },
+- "d": [ { "item": "office_supplies", "chance": 70 }, { "item": "office_mess", "chance": 70, "repeat": [ 1, 3 ] } ],
+- "D": { "item": "NC_ROBOFAC_SCIENTIST_worn", "chance": 50 },
+- "B": [
+- { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] },
+- { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] }
+- ]
+- },
+- "monster": { "T": { "monster": "mon_turret_light" } },
+- "npcs": { "G": { "class": "hub_security" }, "Q": { "class": "hub_security_head" } }
+- }
+- },
+- {
+- "type": "mapgen",
+- "om_terrain": [
+- [ "robofachq_hab_a0", "robofachq_hab_a1", "robofachq_hab_a2", "robofachq_hab_a3" ],
+- [ "robofachq_hab_b0", "robofachq_hab_b1", "robofachq_hab_b2", "robofachq_hab_b3" ]
+- ],
+- "method": "json",
+- "object": {
+- "fill_ter": "t_concrete",
+- "rows": [
+- "################################################################################################",
+- "################################||||||||||######################################################",
+- "################################|FFFF|FFF|######################################################",
+- "#############||||||||||||||||||||F F|F F||||#####||||||##||||||################################",
+- "#############|KiKKKKKiKooKKKK K|F F|F F|;Y|#####|~Y ~|##|~ Y~|################################",
+- "#############|K K YY o K|F F|F f|i |#####|| |||##||| ||################################",
+- "#############|k K iKKoK K K||2||||2|||2|||||||i 2;|##|;2 i|################################",
+- "#############| i i| Y Y Y|^^^^^|i |||##||| i|################################",
+- "#############|FFFFFFFF 2 | Y2;||||;2Y |||||############################",
+- "####|||||||||||||||||||YY|||||||||||||||||||||| ||2||||FF|||2||FFF|||||||||||||||||||||||######",
+- "####|,,,.| htth Yffff i|'''''''''''''''(Y Y|Y X X X EE|rrrrrrrrrrrrp|######",
+- "####|,,,,= htth Mi|'''''''''''''''(G CC | TT TT b CCC X X Y | p|######",
+- "####|,,,, ccccccff||||'''''''''''''''( CC | b CCC EE| c cccc p|######",
+- "####|,,,,= htth |WW|RRRRRRRRRRRRRRR| CC | TT TT b CCC X X Y | h6 p|######",
+- "####|,,,,= htth h Y CC |Y ^ ^ X X X EE|ccccYYcccc p|######",
+- "####|,,,,= htth hth Y RRRRRR CC ||=========||22||=======||||||22||||||||######",
+- "####|,,,,= ^| ,,,,,R'''R>YCC Y =,,,,,,,,|cccAYYApppppp|######",
+- "####|,,,,= htth htth htth ^|^bb^ ,,,,,R'''R<YCC Y =,,,,,,,,| A A p p P|######",
+- "####|,,,,= htth htth htth ^| ,,|======|| CC ||====[==== ========== hA A p p p|######",
+- "####|,,,,[Y =Eeeeee| CC ^=,,,,,,,=[( bb Y= ddA A p p p|######",
+- "####|,,,,=& ^MMM^ ^MMM^ Y [eeeeee[CCCC.dG=,,,,,,,= ( [ % % r|######",
+- "####|,,,,=& ^MMM^ ^MMM^ Y [eeeeee[CCCC dh=,,,,,,,=<( [ AAAA Y Y r|######",
+- "####|,,,,[Y =Eeeeee| CC ^=,,,,,,,=[( bb Y= A r|######",
+- "####|,,,,= htth htth hth h ^|G ,,|======|| CC ||====[==== ==========AAAA P P P P|######",
+- "####|,,,,= htth htth t ^|^bb^ ,,,,,R'''R<YCC Y G=,,,,,,,,|Y P P P P|######",
+- "####|,,,,= htth hth h ^| ,,,,,R'''R>YCC Y =,,,,,,,,|PPPPPPP P P P|######",
+- "####|,,,,= MM Y RRRRRR CC ||=========||22||========|||||||||||||||######",
+- "####|,,,,= MM Y CC |Y BB BB B|####################",
+- "####|,,,,= hth htth|WW|RRRRRRRRRRRRRRR| CC |htth hhh htth B|####################",
+- "####|,,,,= hth thht htth||||'''''''''''''''( CC |htth ttt ^^ htth B|####################",
+- "####|,,,,= hth thht htth|##|'''''''''''''''( CC |Y B B B|####################",
+- "#||||||||| hth YY htth|##|'''''''''''''''(Y Y|BBBBBBBBBBBBBBBBBBBBBBBB|####################",
+- "#|iii | |||||||||||||||||||||||||||||||||||22|||||||||||||||||||||||||||||||||||############",
+- "#|Y Y Y | ^|##|~Y;|~Y;|~Y;|~Y;|~Y;|~Y;|^ t ^ |~Y;|~Y;|~Y;|~Y;|~Y;|~Y;|~Y;|############",
+- "#|2|2|2| | ^|##|~ i|~ i|~ i|~ i|~ i|~ i|? a^ htth |~ i|~ i|~ i|~ i|~ i|~ i|~ i|||||||||||||",
+- "#|;|;|;|Y ^|##||2|||2|||2|||2|||2|||2||? t ^ htth ||2|||2|||2|||2|||2|||2|||2||~2 |@@ D @@|",
+- "#|||||||Y ^|##|@ D|@ D|@ D|@ D|@ D|@ D|? t a^ |@ D|@ D|@ D|@ D|@ D|@ D| D||| |D @ D|",
+- "#|;|;|;|Y|YY^|##|@ D|@ D|@ D|@ D|@ D|@ D| htth |@ D|@ D|@ D|@ D|@ D|@ D| D|~2 |@@ @ @@|",
+- "#|2|2|2| |||||||||5|||5|||5|||5|||5|||2||at a ||5|||5|||5|||5|||5|||5|||5||||2|D D|",
+- "#|Y Y Y |###|,,,=Y Y 2 S @@|",
+- "#|iii |###|,,,=Y Y 2 D|",
+- "#|||||||||###|||||5|||5|||5|||5|||5|||2||G ? t ?||5|||5|||5|||5|||5|||5|||5||||2| @@|",
+- "#############|##|@ D|@ D|@ D|@ D|@ D|@ D|^ h ? t ?|@ D|@ D|@ D|@ D|@ D|@ D|@ D|i |D D|",
+- "#############|##|@ D|@ D|@ D|@ D|@ D|@ D|t??t ^|@ D|@ D|@ D|@ D|@ D|@ D|@ D|i |@@ @ @@|",
+- "#############|##||2|||2|||2|||2|||2|||2||======[[======||2|||2|||2|||2|||2|||2|||2|| |D @ D|",
+- "#############|##|~ i|~ i|~ i|~ i|~ i|~ i|,,,,,,,,,,,,,,|~ i|~ i|~ i|~ i|~ i|~ i|~ i|2|2|@@ D @@|",
+- "#############|##|~Y;|~Y;|~Y;|~Y;|~Y;|~Y;|,,,,,,,,,,,,,,|~Y;|~Y;|~Y;|~Y;|~Y;|~Y;|~Y;|;|;|||||||||",
+- "#############|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||########"
+- ],
+- "palettes": [ "robofachq" ],
+- "terrain": {
+- ",": [ "t_shrub_rose", "t_shrub", "t_grass_tall" ],
+- "-": "t_wall_metal",
+- "'": "t_open_air",
+- "e": "t_elevator",
+- "C": "t_carpet_red",
+- "E": "t_elevator_control",
+- "Y": "t_thconc_floor_olight",
+- "#": "t_rock",
+- "6": "t_console",
+- "R": "t_railing",
+- "W": "t_water_dispenser",
+- "&": "t_machinery_electronic"
+- },
+- "furniture": {
+- "K": "f_counter",
+- "M": "f_counter",
+- "S": "f_table",
+- "A": "f_canvas_wall",
+- "%": "f_canvas_door",
+- "E": "f_ergometer",
+- "T": "f_treadmill",
+- "X": "f_exercise"
+- },
+- "sealed_item": {
+- "P": { "item": { "item": "seed_tomato" }, "furniture": "f_planter_mature" },
+- "p": { "item": { "item": "seed_wheat" }, "furniture": "f_planter_mature" }
+- },
+- "items": {
+- "S": [
+- { "item": "tools_robotics", "chance": 30, "repeat": [ 1, 3 ] },
+- { "item": "robots", "chance": 50, "repeat": [ 1, 3 ] },
+- { "item": "supplies_electronics", "chance": 50, "repeat": [ 1, 3 ] }
+- ],
+- "F": { "item": "fridge", "chance": 80, "repeat": [ 2, 6 ] },
+- "@": { "item": "bed", "chance": 80 },
+- "M": [
+- { "item": "SUS_dishes", "chance": 80, "repeat": [ 1, 3 ] },
+- { "item": "SUS_silverware", "chance": 33, "repeat": [ 1, 3 ] }
+- ],
+- "k": [
+- { "item": "kitchen", "chance": 33, "repeat": [ 1, 3 ] },
+- { "item": "SUS_knife_drawer", "chance": 40, "repeat": [ 1, 3 ] },
+- { "item": "SUS_cookware", "chance": 40, "repeat": [ 1, 3 ] }
+- ],
+- "K": { "item": "kitchen", "chance": 40 },
+- "o": { "item": "oven", "chance": 70 },
+- "d": [ { "item": "office_supplies", "chance": 70 }, { "item": "office_mess", "chance": 70, "repeat": [ 1, 3 ] } ],
+- "r": [ { "item": "tools_earthworking", "chance": 50 }, { "item": "supplies_farming", "chance": 70, "repeat": [ 1, 3 ] } ],
+- "D": { "item": "NC_ROBOFAC_SCIENTIST_worn", "chance": 50 },
+- "B": [
+- { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] },
+- { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] }
+- ]
+- },
+- "npcs": { "G": { "class": "hub_security" } }
+- }
+- },
+- {
+- "type": "mapgen",
+- "om_terrain": [
+- [ "robofachq_res_a0", "robofachq_res_a1", "robofachq_res_a2", "robofachq_res_a3" ],
+- [ "robofachq_res_b0", "robofachq_res_b1", "robofachq_res_b2", "robofachq_res_b3" ]
+- ],
+- "method": "json",
+- "object": {
+- "fill_ter": "t_concrete",
+- "rows": [
+- "############################################| |#############################################",
+- "################################||||||||||##| |#############################################",
+- "################################|FFFF|FFF|##| |#############################################",
+- "#############||||||||||||||||||||F F|F F|||||222|||||||||||||||||||||||||||####################",
+- "#############| |^ ^| :|####################",
+- "#############| |^ ^| === === === === === :|####################",
+- "#############| |^ ^| =6= =6= =6= =6= =6= :|####################",
+- "#############| |^ ^| =2= =2= =2= =2= =2= :|####################",
+- "#############| AAAA |^ ^| :|####################",
+- "####||||||||||||||||||||||||||||YY||||||||||||222|| === === === === === :|||||||||||||||######",
+- "####|,,,.|SSSS6SSSS| h B|##|,,( (,,,,,,,,,( | =6= =6= =6= =6= =6= :|:::::::::::::|######",
+- "####|,,,,|S S|ddd B|##|,,( (,,,,,,,,,( | =2= =2= =2= =2= =2= :| :|######",
+- "####|,,,,|SSS SSSS| h B||||,,( (,,,,,,,,,( | :| 66 66 6 :|######",
+- "####|,,,,|====[====|=[===|YY|((( ((((((((((| | d d d d 2 66 66 6 :|######",
+- "####|,,,,= G Y | dh dh dh dh 2 :|######",
+- "####|,,,,= Y RRRRR ||====[==|||||||||||||||||2(||||||||||||######",
+- "####|,,,,= ||||||| (((((((( ======'''(> 2 G Y(:::::::::::::::| : : : : : |######",
+- "####|,,,,= = 666 = (''''''(^bb^ =,,,,='''(<Y Y2 Y('''''''''''''':| : : : : : |######",
+- "####|,,,,= = = (''''''( ==|======|||dd|| |===[==('''''''''''''':| Y Y Y Y|######",
+- "####|,,,,[ = hth = (''::''( d =Eeeeee| h|^ |6h ('''''''''''''':| : : : : : |######",
+- "####|,,,,= [ hth [ (''::''(Gd [eeeeee|6h |^ |6h h6(''''''MM''''''Y| 6: : : : : |######",
+- "####|,,,,= [ hth [ (''::''(hd [eeeeee|d |^ |6h h6(''''''MM''''''Y| 6: : : : : |######",
+- "####|,,,,[ = hth = (''::''( d =Eeeeee| Gh|^ |6h ('''''''''''''':| : : : : : |######",
+- "####|,,,,= = hth = (''''''( ==|======|||dd|| |===[==('''''''''''''':| Y Y Y Y|######",
+- "####|,,,,= = = (''''''(^bb^ =,,,,='''(<Y Y2 Y('''''''''''''':| : : : : : |######",
+- "####|,,,,= ======= (((((((( ======'''(> 2 G Y(:::::::::::::::| : : : : : |######",
+- "####|,,,,= RRRRRR ||=[=====|||||||||||||||||2(||||||||||||######",
+- "####|,,,,= |? [ 2 |#################",
+- "####|,,,,= |=[===|=[===|YY|((( ((((((((((|||||||? [ ( Y|#################",
+- "####|,,,,= |S S|s S||||,,( (,,,,,,,,,( ^|^ |[=======|===[|[====||||#################",
+- "####|,,,,= |S hS|S hS|##|,,( (,,,,,,,,,( hdhd|ddd | hhhh ^|h Y|Y h |####################",
+- "#||||||||| ||S6SSS|S6SSS|##|,,( (,,,,,,,,,( d6d| h | tttt 6|d6d | dd6|####################",
+- "#|iii | ^||||||||||||||||((|YY|(((((((((|[[|||| | hhhh | h | h|####################",
+- "#|Y Y Y | ^|lllll|^Y dh = dh^|Y B| |ffff|Y Y|BBBB|BBBBB|####################",
+- "#|2|2|2| | ^|l |B h6 [ d | hdhB|AAAAA||||||||||||||||||||||||||||||||||||||||||||||",
+- "#|;|;|;|Y |l ll |B d ^|||| ||2|Y d B|SSSSSSSS9S|SlllSSSS llSSSS SSS=YDSS SSS SSSll ll|",
+- "#|||||||Y ^|||||2|BY HtH| G|2|||||| hy|SY G Y= Y|",
+- "#|;|;|;|Y|YY^|S |||||||||| A Y|S SSSSS hS hS sh= |",
+- "#|2|2|2| |||||Sh SS6 SSS= y% Y|| SSSSS SS SS SS= SSS t 7966 6|",
+- "#|Y Y Y |###|S h [ Y% SSS Y2Y G [Y hSSS t 7966 6|",
+- "#|iii |###|S 2 66 A h6SS Y2Y G Y[Y 688 t Y|",
+- "#|||||||||###|||||2|========|[=====[=======|AA%AA|AAAAA||yyyyyyyyyyyyyyyyyy = 9 t &&66 6|",
+- "#############|l ll |Sh SSSS|h d| y6 y = 9 &&66 6|",
+- "#############|l l |SSSSS 6| hhdA y y =t8898888 7|",
+- "#############|l l|S hS| h hdA y y =Y 6 7|",
+- "#############|lllll|SSSSSYYll 6 llYYSSS|ddd h %Y y yY=t77 t7799988ttt777|",
+- "#############|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||",
+- "################################################################################################"
+- ],
+- "palettes": [ "robofachq" ],
+- "terrain": {
+- ",": [ "t_shrub_rose", "t_shrub", "t_grass_tall" ],
+- "-": "t_wall_metal",
+- "'": "t_open_air",
+- "e": "t_elevator",
+- "C": "t_carpet_red",
+- "E": "t_elevator_control",
+- "Y": "t_thconc_floor_olight",
+- "#": "t_rock",
+- "6": "t_console",
+- "R": "t_railing",
+- "9": "t_conveyor",
+- "7": "t_machinery_light",
+- "8": "t_machinery_heavy",
+- "&": "t_machinery_electronic"
+- },
+- "furniture": {
+- ":": "f_server",
+- "K": "f_counter",
+- "S": "f_table",
+- "A": "f_canvas_wall",
+- "%": "f_canvas_door",
+- "H": "f_armchair",
+- "M": "f_server",
+- "E": "f_ergometer",
+- "T": "f_treadmill",
+- "X": "f_exercise"
+- },
+- "items": {
+- "S": [
+- { "item": "tools_robotics", "chance": 30, "repeat": [ 1, 3 ] },
+- { "item": "robots", "chance": 50, "repeat": [ 1, 3 ] },
+- { "item": "supplies_electronics", "chance": 50, "repeat": [ 1, 3 ] }
+- ],
+- "d": [ { "item": "office_supplies", "chance": 70 }, { "item": "office_mess", "chance": 70, "repeat": [ 1, 3 ] } ],
+- "B": [
+- { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] },
+- { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] }
+- ]
+- },
+- "npcs": { "G": { "class": "hub_security" } }
+- }
+- },
+- {
+- "type": "mapgen",
+- "om_terrain": [ [ "robofachq_sub_a0", "robofachq_sub_a1", "robofachq_sub_a2", "robofachq_sub_a3" ] ],
+- "method": "json",
+- "object": {
+- "fill_ter": "t_thconc_floor",
+- "rows": [
+- "#######################| ||||||||||||||####################################",
+- "#######################|Y Y (tt ^|####################################",
+- "#######################| bb bbb bb (th |####################################",
+- "#######################| (t |####################################",
+- "#######################|Y ^bb^ ^bbb^ ^bb Y (t ^|####################################",
+- "#######################|||||||||||||||||||||||| |||2|||####################################",
+- "##############################################||5555||tt tt|####################################",
+- "#####################################||||||||||^ ^| h h|####################################",
+- "#####################################|rrrrrrrr|^ ^| |####################################",
+- "#####################################|r r|| ||||2|||####################################",
+- "#####################################|r YY 2 (t r|####################################",
+- "#####################################|||||||||| YY (thY r|####################################",
+- "#####################################|bbbbbbbb| YY (t Y r|####################################",
+- "#####################################|Y Y2 ( r|####################################",
+- "#####################################| llllll ||2222||||2|||####################################",
+- "#####################################|2||||||2|^ Y^|####################################",
+- "#####################################| ~| |~ |^ Y^|####################################",
+- "#####################################| i| |i |^ Y^|####################################",
+- "#####################################||||||||||| ||||||||####################################",
+- "#####################################|lll 2 ^|##########################################",
+- "#####################################|^ ( YY ^|##########################################",
+- "#####################################| d ( YY ^|##########################################",
+- "#####################################|^hdh ( ^|##########################################",
+- "#####################################|||||||| ||||##########################################"
+- ],
+- "palettes": [ "robofachq" ],
+- "terrain": { "-": "t_wall_metal", "e": "t_elevator", "E": "t_elevator_control", "Y": "t_utility_light", "I": "t_intercom" },
+- "items": {
+- "l": [ { "item": "NC_ROBOFAC_FIELD_RESEARCHER_worn", "chance": 50 }, { "item": "NC_ROBOFAC_SCIENTIST_worn", "chance": 50 } ],
+- "i": { "item": "cleaning", "chance": 50 },
+- "B": [ { "item": "textbooks", "chance": 50 }, { "item": "manuals", "chance": 50 } ]
+- }
+- }
+- },
+- {
+- "type": "mapgen",
+- "om_terrain": [
+- [ "robofachq_ai_a0", "robofachq_ai_a1", "robofachq_ai_a2", "robofachq_ai_a3" ],
+- [ "robofachq_ai_b0", "robofachq_ai_b1", "robofachq_ai_b2", "robofachq_ai_b3" ]
+- ],
+- "method": "json",
+- "object": {
+- "fill_ter": "t_thconc_floor",
+- "rows": [
+- "################################################################################################",
+- "################################################################################################",
+- "################################################################################################",
+- "################################################################################################",
+- "################################################################################################",
+- "################################################################################################",
+- "################################################################################################",
+- "######################################################|||||||||||||||||||||||||||||||||||||||||#",
+- "######################################################|:YY:YY:YY:YY:YY:YY:YY:| rrrrrrrrrrr|#",
+- "######################################################|: : : : : : : :| Y|#",
+- "######################################################|: : : : : : : :| rrr rrrr |#",
+- "######################################################|: : : : : : : :| Y|#",
+- "###################################################||||: : : : : : : :| rrrrrrrrrrr|#",
+- "############################################||||||||YY|: : : : : : : :||5(((||||||||||||#",
+- "############################################| 5 5 Y2>|##########",
+- "############################################| 5 5 Y Y Y Y Y Y |||||||2|||##########",
+- "############################################| Y||||((((((((((((((((((((|6 |############",
+- "############################################| 5 (````````````````````||Y |||||||######",
+- "#####################################|||||||| |5(````````````````````6|: ::::::|######",
+- "#####################################|eeeeee d | (((((((((((``````````6|||| :|######",
+- "#####################################|eeeeee Y d | h6``````````6|: Y 6 :|######",
+- "#####################################|Eeeeee Y 6h| h6``````````6|: Y 6 :|######",
+- "#####################################|eeeeee d | (((((((((((``````````6|||| :|######",
+- "#####################################|||||||| |5(````````````````````6|: ::::::|######",
+- "########################################|>< 5 5 (````````````````````||Y |||||||######",
+- "########################################| | ||||((((((((((((((((((((|6 |############",
+- "########################################||||| 5 5 Y Y Y Y Y Y |||||||2|||##########",
+- "############################################| 5 5 Y2>|##########",
+- "############################################||||||||YY|: : : : : : : :||5(((||||||||||||#",
+- "###################################################||||: : : : : : : :| rrrrrrrrrrr|#",
+- "######################################################|: : : : : : : :| Y|#",
+- "######################################################|: : : : : : : :| rrr rrrr |#",
+- "######################################################|: : : : : : : :| Y|#",
+- "######################################################|:YY:YY:YY:YY:YY:YY:YY:| rrrrrrrrrrr|#",
+- "######################################################|||||||||||||||||||||||||||||||||||||||||#",
+- "################################################################################################",
+- "################################################################################################",
+- "################################################################################################",
+- "################################################################################################",
+- "################################################################################################",
+- "################################################################################################",
+- "################################################################################################",
+- "################################################################################################",
+- "################################################################################################",
+- "################################################################################################",
+- "################################################################################################",
+- "################################################################################################",
+- "################################################################################################"
+- ],
+- "palettes": [ "robofachq" ],
+- "terrain": {
+- "-": "t_wall_metal",
+- "e": "t_elevator",
+- "E": "t_elevator_control",
+- "Y": "t_thconc_floor_olight",
+- "#": "t_rock",
+- "6": "t_console"
+- },
+- "furniture": { ":": "f_server", "K": "f_counter" },
+- "items": { "r": [ { "item": "electronics", "chance": 75, "repeat": [ 1, 5 ] } ] }
+- }
+- },
+- {
+- "type": "mapgen",
+- "om_terrain": [
+- [ "robofachq_aiutl_a0", "robofachq_aiutl_a1", "robofachq_aiutl_a2", "robofachq_aiutl_a3" ],
+- [ "robofachq_aiutl_b0", "robofachq_aiutl_b1", "robofachq_aiutl_b2", "robofachq_aiutl_b3" ]
+- ],
+- "method": "json",
+- "object": {
+- "fill_ter": "t_thconc_floor",
+- "rows": [
+- "################################################################################################",
+- "################################################################################################",
+- "################################################################################################",
+- "################################################################################################",
+- "##############################################||||##############################################",
+- "##############################################|66|##############################################",
+- "##############################################| |##############################################",
+- "###########################|||||||||||||||||||| ||||||||||||||||||||||||||||||||||||||||||||||#",
+- "###########################|::::::::::::::::|B d ^|: : : : : : : :| :::::::::::|#",
+- "###########################| :|B Y h dh |: : : : : : : :| |#",
+- "###########################| :|B Y dd |YYYYYYYYYYYYYYYYYYYYYY| ::: :::::|#",
+- "###########################| :|B |: : : : : : : :| |#",
+- "###########################|:::::::: ||||||55||^||||: : : : : : : :| :::::::::::|#",
+- "###########################| 5 Y ||| |||||||||||||||||||||||||5(((||||||||||||#",
+- "###########################|::::::::::::| Y 5 5 2<|##########",
+- "###########################|||||||||||||||||| 5 5 Y Y Y Y Y Y |||||||2|||##########",
+- "############################################||55|||||||((((((((((((((((((((|6 |############",
+- "############################################| 5wwwwwwwwwwwwwwwwwwwwww||Y |||||||######",
+- "#####################################|||||||| |wwwwwwwwwwwwwwwwwwwwww:|: ::::::|######",
+- "#####################################|eeeeee (wwwwwwwwwwwwwwwwwwwwww:|||| :|######",
+- "#####################################|eeeeee Y (wwwwwwwwwwwwwwwwwwwwww:|: 6 :|######",
+- "#####################################|Eeeeee Y (wwwwwwwwwwwwwwwwwwwwww:|: 6 :|######",
+- "#####################################|eeeeee (wwwwwwwwwwwwwwwwwwwwww:|||| :|######",
+- "#####################################|||||||| |wwwwwwwwwwwwwwwwwwwwww:|: ::::::|######",
+- "########################################|>< 5 5wwwwwwwwwwwwwwwwwwwwww||Y |||||||######",
+- "########################################| ||55|||||||((((((((((((((((((((|6 |############",
+- "#############################|||||||||||||||| 5 5 Y Y Y Y Y Y ||2||||2|||##########",
+- "#############################|^ Y 5 5 | 2<|##########",
+- "#############################|^ Y ||| ||||||||||||||22|||||||||5(((||||||||||||#",
+- "#############################||2|2((((|(((2|||222||||||:::| : : : : : :| :::::::::::|#",
+- "#############################|i | |h B| |:::: | : : : : : :| |#",
+- "#############################|; | dd|dd B| Y 5 Y 2YYYYYYYYYYYYYYYYY:| :::: :::::|#",
+- "#############################|||| |h B| Y | | : : : : : :| |#",
+- "################################| h| ^|2||| |||2||:::| : : : : : :| :::::::::::|#",
+- "################################|2|||||||| |555||Y :|||||||||||||| |||||||||22||||||||||||||#",
+- "################################| ( | |:Y :|############| |#######| |: : : : : :|#",
+- "################################| cccc 2 2 ||2|||||||||||||||| ||||||||| |: : : : : :|#",
+- "################################| ||||| | |::::::::::::| 2 2 |#",
+- "################################| cccc | 2 2 |#",
+- "################################| 2 |||||||||||||||||#",
+- "################################| ccccccccc ||||| |||||||||||||||| |||||||||#################",
+- "################################| |###| :::::::::::::: :|######################",
+- "################################||||||||||||||###| 6 :|######################",
+- "#################################################| 6 :|######################",
+- "#################################################| :::::::::::::: :|######################",
+- "#################################################|||||||||||||||||||||||||######################",
+- "################################################################################################",
+- "################################################################################################"
+- ],
+- "palettes": [ "robofachq" ],
+- "terrain": {
+- "-": "t_wall_metal",
+- "e": "t_elevator",
+- "w": "t_water_pool_shallow",
+- "E": "t_elevator_control",
+- "Y": "t_thconc_floor_olight",
+- "#": "t_rock",
+- "6": "t_console"
+- },
+- "furniture": { ":": "f_server" },
+- "items": {
+- "B": [
+- { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] },
+- { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] }
+- ]
+- }
+- }
+ }
+ ]
+diff --git a/data/json/obsoletion/map.json b/data/json/obsoletion/map.json
+new file mode 100644
+index 0000000000..4b48616c30
+--- /dev/null
++++ b/data/json/obsoletion/map.json
+@@ -0,0 +1,519 @@
++[
++ {
++ "type": "mapgen",
++ "om_terrain": [
++ [ "robofachq_exe_a0", "robofachq_exe_a1", "robofachq_exe_a2", "robofachq_exe_a3" ],
++ [ "robofachq_exe_b0", "robofachq_exe_b1", "robofachq_exe_b2", "robofachq_exe_b3" ]
++ ],
++ "method": "json",
++ "object": {
++ "fill_ter": "t_thconc_floor",
++ "rows": [
++ "############################################| |############################################",
++ "########|||||||||||||||||||||||||#|||||||||||||22|||############################################",
++ "########|k ht|A h ^|#|lll|lllll| YY |############################################",
++ "########|i k k htth ht| Cd6ddC |#|bYb|bYbYb|T YY T|########||||||||############################",
++ "########|k o k htth ht| CCCCCC |#|b b|b b b|| YY ||######||=A6666A=||##########################",
++ "########| W ^|^ h ^|#|l l|l l l| YY |######|,=Y Y=,|##########################",
++ "########|FFFF| htth ?||||[[||||||l l|l l l|T YY T|######|,= htth =,|##########################",
++ "########|||||| htth ?||^^ ^^|| |||22||||||||||,= htth =,|##########################",
++ "########|ffff| 2 YY 2Y bbb bbbb| |L | i|,= htth =,|##########################",
++ "########| |^??t t??^| ,, ||||||||||||| |LY2 Y;|,= htth =,|##########################",
++ "###||||||hd ||||||||||| ,, 2 r r r| d( Y b|||||2||,= htth =,|##########################",
++ "###|;i|T|dd 2 2 (d r r r| Gd( Y b|AhQ ^|,= =,|##########################",
++ "###|@ 2Y2 | T T |G YY G(dh r| 2 Y b|ddd H|,[Y Y[,|##########################",
++ "###|||| |||||||||||||||||||22|||||||||||||||| ^| h ||||| |||||##########################",
++ "###|;i| |''''''''''''''''R R''''''''''''''( ^| YH|###|YY|##############################",
++ "###|@ 2Yh|''''''''''''''''R R''''''''''''''|||22|||====[=|||||22|||||||||||####################",
++ "###|||| t|''''''''''''''''R R''''''''''''''(< GY Y =,,,,,,,,|||||||||############",
++ "###|;i| h|''''''''''''''''R R''''''''''''''(> CC Y G=,,,,,,,,|^BB ^^|#|||||######",
++ "###|@ 2Y |''''''''''''''''R R'''''''|======|| CC ||(RRRRRRRR =======[=(YY CCC |||:::|######",
++ "###|||||||''''''''''''''''R R'''''''=Eeeeee2Y CC ^('''''''([( Y Y(H Cdd 5T Y|######",
++ "#########|''''''''''''''''RYYR'''''''=eeeeee2CCCC.dG('''''''R<( CCCCCCCCCC 2 C6C Y5 6|######",
++ "#########|''''''''''''''''RYYR'''''''=eeeeee2CCCC dh('''''''R>( CCCCCCCCCC 2 hCdh Y5 :|######",
++ "#########|''''''''''''''''R R'''''''=Eeeeee2Y CC ^('''''''([( Y Y( Cdd 5T Y|######",
++ "#########|''''''''''''''''R R'''''''|======|| CC ||(RRRRRRRR =======[=(YY CCC |||:::|######",
++ "#########|''''''''''''''''R R''''''''''''''(> CC Y G=,,,,,,,,|^ A ^|#|||||######",
++ "#########|''''''''''''''''R R''''''''''''''(< GY Y =,,,,,,,,||||55||||###########",
++ "#########|''''''''''''''''R R''''''''''''''|||22|||((2||||||||22|||||||||||^ ^|###########",
++ "#########|''''''''''''''''R R''''''''''''''( Y(dG L|L6dd|^YY^|::::::::| YY |###########",
++ "#########|====|====|=====||22||=======||||||| Y(dh 2 Yhd|^ ^| Y Y | htth |###########",
++ "#########| h ^|h B|h B| |A dh B|A dCCCCCCC ||||||||||||| ||[=======| htth |###########",
++ "#########|dd ^|dd B|dd B| |Bh6 ^| hdCCCCCCC 5Y |Wt| dh dh dh f| h tth |###########",
++ "#|||||||||^h Y|h Y^|h Y^| |B Y2 dCCCCCCC 5Y d d d f| htth |###########",
++ "#|iii |===[|==[=|===[=||YY|||||||||| ((((( d dh dh Y f| YY |###########",
++ "#|Y Y Y |Y ^ ^ ^ ^ Y(,,,(. dh d dY Y d d d Yf|^ ^|###########",
++ "#|2|2|2| |Y CCC Y(,,,[ dh dh dh f||||66||||###########",
++ "#|;|;|;|Y =========================t CCC (,,,[ dh d dY Yf|##||||##############",
++ "#|||||||Y [,,,,,,,,,,,,,,,,,,,,,,,=t CCC (,,,( d dh dh Y d d d f|||||||||||||########",
++ "#|;|;|;|Y =========================t cCC ((((( Y dh dh dh f|^^^^^^^^^^^|########",
++ "#|2|2|2| |YG CCC Y 5Y Y ^|########",
++ "#|Y Y Y |Y Y 5Y G Y ^|########",
++ "#|iii |====[[||=====|===[=|===[|[==||==[=||2||2|||[=======|| |||=====||||||2|||2||||########",
++ "#||||||||| ^| hd^|^ H| | |^ |f ff f| d dh dh| |Y Y^|;2Y | Y2;|########",
++ "#########|dd [ dh|h t|h h | | d |f ff f| dh d d | 2 hhhhh ^||| ||| |||########",
++ "#########| h [ hh |6dd H|ddd |6dd |hd |f ff f| Y Y| 2 ttttt ^|;2Y i|i Y2;|########",
++ "#########|dd dd|Y |h YB|Yh |Yhd |^ Y|f f| d d dh| | hhh h ^||| i|i |||########",
++ "#########|Yh h|BBBB^|^^BBB|A6^^| |BBBB|ffffff| dh d d |^^|Y h Y^|;2Y i|i Y2;|########",
++ "#########|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||########",
++ "################################################################################################"
++ ],
++ "palettes": [ "robofachq" ],
++ "terrain": {
++ ",": [ "t_shrub_rose", "t_shrub", "t_grass", "t_grass", "t_grass_tall" ],
++ "-": "t_wall_metal",
++ "'": "t_open_air",
++ "e": "t_elevator",
++ "C": "t_carpet_red",
++ "E": "t_elevator_control",
++ "Y": "t_thconc_floor_olight",
++ "#": "t_rock",
++ "6": "t_console",
++ "R": "t_railing",
++ "W": "t_water_dispenser"
++ },
++ "furniture": { ":": "f_server", "K": "f_counter", "H": "f_armchair", "L": "f_locker", "f": "f_filing_cabinet" },
++ "item": { "A": { "item": "american_flag" } },
++ "items": {
++ "F": { "item": "fridge", "chance": 80 },
++ "f": { "item": "file_room", "repeat": [ 10, 30 ] },
++ "@": { "item": "bed", "chance": 80 },
++ "r": [
++ { "item": "cop_armory", "chance": 80 },
++ { "item": "energy_weapon_armory", "chance": 33 },
++ { "item": "ammo_milspec", "chance": 40 },
++ { "item": "mags_milspec", "chance": 40 },
++ { "item": "guns_milspec", "chance": 40 }
++ ],
++ "L": [
++ { "item": "energy_weapon_armory", "chance": 33 },
++ { "item": "ammo_milspec", "chance": 40 },
++ { "item": "mags_milspec", "chance": 40 },
++ { "item": "guns_milspec", "chance": 40 }
++ ],
++ "K": { "item": "kitchen", "chance": 40 },
++ "o": { "item": "oven", "chance": 70 },
++ "d": [ { "item": "office_supplies", "chance": 70 }, { "item": "office_mess", "chance": 70, "repeat": [ 1, 3 ] } ],
++ "D": { "item": "NC_ROBOFAC_SCIENTIST_worn", "chance": 50 },
++ "B": [
++ { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] },
++ { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] }
++ ]
++ },
++ "monster": { "T": { "monster": "mon_turret_light" } },
++ "npcs": { "G": { "class": "hub_security" }, "Q": { "class": "hub_security_head" } }
++ }
++ },
++ {
++ "type": "mapgen",
++ "om_terrain": [
++ [ "robofachq_hab_a0", "robofachq_hab_a1", "robofachq_hab_a2", "robofachq_hab_a3" ],
++ [ "robofachq_hab_b0", "robofachq_hab_b1", "robofachq_hab_b2", "robofachq_hab_b3" ]
++ ],
++ "method": "json",
++ "object": {
++ "fill_ter": "t_concrete",
++ "rows": [
++ "################################################################################################",
++ "################################||||||||||######################################################",
++ "################################|FFFF|FFF|######################################################",
++ "#############||||||||||||||||||||F F|F F||||#####||||||##||||||################################",
++ "#############|KiKKKKKiKooKKKK K|F F|F F|;Y|#####|~Y ~|##|~ Y~|################################",
++ "#############|K K YY o K|F F|F f|i |#####|| |||##||| ||################################",
++ "#############|k K iKKoK K K||2||||2|||2|||||||i 2;|##|;2 i|################################",
++ "#############| i i| Y Y Y|^^^^^|i |||##||| i|################################",
++ "#############|FFFFFFFF 2 | Y2;||||;2Y |||||############################",
++ "####|||||||||||||||||||YY|||||||||||||||||||||| ||2||||FF|||2||FFF|||||||||||||||||||||||######",
++ "####|,,,.| htth Yffff i|'''''''''''''''(Y Y|Y X X X EE|rrrrrrrrrrrrp|######",
++ "####|,,,,= htth Mi|'''''''''''''''(G CC | TT TT b CCC X X Y | p|######",
++ "####|,,,, ccccccff||||'''''''''''''''( CC | b CCC EE| c cccc p|######",
++ "####|,,,,= htth |WW|RRRRRRRRRRRRRRR| CC | TT TT b CCC X X Y | h6 p|######",
++ "####|,,,,= htth h Y CC |Y ^ ^ X X X EE|ccccYYcccc p|######",
++ "####|,,,,= htth hth Y RRRRRR CC ||=========||22||=======||||||22||||||||######",
++ "####|,,,,= ^| ,,,,,R'''R>YCC Y =,,,,,,,,|cccAYYApppppp|######",
++ "####|,,,,= htth htth htth ^|^bb^ ,,,,,R'''R<YCC Y =,,,,,,,,| A A p p P|######",
++ "####|,,,,= htth htth htth ^| ,,|======|| CC ||====[==== ========== hA A p p p|######",
++ "####|,,,,[Y =Eeeeee| CC ^=,,,,,,,=[( bb Y= ddA A p p p|######",
++ "####|,,,,=& ^MMM^ ^MMM^ Y [eeeeee[CCCC.dG=,,,,,,,= ( [ % % r|######",
++ "####|,,,,=& ^MMM^ ^MMM^ Y [eeeeee[CCCC dh=,,,,,,,=<( [ AAAA Y Y r|######",
++ "####|,,,,[Y =Eeeeee| CC ^=,,,,,,,=[( bb Y= A r|######",
++ "####|,,,,= htth htth hth h ^|G ,,|======|| CC ||====[==== ==========AAAA P P P P|######",
++ "####|,,,,= htth htth t ^|^bb^ ,,,,,R'''R<YCC Y G=,,,,,,,,|Y P P P P|######",
++ "####|,,,,= htth hth h ^| ,,,,,R'''R>YCC Y =,,,,,,,,|PPPPPPP P P P|######",
++ "####|,,,,= MM Y RRRRRR CC ||=========||22||========|||||||||||||||######",
++ "####|,,,,= MM Y CC |Y BB BB B|####################",
++ "####|,,,,= hth htth|WW|RRRRRRRRRRRRRRR| CC |htth hhh htth B|####################",
++ "####|,,,,= hth thht htth||||'''''''''''''''( CC |htth ttt ^^ htth B|####################",
++ "####|,,,,= hth thht htth|##|'''''''''''''''( CC |Y B B B|####################",
++ "#||||||||| hth YY htth|##|'''''''''''''''(Y Y|BBBBBBBBBBBBBBBBBBBBBBBB|####################",
++ "#|iii | |||||||||||||||||||||||||||||||||||22|||||||||||||||||||||||||||||||||||############",
++ "#|Y Y Y | ^|##|~Y;|~Y;|~Y;|~Y;|~Y;|~Y;|^ t ^ |~Y;|~Y;|~Y;|~Y;|~Y;|~Y;|~Y;|############",
++ "#|2|2|2| | ^|##|~ i|~ i|~ i|~ i|~ i|~ i|? a^ htth |~ i|~ i|~ i|~ i|~ i|~ i|~ i|||||||||||||",
++ "#|;|;|;|Y ^|##||2|||2|||2|||2|||2|||2||? t ^ htth ||2|||2|||2|||2|||2|||2|||2||~2 |@@ D @@|",
++ "#|||||||Y ^|##|@ D|@ D|@ D|@ D|@ D|@ D|? t a^ |@ D|@ D|@ D|@ D|@ D|@ D| D||| |D @ D|",
++ "#|;|;|;|Y|YY^|##|@ D|@ D|@ D|@ D|@ D|@ D| htth |@ D|@ D|@ D|@ D|@ D|@ D| D|~2 |@@ @ @@|",
++ "#|2|2|2| |||||||||5|||5|||5|||5|||5|||2||at a ||5|||5|||5|||5|||5|||5|||5||||2|D D|",
++ "#|Y Y Y |###|,,,=Y Y 2 S @@|",
++ "#|iii |###|,,,=Y Y 2 D|",
++ "#|||||||||###|||||5|||5|||5|||5|||5|||2||G ? t ?||5|||5|||5|||5|||5|||5|||5||||2| @@|",
++ "#############|##|@ D|@ D|@ D|@ D|@ D|@ D|^ h ? t ?|@ D|@ D|@ D|@ D|@ D|@ D|@ D|i |D D|",
++ "#############|##|@ D|@ D|@ D|@ D|@ D|@ D|t??t ^|@ D|@ D|@ D|@ D|@ D|@ D|@ D|i |@@ @ @@|",
++ "#############|##||2|||2|||2|||2|||2|||2||======[[======||2|||2|||2|||2|||2|||2|||2|| |D @ D|",
++ "#############|##|~ i|~ i|~ i|~ i|~ i|~ i|,,,,,,,,,,,,,,|~ i|~ i|~ i|~ i|~ i|~ i|~ i|2|2|@@ D @@|",
++ "#############|##|~Y;|~Y;|~Y;|~Y;|~Y;|~Y;|,,,,,,,,,,,,,,|~Y;|~Y;|~Y;|~Y;|~Y;|~Y;|~Y;|;|;|||||||||",
++ "#############|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||########"
++ ],
++ "palettes": [ "robofachq" ],
++ "terrain": {
++ ",": [ "t_shrub_rose", "t_shrub", "t_grass_tall" ],
++ "-": "t_wall_metal",
++ "'": "t_open_air",
++ "e": "t_elevator",
++ "C": "t_carpet_red",
++ "E": "t_elevator_control",
++ "Y": "t_thconc_floor_olight",
++ "#": "t_rock",
++ "6": "t_console",
++ "R": "t_railing",
++ "W": "t_water_dispenser",
++ "&": "t_machinery_electronic"
++ },
++ "furniture": {
++ "K": "f_counter",
++ "M": "f_counter",
++ "S": "f_table",
++ "A": "f_canvas_wall",
++ "%": "f_canvas_door",
++ "E": "f_ergometer",
++ "T": "f_treadmill",
++ "X": "f_exercise"
++ },
++ "sealed_item": {
++ "P": { "item": { "item": "seed_tomato" }, "furniture": "f_planter_mature" },
++ "p": { "item": { "item": "seed_wheat" }, "furniture": "f_planter_mature" }
++ },
++ "items": {
++ "S": [
++ { "item": "tools_robotics", "chance": 30, "repeat": [ 1, 3 ] },
++ { "item": "robots", "chance": 50, "repeat": [ 1, 3 ] },
++ { "item": "supplies_electronics", "chance": 50, "repeat": [ 1, 3 ] }
++ ],
++ "F": { "item": "fridge", "chance": 80, "repeat": [ 2, 6 ] },
++ "@": { "item": "bed", "chance": 80 },
++ "M": [
++ { "item": "SUS_dishes", "chance": 80, "repeat": [ 1, 3 ] },
++ { "item": "SUS_silverware", "chance": 33, "repeat": [ 1, 3 ] }
++ ],
++ "k": [
++ { "item": "kitchen", "chance": 33, "repeat": [ 1, 3 ] },
++ { "item": "SUS_knife_drawer", "chance": 40, "repeat": [ 1, 3 ] },
++ { "item": "SUS_cookware", "chance": 40, "repeat": [ 1, 3 ] }
++ ],
++ "K": { "item": "kitchen", "chance": 40 },
++ "o": { "item": "oven", "chance": 70 },
++ "d": [ { "item": "office_supplies", "chance": 70 }, { "item": "office_mess", "chance": 70, "repeat": [ 1, 3 ] } ],
++ "r": [ { "item": "tools_earthworking", "chance": 50 }, { "item": "supplies_farming", "chance": 70, "repeat": [ 1, 3 ] } ],
++ "D": { "item": "NC_ROBOFAC_SCIENTIST_worn", "chance": 50 },
++ "B": [
++ { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] },
++ { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] }
++ ]
++ },
++ "npcs": { "G": { "class": "hub_security" } }
++ }
++ },
++ {
++ "type": "mapgen",
++ "om_terrain": [
++ [ "robofachq_res_a0", "robofachq_res_a1", "robofachq_res_a2", "robofachq_res_a3" ],
++ [ "robofachq_res_b0", "robofachq_res_b1", "robofachq_res_b2", "robofachq_res_b3" ]
++ ],
++ "method": "json",
++ "object": {
++ "fill_ter": "t_concrete",
++ "rows": [
++ "############################################| |#############################################",
++ "################################||||||||||##| |#############################################",
++ "################################|FFFF|FFF|##| |#############################################",
++ "#############||||||||||||||||||||F F|F F|||||222|||||||||||||||||||||||||||####################",
++ "#############| |^ ^| :|####################",
++ "#############| |^ ^| === === === === === :|####################",
++ "#############| |^ ^| =6= =6= =6= =6= =6= :|####################",
++ "#############| |^ ^| =2= =2= =2= =2= =2= :|####################",
++ "#############| AAAA |^ ^| :|####################",
++ "####||||||||||||||||||||||||||||YY||||||||||||222|| === === === === === :|||||||||||||||######",
++ "####|,,,.|SSSS6SSSS| h B|##|,,( (,,,,,,,,,( | =6= =6= =6= =6= =6= :|:::::::::::::|######",
++ "####|,,,,|S S|ddd B|##|,,( (,,,,,,,,,( | =2= =2= =2= =2= =2= :| :|######",
++ "####|,,,,|SSS SSSS| h B||||,,( (,,,,,,,,,( | :| 66 66 6 :|######",
++ "####|,,,,|====[====|=[===|YY|((( ((((((((((| | d d d d 2 66 66 6 :|######",
++ "####|,,,,= G Y | dh dh dh dh 2 :|######",
++ "####|,,,,= Y RRRRR ||====[==|||||||||||||||||2(||||||||||||######",
++ "####|,,,,= ||||||| (((((((( ======'''(> 2 G Y(:::::::::::::::| : : : : : |######",
++ "####|,,,,= = 666 = (''''''(^bb^ =,,,,='''(<Y Y2 Y('''''''''''''':| : : : : : |######",
++ "####|,,,,= = = (''''''( ==|======|||dd|| |===[==('''''''''''''':| Y Y Y Y|######",
++ "####|,,,,[ = hth = (''::''( d =Eeeeee| h|^ |6h ('''''''''''''':| : : : : : |######",
++ "####|,,,,= [ hth [ (''::''(Gd [eeeeee|6h |^ |6h h6(''''''MM''''''Y| 6: : : : : |######",
++ "####|,,,,= [ hth [ (''::''(hd [eeeeee|d |^ |6h h6(''''''MM''''''Y| 6: : : : : |######",
++ "####|,,,,[ = hth = (''::''( d =Eeeeee| Gh|^ |6h ('''''''''''''':| : : : : : |######",
++ "####|,,,,= = hth = (''''''( ==|======|||dd|| |===[==('''''''''''''':| Y Y Y Y|######",
++ "####|,,,,= = = (''''''(^bb^ =,,,,='''(<Y Y2 Y('''''''''''''':| : : : : : |######",
++ "####|,,,,= ======= (((((((( ======'''(> 2 G Y(:::::::::::::::| : : : : : |######",
++ "####|,,,,= RRRRRR ||=[=====|||||||||||||||||2(||||||||||||######",
++ "####|,,,,= |? [ 2 |#################",
++ "####|,,,,= |=[===|=[===|YY|((( ((((((((((|||||||? [ ( Y|#################",
++ "####|,,,,= |S S|s S||||,,( (,,,,,,,,,( ^|^ |[=======|===[|[====||||#################",
++ "####|,,,,= |S hS|S hS|##|,,( (,,,,,,,,,( hdhd|ddd | hhhh ^|h Y|Y h |####################",
++ "#||||||||| ||S6SSS|S6SSS|##|,,( (,,,,,,,,,( d6d| h | tttt 6|d6d | dd6|####################",
++ "#|iii | ^||||||||||||||||((|YY|(((((((((|[[|||| | hhhh | h | h|####################",
++ "#|Y Y Y | ^|lllll|^Y dh = dh^|Y B| |ffff|Y Y|BBBB|BBBBB|####################",
++ "#|2|2|2| | ^|l |B h6 [ d | hdhB|AAAAA||||||||||||||||||||||||||||||||||||||||||||||",
++ "#|;|;|;|Y |l ll |B d ^|||| ||2|Y d B|SSSSSSSS9S|SlllSSSS llSSSS SSS=YDSS SSS SSSll ll|",
++ "#|||||||Y ^|||||2|BY HtH| G|2|||||| hy|SY G Y= Y|",
++ "#|;|;|;|Y|YY^|S |||||||||| A Y|S SSSSS hS hS sh= |",
++ "#|2|2|2| |||||Sh SS6 SSS= y% Y|| SSSSS SS SS SS= SSS t 7966 6|",
++ "#|Y Y Y |###|S h [ Y% SSS Y2Y G [Y hSSS t 7966 6|",
++ "#|iii |###|S 2 66 A h6SS Y2Y G Y[Y 688 t Y|",
++ "#|||||||||###|||||2|========|[=====[=======|AA%AA|AAAAA||yyyyyyyyyyyyyyyyyy = 9 t &&66 6|",
++ "#############|l ll |Sh SSSS|h d| y6 y = 9 &&66 6|",
++ "#############|l l |SSSSS 6| hhdA y y =t8898888 7|",
++ "#############|l l|S hS| h hdA y y =Y 6 7|",
++ "#############|lllll|SSSSSYYll 6 llYYSSS|ddd h %Y y yY=t77 t7799988ttt777|",
++ "#############|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||",
++ "################################################################################################"
++ ],
++ "palettes": [ "robofachq" ],
++ "terrain": {
++ ",": [ "t_shrub_rose", "t_shrub", "t_grass_tall" ],
++ "-": "t_wall_metal",
++ "'": "t_open_air",
++ "e": "t_elevator",
++ "C": "t_carpet_red",
++ "E": "t_elevator_control",
++ "Y": "t_thconc_floor_olight",
++ "#": "t_rock",
++ "6": "t_console",
++ "R": "t_railing",
++ "9": "t_conveyor",
++ "7": "t_machinery_light",
++ "8": "t_machinery_heavy",
++ "&": "t_machinery_electronic"
++ },
++ "furniture": {
++ ":": "f_server",
++ "K": "f_counter",
++ "S": "f_table",
++ "A": "f_canvas_wall",
++ "%": "f_canvas_door",
++ "H": "f_armchair",
++ "M": "f_server",
++ "E": "f_ergometer",
++ "T": "f_treadmill",
++ "X": "f_exercise"
++ },
++ "items": {
++ "S": [
++ { "item": "tools_robotics", "chance": 30, "repeat": [ 1, 3 ] },
++ { "item": "robots", "chance": 50, "repeat": [ 1, 3 ] },
++ { "item": "supplies_electronics", "chance": 50, "repeat": [ 1, 3 ] }
++ ],
++ "d": [ { "item": "office_supplies", "chance": 70 }, { "item": "office_mess", "chance": 70, "repeat": [ 1, 3 ] } ],
++ "B": [
++ { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] },
++ { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] }
++ ]
++ },
++ "npcs": { "G": { "class": "hub_security" } }
++ }
++ },
++ {
++ "type": "mapgen",
++ "om_terrain": [ [ "robofachq_sub_a0", "robofachq_sub_a1", "robofachq_sub_a2", "robofachq_sub_a3" ] ],
++ "method": "json",
++ "object": {
++ "fill_ter": "t_thconc_floor",
++ "rows": [
++ "#######################| ||||||||||||||####################################",
++ "#######################|Y Y (tt ^|####################################",
++ "#######################| bb bbb bb (th |####################################",
++ "#######################| (t |####################################",
++ "#######################|Y ^bb^ ^bbb^ ^bb Y (t ^|####################################",
++ "#######################|||||||||||||||||||||||| |||2|||####################################",
++ "##############################################||5555||tt tt|####################################",
++ "#####################################||||||||||^ ^| h h|####################################",
++ "#####################################|rrrrrrrr|^ ^| |####################################",
++ "#####################################|r r|| ||||2|||####################################",
++ "#####################################|r YY 2 (t r|####################################",
++ "#####################################|||||||||| YY (thY r|####################################",
++ "#####################################|bbbbbbbb| YY (t Y r|####################################",
++ "#####################################|Y Y2 ( r|####################################",
++ "#####################################| llllll ||2222||||2|||####################################",
++ "#####################################|2||||||2|^ Y^|####################################",
++ "#####################################| ~| |~ |^ Y^|####################################",
++ "#####################################| i| |i |^ Y^|####################################",
++ "#####################################||||||||||| ||||||||####################################",
++ "#####################################|lll 2 ^|##########################################",
++ "#####################################|^ ( YY ^|##########################################",
++ "#####################################| d ( YY ^|##########################################",
++ "#####################################|^hdh ( ^|##########################################",
++ "#####################################|||||||| ||||##########################################"
++ ],
++ "palettes": [ "robofachq" ],
++ "terrain": { "-": "t_wall_metal", "e": "t_elevator", "E": "t_elevator_control", "Y": "t_utility_light", "I": "t_intercom" },
++ "items": {
++ "l": [ { "item": "NC_ROBOFAC_FIELD_RESEARCHER_worn", "chance": 50 }, { "item": "NC_ROBOFAC_SCIENTIST_worn", "chance": 50 } ],
++ "i": { "item": "cleaning", "chance": 50 },
++ "B": [ { "item": "textbooks", "chance": 50 }, { "item": "manuals", "chance": 50 } ]
++ }
++ }
++ },
++ {
++ "type": "mapgen",
++ "om_terrain": [
++ [ "robofachq_ai_a0", "robofachq_ai_a1", "robofachq_ai_a2", "robofachq_ai_a3" ],
++ [ "robofachq_ai_b0", "robofachq_ai_b1", "robofachq_ai_b2", "robofachq_ai_b3" ]
++ ],
++ "method": "json",
++ "object": {
++ "fill_ter": "t_thconc_floor",
++ "rows": [
++ "################################################################################################",
++ "################################################################################################",
++ "################################################################################################",
++ "################################################################################################",
++ "################################################################################################",
++ "################################################################################################",
++ "################################################################################################",
++ "######################################################|||||||||||||||||||||||||||||||||||||||||#",
++ "######################################################|:YY:YY:YY:YY:YY:YY:YY:| rrrrrrrrrrr|#",
++ "######################################################|: : : : : : : :| Y|#",
++ "######################################################|: : : : : : : :| rrr rrrr |#",
++ "######################################################|: : : : : : : :| Y|#",
++ "###################################################||||: : : : : : : :| rrrrrrrrrrr|#",
++ "############################################||||||||YY|: : : : : : : :||5(((||||||||||||#",
++ "############################################| 5 5 Y2>|##########",
++ "############################################| 5 5 Y Y Y Y Y Y |||||||2|||##########",
++ "############################################| Y||||((((((((((((((((((((|6 |############",
++ "############################################| 5 (````````````````````||Y |||||||######",
++ "#####################################|||||||| |5(````````````````````6|: ::::::|######",
++ "#####################################|eeeeee d | (((((((((((``````````6|||| :|######",
++ "#####################################|eeeeee Y d | h6``````````6|: Y 6 :|######",
++ "#####################################|Eeeeee Y 6h| h6``````````6|: Y 6 :|######",
++ "#####################################|eeeeee d | (((((((((((``````````6|||| :|######",
++ "#####################################|||||||| |5(````````````````````6|: ::::::|######",
++ "########################################|>< 5 5 (````````````````````||Y |||||||######",
++ "########################################| | ||||((((((((((((((((((((|6 |############",
++ "########################################||||| 5 5 Y Y Y Y Y Y |||||||2|||##########",
++ "############################################| 5 5 Y2>|##########",
++ "############################################||||||||YY|: : : : : : : :||5(((||||||||||||#",
++ "###################################################||||: : : : : : : :| rrrrrrrrrrr|#",
++ "######################################################|: : : : : : : :| Y|#",
++ "######################################################|: : : : : : : :| rrr rrrr |#",
++ "######################################################|: : : : : : : :| Y|#",
++ "######################################################|:YY:YY:YY:YY:YY:YY:YY:| rrrrrrrrrrr|#",
++ "######################################################|||||||||||||||||||||||||||||||||||||||||#",
++ "################################################################################################",
++ "################################################################################################",
++ "################################################################################################",
++ "################################################################################################",
++ "################################################################################################",
++ "################################################################################################",
++ "################################################################################################",
++ "################################################################################################",
++ "################################################################################################",
++ "################################################################################################",
++ "################################################################################################",
++ "################################################################################################",
++ "################################################################################################"
++ ],
++ "palettes": [ "robofachq" ],
++ "terrain": {
++ "-": "t_wall_metal",
++ "e": "t_elevator",
++ "E": "t_elevator_control",
++ "Y": "t_thconc_floor_olight",
++ "#": "t_rock",
++ "6": "t_console"
++ },
++ "furniture": { ":": "f_server", "K": "f_counter" },
++ "items": { "r": [ { "item": "electronics", "chance": 75, "repeat": [ 1, 5 ] } ] }
++ }
++ },
++ {
++ "type": "mapgen",
++ "om_terrain": [
++ [ "robofachq_aiutl_a0", "robofachq_aiutl_a1", "robofachq_aiutl_a2", "robofachq_aiutl_a3" ],
++ [ "robofachq_aiutl_b0", "robofachq_aiutl_b1", "robofachq_aiutl_b2", "robofachq_aiutl_b3" ]
++ ],
++ "method": "json",
++ "object": {
++ "fill_ter": "t_thconc_floor",
++ "rows": [
++ "################################################################################################",
++ "################################################################################################",
++ "################################################################################################",
++ "################################################################################################",
++ "##############################################||||##############################################",
++ "##############################################|66|##############################################",
++ "##############################################| |##############################################",
++ "###########################|||||||||||||||||||| ||||||||||||||||||||||||||||||||||||||||||||||#",
++ "###########################|::::::::::::::::|B d ^|: : : : : : : :| :::::::::::|#",
++ "###########################| :|B Y h dh |: : : : : : : :| |#",
++ "###########################| :|B Y dd |YYYYYYYYYYYYYYYYYYYYYY| ::: :::::|#",
++ "###########################| :|B |: : : : : : : :| |#",
++ "###########################|:::::::: ||||||55||^||||: : : : : : : :| :::::::::::|#",
++ "###########################| 5 Y ||| |||||||||||||||||||||||||5(((||||||||||||#",
++ "###########################|::::::::::::| Y 5 5 2<|##########",
++ "###########################|||||||||||||||||| 5 5 Y Y Y Y Y Y |||||||2|||##########",
++ "############################################||55|||||||((((((((((((((((((((|6 |############",
++ "############################################| 5wwwwwwwwwwwwwwwwwwwwww||Y |||||||######",
++ "#####################################|||||||| |wwwwwwwwwwwwwwwwwwwwww:|: ::::::|######",
++ "#####################################|eeeeee (wwwwwwwwwwwwwwwwwwwwww:|||| :|######",
++ "#####################################|eeeeee Y (wwwwwwwwwwwwwwwwwwwwww:|: 6 :|######",
++ "#####################################|Eeeeee Y (wwwwwwwwwwwwwwwwwwwwww:|: 6 :|######",
++ "#####################################|eeeeee (wwwwwwwwwwwwwwwwwwwwww:|||| :|######",
++ "#####################################|||||||| |wwwwwwwwwwwwwwwwwwwwww:|: ::::::|######",
++ "########################################|>< 5 5wwwwwwwwwwwwwwwwwwwwww||Y |||||||######",
++ "########################################| ||55|||||||((((((((((((((((((((|6 |############",
++ "#############################|||||||||||||||| 5 5 Y Y Y Y Y Y ||2||||2|||##########",
++ "#############################|^ Y 5 5 | 2<|##########",
++ "#############################|^ Y ||| ||||||||||||||22|||||||||5(((||||||||||||#",
++ "#############################||2|2((((|(((2|||222||||||:::| : : : : : :| :::::::::::|#",
++ "#############################|i | |h B| |:::: | : : : : : :| |#",
++ "#############################|; | dd|dd B| Y 5 Y 2YYYYYYYYYYYYYYYYY:| :::: :::::|#",
++ "#############################|||| |h B| Y | | : : : : : :| |#",
++ "################################| h| ^|2||| |||2||:::| : : : : : :| :::::::::::|#",
++ "################################|2|||||||| |555||Y :|||||||||||||| |||||||||22||||||||||||||#",
++ "################################| ( | |:Y :|############| |#######| |: : : : : :|#",
++ "################################| cccc 2 2 ||2|||||||||||||||| ||||||||| |: : : : : :|#",
++ "################################| ||||| | |::::::::::::| 2 2 |#",
++ "################################| cccc | 2 2 |#",
++ "################################| 2 |||||||||||||||||#",
++ "################################| ccccccccc ||||| |||||||||||||||| |||||||||#################",
++ "################################| |###| :::::::::::::: :|######################",
++ "################################||||||||||||||###| 6 :|######################",
++ "#################################################| 6 :|######################",
++ "#################################################| :::::::::::::: :|######################",
++ "#################################################|||||||||||||||||||||||||######################",
++ "################################################################################################",
++ "################################################################################################"
++ ],
++ "palettes": [ "robofachq" ],
++ "terrain": {
++ "-": "t_wall_metal",
++ "e": "t_elevator",
++ "w": "t_water_pool_shallow",
++ "E": "t_elevator_control",
++ "Y": "t_thconc_floor_olight",
++ "#": "t_rock",
++ "6": "t_console"
++ },
++ "furniture": { ":": "f_server" },
++ "items": {
++ "B": [
++ { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] },
++ { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] }
++ ]
++ }
++ }
++ }
++]
+diff --git a/data/json/npcs/robofac/NPC_Ulysses_Rourke.json b/data/json/obsoletion/npc.json
+similarity index 100%
+rename from data/json/npcs/robofac/NPC_Ulysses_Rourke.json
+rename to data/json/obsoletion/npc.json
+diff --git a/data/json/overmap/overmap_special/specials.json b/data/json/overmap/overmap_special/specials.json
+index 9d6302c72c..2c73e69a2c 100644
+--- a/data/json/overmap/overmap_special/specials.json
++++ b/data/json/overmap/overmap_special/specials.json
+@@ -4208,56 +4208,6 @@
+ { "point": [ 1, 1, 0 ], "overmap": "robofachq_surface_b1_north" },
+ { "point": [ 2, 1, 0 ], "overmap": "robofachq_surface_b2_north" },
+ { "point": [ 3, 1, 0 ], "overmap": "robofachq_surface_b3_north" },
+- { "point": [ 1, -2, -2 ], "overmap": "microlab_sub_connector_north" },
+- { "point": [ 0, -1, -2 ], "overmap": "robofachq_sub_a0_north" },
+- { "point": [ 1, -1, -2 ], "overmap": "robofachq_sub_a1_north" },
+- { "point": [ 2, -1, -2 ], "overmap": "robofachq_sub_a2_north" },
+- { "point": [ 3, -1, -2 ], "overmap": "robofachq_sub_a3_north" },
+- { "point": [ 0, 0, -2 ], "overmap": "robofachq_exe_a0_north" },
+- { "point": [ 1, 0, -2 ], "overmap": "robofachq_exe_a1_north" },
+- { "point": [ 2, 0, -2 ], "overmap": "robofachq_exe_a2_north" },
+- { "point": [ 3, 0, -2 ], "overmap": "robofachq_exe_a3_north" },
+- { "point": [ 0, 1, -2 ], "overmap": "robofachq_exe_b0_north" },
+- { "point": [ 1, 1, -2 ], "overmap": "robofachq_exe_b1_north" },
+- { "point": [ 2, 1, -2 ], "overmap": "robofachq_exe_b2_north" },
+- { "point": [ 3, 1, -2 ], "overmap": "robofachq_exe_b3_north" },
+- { "point": [ 0, 0, -3 ], "overmap": "robofachq_hab_a0_north" },
+- { "point": [ 1, 0, -3 ], "overmap": "robofachq_hab_a1_north" },
+- { "point": [ 2, 0, -3 ], "overmap": "robofachq_hab_a2_north" },
+- { "point": [ 3, 0, -3 ], "overmap": "robofachq_hab_a3_north" },
+- { "point": [ 0, 1, -3 ], "overmap": "robofachq_hab_b0_north" },
+- { "point": [ 1, 1, -3 ], "overmap": "robofachq_hab_b1_north" },
+- { "point": [ 2, 1, -3 ], "overmap": "robofachq_hab_b2_north" },
+- { "point": [ 3, 1, -3 ], "overmap": "robofachq_hab_b3_north" },
+- { "point": [ 1, -2, -4 ], "overmap": "microlab_sub_connector_north" },
+- { "point": [ 0, -1, -4 ], "overmap": "robofachq_sub_a0_north" },
+- { "point": [ 1, -1, -4 ], "overmap": "robofachq_sub_a1_north" },
+- { "point": [ 2, -1, -4 ], "overmap": "robofachq_sub_a2_north" },
+- { "point": [ 3, -1, -4 ], "overmap": "robofachq_sub_a3_north" },
+- { "point": [ 0, 0, -4 ], "overmap": "robofachq_res_a0_north" },
+- { "point": [ 1, 0, -4 ], "overmap": "robofachq_res_a1_north" },
+- { "point": [ 2, 0, -4 ], "overmap": "robofachq_res_a2_north" },
+- { "point": [ 3, 0, -4 ], "overmap": "robofachq_res_a3_north" },
+- { "point": [ 0, 1, -4 ], "overmap": "robofachq_res_b0_north" },
+- { "point": [ 1, 1, -4 ], "overmap": "robofachq_res_b1_north" },
+- { "point": [ 2, 1, -4 ], "overmap": "robofachq_res_b2_north" },
+- { "point": [ 3, 1, -4 ], "overmap": "robofachq_res_b3_north" },
+- { "point": [ 0, 0, -6 ], "overmap": "robofachq_ai_a0_north" },
+- { "point": [ 1, 0, -6 ], "overmap": "robofachq_ai_a1_north" },
+- { "point": [ 2, 0, -6 ], "overmap": "robofachq_ai_a2_north" },
+- { "point": [ 3, 0, -6 ], "overmap": "robofachq_ai_a3_north" },
+- { "point": [ 0, 1, -6 ], "overmap": "robofachq_ai_b0_north" },
+- { "point": [ 1, 1, -6 ], "overmap": "robofachq_ai_b1_north" },
+- { "point": [ 2, 1, -6 ], "overmap": "robofachq_ai_b2_north" },
+- { "point": [ 3, 1, -6 ], "overmap": "robofachq_ai_b3_north" },
+- { "point": [ 0, 0, -7 ], "overmap": "robofachq_aiutl_a0_north" },
+- { "point": [ 1, 0, -7 ], "overmap": "robofachq_aiutl_a1_north" },
+- { "point": [ 2, 0, -7 ], "overmap": "robofachq_aiutl_a2_north" },
+- { "point": [ 3, 0, -7 ], "overmap": "robofachq_aiutl_a3_north" },
+- { "point": [ 0, 1, -7 ], "overmap": "robofachq_aiutl_b0_north" },
+- { "point": [ 1, 1, -7 ], "overmap": "robofachq_aiutl_b1_north" },
+- { "point": [ 2, 1, -7 ], "overmap": "robofachq_aiutl_b2_north" },
+- { "point": [ 3, 1, -7 ], "overmap": "robofachq_aiutl_b3_north" },
+ { "point": [ 10, 2, 0 ], "overmap": "radio_tower_1_north" },
+ { "point": [ 10, 2, 1 ], "overmap": "radio_tower_roof_1_north" },
+ { "point": [ 10, 2, 2 ], "overmap": "radio_tower_even_stair_only_north" },
+--
+2.35.1
+
diff --git a/revert-07_Remove-handload-quality-distinction-1481.patch b/revert-07_Remove-handload-quality-distinction-1481.patch
new file mode 100644
index 0000000..4a9ec6a
--- /dev/null
+++ b/revert-07_Remove-handload-quality-distinction-1481.patch
@@ -0,0 +1,4968 @@
+From 6f1c6c6edbb2f9f958b9585ead80e5bbb09a5a7e Mon Sep 17 00:00:00 2001
+From: KheirFerrum <102964889+KheirFerrum@users.noreply.github.com>
+Date: Tue, 3 May 2022 04:51:35 +0100
+Subject: [PATCH 06/10] Remove handload quality distinction (#1481)
+
+* Make Factory Ammo
+
+* Obsoletion, Recipe balancing, Migration Test
+
+Uncraft and Craft were heavily unbalanced and pulling materials out of thin air during uncraft.
+
+Moved all reloaded ammo into the obsoletion/items.json
+
+MIgration missed 5x50mm flechettes, fixed that.
+
+* Fix bugs
+
+Bugtest revealed human error. Fixed and retested.
+
+* Styling fixes
+
+* Fixed Item groups. reloaded_4570_bp unobsoleted.
+
+reloaded_4570_bp probably removed because of reloaded prefix, but is actually a blackpowder load, and the recipe still remains in the game, so I put it back since it appears to be an oversight.
+
+All reference to reloaded ammunition in item_groups has been replaced with factory ammo.
+
+* 4570_bp
+
+For some reason this predates my changes to the system???
+
+This means that all this time we've had a recipe that leads to an obsoleted item.
+
+Added back into the game and made it reversible because I don't really understand why it was removed.
+---
+ .../itemgroups/Weapons_Mods_Ammo/ammo.json | 118 ++--
+ data/json/items/ammo/10mm.json | 9 -
+ data/json/items/ammo/22.json | 18 -
+ data/json/items/ammo/223.json | 27 -
+ data/json/items/ammo/270win.json | 9 -
+ data/json/items/ammo/300.json | 10 -
+ data/json/items/ammo/3006.json | 27 -
+ data/json/items/ammo/300blk.json | 10 -
+ data/json/items/ammo/308.json | 27 -
+ data/json/items/ammo/32.json | 9 -
+ data/json/items/ammo/357mag.json | 14 -
+ data/json/items/ammo/357sig.json | 18 -
+ data/json/items/ammo/38.json | 18 -
+ data/json/items/ammo/380.json | 27 -
+ data/json/items/ammo/38super.json | 18 -
+ data/json/items/ammo/40.json | 18 -
+ data/json/items/ammo/410shot.json | 9 -
+ data/json/items/ammo/44.json | 18 -
+ data/json/items/ammo/45.json | 27 -
+ data/json/items/ammo/454.json | 9 -
+ data/json/items/ammo/4570.json | 40 --
+ data/json/items/ammo/45colt.json | 9 -
+ data/json/items/ammo/46.json | 10 -
+ data/json/items/ammo/460.json | 19 -
+ data/json/items/ammo/50.json | 30 -
+ data/json/items/ammo/500.json | 9 -
+ data/json/items/ammo/545x39.json | 20 -
+ data/json/items/ammo/57.json | 10 -
+ data/json/items/ammo/5x50.json | 11 -
+ data/json/items/ammo/700nx.json | 9 -
+ data/json/items/ammo/762.json | 19 -
+ data/json/items/ammo/762R.json | 9 -
+ data/json/items/ammo/762x25.json | 7 -
+ data/json/items/ammo/9mm.json | 36 -
+ data/json/items/ammo/9x18.json | 31 -
+ data/json/items/ammo/shot.json | 45 --
+ data/json/items/migration.json | 348 +++++++++-
+ data/json/obsoletion/items.json | 626 ++++++++++++++++++
+ data/json/obsoletion/recipes.json | 340 ++++++++++
+ data/json/recipes/ammo/pistol.json | 173 +++--
+ data/json/recipes/ammo/rifle.json | 111 ++--
+ data/json/recipes/ammo/shot.json | 17 +-
+ data/json/uncraft/ammo/223.json | 2 +-
+ data/json/uncraft/ammo/30-06.json | 19 +-
+ data/json/uncraft/ammo/300.json | 2 +-
+ data/json/uncraft/ammo/300blk.json | 2 +-
+ data/json/uncraft/ammo/308.json | 8 +-
+ data/json/uncraft/ammo/357mag.json | 8 +-
+ data/json/uncraft/ammo/357sig.json | 10 +-
+ data/json/uncraft/ammo/38.json | 10 +-
+ data/json/uncraft/ammo/380.json | 6 +-
+ data/json/uncraft/ammo/38super.json | 16 +-
+ data/json/uncraft/ammo/40.json | 2 +-
+ data/json/uncraft/ammo/44.json | 10 +-
+ data/json/uncraft/ammo/45.json | 2 +-
+ data/json/uncraft/ammo/454.json | 8 +-
+ data/json/uncraft/ammo/4570.json | 22 +-
+ data/json/uncraft/ammo/45colt.json | 2 +-
+ data/json/uncraft/ammo/460.json | 10 +-
+ data/json/uncraft/ammo/500.json | 8 +-
+ data/json/uncraft/ammo/50bmg.json | 2 +-
+ data/json/uncraft/ammo/545.json | 4 +-
+ data/json/uncraft/ammo/556.json | 4 +-
+ data/json/uncraft/ammo/5x50.json | 18 +-
+ data/json/uncraft/ammo/700nx.json | 6 +-
+ data/json/uncraft/ammo/762x39.json | 4 +-
+ data/json/uncraft/ammo/762x51.json | 5 +-
+ data/json/uncraft/ammo/762x54.json | 6 +-
+ data/json/uncraft/ammo/9mm.json | 2 +-
+ data/json/uncraft/ammo/9x18mm.json | 2 +-
+ .../Generic_Guns/recipes/recipe_obsolete.json | 580 +---------------
+ 71 files changed, 1632 insertions(+), 1517 deletions(-)
+
+diff --git a/data/json/itemgroups/Weapons_Mods_Ammo/ammo.json b/data/json/itemgroups/Weapons_Mods_Ammo/ammo.json
+index 5d03f226d2..c10de498fb 100644
+--- a/data/json/itemgroups/Weapons_Mods_Ammo/ammo.json
++++ b/data/json/itemgroups/Weapons_Mods_Ammo/ammo.json
+@@ -87,40 +87,40 @@
+ "//": "Reloaded pistol ammo balanced according to rarity.",
+ "subtype": "distribution",
+ "entries": [
+- { "item": "reloaded_10mm_fmj", "prob": 10 },
+- { "item": "reloaded_32_acp", "prob": 50 },
+- { "item": "reloaded_38_fmj", "prob": 30 },
+- { "item": "reloaded_38_special", "prob": 80 },
+- { "item": "reloaded_38super_fmj", "prob": 40 },
+- { "item": "reloaded_357mag_fmj", "prob": 30 },
+- { "item": "reloaded_357mag_jhp", "prob": 30 },
+- { "item": "reloaded_380_JHP", "prob": 10 },
+- { "item": "reloaded_380_FMJ", "prob": 15 },
+- { "item": "reloaded_380_p", "prob": 5 },
+- { "item": "reloaded_357sig_fmj", "prob": 70 },
+- { "item": "reloaded_357sig_jhp", "prob": 70 },
+- { "item": "reloaded_40fmj", "prob": 20 },
+- { "item": "reloaded_40sw", "prob": 50 },
+- { "item": "reloaded_44magnum", "prob": 60 },
+- { "item": "reloaded_44fmj", "prob": 30 },
+- { "item": "reloaded_45_acp", "prob": 80 },
+- { "item": "reloaded_45_jhp", "prob": 100 },
+- { "item": "reloaded_45_super", "prob": 40 },
+- { "item": "reloaded_46mm", "prob": 20 },
+- { "item": "reloaded_454_Casull", "prob": 5 },
+- { "item": "reloaded_45colt_jhp", "prob": 10 },
+- { "item": "reloaded_460_fmj", "prob": 5 },
+- { "item": "reloaded_460_rowland", "prob": 5 },
+- { "item": "reloaded_500_Magnum", "prob": 5 },
+- { "item": "reloaded_57mm", "prob": 50 },
+- { "item": "reloaded_9mm", "prob": 160 },
+- { "item": "reloaded_9mmfmj", "prob": 80 },
+- { "item": "reloaded_9mmP", "prob": 80 },
+- { "item": "reloaded_9mmP2", "prob": 40 },
+- { "item": "reloaded_9x18mm", "prob": 20 },
+- { "item": "reloaded_9x18mmfmj", "prob": 10 },
+- { "item": "reloaded_9x18mmP2", "prob": 5 },
+- { "item": "reloaded_762_25", "prob": 10 }
++ { "item": "10mm_fmj", "prob": 10 },
++ { "item": "32_acp", "prob": 50 },
++ { "item": "38_fmj", "prob": 30 },
++ { "item": "38_special", "prob": 80 },
++ { "item": "38super_fmj", "prob": 40 },
++ { "item": "357mag_fmj", "prob": 30 },
++ { "item": "357mag_jhp", "prob": 30 },
++ { "item": "380_JHP", "prob": 10 },
++ { "item": "380_FMJ", "prob": 15 },
++ { "item": "380_p", "prob": 5 },
++ { "item": "357sig_fmj", "prob": 70 },
++ { "item": "357sig_jhp", "prob": 70 },
++ { "item": "40fmj", "prob": 20 },
++ { "item": "40sw", "prob": 50 },
++ { "item": "44magnum", "prob": 60 },
++ { "item": "44fmj", "prob": 30 },
++ { "item": "45_acp", "prob": 80 },
++ { "item": "45_jhp", "prob": 100 },
++ { "item": "45_super", "prob": 40 },
++ { "item": "46mm", "prob": 20 },
++ { "item": "454_Casull", "prob": 5 },
++ { "item": "45colt_jhp", "prob": 10 },
++ { "item": "460_fmj", "prob": 5 },
++ { "item": "460_rowland", "prob": 5 },
++ { "item": "500_Magnum", "prob": 5 },
++ { "item": "57mm", "prob": 50 },
++ { "item": "9mm", "prob": 160 },
++ { "item": "9mmfmj", "prob": 80 },
++ { "item": "9mmP", "prob": 80 },
++ { "item": "9mmP2", "prob": 40 },
++ { "item": "9x18mm", "prob": 20 },
++ { "item": "9x18mmfmj", "prob": 10 },
++ { "item": "9x18mmP2", "prob": 5 },
++ { "item": "762_25", "prob": 10 }
+ ]
+ },
+ {
+@@ -274,25 +274,25 @@
+ "//": "Reloaded rifle ammo balanced according to rarity.",
+ "subtype": "distribution",
+ "entries": [
+- { "item": "reloaded_223", "prob": 60 },
+- { "item": "reloaded_22_cphp", "prob": 20 },
+- { "item": "reloaded_22_lr", "prob": 70 },
+- { "item": "reloaded_270win_jsp", "prob": 15 },
+- { "item": "reloaded_300_winmag", "prob": 15 },
+- { "item": "reloaded_3006", "prob": 70 },
+- { "item": "reloaded_3006fmj", "prob": 10 },
+- { "item": "reloaded_3006_incendiary", "prob": 5 },
+- { "item": "reloaded_308", "prob": 40 },
+- { "item": "reloaded_556", "prob": 10 },
+- { "item": "reloaded_556_incendiary", "prob": 5 },
+- { "item": "reloaded_4570_sp", "prob": 15 },
+- { "item": "reloaded_4570_pen", "prob": 5 },
+- { "item": "reloaded_4570_low", "prob": 15 },
+- { "item": "reloaded_762_51", "prob": 10 },
+- { "item": "reloaded_762_51_incendiary", "prob": 5 },
+- { "item": "reloaded_762_54R", "prob": 40 },
+- { "item": "reloaded_762_m43", "prob": 20 },
+- { "item": "reloaded_300blk", "prob": 10 }
++ { "item": "223", "prob": 60 },
++ { "item": "22_cphp", "prob": 20 },
++ { "item": "22_lr", "prob": 70 },
++ { "item": "270win_jsp", "prob": 15 },
++ { "item": "300_winmag", "prob": 15 },
++ { "item": "3006", "prob": 70 },
++ { "item": "3006fmj", "prob": 10 },
++ { "item": "3006_incendiary", "prob": 5 },
++ { "item": "308", "prob": 40 },
++ { "item": "556", "prob": 10 },
++ { "item": "556_incendiary", "prob": 5 },
++ { "item": "4570_sp", "prob": 15 },
++ { "item": "4570_pen", "prob": 5 },
++ { "item": "4570_low", "prob": 15 },
++ { "item": "762_51", "prob": 10 },
++ { "item": "762_51_incendiary", "prob": 5 },
++ { "item": "762_54R", "prob": 40 },
++ { "item": "762_m43", "prob": 20 },
++ { "item": "300blk", "prob": 10 }
+ ]
+ },
+ {
+@@ -380,13 +380,13 @@
+ "//": "Reloaded shotgun ammo balanced according to rarity.",
+ "subtype": "distribution",
+ "entries": [
+- { "item": "reloaded_shot_00", "prob": 200 },
+- { "item": "reloaded_shot_bird", "prob": 30 },
+- { "item": "reloaded_shot_dragon", "prob": 20 },
+- { "item": "reloaded_shot_flechette", "prob": 5 },
+- { "item": "reloaded_shot_slug", "prob": 30 },
++ { "item": "shot_00", "prob": 200 },
++ { "item": "shot_bird", "prob": 30 },
++ { "item": "shot_dragon", "prob": 20 },
++ { "item": "shot_flechette", "prob": 5 },
++ { "item": "shot_slug", "prob": 30 },
+ { "item": "shot_scrap", "prob": 80 },
+- { "item": "reloaded_410shot_000", "prob": 25 }
++ { "item": "410shot_000", "prob": 25 }
+ ]
+ },
+ {
+diff --git a/data/json/items/ammo/10mm.json b/data/json/items/ammo/10mm.json
+index 668ae34781..f86c20c8e4 100644
+--- a/data/json/items/ammo/10mm.json
++++ b/data/json/items/ammo/10mm.json
+@@ -36,14 +36,5 @@
+ },
+ "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_10mm_fmj",
+- "copy-from": "10mm_fmj",
+- "type": "AMMO",
+- "name": { "str": "10mm Auto FMJ, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/22.json b/data/json/items/ammo/22.json
+index d0d6f14aa5..268637c10b 100644
+--- a/data/json/items/ammo/22.json
++++ b/data/json/items/ammo/22.json
+@@ -69,23 +69,5 @@
+ },
+ "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_22_lr",
+- "copy-from": "22_lr",
+- "type": "AMMO",
+- "name": { "str": ".22 LR, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_22_cphp",
+- "copy-from": "22_cphp",
+- "type": "AMMO",
+- "name": { "str": ".22 CPHP, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/223.json b/data/json/items/ammo/223.json
+index 0920cde8c0..22c55429c5 100644
+--- a/data/json/items/ammo/223.json
++++ b/data/json/items/ammo/223.json
+@@ -84,32 +84,5 @@
+ },
+ "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_223",
+- "copy-from": "223",
+- "type": "AMMO",
+- "name": { "str": ".223 Remington, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_556",
+- "copy-from": "556",
+- "type": "AMMO",
+- "name": { "str": "5.56 NATO, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_556_incendiary",
+- "copy-from": "556_incendiary",
+- "type": "AMMO",
+- "name": { "str": "5.56 NATO tracer, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/270win.json b/data/json/items/ammo/270win.json
+index d9812da22a..bc2f5e826e 100644
+--- a/data/json/items/ammo/270win.json
++++ b/data/json/items/ammo/270win.json
+@@ -35,14 +35,5 @@
+ },
+ "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_270win_jsp",
+- "copy-from": "270win_jsp",
+- "type": "AMMO",
+- "name": { "str": ".270 Winchester JSP, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/300.json b/data/json/items/ammo/300.json
+index 6c69fe4e4d..95fcb846f5 100644
+--- a/data/json/items/ammo/300.json
++++ b/data/json/items/ammo/300.json
+@@ -35,15 +35,5 @@
+ },
+ "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_300_winmag",
+- "copy-from": "300_winmag",
+- "type": "AMMO",
+- "name": { "str": ".300 Winchester Magnum, reloaded" },
+- "description": "The .300 Winchester Magnum is extremely versatile and has been adopted by many shooting disciplines. The cartridge has found use by hunters, military units, and law enforcement departments. This one has been hand-reloaded.",
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/3006.json b/data/json/items/ammo/3006.json
+index d8abccb9b4..222ccaad66 100644
+--- a/data/json/items/ammo/3006.json
++++ b/data/json/items/ammo/3006.json
+@@ -79,32 +79,5 @@
+ },
+ "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_3006",
+- "copy-from": "3006",
+- "type": "AMMO",
+- "name": { "str": ".30-06 Springfield, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_3006_incendiary",
+- "copy-from": "3006_incendiary",
+- "type": "AMMO",
+- "name": { "str": ".30-06 incendiary, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_3006fmj",
+- "copy-from": "3006fmj",
+- "type": "AMMO",
+- "name": { "str": ".30-06 M2 AP, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/300blk.json b/data/json/items/ammo/300blk.json
+index acf9dc62cc..bdff5be36f 100644
+--- a/data/json/items/ammo/300blk.json
++++ b/data/json/items/ammo/300blk.json
+@@ -46,15 +46,5 @@
+ },
+ "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_300blk",
+- "copy-from": "300blk",
+- "type": "AMMO",
+- "name": { "str": ".300 AAC Blackout, reloaded" },
+- "description": ".300 AAC Blackout is an intermediate cartridge that achieves ballistics similar to the 7.62x39 but allows use on the AR-15 platform. The round is necked-up from the 5.56mm NATO, but feeds from a STANAG magazine. It requires a specific barrel, so will not work in a standard M4 or similar carbine. This one has been hand-reloaded.",
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/308.json b/data/json/items/ammo/308.json
+index 3691c8269a..8d25222a91 100644
+--- a/data/json/items/ammo/308.json
++++ b/data/json/items/ammo/308.json
+@@ -82,32 +82,5 @@
+ },
+ "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_308",
+- "copy-from": "308",
+- "type": "AMMO",
+- "name": { "str": ".308 Winchester, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_762_51",
+- "copy-from": "762_51",
+- "type": "AMMO",
+- "name": { "str": "7.62x51mm, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_762_51_incendiary",
+- "copy-from": "762_51_incendiary",
+- "type": "AMMO",
+- "name": { "str": "7.62x51mm incendiary, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/32.json b/data/json/items/ammo/32.json
+index b500f7f5b4..52e96900ea 100644
+--- a/data/json/items/ammo/32.json
++++ b/data/json/items/ammo/32.json
+@@ -36,14 +36,5 @@
+ },
+ "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_32_acp",
+- "copy-from": "32_acp",
+- "type": "AMMO",
+- "name": { "str": ".32 ACP, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/357mag.json b/data/json/items/ammo/357mag.json
+index b00d90a5d8..c5324f076e 100644
+--- a/data/json/items/ammo/357mag.json
++++ b/data/json/items/ammo/357mag.json
+@@ -58,19 +58,5 @@
+ },
+ "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_357mag_fmj",
+- "copy-from": "357mag_fmj",
+- "type": "AMMO",
+- "name": { "str_sp": ".357 Magnum FMJ, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1, "recoil": 0.9 }
+- },
+- {
+- "id": "reloaded_357mag_jhp",
+- "copy-from": "357mag_jhp",
+- "type": "AMMO",
+- "name": { "str_sp": ".357 Magnum JHP, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1, "recoil": 0.9 }
+ }
+ ]
+diff --git a/data/json/items/ammo/357sig.json b/data/json/items/ammo/357sig.json
+index 6f2cd83e49..99473a7653 100644
+--- a/data/json/items/ammo/357sig.json
++++ b/data/json/items/ammo/357sig.json
+@@ -30,23 +30,5 @@
+ "name": { "str": ".357 SIG JHP" },
+ "description": "Jacketed hollow point .357 SIG ammunition. The .357 SIG round is a high velocity pistol cartridge, giving it a flatter trajectory than many handgun rounds.",
+ "damage": { "damage_type": "bullet", "amount": 42, "armor_penetration": 0 }
+- },
+- {
+- "id": "reloaded_357sig_fmj",
+- "copy-from": "357sig_fmj",
+- "type": "AMMO",
+- "name": { "str": ".357 SIG FMJ, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_357sig_jhp",
+- "copy-from": "357sig_jhp",
+- "type": "AMMO",
+- "name": { "str": ".357 SIG JHP, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/38.json b/data/json/items/ammo/38.json
+index f4b08dfaaa..798b35db5d 100644
+--- a/data/json/items/ammo/38.json
++++ b/data/json/items/ammo/38.json
+@@ -32,24 +32,6 @@
+ "recoil": 250,
+ "effects": [ "COOKOFF" ]
+ },
+- {
+- "id": "reloaded_38_fmj",
+- "copy-from": "38_fmj",
+- "type": "AMMO",
+- "name": { "str": ".38 FMJ, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_38_special",
+- "copy-from": "38_special",
+- "type": "AMMO",
+- "name": { "str": ".38 Special, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+ {
+ "id": "bp_38_fmj",
+ "copy-from": "38_fmj",
+diff --git a/data/json/items/ammo/380.json b/data/json/items/ammo/380.json
+index 395772a3fa..9667b74813 100644
+--- a/data/json/items/ammo/380.json
++++ b/data/json/items/ammo/380.json
+@@ -73,32 +73,5 @@
+ },
+ "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_380_FMJ",
+- "copy-from": "380_FMJ",
+- "type": "AMMO",
+- "name": { "str": ".380 ACP FMJ, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_380_JHP",
+- "copy-from": "380_JHP",
+- "type": "AMMO",
+- "name": { "str": ".380 ACP JHP, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_380_p",
+- "copy-from": "380_p",
+- "type": "AMMO",
+- "name": { "str": ".380 ACP +P, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/38super.json b/data/json/items/ammo/38super.json
+index 06ac5f021a..2b576f3bf9 100644
+--- a/data/json/items/ammo/38super.json
++++ b/data/json/items/ammo/38super.json
+@@ -34,23 +34,5 @@
+ "count": 20,
+ "//": "Hollowpoint damage increase of 25%.",
+ "damage": { "damage_type": "bullet", "amount": 40, "armor_penetration": 0 }
+- },
+- {
+- "id": "reloaded_38super_fmj",
+- "copy-from": "38super_fmj",
+- "type": "AMMO",
+- "name": { "str": ".38 Super FMJ, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_38_super",
+- "copy-from": "38_super",
+- "type": "AMMO",
+- "name": { "str": ".38 Super, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/40.json b/data/json/items/ammo/40.json
+index 8cb513d33c..227f270ad0 100644
+--- a/data/json/items/ammo/40.json
++++ b/data/json/items/ammo/40.json
+@@ -59,23 +59,5 @@
+ },
+ "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_40fmj",
+- "copy-from": "40fmj",
+- "type": "AMMO",
+- "name": { "str": ".40 S&W FMJ, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_40sw",
+- "copy-from": "40sw",
+- "type": "AMMO",
+- "name": { "str": ".40 S&W JHP, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/410shot.json b/data/json/items/ammo/410shot.json
+index 757b9b403a..ffb7db6072 100644
+--- a/data/json/items/ammo/410shot.json
++++ b/data/json/items/ammo/410shot.json
+@@ -21,14 +21,5 @@
+ "recoil": 1350,
+ "loudness": 90,
+ "effects": [ "COOKOFF", "SHOT" ]
+- },
+- {
+- "id": "reloaded_410shot_000",
+- "copy-from": "410shot_000",
+- "type": "AMMO",
+- "name": { "str": ".410 000 shot, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/44.json b/data/json/items/ammo/44.json
+index 5c014350eb..1082652bf7 100644
+--- a/data/json/items/ammo/44.json
++++ b/data/json/items/ammo/44.json
+@@ -32,24 +32,6 @@
+ "recoil": 1570,
+ "effects": [ "COOKOFF" ]
+ },
+- {
+- "id": "reloaded_44fmj",
+- "copy-from": "44fmj",
+- "type": "AMMO",
+- "name": { "str": ".44 Magnum FMJ, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_44magnum",
+- "copy-from": "44magnum",
+- "type": "AMMO",
+- "name": { "str": ".44 Magnum, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+ {
+ "id": "bp_44magnum",
+ "copy-from": "44magnum",
+diff --git a/data/json/items/ammo/45.json b/data/json/items/ammo/45.json
+index 76d92daa6c..3c78bef870 100644
+--- a/data/json/items/ammo/45.json
++++ b/data/json/items/ammo/45.json
+@@ -71,32 +71,5 @@
+ },
+ "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_45_acp",
+- "copy-from": "45_acp",
+- "type": "AMMO",
+- "name": { "str": ".45 FMJ, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_45_jhp",
+- "copy-from": "45_jhp",
+- "type": "AMMO",
+- "name": { "str": ".45 ACP JHP, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_45_super",
+- "copy-from": "45_super",
+- "type": "AMMO",
+- "name": { "str": ".45 ACP +P, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/454.json b/data/json/items/ammo/454.json
+index d46502dbd2..ac93acc229 100644
+--- a/data/json/items/ammo/454.json
++++ b/data/json/items/ammo/454.json
+@@ -22,15 +22,6 @@
+ "recoil": 2500,
+ "effects": [ "COOKOFF" ]
+ },
+- {
+- "id": "reloaded_454_Casull",
+- "copy-from": "454_Casull",
+- "type": "AMMO",
+- "name": { "str": ".454 Casull, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+ {
+ "id": "bp_454_Casull",
+ "copy-from": "454_Casull",
+diff --git a/data/json/items/ammo/4570.json b/data/json/items/ammo/4570.json
+index 94082b3805..360afcdb1c 100644
+--- a/data/json/items/ammo/4570.json
++++ b/data/json/items/ammo/4570.json
+@@ -44,45 +44,5 @@
+ "price_postapoc": 400,
+ "flags": [ "IRREPLACEABLE_CONSUMABLE" ],
+ "relative": { "range": -8, "damage": { "damage_type": "bullet", "amount": -14, "armor_penetration": -2 }, "recoil": -900 }
+- },
+- {
+- "id": "reloaded_4570_sp",
+- "copy-from": "4570_sp",
+- "type": "AMMO",
+- "name": { "str": ".45-70 SP, reloaded" },
+- "description": ".45-70 Government ammunition loaded with a 305 grain soft point round. One of the oldest cartridges still in use, it is still a favorite for large game hunting at short ranges. This one has been hand-loaded.",
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_4570_pen",
+- "copy-from": "4570_pen",
+- "type": "AMMO",
+- "name": { "str": ".45-70 +P penetrator, reloaded" },
+- "description": ".45-70 Government +P ammunition loaded with a 305 grain solid copper penetrator projectile. Designed for maximum penetration through thick hide and bone while maintaining ideal wounding characteristics. This one has been hand-loaded.",
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_4570_low",
+- "copy-from": "4570_low",
+- "type": "AMMO",
+- "name": { "str": ".45-70 LFN cowboy, reloaded" },
+- "description": ".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet to original specifications for safe use in antique firearms. Quite a bit less powerful than modern ammo, but still packs a punch. This one has been hand-loaded.",
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_4570_bp",
+- "copy-from": "4570_low",
+- "type": "AMMO",
+- "name": { "str": ".45-70, black powder" },
+- "description": ".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet using black powder to original specifications. Quite a bit less powerful and a lot dirtier than modern ammo, but still packs a punch. This one has been hand-loaded.",
+- "proportional": { "price": 0.6, "damage": { "damage_type": "bullet", "amount": 0.8 }, "dispersion": 1.2 },
+- "extend": { "effects": [ "RECYCLED", "MUZZLE_SMOKE", "BLACKPOWDER" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/45colt.json b/data/json/items/ammo/45colt.json
+index 713c49c5b4..99a289404c 100644
+--- a/data/json/items/ammo/45colt.json
++++ b/data/json/items/ammo/45colt.json
+@@ -23,15 +23,6 @@
+ "recoil": 600,
+ "effects": [ "COOKOFF" ]
+ },
+- {
+- "id": "reloaded_45colt_jhp",
+- "copy-from": "45colt_jhp",
+- "type": "AMMO",
+- "name": { "str": ".45 Colt JHP, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+ {
+ "id": "bp_45colt_jhp",
+ "copy-from": "45colt_jhp",
+diff --git a/data/json/items/ammo/46.json b/data/json/items/ammo/46.json
+index 477702dcdb..3a63dddaf4 100644
+--- a/data/json/items/ammo/46.json
++++ b/data/json/items/ammo/46.json
+@@ -37,15 +37,5 @@
+ },
+ "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_46mm",
+- "copy-from": "46mm",
+- "type": "AMMO",
+- "name": { "str": "4.6x30mm, reloaded" },
+- "description": "4.6x30mm ammunition with 31gr copper plated lead bullets. The 4.6x30mm round was developed by H&K to compete with FN Herstal's 5.7x28mm cartridge. It has low recoil, but no usual armor penetration due to using simple lead bullets rather than proper factory-made penetrator projectiles.",
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9, "armor_penetration": 0.2 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/460.json b/data/json/items/ammo/460.json
+index c21480727c..087ec1ba8f 100644
+--- a/data/json/items/ammo/460.json
++++ b/data/json/items/ammo/460.json
+@@ -44,24 +44,5 @@
+ },
+ "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_460_fmj",
+- "copy-from": "460_fmj",
+- "type": "AMMO",
+- "name": { "str": ".460 Rowland FMJ, reloaded" },
+- "description": "A brass-jacketed variant of the .460 Rowland round. This increases penetration slightly at the cost of reduced damage from expansion.",
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_460_rowland",
+- "copy-from": "460_rowland",
+- "type": "AMMO",
+- "name": { "str": ".460 Rowland, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/50.json b/data/json/items/ammo/50.json
+index 928f5c94a1..058da3c560 100644
+--- a/data/json/items/ammo/50.json
++++ b/data/json/items/ammo/50.json
+@@ -65,35 +65,5 @@
+ "//": "mk 211 is estimated to be as effective as 20mm, which would have 65kJ energy, or 255 damage. ~181 damage is fair.",
+ "relative": { "damage": { "damage_type": "bullet", "amount": 50, "armor_penetration": 25 } },
+ "dispersion": 100
+- },
+- {
+- "id": "reloaded_50_incendiary",
+- "copy-from": "50_incendiary",
+- "type": "AMMO",
+- "name": { "str": ".50 BMG tracer, reloaded" },
+- "description": "A tracer variant of the powerful .50 BMG round. Tracer rounds help to keep the weapon they are fired from on target at the risk of igniting flammable substances. This one has been hand-reloaded.",
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_50bmg",
+- "copy-from": "50match",
+- "type": "AMMO",
+- "name": { "str": ".50 BMG Match, reloaded" },
+- "description": ".50 BMG ammunition with lead-cored FMJ bullets. The .50 BMG is a very powerful rifle round designed for anti-aircraft use, later adapted to anti-vehicular and anti-personnel roles. Its stupendous energy and armor piercing capabilities make it one of the most deadly rounds available, offset only by its drastic recoil and noise.",
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_50ss",
+- "copy-from": "50ss",
+- "type": "AMMO",
+- "name": { "str": ".50 BMG AP, reloaded" },
+- "description": "Variant of the .50 BMG round that uses a core hardened steel. Penetration is increased, but damage is reduced. This one has been hand-reloaded.",
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/500.json b/data/json/items/ammo/500.json
+index 1f115ef477..e13aec49f2 100644
+--- a/data/json/items/ammo/500.json
++++ b/data/json/items/ammo/500.json
+@@ -35,14 +35,5 @@
+ },
+ "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_500_Magnum",
+- "copy-from": "500_Magnum",
+- "type": "AMMO",
+- "name": { "str": ".500 S&W Magnum, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/545x39.json b/data/json/items/ammo/545x39.json
+index 67b9e40515..13b13adcf2 100644
+--- a/data/json/items/ammo/545x39.json
++++ b/data/json/items/ammo/545x39.json
+@@ -35,25 +35,5 @@
+ "symbol": "=",
+ "color": "yellow",
+ "relative": { "damage": { "damage_type": "bullet", "amount": -2, "armor_penetration": 8 } }
+- },
+- {
+- "id": "reloaded_545",
+- "copy-from": "545",
+- "type": "AMMO",
+- "name": { "str": "5.45x39mm, reloaded" },
+- "description": "The 5.45x39mm was the standard ammunition for the AK series from 1974. Its designers were inspired by the 5.56x45mm NATO cartridge. This one has been hand-reloaded.",
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_545_ap",
+- "copy-from": "545_ap",
+- "type": "AMMO",
+- "name": { "str": "5.45x39mm AP, reloaded" },
+- "description": "Armor piercing 5.45x39mm ammunition with hand-reloaded bullets containing a steel penetrator. Developed in 1998 by the Russian military.",
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/57.json b/data/json/items/ammo/57.json
+index e9ada36514..0cde40d396 100644
+--- a/data/json/items/ammo/57.json
++++ b/data/json/items/ammo/57.json
+@@ -37,15 +37,5 @@
+ },
+ "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_57mm",
+- "copy-from": "57mm",
+- "type": "AMMO",
+- "name": { "str": "5.7x28mm, reloaded" },
+- "description": "5.7x28mm ammunition with 31gr AP FMJ bullets. The 5.7x28mm cartridge was designed by FN Herstal to replace the 9x19mm round in NATO use. Although the project to replace 9x19mm Parabellum was effectively canceled the 5.7x28mm round has seen action in many conflicts and has proven to be reliable. It has very low recoil but no usual armor penetration due to using simple lead bullets rather than proper factory-made penetrator projectiles.",
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9, "armor_penetration": 0.2 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/5x50.json b/data/json/items/ammo/5x50.json
+index c1a285cb91..5a8901e578 100644
+--- a/data/json/items/ammo/5x50.json
++++ b/data/json/items/ammo/5x50.json
+@@ -33,16 +33,5 @@
+ "price_postapoc": 2400,
+ "relative": { "range": -10, "damage": { "damage_type": "bullet", "amount": 5, "armor_penetration": 20 }, "dispersion": 20 },
+ "proportional": { "recoil": 1.1 }
+- },
+- {
+- "id": "reloaded_5x50dart",
+- "copy-from": "5x50dart",
+- "type": "AMMO",
+- "name": { "str": "5x50mm flechette, reloaded" },
+- "price_postapoc": 1200,
+- "description": "Designed to defeat modern body armor, the Rivtech 5x50mm flechette round features a biodegradable sabot and a single, fin-stabilized penetrator. This one has been hand-reloaded.",
+- "effects": [ "COOKOFF", "RECYCLED" ],
+- "relative": { "range": -15, "dispersion": 40 },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9, "armor_penetration": 0.7 }, "recoil": 0.9 }
+ }
+ ]
+diff --git a/data/json/items/ammo/700nx.json b/data/json/items/ammo/700nx.json
+index 7eb5b7e653..0c1502f592 100644
+--- a/data/json/items/ammo/700nx.json
++++ b/data/json/items/ammo/700nx.json
+@@ -21,14 +21,5 @@
+ "dispersion": 15,
+ "recoil": 12100,
+ "effects": [ "COOKOFF" ]
+- },
+- {
+- "id": "reloaded_700nx",
+- "copy-from": "700nx",
+- "type": "AMMO",
+- "name": { "str": ".700 NX, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/762.json b/data/json/items/ammo/762.json
+index 7f770d227c..685111f200 100644
+--- a/data/json/items/ammo/762.json
++++ b/data/json/items/ammo/762.json
+@@ -32,24 +32,5 @@
+ "price": 150,
+ "price_postapoc": 6800,
+ "relative": { "damage": { "damage_type": "bullet", "amount": 4, "armor_penetration": 2 } }
+- },
+- {
+- "id": "reloaded_762_m43",
+- "copy-from": "762_m43",
+- "type": "AMMO",
+- "name": { "str": "7.62x39mm M43, reloaded" },
+- "description": "7.62x39mm ammunition with 121.9gr bullets. Developed in WW2 by the Soviet Union the 7.62x39mm round rapidly became extremely popular all over the world. The bullet has poor wounding potential due to its stability, only beginning to yaw after 26cm.",
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_762_m87",
+- "copy-from": "762_m87",
+- "type": "AMMO",
+- "name": { "str": "7.62x39mm M67, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/762R.json b/data/json/items/ammo/762R.json
+index 805a79dc09..1d595cc200 100644
+--- a/data/json/items/ammo/762R.json
++++ b/data/json/items/ammo/762R.json
+@@ -21,14 +21,5 @@
+ "dispersion": 15,
+ "recoil": 2650,
+ "effects": [ "COOKOFF" ]
+- },
+- {
+- "id": "reloaded_762_54R",
+- "copy-from": "762_54R",
+- "type": "AMMO",
+- "name": { "str": "7.62x54mmR, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/762x25.json b/data/json/items/ammo/762x25.json
+index 77877e86f7..2dc22bed9e 100644
+--- a/data/json/items/ammo/762x25.json
++++ b/data/json/items/ammo/762x25.json
+@@ -63,12 +63,5 @@
+ },
+ "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_762_25",
+- "copy-from": "762_25hot",
+- "type": "AMMO",
+- "name": { "str": "7.62x25mm, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9, "armor_penetration": 0.9 }, "dispersion": 1.1 }
+ }
+ ]
+diff --git a/data/json/items/ammo/9mm.json b/data/json/items/ammo/9mm.json
+index a48e446164..420503af41 100644
+--- a/data/json/items/ammo/9mm.json
++++ b/data/json/items/ammo/9mm.json
+@@ -85,41 +85,5 @@
+ },
+ "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_9mm",
+- "copy-from": "9mm",
+- "type": "AMMO",
+- "name": { "str": "9x19mm JHP, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_9mmfmj",
+- "copy-from": "9mmfmj",
+- "type": "AMMO",
+- "name": { "str": "9x19mm FMJ, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_9mmP",
+- "copy-from": "9mmP",
+- "type": "AMMO",
+- "name": { "str": "9x19mm +P, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_9mmP2",
+- "copy-from": "9mmP2",
+- "type": "AMMO",
+- "name": { "str": "9x19mm +P+, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/9x18.json b/data/json/items/ammo/9x18.json
+index 94c130a144..63b613e9ff 100644
+--- a/data/json/items/ammo/9x18.json
++++ b/data/json/items/ammo/9x18.json
+@@ -74,36 +74,5 @@
+ },
+ "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_9x18mm",
+- "copy-from": "9x18mm",
+- "type": "AMMO",
+- "name": { "str": "9x18mm, reloaded" },
+- "description": "9x18 millimeter Makarov, an old Soviet pistol cartridge used mainly by the Makarov PM. As the designation implies, it is a bit shorter in case length compared to 9mm Parabellum. This one has been hand-reloaded.",
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_9x18mmP2",
+- "copy-from": "9x18mmP2",
+- "type": "AMMO",
+- "name": { "str": "9x18mm +P+, reloaded" },
+- "//": "Rather than give it a military designation, this is simply handmade overpressure ammo.",
+- "description": "9x18 millimeter Makarov, an old Soviet pistol cartridge used mainly by the Makarov PM. This one has been hand-reloaded to generate higher internal pressure, boosting flight stability and damage.",
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_9x18mmfmj",
+- "copy-from": "9x18mmfmj",
+- "type": "AMMO",
+- "name": { "str": "9x18mm FMJ, reloaded" },
+- "description": "9x18 millimeter Makarov, an old Soviet pistol cartridge used mainly by the Makarov PM. This brass-jacketed round increases penetration slightly, at the cost of reduced expansion. This one has been hand-reloaded.",
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/items/ammo/shot.json b/data/json/items/ammo/shot.json
+index 50f6c09d56..619ab4ab64 100644
+--- a/data/json/items/ammo/shot.json
++++ b/data/json/items/ammo/shot.json
+@@ -1,49 +1,4 @@
+ [
+- {
+- "id": "reloaded_shot_bird",
+- "copy-from": "shot_bird",
+- "type": "AMMO",
+- "name": { "str": "birdshot, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_shot_dragon",
+- "copy-from": "shot_dragon",
+- "type": "AMMO",
+- "name": { "str": "dragon's breath shell, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_shot_00",
+- "copy-from": "shot_00",
+- "type": "AMMO",
+- "name": { "str": "00 shot, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_shot_flechette",
+- "copy-from": "shot_flechette",
+- "type": "AMMO",
+- "name": { "str": "flechette shell, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+- {
+- "id": "reloaded_shot_slug",
+- "copy-from": "shot_slug",
+- "type": "AMMO",
+- "name": { "str": "shotgun slug, reloaded" },
+- "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
+- "extend": { "effects": [ "RECYCLED" ] },
+- "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+- },
+ {
+ "id": "bp_shot_bird",
+ "copy-from": "shot_bird",
+diff --git a/data/json/items/migration.json b/data/json/items/migration.json
+index 13f75ba5ed..ccda62af14 100644
+--- a/data/json/items/migration.json
++++ b/data/json/items/migration.json
+@@ -387,7 +387,7 @@
+ {
+ "id": "shot_scrapslug",
+ "type": "MIGRATION",
+- "replace": "reloaded_shot_slug"
++ "replace": "shot_slug"
+ },
+ {
+ "id": "UPS_on",
+@@ -792,7 +792,7 @@
+ {
+ "id": "reloaded_10mm",
+ "type": "MIGRATION",
+- "replace": "reloaded_10mm_fmj"
++ "replace": "10mm_fmj"
+ },
+ {
+ "id": "locket",
+@@ -827,7 +827,7 @@
+ {
+ "id": "reloaded_270",
+ "type": "MIGRATION",
+- "replace": "reloaded_270win_jsp"
++ "replace": "270win_jsp"
+ },
+ {
+ "id": "afs_rolling_pin",
+@@ -1247,7 +1247,7 @@
+ {
+ "id": "reloaded_22_fmj",
+ "type": "MIGRATION",
+- "replace": "reloaded_22_cphp"
++ "replace": "22_cphp"
+ },
+ {
+ "id": "hickory_nut_unshelled",
+@@ -1320,5 +1320,345 @@
+ "id": "raw_butter",
+ "type": "MIGRATION",
+ "replace": "butter"
++ },
++ {
++ "id": "reloaded_32_acp",
++ "type": "MIGRATION",
++ "replace": "32_acp"
++ },
++ {
++ "id": "reloaded_38_fmj",
++ "type": "MIGRATION",
++ "replace": "38_fmj"
++ },
++ {
++ "id": "reloaded_38_special",
++ "type": "MIGRATION",
++ "replace": "38_special"
++ },
++ {
++ "id": "reloaded_38super_fmj",
++ "type": "MIGRATION",
++ "replace": "38super_fmj"
++ },
++ {
++ "id": "reloaded_357sig_fmj",
++ "type": "MIGRATION",
++ "replace": "357sig_fmj"
++ },
++ {
++ "id": "reloaded_357sig_jhp",
++ "type": "MIGRATION",
++ "replace": "357sig_jhp"
++ },
++ {
++ "id": "reloaded_357mag_fmj",
++ "type": "MIGRATION",
++ "replace": "357mag_fmj"
++ },
++ {
++ "id": "reloaded_357mag_jhp",
++ "type": "MIGRATION",
++ "replace": "357mag_jhp"
++ },
++ {
++ "id": "reloaded_38_super",
++ "type": "MIGRATION",
++ "replace": "38_super"
++ },
++ {
++ "id": "reloaded_40fmj",
++ "type": "MIGRATION",
++ "replace": "40fmj"
++ },
++ {
++ "id": "reloaded_40sw",
++ "type": "MIGRATION",
++ "replace": "40sw"
++ },
++ {
++ "id": "reloaded_10mm_fmj",
++ "type": "MIGRATION",
++ "replace": "10mm_fmj"
++ },
++ {
++ "id": "reloaded_44fmj",
++ "type": "MIGRATION",
++ "replace": "44fmj"
++ },
++ {
++ "id": "reloaded_44magnum",
++ "type": "MIGRATION",
++ "replace": "44magnum"
++ },
++ {
++ "id": "reloaded_45_acp",
++ "type": "MIGRATION",
++ "replace": "45_acp"
++ },
++ {
++ "id": "reloaded_45_jhp",
++ "type": "MIGRATION",
++ "replace": "45_jhp"
++ },
++ {
++ "id": "reloaded_45_super",
++ "type": "MIGRATION",
++ "replace": "45_super"
++ },
++ {
++ "id": "reloaded_454_Casull",
++ "type": "MIGRATION",
++ "replace": "454_Casull"
++ },
++ {
++ "id": "reloaded_45colt_jhp",
++ "type": "MIGRATION",
++ "replace": "45colt_jhp"
++ },
++ {
++ "id": "reloaded_46mm",
++ "type": "MIGRATION",
++ "replace": "46mm"
++ },
++ {
++ "id": "reloaded_460_fmj",
++ "type": "MIGRATION",
++ "replace": "460_fmj"
++ },
++ {
++ "id": "reloaded_460_rowland",
++ "type": "MIGRATION",
++ "replace": "460_rowland"
++ },
++ {
++ "id": "reloaded_500_Magnum",
++ "type": "MIGRATION",
++ "replace": "500_Magnum"
++ },
++ {
++ "id": "reloaded_57mm",
++ "type": "MIGRATION",
++ "replace": "57mm"
++ },
++ {
++ "id": "reloaded_762_25",
++ "type": "MIGRATION",
++ "replace": "762_25"
++ },
++ {
++ "id": "reloaded_9mm",
++ "type": "MIGRATION",
++ "replace": "9mm"
++ },
++ {
++ "id": "reloaded_9mmP",
++ "type": "MIGRATION",
++ "replace": "9mmP"
++ },
++ {
++ "id": "reloaded_9mmP2",
++ "type": "MIGRATION",
++ "replace": "9mmP2"
++ },
++ {
++ "id": "reloaded_9mmfmj",
++ "type": "MIGRATION",
++ "replace": "9mmfmj"
++ },
++ {
++ "id": "reloaded_9x18mm",
++ "type": "MIGRATION",
++ "replace": "9x18mm"
++ },
++ {
++ "id": "reloaded_9x18mmfmj",
++ "type": "MIGRATION",
++ "replace": "9x18mmfmj"
++ },
++ {
++ "id": "reloaded_9x18mmP2",
++ "type": "MIGRATION",
++ "replace": "9x18mmP2"
++ },
++ {
++ "id": "reloaded_380_JHP",
++ "type": "MIGRATION",
++ "replace": "380_JHP"
++ },
++ {
++ "id": "reloaded_380_p",
++ "type": "MIGRATION",
++ "replace": "380_p"
++ },
++ {
++ "id": "reloaded_380_FMJ",
++ "type": "MIGRATION",
++ "replace": "380_FMJ"
++ },
++ {
++ "id": "reloaded_22_cphp",
++ "type": "MIGRATION",
++ "replace": "22_cphp"
++ },
++ {
++ "id": "reloaded_22_lr",
++ "type": "MIGRATION",
++ "replace": "22_lr"
++ },
++ {
++ "id": "reloaded_223",
++ "type": "MIGRATION",
++ "replace": "223"
++ },
++ {
++ "id": "reloaded_270win_jsp",
++ "type": "MIGRATION",
++ "replace": "270win_jsp"
++ },
++ {
++ "id": "reloaded_300_winmag",
++ "type": "MIGRATION",
++ "replace": "300_winmag"
++ },
++ {
++ "id": "reloaded_3006",
++ "type": "MIGRATION",
++ "replace": "3006"
++ },
++ {
++ "id": "reloaded_3006fmj",
++ "type": "MIGRATION",
++ "replace": "3006fmj"
++ },
++ {
++ "id": "reloaded_3006_incendiary",
++ "type": "MIGRATION",
++ "replace": "3006_incendiary"
++ },
++ {
++ "id": "reloaded_308",
++ "type": "MIGRATION",
++ "replace": "308"
++ },
++ {
++ "id": "reloaded_4570_sp",
++ "type": "MIGRATION",
++ "replace": "4570_sp"
++ },
++ {
++ "id": "reloaded_4570_pen",
++ "type": "MIGRATION",
++ "replace": "4570_pen"
++ },
++ {
++ "id": "reloaded_4570_low",
++ "type": "MIGRATION",
++ "replace": "4570_low"
++ },
++ {
++ "id": "reloaded_50bmg",
++ "type": "MIGRATION",
++ "replace": "50bmg"
++ },
++ {
++ "id": "reloaded_50_incendiary",
++ "type": "MIGRATION",
++ "replace": "50_incendiary"
++ },
++ {
++ "id": "reloaded_50ss",
++ "type": "MIGRATION",
++ "replace": "50ss"
++ },
++ {
++ "id": "reloaded_545",
++ "type": "MIGRATION",
++ "replace": "545"
++ },
++ {
++ "id": "reloaded_545_ap",
++ "type": "MIGRATION",
++ "replace": "545_ap"
++ },
++ {
++ "id": "reloaded_300blk",
++ "type": "MIGRATION",
++ "replace": "300blk"
++ },
++ {
++ "id": "reloaded_556",
++ "type": "MIGRATION",
++ "replace": "556"
++ },
++ {
++ "id": "reloaded_556_incendiary",
++ "type": "MIGRATION",
++ "replace": "556_incendiary"
++ },
++ {
++ "id": "reloaded_700nx",
++ "type": "MIGRATION",
++ "replace": "700nx"
++ },
++ {
++ "id": "reloaded_762_51",
++ "type": "MIGRATION",
++ "replace": "762_51"
++ },
++ {
++ "id": "reloaded_762_51_incendiary",
++ "type": "MIGRATION",
++ "replace": "762_51_incendiary"
++ },
++ {
++ "id": "reloaded_762_54R",
++ "type": "MIGRATION",
++ "replace": "762_54R"
++ },
++ {
++ "id": "reloaded_762_m43",
++ "type": "MIGRATION",
++ "replace": "762_m43"
++ },
++ {
++ "id": "reloaded_762_m87",
++ "type": "MIGRATION",
++ "replace": "762_m87"
++ },
++ {
++ "id": "reloaded_shot_00",
++ "type": "MIGRATION",
++ "replace": "shot_00"
++ },
++ {
++ "id": "reloaded_410shot_000",
++ "type": "MIGRATION",
++ "replace": "410shot_000"
++ },
++ {
++ "id": "reloaded_shot_bird",
++ "type": "MIGRATION",
++ "replace": "shot_bird"
++ },
++ {
++ "id": "reloaded_shot_dragon",
++ "type": "MIGRATION",
++ "replace": "shot_dragon"
++ },
++ {
++ "id": "reloaded_shot_flechette",
++ "type": "MIGRATION",
++ "replace": "shot_flechette"
++ },
++ {
++ "id": "reloaded_shot_slug",
++ "type": "MIGRATION",
++ "replace": "shot_slug"
++ },
++ {
++ "id": "reloaded_5x50dart",
++ "type": "MIGRATION",
++ "replace": "5x50dart"
+ },
+ {
+ "id": "mutant_offal_cooked",
+ "type": "MIGRATION",
+diff --git a/data/json/obsoletion/items.json b/data/json/obsoletion/items.json
+index a3819132f6..b8c26c57dd 100644
+--- a/data/json/obsoletion/items.json
++++ b/data/json/obsoletion/items.json
+@@ -3707,5 +3707,631 @@
+ "transform_age": 21600,
+ "not_ready_msg": "The cream has not risen yet."
+ }
++ },
++ {
++ "id": "reloaded_5x50dart",
++ "copy-from": "5x50dart",
++ "type": "AMMO",
++ "name": { "str": "5x50mm flechette, reloaded" },
++ "price_postapoc": 1200,
++ "description": "Designed to defeat modern body armor, the Rivtech 5x50mm flechette round features a biodegradable sabot and a single, fin-stabilized penetrator. This one has been hand-reloaded.",
++ "effects": [ "COOKOFF", "RECYCLED" ],
++ "relative": { "range": -15, "dispersion": 40 },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9, "armor_penetration": 0.7 }, "recoil": 0.9 }
++ },
++ {
++ "id": "reloaded_9mm",
++ "copy-from": "9mm",
++ "type": "AMMO",
++ "name": { "str": "9x19mm JHP, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_9mmfmj",
++ "copy-from": "9mmfmj",
++ "type": "AMMO",
++ "name": { "str": "9x19mm FMJ, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_9mmP",
++ "copy-from": "9mmP",
++ "type": "AMMO",
++ "name": { "str": "9x19mm +P, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_9mmP2",
++ "copy-from": "9mmP2",
++ "type": "AMMO",
++ "name": { "str": "9x19mm +P+, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_9x18mm",
++ "copy-from": "9x18mm",
++ "type": "AMMO",
++ "name": { "str": "9x18mm, reloaded" },
++ "description": "9x18 millimeter Makarov, an old Soviet pistol cartridge used mainly by the Makarov PM. As the designation implies, it is a bit shorter in case length compared to 9mm Parabellum. This one has been hand-reloaded.",
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_9x18mmP2",
++ "copy-from": "9x18mmP2",
++ "type": "AMMO",
++ "name": { "str": "9x18mm +P+, reloaded" },
++ "//": "Rather than give it a military designation, this is simply handmade overpressure ammo.",
++ "description": "9x18 millimeter Makarov, an old Soviet pistol cartridge used mainly by the Makarov PM. This one has been hand-reloaded to generate higher internal pressure, boosting flight stability and damage.",
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_9x18mmfmj",
++ "copy-from": "9x18mmfmj",
++ "type": "AMMO",
++ "name": { "str": "9x18mm FMJ, reloaded" },
++ "description": "9x18 millimeter Makarov, an old Soviet pistol cartridge used mainly by the Makarov PM. This brass-jacketed round increases penetration slightly, at the cost of reduced expansion. This one has been hand-reloaded.",
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_10mm_fmj",
++ "copy-from": "10mm_fmj",
++ "type": "AMMO",
++ "name": { "str": "10mm Auto FMJ, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_22_lr",
++ "copy-from": "22_lr",
++ "type": "AMMO",
++ "name": { "str": ".22 LR, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_22_cphp",
++ "copy-from": "22_cphp",
++ "type": "AMMO",
++ "name": { "str": ".22 CPHP, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_32_acp",
++ "copy-from": "32_acp",
++ "type": "AMMO",
++ "name": { "str": ".32 ACP, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_38_fmj",
++ "copy-from": "38_fmj",
++ "type": "AMMO",
++ "name": { "str": ".38 FMJ, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_38_special",
++ "copy-from": "38_special",
++ "type": "AMMO",
++ "name": { "str": ".38 Special, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_38super_fmj",
++ "copy-from": "38super_fmj",
++ "type": "AMMO",
++ "name": { "str": ".38 Super FMJ, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_38_super",
++ "copy-from": "38_super",
++ "type": "AMMO",
++ "name": { "str": ".38 Super, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_40fmj",
++ "copy-from": "40fmj",
++ "type": "AMMO",
++ "name": { "str": ".40 S&W FMJ, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_40sw",
++ "copy-from": "40sw",
++ "type": "AMMO",
++ "name": { "str": ".40 S&W JHP, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_44fmj",
++ "copy-from": "44fmj",
++ "type": "AMMO",
++ "name": { "str": ".44 Magnum FMJ, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_44magnum",
++ "copy-from": "44magnum",
++ "type": "AMMO",
++ "name": { "str": ".44 Magnum, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_45_acp",
++ "copy-from": "45_acp",
++ "type": "AMMO",
++ "name": { "str": ".45 FMJ, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_45_jhp",
++ "copy-from": "45_jhp",
++ "type": "AMMO",
++ "name": { "str": ".45 ACP JHP, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_45_super",
++ "copy-from": "45_super",
++ "type": "AMMO",
++ "name": { "str": ".45 ACP +P, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_45colt_jhp",
++ "copy-from": "45colt_jhp",
++ "type": "AMMO",
++ "name": { "str": ".45 Colt JHP, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_46mm",
++ "copy-from": "46mm",
++ "type": "AMMO",
++ "name": { "str": "4.6x30mm, reloaded" },
++ "description": "4.6x30mm ammunition with 31gr copper plated lead bullets. The 4.6x30mm round was developed by H&K to compete with FN Herstal's 5.7x28mm cartridge. It has low recoil, but no usual armor penetration due to using simple lead bullets rather than proper factory-made penetrator projectiles.",
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9, "armor_penetration": 0.2 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_50_incendiary",
++ "copy-from": "50_incendiary",
++ "type": "AMMO",
++ "name": { "str": ".50 BMG tracer, reloaded" },
++ "description": "A tracer variant of the powerful .50 BMG round. Tracer rounds help to keep the weapon they are fired from on target at the risk of igniting flammable substances. This one has been hand-reloaded.",
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_50bmg",
++ "copy-from": "50match",
++ "type": "AMMO",
++ "name": { "str": ".50 BMG Match, reloaded" },
++ "description": ".50 BMG ammunition with lead-cored FMJ bullets. The .50 BMG is a very powerful rifle round designed for anti-aircraft use, later adapted to anti-vehicular and anti-personnel roles. Its stupendous energy and armor piercing capabilities make it one of the most deadly rounds available, offset only by its drastic recoil and noise.",
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_50ss",
++ "copy-from": "50ss",
++ "type": "AMMO",
++ "name": { "str": ".50 BMG AP, reloaded" },
++ "description": "Variant of the .50 BMG round that uses a core hardened steel. Penetration is increased, but damage is reduced. This one has been hand-reloaded.",
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_57mm",
++ "copy-from": "57mm",
++ "type": "AMMO",
++ "name": { "str": "5.7x28mm, reloaded" },
++ "description": "5.7x28mm ammunition with 31gr AP FMJ bullets. The 5.7x28mm cartridge was designed by FN Herstal to replace the 9x19mm round in NATO use. Although the project to replace 9x19mm Parabellum was effectively canceled the 5.7x28mm round has seen action in many conflicts and has proven to be reliable. It has very low recoil but no usual armor penetration due to using simple lead bullets rather than proper factory-made penetrator projectiles.",
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9, "armor_penetration": 0.2 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_223",
++ "copy-from": "223",
++ "type": "AMMO",
++ "name": { "str": ".223 Remington, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_556",
++ "copy-from": "556",
++ "type": "AMMO",
++ "name": { "str": "5.56 NATO, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_556_incendiary",
++ "copy-from": "556_incendiary",
++ "type": "AMMO",
++ "name": { "str": "5.56 NATO tracer, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_270win_jsp",
++ "copy-from": "270win_jsp",
++ "type": "AMMO",
++ "name": { "str": ".270 Winchester JSP, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_300_winmag",
++ "copy-from": "300_winmag",
++ "type": "AMMO",
++ "name": { "str": ".300 Winchester Magnum, reloaded" },
++ "description": "The .300 Winchester Magnum is extremely versatile and has been adopted by many shooting disciplines. The cartridge has found use by hunters, military units, and law enforcement departments. This one has been hand-reloaded.",
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_300blk",
++ "copy-from": "300blk",
++ "type": "AMMO",
++ "name": { "str": ".300 AAC Blackout, reloaded" },
++ "description": ".300 AAC Blackout is an intermediate cartridge that achieves ballistics similar to the 7.62x39 but allows use on the AR-15 platform. The round is necked-up from the 5.56mm NATO, but feeds from a STANAG magazine. It requires a specific barrel, so will not work in a standard M4 or similar carbine. This one has been hand-reloaded.",
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_308",
++ "copy-from": "308",
++ "type": "AMMO",
++ "name": { "str": ".308 Winchester, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_762_51",
++ "copy-from": "762_51",
++ "type": "AMMO",
++ "name": { "str": "7.62x51mm, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_762_51_incendiary",
++ "copy-from": "762_51_incendiary",
++ "type": "AMMO",
++ "name": { "str": "7.62x51mm incendiary, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_357mag_fmj",
++ "copy-from": "357mag_fmj",
++ "type": "AMMO",
++ "name": { "str_sp": ".357 Magnum FMJ, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1, "recoil": 0.9 }
++ },
++ {
++ "id": "reloaded_357mag_jhp",
++ "copy-from": "357mag_jhp",
++ "type": "AMMO",
++ "name": { "str_sp": ".357 Magnum JHP, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1, "recoil": 0.9 }
++ },
++ {
++ "id": "reloaded_357sig_fmj",
++ "copy-from": "357sig_fmj",
++ "type": "AMMO",
++ "name": { "str": ".357 SIG FMJ, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_357sig_jhp",
++ "copy-from": "357sig_jhp",
++ "type": "AMMO",
++ "name": { "str": ".357 SIG JHP, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_380_FMJ",
++ "copy-from": "380_FMJ",
++ "type": "AMMO",
++ "name": { "str": ".380 ACP FMJ, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_380_JHP",
++ "copy-from": "380_JHP",
++ "type": "AMMO",
++ "name": { "str": ".380 ACP JHP, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_380_p",
++ "copy-from": "380_p",
++ "type": "AMMO",
++ "name": { "str": ".380 ACP +P, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_410shot_000",
++ "copy-from": "410shot_000",
++ "type": "AMMO",
++ "name": { "str": ".410 000 shot, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_454_Casull",
++ "copy-from": "454_Casull",
++ "type": "AMMO",
++ "name": { "str": ".454 Casull, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_460_fmj",
++ "copy-from": "460_fmj",
++ "type": "AMMO",
++ "name": { "str": ".460 Rowland FMJ, reloaded" },
++ "description": "A brass-jacketed variant of the .460 Rowland round. This increases penetration slightly at the cost of reduced damage from expansion.",
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_460_rowland",
++ "copy-from": "460_rowland",
++ "type": "AMMO",
++ "name": { "str": ".460 Rowland, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_500_Magnum",
++ "copy-from": "500_Magnum",
++ "type": "AMMO",
++ "name": { "str": ".500 S&W Magnum, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_545",
++ "copy-from": "545",
++ "type": "AMMO",
++ "name": { "str": "5.45x39mm, reloaded" },
++ "description": "The 5.45x39mm was the standard ammunition for the AK series from 1974. Its designers were inspired by the 5.56x45mm NATO cartridge. This one has been hand-reloaded.",
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_545_ap",
++ "copy-from": "545_ap",
++ "type": "AMMO",
++ "name": { "str": "5.45x39mm AP, reloaded" },
++ "description": "Armor piercing 5.45x39mm ammunition with hand-reloaded bullets containing a steel penetrator. Developed in 1998 by the Russian military.",
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_700nx",
++ "copy-from": "700nx",
++ "type": "AMMO",
++ "name": { "str": ".700 NX, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_762_m43",
++ "copy-from": "762_m43",
++ "type": "AMMO",
++ "name": { "str": "7.62x39mm M43, reloaded" },
++ "description": "7.62x39mm ammunition with 121.9gr bullets. Developed in WW2 by the Soviet Union the 7.62x39mm round rapidly became extremely popular all over the world. The bullet has poor wounding potential due to its stability, only beginning to yaw after 26cm.",
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_762_m87",
++ "copy-from": "762_m87",
++ "type": "AMMO",
++ "name": { "str": "7.62x39mm M67, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_762_54R",
++ "copy-from": "762_54R",
++ "type": "AMMO",
++ "name": { "str": "7.62x54mmR, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_762_25",
++ "copy-from": "762_25hot",
++ "type": "AMMO",
++ "name": { "str": "7.62x25mm, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9, "armor_penetration": 0.9 }, "dispersion": 1.1 }
++ },
++ {
++ "id": "reloaded_3006",
++ "copy-from": "3006",
++ "type": "AMMO",
++ "name": { "str": ".30-06 Springfield, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_3006_incendiary",
++ "copy-from": "3006_incendiary",
++ "type": "AMMO",
++ "name": { "str": ".30-06 incendiary, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_3006fmj",
++ "copy-from": "3006fmj",
++ "type": "AMMO",
++ "name": { "str": ".30-06 M2 AP, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_4570_sp",
++ "copy-from": "4570_sp",
++ "type": "AMMO",
++ "name": { "str": ".45-70 SP, reloaded" },
++ "description": ".45-70 Government ammunition loaded with a 305 grain soft point round. One of the oldest cartridges still in use, it is still a favorite for large game hunting at short ranges. This one has been hand-loaded.",
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_4570_pen",
++ "copy-from": "4570_pen",
++ "type": "AMMO",
++ "name": { "str": ".45-70 +P penetrator, reloaded" },
++ "description": ".45-70 Government +P ammunition loaded with a 305 grain solid copper penetrator projectile. Designed for maximum penetration through thick hide and bone while maintaining ideal wounding characteristics. This one has been hand-loaded.",
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_4570_low",
++ "copy-from": "4570_low",
++ "type": "AMMO",
++ "name": { "str": ".45-70 LFN cowboy, reloaded" },
++ "description": ".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet to original specifications for safe use in antique firearms. Quite a bit less powerful than modern ammo, but still packs a punch. This one has been hand-loaded.",
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_shot_bird",
++ "copy-from": "shot_bird",
++ "type": "AMMO",
++ "name": { "str": "birdshot, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_shot_dragon",
++ "copy-from": "shot_dragon",
++ "type": "AMMO",
++ "name": { "str": "dragon's breath shell, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_shot_00",
++ "copy-from": "shot_00",
++ "type": "AMMO",
++ "name": { "str": "00 shot, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_shot_flechette",
++ "copy-from": "shot_flechette",
++ "type": "AMMO",
++ "name": { "str": "flechette shell, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
++ },
++ {
++ "id": "reloaded_shot_slug",
++ "copy-from": "shot_slug",
++ "type": "AMMO",
++ "name": { "str": "shotgun slug, reloaded" },
++ "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
++ "extend": { "effects": [ "RECYCLED" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/obsoletion/recipes.json b/data/json/obsoletion/recipes.json
+index 36e24fedb5..ef04e54bbe 100644
+--- a/data/json/obsoletion/recipes.json
++++ b/data/json/obsoletion/recipes.json
+@@ -2693,5 +2693,345 @@
+ "type": "recipe",
+ "result": "milk_cream",
+ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_32_acp",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_38_fmj",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_38_special",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_38super_fmj",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_357sig_fmj",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_357sig_jhp",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_357mag_fmj",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_357mag_jhp",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_38_super",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_40fmj",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_40sw",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_10mm_fmj",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_44fmj",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_44magnum",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_45_acp",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_45_jhp",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_45_super",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_454_Casull",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_45colt_jhp",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_46mm",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_460_fmj",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_460_rowland",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_500_Magnum",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_57mm",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_762_25",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_9mm",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_9mmP",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_9mmP2",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_9mmfmj",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_9x18mm",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_9x18mmfmj",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_9x18mmP2",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_380_JHP",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_380_FMJ",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_380_p",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_22_cphp",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_22_lr",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_223",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_270win_jsp",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_300_winmag",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_3006",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_3006fmj",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_3006_incendiary",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_308",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_4570_sp",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_4570_pen",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_4570_low",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_5x50dart",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_50bmg",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_50_incendiary",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_50ss",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_545",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_545_ap",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_300blk",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_556",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_556_incendiary",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_700nx",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_762_51",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_762_51_incendiary",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_762_54R",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_762_m43",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_762_m87",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_shot_00",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_410shot_000",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_shot_bird",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_shot_dragon",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_shot_flechette",
++ "obsolete": true
++ },
++ {
++ "type": "recipe",
++ "result": "reloaded_shot_slug",
++ "obsolete": true
+ },
+ {
+ "type": "recipe",
+diff --git a/data/json/recipes/ammo/pistol.json b/data/json/recipes/ammo/pistol.json
+index dad829873c..66c943d2d2 100644
+--- a/data/json/recipes/ammo/pistol.json
++++ b/data/json/recipes/ammo/pistol.json
+@@ -125,7 +125,7 @@
+ "charges": 1,
+ "reversible": true,
+ "using": [ [ "bullet_forming", 3 ], [ "ammo_bullet", 3 ] ],
+- "components": [ [ [ "45_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "chem_black_powder", 6 ] ] ]
++ "components": [ [ [ "45_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "chem_black_powder", 6 ] ], [ [ "copper", 2 ] ] ]
+ },
+ {
+ "result": "bp_45_jhp",
+@@ -338,7 +338,7 @@
+ "components": [ [ [ "chem_black_powder", 4 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "paper", 1 ], [ "aluminum_foil", 1 ] ] ]
+ },
+ {
+- "result": "reloaded_32_acp",
++ "result": "32_acp",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -349,12 +349,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 5 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ] ],
+ "components": [ [ [ "32_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 2 ] ] ]
+ },
+ {
+- "result": "reloaded_38_fmj",
++ "result": "38_fmj",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -365,12 +364,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "manual_pistol", 2 ], [ "recipe_bullets", 3 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ] ],
+ "components": [ [ [ "38_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 2 ] ], [ [ "copper", 1 ] ] ]
+ },
+ {
+- "result": "reloaded_38_special",
++ "result": "38_special",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -381,12 +379,26 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "manual_pistol", 1 ], [ "recipe_bullets", 2 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ] ],
+ "components": [ [ [ "38_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 2 ] ] ]
+ },
+ {
+- "result": "reloaded_38super_fmj",
++ "result": "38_super",
++ "type": "recipe",
++ "category": "CC_AMMO",
++ "subcategory": "CSC_AMMO_PISTOL",
++ "skill_used": "fabrication",
++ "difficulty": 4,
++ "skills_required": [ "gun", 3 ],
++ "time": "2 m",
++ "batch_time_factors": [ 60, 5 ],
++ "book_learn": [ [ "manual_pistol", 3 ] ],
++ "charges": 1,
++ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ], [ "ammo_38super", 1 ] ],
++ "components": [ [ [ "gunpowder", 3 ] ] ]
++ },
++ {
++ "result": "38super_fmj",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -397,12 +409,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "manual_pistol", 1 ], [ "recipe_bullets", 2 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ], [ "ammo_38super", 1 ] ],
+- "components": [ [ [ "gunpowder", 3 ] ] ]
++ "components": [ [ [ "gunpowder", 3 ] ], [ [ "copper", 1 ] ] ]
+ },
+ {
+- "result": "reloaded_357sig_fmj",
++ "result": "357sig_fmj",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -413,12 +424,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "manual_pistol", 3 ], [ "recipe_bullets", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ], [ "ammo_357sig", 1 ] ],
+ "components": [ [ [ "gunpowder", 5 ] ], [ [ "copper", 1 ] ] ]
+ },
+ {
+- "result": "reloaded_357sig_jhp",
++ "result": "357sig_jhp",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -429,12 +439,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "manual_pistol", 3 ], [ "recipe_bullets", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ], [ "ammo_357sig", 1 ] ],
+ "components": [ [ [ "gunpowder", 5 ] ] ]
+ },
+ {
+- "result": "reloaded_357mag_fmj",
++ "result": "357mag_fmj",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -445,12 +454,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "manual_pistol", 3 ], [ "recipe_bullets", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ], [ "ammo_357mag", 1 ] ],
+- "components": [ [ [ "gunpowder", 5 ] ] ]
++ "components": [ [ [ "gunpowder", 5 ] ], [ [ "copper", 1 ] ] ]
+ },
+ {
+- "result": "reloaded_357mag_jhp",
++ "result": "357mag_jhp",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -461,7 +469,6 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "manual_pistol", 3 ], [ "recipe_bullets", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ], [ "ammo_357mag", 1 ] ],
+ "components": [ [ [ "gunpowder", 5 ] ] ]
+ },
+@@ -479,7 +486,7 @@
+ "charges": 1,
+ "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ], [ "ammo_357mag", 1 ] ],
+- "components": [ [ [ "chem_black_powder", 8 ] ] ]
++ "components": [ [ [ "chem_black_powder", 8 ] ], [ [ "copper", 1 ] ] ]
+ },
+ {
+ "result": "bp_357mag_jhp",
+@@ -514,23 +521,7 @@
+ "components": [ [ [ "38_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "chem_black_powder", 3 ] ] ]
+ },
+ {
+- "result": "reloaded_38_super",
+- "type": "recipe",
+- "category": "CC_AMMO",
+- "subcategory": "CSC_AMMO_PISTOL",
+- "skill_used": "fabrication",
+- "difficulty": 4,
+- "skills_required": [ "gun", 3 ],
+- "time": "2 m",
+- "batch_time_factors": [ 60, 5 ],
+- "book_learn": [ [ "manual_pistol", 3 ] ],
+- "charges": 1,
+- "reversible": true,
+- "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ] ],
+- "components": [ [ [ "38_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 3 ] ] ]
+- },
+- {
+- "result": "reloaded_40fmj",
++ "result": "40fmj",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -541,12 +532,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "manual_pistol", 3 ], [ "recipe_bullets", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ] ],
+ "components": [ [ [ "40_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 4 ] ], [ [ "copper", 1 ] ] ]
+ },
+ {
+- "result": "reloaded_40sw",
++ "result": "40sw",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -557,12 +547,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "manual_pistol", 2 ], [ "recipe_bullets", 3 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ] ],
+ "components": [ [ [ "40_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 4 ] ] ]
+ },
+ {
+- "result": "reloaded_10mm_fmj",
++ "result": "10mm_fmj",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -573,7 +562,6 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "manual_pistol", 3 ], [ "recipe_bullets", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ], [ "ammo_10mm", 1 ] ],
+ "components": [ [ [ "gunpowder", 5 ] ] ]
+ },
+@@ -594,7 +582,7 @@
+ "components": [ [ [ "chem_black_powder", 8 ] ] ]
+ },
+ {
+- "result": "reloaded_44fmj",
++ "result": "44fmj",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -605,12 +593,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 3 ], [ "manual_pistol", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 5 ], [ "ammo_bullet", 4 ] ],
+ "components": [ [ [ "44_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 6 ] ], [ [ "copper", 2 ] ] ]
+ },
+ {
+- "result": "reloaded_44magnum",
++ "result": "44magnum",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -621,7 +608,6 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 3 ], [ "manual_pistol", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 5 ], [ "ammo_bullet", 5 ] ],
+ "components": [ [ [ "44_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 6 ] ] ]
+ },
+@@ -642,7 +628,7 @@
+ "components": [ [ [ "44_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "chem_black_powder", 9 ] ] ]
+ },
+ {
+- "result": "reloaded_45_acp",
++ "result": "45_acp",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -653,12 +639,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "manual_pistol", 3 ], [ "manual_smg", 3 ], [ "recipe_bullets", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 3 ], [ "ammo_bullet", 3 ] ],
+- "components": [ [ [ "45_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 4 ] ] ]
++ "components": [ [ [ "45_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 4 ] ], [ [ "copper", 2 ] ] ]
+ },
+ {
+- "result": "reloaded_45_jhp",
++ "result": "45_jhp",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -669,12 +654,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "manual_pistol", 2 ], [ "manual_smg", 2 ], [ "recipe_bullets", 3 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 3 ], [ "ammo_bullet", 3 ] ],
+ "components": [ [ [ "45_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 4 ] ] ]
+ },
+ {
+- "result": "reloaded_45_super",
++ "result": "45_super",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -685,12 +669,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "manual_pistol", 4 ], [ "manual_smg", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 3 ], [ "ammo_bullet", 3 ] ],
+ "components": [ [ [ "45_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 5 ] ] ]
+ },
+ {
+- "result": "reloaded_454_Casull",
++ "result": "454_Casull",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -701,7 +684,6 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 6 ], [ "manual_pistol", 7 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 5 ], [ "ammo_bullet", 4 ] ],
+ "components": [ [ [ "454_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 6 ] ], [ [ "copper", 2 ] ] ]
+ },
+@@ -722,7 +704,7 @@
+ "components": [ [ [ "454_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "chem_black_powder", 9 ] ], [ [ "copper", 2 ] ] ]
+ },
+ {
+- "result": "reloaded_45colt_jhp",
++ "result": "45colt_jhp",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -733,7 +715,6 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 3 ], [ "manual_pistol", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 3 ], [ "ammo_bullet", 4 ], [ "ammo_45colt", 1 ] ],
+ "components": [ [ [ "gunpowder", 4 ] ] ]
+ },
+@@ -754,7 +735,7 @@
+ "components": [ [ [ "chem_black_powder", 5 ] ] ]
+ },
+ {
+- "result": "reloaded_46mm",
++ "result": "46mm",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -765,12 +746,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 3 ], [ "mag_rifle", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ] ],
+ "components": [ [ [ "46mm_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 4 ] ] ]
+ },
+ {
+- "result": "reloaded_460_fmj",
++ "result": "460_fmj",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -781,12 +761,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 3 ], [ "manual_pistol", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 3 ], [ "ammo_bullet", 3 ] ],
+ "components": [ [ [ "460_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 6 ] ], [ [ "copper", 2 ] ] ]
+ },
+ {
+- "result": "reloaded_460_rowland",
++ "result": "460_rowland",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -797,12 +776,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 3 ], [ "manual_pistol", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 3 ], [ "ammo_bullet", 3 ] ],
+ "components": [ [ [ "460_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 6 ] ] ]
+ },
+ {
+- "result": "reloaded_500_Magnum",
++ "result": "500_Magnum",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -813,12 +791,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 7 ], [ "manual_pistol", 8 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 6 ], [ "ammo_bullet", 5 ] ],
+ "components": [ [ [ "500_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 8 ] ], [ [ "copper", 2 ] ] ]
+ },
+ {
+- "result": "reloaded_57mm",
++ "result": "57mm",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -829,12 +806,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 3 ], [ "mag_rifle", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ] ],
+ "components": [ [ [ "57mm_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 4 ] ] ]
+ },
+ {
+- "result": "reloaded_762_25",
++ "result": "762_25",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -845,12 +821,41 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 3 ], [ "manual_pistol", 3 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ], [ "ammo_762_25", 1 ] ],
+ "components": [ [ [ "gunpowder", 4 ] ] ]
+ },
+ {
+- "result": "reloaded_9mm",
++ "result": "762_25hot",
++ "type": "recipe",
++ "category": "CC_AMMO",
++ "subcategory": "CSC_AMMO_PISTOL",
++ "skill_used": "fabrication",
++ "difficulty": 5,
++ "skills_required": [ "gun", 4 ],
++ "time": "2 m",
++ "batch_time_factors": [ 60, 5 ],
++ "book_learn": [ [ "recipe_bullets", 3 ], [ "manual_pistol", 3 ] ],
++ "charges": 1,
++ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ], [ "ammo_762_25", 1 ] ],
++ "components": [ [ [ "gunpowder", 5 ] ] ]
++ },
++ {
++ "result": "762_25typeP",
++ "type": "recipe",
++ "category": "CC_AMMO",
++ "subcategory": "CSC_AMMO_PISTOL",
++ "skill_used": "fabrication",
++ "difficulty": 5,
++ "skills_required": [ "gun", 4 ],
++ "time": "2 m",
++ "batch_time_factors": [ 60, 5 ],
++ "book_learn": [ [ "recipe_bullets", 3 ], [ "manual_pistol", 3 ] ],
++ "charges": 1,
++ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ], [ "ammo_762_25", 1 ] ],
++ "components": [ [ [ "gunpowder", 5 ] ] ]
++ },
++ {
++ "result": "9mm",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -861,12 +866,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "manual_pistol", 1 ], [ "manual_smg", 1 ], [ "recipe_bullets", 2 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ], [ "ammo_9mm", 1 ] ],
+ "components": [ [ [ "gunpowder", 3 ] ] ]
+ },
+ {
+- "result": "reloaded_9mmP",
++ "result": "9mmP",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -877,12 +881,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "manual_pistol", 3 ], [ "manual_smg", 3 ], [ "recipe_bullets", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ], [ "ammo_9mm", 1 ] ],
+ "components": [ [ [ "gunpowder", 4 ] ] ]
+ },
+ {
+- "result": "reloaded_9mmP2",
++ "result": "9mmP2",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -893,12 +896,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "manual_pistol", 4 ], [ "manual_smg", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ], [ "ammo_9mm", 1 ] ],
+ "components": [ [ [ "gunpowder", 5 ] ] ]
+ },
+ {
+- "result": "reloaded_9mmfmj",
++ "result": "9mmfmj",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -909,12 +911,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "manual_pistol", 2 ], [ "manual_smg", 2 ], [ "recipe_bullets", 3 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ], [ "ammo_9mm", 1 ] ],
+ "components": [ [ [ "gunpowder", 3 ] ], [ [ "copper", 1 ] ] ]
+ },
+ {
+- "result": "reloaded_9x18mm",
++ "result": "9x18mm",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -925,12 +926,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 1 ], [ "manual_pistol", 2 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ] ],
+ "components": [ [ [ "9x18mm_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 3 ] ] ]
+ },
+ {
+- "result": "reloaded_9x18mmfmj",
++ "result": "9x18mmfmj",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -941,12 +941,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 3 ], [ "manual_pistol", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ] ],
+ "components": [ [ [ "9x18mm_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 3 ] ], [ [ "copper", 1 ] ] ]
+ },
+ {
+- "result": "reloaded_9x18mmP2",
++ "result": "9x18mmP2",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -957,12 +956,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 3 ], [ "manual_pistol", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ] ],
+ "components": [ [ [ "9x18mm_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 5 ] ] ]
+ },
+ {
+- "result": "reloaded_380_JHP",
++ "result": "380_JHP",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -973,12 +971,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "manual_pistol", 1 ], [ "manual_smg", 1 ], [ "recipe_bullets", 2 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ], [ "ammo_380", 1 ] ],
+ "components": [ [ [ "gunpowder", 2 ] ] ]
+ },
+ {
+- "result": "reloaded_380_p",
++ "result": "380_p",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -989,12 +986,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "manual_pistol", 3 ], [ "manual_smg", 3 ], [ "recipe_bullets", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ], [ "ammo_380", 1 ] ],
+ "components": [ [ [ "gunpowder", 3 ] ] ]
+ },
+ {
+- "result": "reloaded_380_FMJ",
++ "result": "380_FMJ",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_PISTOL",
+@@ -1005,7 +1001,6 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "manual_pistol", 2 ], [ "manual_smg", 2 ], [ "recipe_bullets", 3 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ], [ "ammo_380", 1 ] ],
+ "components": [ [ [ "gunpowder", 2 ] ], [ [ "copper", 1 ] ] ]
+ }
+diff --git a/data/json/recipes/ammo/rifle.json b/data/json/recipes/ammo/rifle.json
+index 84d930b02d..c1d954073c 100644
+--- a/data/json/recipes/ammo/rifle.json
++++ b/data/json/recipes/ammo/rifle.json
+@@ -34,7 +34,7 @@
+ "components": [ [ [ "chem_black_powder", 5 ] ], [ [ "paper", 1 ] ] ]
+ },
+ {
+- "result": "reloaded_22_cphp",
++ "result": "22_cphp",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -45,12 +45,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 1 ], [ "manual_pistol", 2 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 3 ], [ "ammo_bullet", 2 ] ],
+ "components": [ [ [ "22_casing_new", 1 ] ], [ [ "gunpowder", 2 ] ], [ [ "copper", 1 ] ] ]
+ },
+ {
+- "result": "reloaded_22_lr",
++ "result": "22_lr",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -61,7 +60,6 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 1 ], [ "manual_pistol", 2 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ] ],
+ "components": [ [ [ "22_casing_new", 1 ] ], [ [ "gunpowder", 2 ] ] ]
+ },
+@@ -98,7 +96,7 @@
+ "components": [ [ [ "22_casing_new", 1 ] ], [ [ "chem_black_powder", 3 ] ] ]
+ },
+ {
+- "result": "reloaded_223",
++ "result": "223",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -109,7 +107,6 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 1 ], [ "mag_rifle", 2 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 4 ], [ "ammo_bullet", 3 ] ],
+ "components": [ [ [ "223_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 4 ] ], [ [ "copper", 1 ] ] ]
+ },
+@@ -130,7 +127,7 @@
+ "components": [ [ [ "223_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "chem_black_powder", 6 ] ], [ [ "copper", 1 ] ] ]
+ },
+ {
+- "result": "reloaded_270win_jsp",
++ "result": "270win_jsp",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -141,7 +138,6 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 1 ], [ "mag_rifle", 3 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 8 ], [ "ammo_bullet", 5 ], [ "ammo_270win", 1 ] ],
+ "components": [ [ [ "gunpowder", 10 ] ], [ [ "copper", 3 ] ] ]
+ },
+@@ -162,7 +158,7 @@
+ "components": [ [ [ "chem_black_powder", 15 ] ], [ [ "copper", 3 ] ] ]
+ },
+ {
+- "result": "reloaded_300_winmag",
++ "result": "300_winmag",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -173,7 +169,6 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 4 ], [ "mag_rifle", 5 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 12 ], [ "ammo_bullet", 8 ] ],
+ "components": [ [ [ "300_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 16 ] ], [ [ "copper", 4 ] ] ]
+ },
+@@ -194,7 +189,7 @@
+ "components": [ [ [ "300_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "chem_black_powder", 24 ] ], [ [ "copper", 4 ] ] ]
+ },
+ {
+- "result": "reloaded_3006",
++ "result": "3006",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -205,12 +200,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 3 ], [ "mag_rifle", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 12 ], [ "ammo_bullet", 8 ] ],
+ "components": [ [ [ "3006_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 12 ] ], [ [ "copper", 4 ] ] ]
+ },
+ {
+- "result": "reloaded_3006fmj",
++ "result": "3006fmj",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -221,12 +215,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 3 ], [ "mag_rifle", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 12 ], [ "ammo_bullet", 8 ] ],
+ "components": [ [ [ "3006_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 12 ] ], [ [ "copper", 4 ] ] ]
+ },
+ {
+- "result": "reloaded_3006_incendiary",
++ "result": "3006_incendiary",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -237,7 +230,6 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 2 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 12 ], [ "ammo_bullet", 8 ] ],
+ "components": [
+ [ [ "3006_casing", 1 ] ],
+@@ -302,7 +294,7 @@
+ ]
+ },
+ {
+- "result": "reloaded_308",
++ "result": "308",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -313,7 +305,6 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 9 ], [ "ammo_bullet", 6 ] ],
+ "components": [
+ [ [ "308_casing", 1 ], [ "762_51_casing", 1 ] ],
+@@ -344,7 +335,7 @@
+ ]
+ },
+ {
+- "result": "reloaded_4570_sp",
++ "result": "4570_sp",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -356,16 +347,10 @@
+ "book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 4 ] ],
+ "charges": 1,
+ "using": [ [ "bullet_forming", 15 ], [ "ammo_bullet", 8 ] ],
+- "components": [
+- [ [ "4570_casing", 1 ] ],
+- [ [ "lgrifle_primer", 1 ] ],
+- [ [ "gunpowder", 15 ] ],
+- [ [ "lead", 5 ] ],
+- [ [ "copper", 2 ] ]
+- ]
++ "components": [ [ [ "4570_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 15 ] ], [ [ "copper", 2 ] ] ]
+ },
+ {
+- "result": "reloaded_4570_pen",
++ "result": "4570_pen",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -380,7 +365,7 @@
+ "components": [ [ [ "4570_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 17 ] ], [ [ "copper", 7 ] ] ]
+ },
+ {
+- "result": "reloaded_4570_low",
++ "result": "4570_low",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -392,7 +377,7 @@
+ "book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 4 ] ],
+ "charges": 1,
+ "using": [ [ "bullet_forming", 15 ], [ "ammo_bullet", 8 ] ],
+- "components": [ [ [ "4570_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 12 ] ], [ [ "lead", 9 ] ] ]
++ "components": [ [ [ "4570_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 12 ] ] ]
+ },
+ {
+ "result": "reloaded_4570_bp",
+@@ -406,11 +391,12 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 4 ] ],
+ "charges": 1,
++ "reversible": true,
+ "using": [ [ "bullet_forming", 15 ], [ "ammo_bullet", 8 ] ],
+ "components": [ [ [ "4570_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "chem_black_powder", 12 ] ], [ [ "lead", 9 ] ] ]
+ },
+ {
+- "result": "reloaded_5x50dart",
++ "result": "5x50dart",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -421,7 +407,6 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_caseless", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ] ],
+ "tools": [ [ [ "mold_plastic", -1 ] ] ],
+ "components": [
+@@ -433,7 +418,29 @@
+ ]
+ },
+ {
+- "result": "reloaded_50bmg",
++ "result": "5x50heavy",
++ "type": "recipe",
++ "category": "CC_AMMO",
++ "subcategory": "CSC_AMMO_RIFLE",
++ "skill_used": "fabrication",
++ "difficulty": 6,
++ "skills_required": [ "gun", 5 ],
++ "time": "2 m",
++ "batch_time_factors": [ 60, 5 ],
++ "book_learn": [ [ "recipe_caseless", 4 ] ],
++ "charges": 1,
++ "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 3 ] ],
++ "tools": [ [ [ "mold_plastic", -1 ] ] ],
++ "components": [
++ [ [ "5x50_hull", 1 ] ],
++ [ [ "plastic_chunk", 1 ] ],
++ [ [ "smrifle_primer", 1 ] ],
++ [ [ "gunpowder", 4 ] ],
++ [ [ "scrap", 1 ] ]
++ ]
++ },
++ {
++ "result": "50bmg",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -444,12 +451,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 6 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 18 ], [ "ammo_bullet", 12 ] ],
+ "components": [ [ [ "50_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 30 ] ], [ [ "copper", 6 ] ] ]
+ },
+ {
+- "result": "reloaded_50_incendiary",
++ "result": "50_incendiary",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -460,7 +466,6 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 8 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 21 ], [ "ammo_bullet", 15 ] ],
+ "components": [
+ [ [ "50_casing", 1 ] ],
+@@ -471,7 +476,7 @@
+ ]
+ },
+ {
+- "result": "reloaded_50ss",
++ "result": "50ss",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -482,7 +487,6 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 7 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 21 ] ],
+ "components": [
+ [ [ "50_casing", 1 ] ],
+@@ -493,7 +497,7 @@
+ ]
+ },
+ {
+- "result": "reloaded_545",
++ "result": "545",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -504,12 +508,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 3 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 4 ], [ "ammo_bullet", 3 ] ],
+ "components": [ [ [ "545_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 5 ] ], [ [ "copper", 1 ] ] ]
+ },
+ {
+- "result": "reloaded_545_ap",
++ "result": "545_ap",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -520,12 +523,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 3 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 4 ], [ "ammo_bullet", 3 ] ],
+ "components": [ [ [ "545_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 6 ] ], [ [ "copper", 1 ] ] ]
+ },
+ {
+- "result": "reloaded_300blk",
++ "result": "300blk",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -536,7 +538,6 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 3 ], [ "mag_rifle", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 4 ], [ "ammo_bullet", 5 ], [ "ammo_300blk", 1 ] ],
+ "components": [ [ [ "gunpowder", 4 ] ], [ [ "copper", 2 ] ] ]
+ },
+@@ -557,7 +558,7 @@
+ "components": [ [ [ "chem_black_powder", 6 ] ], [ [ "copper", 2 ] ] ]
+ },
+ {
+- "result": "reloaded_556",
++ "result": "556",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -568,12 +569,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 3 ], [ "mag_rifle", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 4 ], [ "ammo_bullet", 3 ] ],
+ "components": [ [ [ "223_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 6 ] ], [ [ "copper", 1 ] ] ]
+ },
+ {
+- "result": "reloaded_556_incendiary",
++ "result": "556_incendiary",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -584,7 +584,6 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 5 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 4 ], [ "ammo_bullet", 3 ] ],
+ "components": [
+ [ [ "223_casing", 1 ] ],
+@@ -633,7 +632,7 @@
+ ]
+ },
+ {
+- "result": "reloaded_700nx",
++ "result": "700nx",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -644,12 +643,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 7 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 15 ], [ "ammo_bullet", 10 ] ],
+ "components": [ [ [ "700nx_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 30 ] ], [ [ "copper", 5 ] ] ]
+ },
+ {
+- "result": "reloaded_762_51",
++ "result": "762_51",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -660,7 +658,6 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 9 ], [ "ammo_bullet", 6 ] ],
+ "components": [
+ [ [ "308_casing", 1 ], [ "762_51_casing", 1 ] ],
+@@ -670,7 +667,7 @@
+ ]
+ },
+ {
+- "result": "reloaded_762_51_incendiary",
++ "result": "762_51_incendiary",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -681,7 +678,6 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 5 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 9 ], [ "ammo_bullet", 6 ] ],
+ "components": [
+ [ [ "308_casing", 1 ], [ "762_51_casing", 1 ] ],
+@@ -735,7 +731,7 @@
+ ]
+ },
+ {
+- "result": "reloaded_762_54R",
++ "result": "762_54R",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -746,12 +742,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 3 ], [ "mag_rifle", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 10 ], [ "ammo_bullet", 7 ] ],
+ "components": [ [ [ "762R_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 10 ] ], [ [ "copper", 3 ] ] ]
+ },
+ {
+- "result": "reloaded_762_m43",
++ "result": "762_m43",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -762,12 +757,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 3 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 5 ], [ "ammo_bullet", 4 ] ],
+ "components": [ [ [ "762_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 8 ] ], [ [ "copper", 1 ] ] ]
+ },
+ {
+- "result": "reloaded_762_m87",
++ "result": "762_m87",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+@@ -778,7 +772,6 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 3 ], [ "mag_rifle", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "bullet_forming", 5 ], [ "ammo_bullet", 4 ] ],
+ "components": [ [ [ "762_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 8 ] ], [ [ "copper", 1 ] ] ]
+ }
+diff --git a/data/json/recipes/ammo/shot.json b/data/json/recipes/ammo/shot.json
+index 76d1d3f6b4..3cd7313750 100644
+--- a/data/json/recipes/ammo/shot.json
++++ b/data/json/recipes/ammo/shot.json
+@@ -317,7 +317,7 @@
+ ]
+ },
+ {
+- "result": "reloaded_shot_00",
++ "result": "shot_00",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_SHOT",
+@@ -328,12 +328,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 2 ], [ "manual_shotgun", 2 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "shot_forming", 1 ], [ "ammo_bullet", 10 ], [ "ammo_shot", 1 ] ],
+ "components": [ [ [ "gunpowder", 6 ] ] ]
+ },
+ {
+- "result": "reloaded_410shot_000",
++ "result": "410shot_000",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_SHOT",
+@@ -344,12 +343,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 2 ], [ "manual_shotgun", 2 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "shot_forming", 1 ], [ "ammo_bullet", 5 ], [ "ammo_410shot", 1 ] ],
+ "components": [ [ [ "gunpowder", 5 ] ] ]
+ },
+ {
+- "result": "reloaded_shot_bird",
++ "result": "shot_bird",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_SHOT",
+@@ -360,12 +358,11 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 1 ], [ "manual_shotgun", 1 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "shot_forming", 1 ], [ "ammo_bullet", 10 ], [ "ammo_shot", 1 ] ],
+ "components": [ [ [ "gunpowder", 3 ] ] ]
+ },
+ {
+- "result": "reloaded_shot_dragon",
++ "result": "shot_dragon",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_SHOT",
+@@ -381,7 +378,7 @@
+ "components": [ [ [ "gunpowder", 3 ] ], [ [ "magnesium", 5 ] ] ]
+ },
+ {
+- "result": "reloaded_shot_flechette",
++ "result": "shot_flechette",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_SHOT",
+@@ -392,13 +389,12 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 4 ], [ "manual_shotgun", 4 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "ammo_shot", 1 ] ],
+ "tools": [ [ [ "press", -1 ], [ "press_dowel", -1 ] ] ],
+ "components": [ [ [ "gunpowder", 6 ] ], [ [ "combatnail", 10 ] ] ]
+ },
+ {
+- "result": "reloaded_shot_slug",
++ "result": "shot_slug",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_SHOT",
+@@ -409,7 +405,6 @@
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 3 ], [ "manual_shotgun", 3 ] ],
+ "charges": 1,
+- "reversible": true,
+ "using": [ [ "shot_forming", 1 ], [ "ammo_bullet", 20 ], [ "ammo_shot", 1 ] ],
+ "components": [ [ [ "gunpowder", 6 ] ] ]
+ },
+diff --git a/data/json/uncraft/ammo/223.json b/data/json/uncraft/ammo/223.json
+index c9d3d3f94e..9530ee17b3 100644
+--- a/data/json/uncraft/ammo/223.json
++++ b/data/json/uncraft/ammo/223.json
+@@ -6,7 +6,7 @@
+ "difficulty": 5,
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 2 } ],
+- "components": [ [ [ "lead", 3 ] ], [ [ "223_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 4 ] ], [ [ "copper", 2 ] ] ],
++ "components": [ [ [ "lead", 3 ] ], [ [ "223_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 4 ] ], [ [ "copper", 1 ] ] ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ }
+ ]
+diff --git a/data/json/uncraft/ammo/30-06.json b/data/json/uncraft/ammo/30-06.json
+index 1ba26c4b91..b235e58d0a 100644
+--- a/data/json/uncraft/ammo/30-06.json
++++ b/data/json/uncraft/ammo/30-06.json
+@@ -7,11 +7,11 @@
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 2 } ],
+ "components": [
+- [ [ "lead", 6 ] ],
++ [ [ "lead", 8 ] ],
+ [ [ "3006_casing", 1 ] ],
+ [ [ "lgrifle_primer", 1 ] ],
+- [ [ "gunpowder", 8 ] ],
+- [ [ "copper", 6 ] ]
++ [ [ "gunpowder", 12 ] ],
++ [ [ "copper", 4 ] ]
+ ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ },
+@@ -23,11 +23,12 @@
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 2 } ],
+ "components": [
+- [ [ "incendiary", 6 ] ],
++ [ [ "lead", 8 ] ],
++ [ [ "incendiary", 8 ] ],
+ [ [ "3006_casing", 1 ] ],
+ [ [ "lgrifle_primer", 1 ] ],
+- [ [ "gunpowder", 8 ] ],
+- [ [ "copper", 6 ] ]
++ [ [ "gunpowder", 12 ] ],
++ [ [ "copper", 4 ] ]
+ ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ },
+@@ -39,11 +40,11 @@
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 2 } ],
+ "components": [
+- [ [ "lead", 6 ] ],
++ [ [ "lead", 8 ] ],
+ [ [ "3006_casing", 1 ] ],
+ [ [ "lgrifle_primer", 1 ] ],
+- [ [ "gunpowder", 8 ] ],
+- [ [ "copper", 6 ] ]
++ [ [ "gunpowder", 12 ] ],
++ [ [ "copper", 4 ] ]
+ ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ }
+diff --git a/data/json/uncraft/ammo/300.json b/data/json/uncraft/ammo/300.json
+index df0b9505d5..9995c40b9d 100644
+--- a/data/json/uncraft/ammo/300.json
++++ b/data/json/uncraft/ammo/300.json
+@@ -11,7 +11,7 @@
+ [ [ "300_casing", 1 ] ],
+ [ [ "lgrifle_primer", 1 ] ],
+ [ [ "gunpowder", 16 ] ],
+- [ [ "copper", 21 ] ]
++ [ [ "copper", 4 ] ]
+ ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ }
+diff --git a/data/json/uncraft/ammo/300blk.json b/data/json/uncraft/ammo/300blk.json
+index dbc6a8a03a..bb4e4d4470 100644
+--- a/data/json/uncraft/ammo/300blk.json
++++ b/data/json/uncraft/ammo/300blk.json
+@@ -26,7 +26,7 @@
+ [ [ "lead", 5 ] ],
+ [ [ "300blk_casing", 1 ] ],
+ [ [ "smrifle_primer", 1 ] ],
+- [ [ "gunpowder", 3 ] ],
++ [ [ "gunpowder", 6 ] ],
+ [ [ "copper", 2 ] ]
+ ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+diff --git a/data/json/uncraft/ammo/308.json b/data/json/uncraft/ammo/308.json
+index aa59e19273..69c4fe1af7 100644
+--- a/data/json/uncraft/ammo/308.json
++++ b/data/json/uncraft/ammo/308.json
+@@ -6,13 +6,7 @@
+ "difficulty": 5,
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 2 } ],
+- "components": [
+- [ [ "lead", 6 ] ],
+- [ [ "308_casing", 1 ] ],
+- [ [ "lgrifle_primer", 1 ] ],
+- [ [ "gunpowder", 10 ] ],
+- [ [ "copper", 6 ] ]
+- ],
++ "components": [ [ [ "lead", 6 ] ], [ [ "308_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 8 ] ], [ [ "copper", 3 ] ] ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ }
+ ]
+diff --git a/data/json/uncraft/ammo/357mag.json b/data/json/uncraft/ammo/357mag.json
+index 41d027ea61..b23c42b4df 100644
+--- a/data/json/uncraft/ammo/357mag.json
++++ b/data/json/uncraft/ammo/357mag.json
+@@ -4,7 +4,13 @@
+ "type": "uncraft",
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+- "components": [ [ [ "lead", 2 ] ], [ [ "357mag_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 5 ] ] ],
++ "components": [
++ [ [ "lead", 2 ] ],
++ [ [ "357mag_casing", 1 ] ],
++ [ [ "lgpistol_primer", 1 ] ],
++ [ [ "gunpowder", 5 ] ],
++ [ [ "copper", 1 ] ]
++ ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ },
+ {
+diff --git a/data/json/uncraft/ammo/357sig.json b/data/json/uncraft/ammo/357sig.json
+index 2a6a13dc7a..256089ff72 100644
+--- a/data/json/uncraft/ammo/357sig.json
++++ b/data/json/uncraft/ammo/357sig.json
+@@ -4,7 +4,13 @@
+ "type": "uncraft",
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 2 } ],
+- "components": [ [ [ "lead", 2 ] ], [ [ "357sig_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 2 ] ] ],
++ "components": [
++ [ [ "lead", 2 ] ],
++ [ [ "357sig_casing", 1 ] ],
++ [ [ "smpistol_primer", 1 ] ],
++ [ [ "gunpowder", 5 ] ],
++ [ [ "copper", 1 ] ]
++ ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ },
+ {
+@@ -12,7 +18,7 @@
+ "type": "uncraft",
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 2 } ],
+- "components": [ [ [ "lead", 2 ] ], [ [ "357sig_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 2 ] ] ],
++ "components": [ [ [ "lead", 2 ] ], [ [ "357sig_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 5 ] ] ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ }
+ ]
+diff --git a/data/json/uncraft/ammo/38.json b/data/json/uncraft/ammo/38.json
+index b51fa23972..80e800b8a7 100644
+--- a/data/json/uncraft/ammo/38.json
++++ b/data/json/uncraft/ammo/38.json
+@@ -4,7 +4,7 @@
+ "type": "uncraft",
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+- "components": [ [ [ "lead", 2 ] ], [ [ "38_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 2 ] ] ],
++ "components": [ [ [ "lead", 2 ] ], [ [ "38_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 2 ] ], [ [ "copper", 1 ] ] ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ },
+ {
+@@ -14,13 +14,5 @@
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+ "components": [ [ [ "lead", 2 ] ], [ [ "38_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 2 ] ] ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+- },
+- {
+- "result": "38_super",
+- "type": "uncraft",
+- "time": "5 s",
+- "qualities": [ { "id": "PULL", "level": 1 } ],
+- "components": [ [ [ "lead", 2 ] ], [ [ "38_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 3 ] ] ],
+- "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ }
+ ]
+diff --git a/data/json/uncraft/ammo/380.json b/data/json/uncraft/ammo/380.json
+index dc4b9db6bf..02b0348f30 100644
+--- a/data/json/uncraft/ammo/380.json
++++ b/data/json/uncraft/ammo/380.json
+@@ -5,7 +5,7 @@
+ "type": "uncraft",
+ "using": [ [ "ammo_380", 1 ] ],
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+- "components": [ [ [ "lead", 2 ] ], [ [ "gunpowder", 3 ] ] ]
++ "components": [ [ [ "lead", 2 ] ], [ [ "gunpowder", 2 ] ] ]
+ },
+ {
+ "result": "380_FMJ",
+@@ -13,7 +13,7 @@
+ "type": "uncraft",
+ "using": [ [ "ammo_380", 1 ] ],
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+- "components": [ [ [ "lead", 2 ] ], [ [ "gunpowder", 3 ] ] ]
++ "components": [ [ [ "lead", 2 ] ], [ [ "gunpowder", 2 ] ], [ [ "copper", 1 ] ] ]
+ },
+ {
+ "result": "380_p",
+@@ -21,6 +21,6 @@
+ "type": "uncraft",
+ "using": [ [ "ammo_380", 1 ] ],
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+- "components": [ [ [ "lead", 2 ] ], [ [ "gunpowder", 4 ] ] ]
++ "components": [ [ [ "lead", 2 ] ], [ [ "gunpowder", 3 ] ] ]
+ }
+ ]
+diff --git a/data/json/uncraft/ammo/38super.json b/data/json/uncraft/ammo/38super.json
+index 7810c99fca..97311c220f 100644
+--- a/data/json/uncraft/ammo/38super.json
++++ b/data/json/uncraft/ammo/38super.json
+@@ -1,4 +1,12 @@
+ [
++ {
++ "result": "38_super",
++ "type": "uncraft",
++ "time": "5 s",
++ "qualities": [ { "id": "PULL", "level": 1 } ],
++ "components": [ [ [ "lead", 2 ] ], [ [ "38super_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 3 ] ] ],
++ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
++ },
+ {
+ "result": "38super_fmj",
+ "type": "uncraft",
+@@ -6,7 +14,13 @@
+ "difficulty": 5,
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+- "components": [ [ [ "lead", 2 ] ], [ [ "38super_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 3 ] ] ],
++ "components": [
++ [ [ "lead", 2 ] ],
++ [ [ "38super_casing", 1 ] ],
++ [ [ "smpistol_primer", 1 ] ],
++ [ [ "gunpowder", 3 ] ],
++ [ [ "copper", 1 ] ]
++ ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ }
+ ]
+diff --git a/data/json/uncraft/ammo/40.json b/data/json/uncraft/ammo/40.json
+index 6c7265ba44..7fbbf9ce90 100644
+--- a/data/json/uncraft/ammo/40.json
++++ b/data/json/uncraft/ammo/40.json
+@@ -4,7 +4,7 @@
+ "type": "uncraft",
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+- "components": [ [ [ "lead", 2 ] ], [ [ "40_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 4 ] ] ],
++ "components": [ [ [ "lead", 2 ] ], [ [ "40_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 4 ] ], [ [ "copper", 1 ] ] ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ },
+ {
+diff --git a/data/json/uncraft/ammo/44.json b/data/json/uncraft/ammo/44.json
+index e191b9aae3..a8c9331718 100644
+--- a/data/json/uncraft/ammo/44.json
++++ b/data/json/uncraft/ammo/44.json
+@@ -6,13 +6,7 @@
+ "difficulty": 5,
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+- "components": [
+- [ [ "lead", 7 ] ],
+- [ [ "44_casing", 1 ] ],
+- [ [ "lgpistol_primer", 1 ] ],
+- [ [ "gunpowder", 10 ] ],
+- [ [ "copper", 7 ] ]
+- ],
++ "components": [ [ [ "lead", 4 ] ], [ [ "44_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 6 ] ], [ [ "copper", 2 ] ] ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ },
+ {
+@@ -22,7 +16,7 @@
+ "difficulty": 5,
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+- "components": [ [ [ "lead", 10 ] ], [ [ "44_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 10 ] ] ],
++ "components": [ [ [ "lead", 5 ] ], [ [ "44_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 6 ] ] ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ }
+ ]
+diff --git a/data/json/uncraft/ammo/45.json b/data/json/uncraft/ammo/45.json
+index 3b9fbbde76..ab84f634e4 100644
+--- a/data/json/uncraft/ammo/45.json
++++ b/data/json/uncraft/ammo/45.json
+@@ -4,7 +4,7 @@
+ "type": "uncraft",
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+- "components": [ [ [ "lead", 3 ] ], [ [ "45_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 4 ] ] ],
++ "components": [ [ [ "lead", 3 ] ], [ [ "45_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 4 ] ], [ [ "copper", 2 ] ] ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ },
+ {
+diff --git a/data/json/uncraft/ammo/454.json b/data/json/uncraft/ammo/454.json
+index bae0e66db6..d2dc8fe1ba 100644
+--- a/data/json/uncraft/ammo/454.json
++++ b/data/json/uncraft/ammo/454.json
+@@ -6,13 +6,7 @@
+ "difficulty": 5,
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+- "components": [
+- [ [ "lead", 20 ] ],
+- [ [ "454_casing", 1 ] ],
+- [ [ "smrifle_primer", 1 ] ],
+- [ [ "gunpowder", 20 ] ],
+- [ [ "copper", 20 ] ]
+- ],
++ "components": [ [ [ "lead", 4 ] ], [ [ "454_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 6 ] ], [ [ "copper", 2 ] ] ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ }
+ ]
+diff --git a/data/json/uncraft/ammo/4570.json b/data/json/uncraft/ammo/4570.json
+index cc388b9279..0aec1b3de8 100644
+--- a/data/json/uncraft/ammo/4570.json
++++ b/data/json/uncraft/ammo/4570.json
+@@ -6,7 +6,7 @@
+ "qualities": [ { "id": "PULL", "level": 2 } ],
+ "components": [
+ [ [ "copper", 2 ] ],
+- [ [ "lead", 5 ] ],
++ [ [ "lead", 8 ] ],
+ [ [ "4570_casing", 1 ] ],
+ [ [ "lgrifle_primer", 1 ] ],
+ [ [ "gunpowder", 15 ] ]
+@@ -18,7 +18,13 @@
+ "type": "uncraft",
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 2 } ],
+- "components": [ [ [ "copper", 7 ] ], [ [ "4570_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 17 ] ] ],
++ "components": [
++ [ [ "copper", 7 ] ],
++ [ [ "lead", 8 ] ],
++ [ [ "4570_casing", 1 ] ],
++ [ [ "lgrifle_primer", 1 ] ],
++ [ [ "gunpowder", 17 ] ]
++ ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ },
+ {
+@@ -26,7 +32,17 @@
+ "type": "uncraft",
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 2 } ],
+- "components": [ [ [ "lead", 9 ] ], [ [ "4570_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 12 ] ] ],
++ "components": [ [ [ "lead", 8 ] ], [ [ "4570_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 12 ] ] ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
++ },
++ {
++ "id": "reloaded_4570_bp",
++ "copy-from": "4570_low",
++ "type": "AMMO",
++ "name": { "str": ".45-70, black powder" },
++ "description": ".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet using black powder to original specifications. Quite a bit less powerful and a lot dirtier than modern ammo, but still packs a punch. This one has been hand-loaded.",
++ "proportional": { "price": 0.6, "damage": { "damage_type": "bullet", "amount": 0.8 }, "dispersion": 1.2 },
++ "extend": { "effects": [ "RECYCLED", "MUZZLE_SMOKE", "BLACKPOWDER" ] },
++ "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
+ }
+ ]
+diff --git a/data/json/uncraft/ammo/45colt.json b/data/json/uncraft/ammo/45colt.json
+index ca3b831d8a..056243fcb0 100644
+--- a/data/json/uncraft/ammo/45colt.json
++++ b/data/json/uncraft/ammo/45colt.json
+@@ -4,7 +4,7 @@
+ "type": "uncraft",
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+- "components": [ [ [ "lead", 5 ] ], [ [ "45colt_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 4 ] ] ],
++ "components": [ [ [ "lead", 4 ] ], [ [ "45colt_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 4 ] ] ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ }
+ ]
+diff --git a/data/json/uncraft/ammo/460.json b/data/json/uncraft/ammo/460.json
+index c9dac3edbc..3e6517ae9a 100644
+--- a/data/json/uncraft/ammo/460.json
++++ b/data/json/uncraft/ammo/460.json
+@@ -6,7 +6,13 @@
+ "difficulty": 5,
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+- "components": [ [ [ "lead", 3 ] ], [ [ "460_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 10 ] ] ],
++ "components": [
++ [ [ "lead", 3 ] ],
++ [ [ "460_casing", 1 ] ],
++ [ [ "lgpistol_primer", 1 ] ],
++ [ [ "gunpowder", 6 ] ],
++ [ [ "copper", 2 ] ]
++ ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ },
+ {
+@@ -16,7 +22,7 @@
+ "difficulty": 5,
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+- "components": [ [ [ "lead", 3 ] ], [ [ "460_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 10 ] ] ],
++ "components": [ [ [ "lead", 3 ] ], [ [ "460_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 6 ] ] ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ }
+ ]
+diff --git a/data/json/uncraft/ammo/500.json b/data/json/uncraft/ammo/500.json
+index b79146ae5c..5a71a1bf4f 100644
+--- a/data/json/uncraft/ammo/500.json
++++ b/data/json/uncraft/ammo/500.json
+@@ -6,13 +6,7 @@
+ "difficulty": 5,
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+- "components": [
+- [ [ "lead", 24 ] ],
+- [ [ "500_casing", 1 ] ],
+- [ [ "lgpistol_primer", 1 ] ],
+- [ [ "gunpowder", 24 ] ],
+- [ [ "copper", 24 ] ]
+- ],
++ "components": [ [ [ "lead", 5 ] ], [ [ "500_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 8 ] ], [ [ "copper", 2 ] ] ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ }
+ ]
+diff --git a/data/json/uncraft/ammo/50bmg.json b/data/json/uncraft/ammo/50bmg.json
+index 211fbbd756..386eed9d65 100644
+--- a/data/json/uncraft/ammo/50bmg.json
++++ b/data/json/uncraft/ammo/50bmg.json
+@@ -7,7 +7,7 @@
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 2 } ],
+ "components": [
+- [ [ "lead", 12 ] ],
++ [ [ "lead", 15 ] ],
+ [ [ "incendiary", 20 ] ],
+ [ [ "50_casing", 1 ] ],
+ [ [ "lgrifle_primer", 1 ] ],
+diff --git a/data/json/uncraft/ammo/545.json b/data/json/uncraft/ammo/545.json
+index f3e1d4d100..c586ca687e 100644
+--- a/data/json/uncraft/ammo/545.json
++++ b/data/json/uncraft/ammo/545.json
+@@ -6,7 +6,7 @@
+ "difficulty": 5,
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 2 } ],
+- "components": [ [ [ "lead", 2 ] ], [ [ "545_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 5 ] ], [ [ "copper", 2 ] ] ],
++ "components": [ [ [ "lead", 3 ] ], [ [ "545_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 5 ] ], [ [ "copper", 1 ] ] ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ },
+ {
+@@ -16,7 +16,7 @@
+ "difficulty": 5,
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 2 } ],
+- "components": [ [ [ "lead", 3 ] ], [ [ "545_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 5 ] ], [ [ "copper", 3 ] ] ],
++ "components": [ [ [ "lead", 3 ] ], [ [ "545_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 6 ] ], [ [ "copper", 1 ] ] ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ }
+ ]
+diff --git a/data/json/uncraft/ammo/556.json b/data/json/uncraft/ammo/556.json
+index 036fe8bd7c..7ba9ad0b02 100644
+--- a/data/json/uncraft/ammo/556.json
++++ b/data/json/uncraft/ammo/556.json
+@@ -6,7 +6,7 @@
+ "difficulty": 5,
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 2 } ],
+- "components": [ [ [ "lead", 3 ] ], [ [ "223_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 6 ] ], [ [ "copper", 2 ] ] ],
++ "components": [ [ [ "lead", 3 ] ], [ [ "223_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 6 ] ], [ [ "copper", 1 ] ] ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ },
+ {
+@@ -22,7 +22,7 @@
+ [ [ "223_casing", 1 ] ],
+ [ [ "smrifle_primer", 1 ] ],
+ [ [ "gunpowder", 6 ] ],
+- [ [ "copper", 2 ] ]
++ [ [ "copper", 1 ] ]
+ ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ }
+diff --git a/data/json/uncraft/ammo/5x50.json b/data/json/uncraft/ammo/5x50.json
+index a3666d2303..55dad02d10 100644
+--- a/data/json/uncraft/ammo/5x50.json
++++ b/data/json/uncraft/ammo/5x50.json
+@@ -6,7 +6,14 @@
+ "difficulty": 5,
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+- "components": [ [ [ "lead", 2 ] ], [ [ "5x50_hull", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 3 ] ] ],
++ "components": [
++ [ [ "lead", 2 ] ],
++ [ [ "5x50_hull", 1 ] ],
++ [ [ "plastic_chunk", 1 ] ],
++ [ [ "smrifle_primer", 1 ] ],
++ [ [ "gunpowder", 3 ] ],
++ [ [ "combatnail", 1 ] ]
++ ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ },
+ {
+@@ -16,7 +23,14 @@
+ "difficulty": 5,
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+- "components": [ [ [ "lead", 3 ] ], [ [ "5x50_hull", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 3 ] ] ],
++ "components": [
++ [ [ "lead", 3 ] ],
++ [ [ "5x50_hull", 1 ] ],
++ [ [ "plastic_chunk", 1 ] ],
++ [ [ "smrifle_primer", 1 ] ],
++ [ [ "gunpowder", 4 ] ],
++ [ [ "scrap", 1 ] ]
++ ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ }
+ ]
+diff --git a/data/json/uncraft/ammo/700nx.json b/data/json/uncraft/ammo/700nx.json
+index bceaf805ca..0ea364b745 100644
+--- a/data/json/uncraft/ammo/700nx.json
++++ b/data/json/uncraft/ammo/700nx.json
+@@ -7,11 +7,11 @@
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 2 } ],
+ "components": [
+- [ [ "lead", 14 ] ],
++ [ [ "lead", 10 ] ],
+ [ [ "700nx_casing", 1 ] ],
+ [ [ "lgrifle_primer", 1 ] ],
+- [ [ "gunpowder", 38 ] ],
+- [ [ "copper", 9 ] ]
++ [ [ "gunpowder", 30 ] ],
++ [ [ "copper", 5 ] ]
+ ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ }
+diff --git a/data/json/uncraft/ammo/762x39.json b/data/json/uncraft/ammo/762x39.json
+index 93334eabc3..7d046c7938 100644
+--- a/data/json/uncraft/ammo/762x39.json
++++ b/data/json/uncraft/ammo/762x39.json
+@@ -6,7 +6,7 @@
+ "difficulty": 5,
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 2 } ],
+- "components": [ [ [ "lead", 5 ] ], [ [ "762_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 7 ] ], [ [ "copper", 5 ] ] ],
++ "components": [ [ [ "lead", 4 ] ], [ [ "762_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 8 ] ], [ [ "copper", 1 ] ] ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ },
+ {
+@@ -16,7 +16,7 @@
+ "difficulty": 5,
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 2 } ],
+- "components": [ [ [ "lead", 5 ] ], [ [ "762_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 8 ] ], [ [ "copper", 5 ] ] ],
++ "components": [ [ [ "lead", 4 ] ], [ [ "762_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 8 ] ], [ [ "copper", 1 ] ] ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ }
+ ]
+diff --git a/data/json/uncraft/ammo/762x51.json b/data/json/uncraft/ammo/762x51.json
+index 87933be7e4..dc277d7c17 100644
+--- a/data/json/uncraft/ammo/762x51.json
++++ b/data/json/uncraft/ammo/762x51.json
+@@ -11,7 +11,7 @@
+ [ [ "762_51_casing", 1 ] ],
+ [ [ "lgrifle_primer", 1 ] ],
+ [ [ "gunpowder", 10 ] ],
+- [ [ "copper", 6 ] ]
++ [ [ "copper", 3 ] ]
+ ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ },
+@@ -23,11 +23,12 @@
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 2 } ],
+ "components": [
++ [ [ "lead", 6 ] ],
+ [ [ "incendiary", 6 ] ],
+ [ [ "762_51_casing", 1 ] ],
+ [ [ "lgrifle_primer", 1 ] ],
+ [ [ "gunpowder", 10 ] ],
+- [ [ "copper", 6 ] ]
++ [ [ "copper", 3 ] ]
+ ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ }
+diff --git a/data/json/uncraft/ammo/762x54.json b/data/json/uncraft/ammo/762x54.json
+index 1e2d1be2ea..69681e16fa 100644
+--- a/data/json/uncraft/ammo/762x54.json
++++ b/data/json/uncraft/ammo/762x54.json
+@@ -7,11 +7,11 @@
+ "time": "5 s",
+ "qualities": [ { "id": "PULL", "level": 2 } ],
+ "components": [
+- [ [ "lead", 3 ] ],
++ [ [ "lead", 7 ] ],
+ [ [ "762R_casing", 1 ] ],
+ [ [ "lgrifle_primer", 1 ] ],
+- [ [ "gunpowder", 8 ] ],
+- [ [ "copper", 10 ] ]
++ [ [ "gunpowder", 10 ] ],
++ [ [ "copper", 3 ] ]
+ ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ }
+diff --git a/data/json/uncraft/ammo/9mm.json b/data/json/uncraft/ammo/9mm.json
+index aca3815900..e3b7ac566c 100644
+--- a/data/json/uncraft/ammo/9mm.json
++++ b/data/json/uncraft/ammo/9mm.json
+@@ -29,6 +29,6 @@
+ "type": "uncraft",
+ "using": [ [ "ammo_9mm", 1 ] ],
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+- "components": [ [ [ "lead", 2 ] ], [ [ "gunpowder", 3 ] ] ]
++ "components": [ [ [ "lead", 2 ] ], [ [ "gunpowder", 3 ] ], [ [ "copper", 1 ] ] ]
+ }
+ ]
+diff --git a/data/json/uncraft/ammo/9x18mm.json b/data/json/uncraft/ammo/9x18mm.json
+index 870af31ad4..ffe80a2a66 100644
+--- a/data/json/uncraft/ammo/9x18mm.json
++++ b/data/json/uncraft/ammo/9x18mm.json
+@@ -31,7 +31,7 @@
+ [ [ "9x18mm_casing", 1 ] ],
+ [ [ "smpistol_primer", 1 ] ],
+ [ [ "gunpowder", 3 ] ],
+- [ [ "copper", 2 ] ]
++ [ [ "copper", 1 ] ]
+ ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ }
+diff --git a/data/mods/Generic_Guns/recipes/recipe_obsolete.json b/data/mods/Generic_Guns/recipes/recipe_obsolete.json
+index 3146c0a01c..e4e3796a10 100644
+--- a/data/mods/Generic_Guns/recipes/recipe_obsolete.json
++++ b/data/mods/Generic_Guns/recipes/recipe_obsolete.json
+@@ -404,581 +404,6 @@
+ "result": "40x53mm_flechette_m169",
+ "obsolete": true
+ },
+- {
+- "type": "recipe",
+- "result": "460_casing",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "380_casing",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "300blk_casing",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_9mm",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_9mmfmj",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_40sw",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_32_acp",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_38_fmj",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_45_acp",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_45_jhp",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_46mm",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_460_fmj",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_460_rowland",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_500_Magnum",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_762_25",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_9x18mm",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_9x18mmfmj",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_380_JHP",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_380_FMJ",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_57mm",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "36navy",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "44army",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_32_acp",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_38_fmj",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_38_special",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_38super_fmj",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_357sig_fmj",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_357sig_jhp",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_357mag_fmj",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_357mag_jhp",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_357mag_fmj",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_357mag_jhp",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_38_special",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_38_super",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_40fmj",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_40sw",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_10mm_fmj",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_10mm_fmj",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_44fmj",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_44magnum",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_44magnum",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_44fmj",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_45_acp",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_45_jhp",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_45_super",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_454_Casull",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_454_Casull",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_45colt_jhp",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_46mm",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_460_fmj",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_460_rowland",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_500_Magnum",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_57mm",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_762_25",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_9mm",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_9mmP",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_9mmP2",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_9mmfmj",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_9x18mm",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_9x18mmfmj",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_9x18mmP2",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_380_JHP",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_380_p",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_380_FMJ",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_22_fmj",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_22_lr",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_22_fmj",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_22_lr",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_223",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_223",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_270win_jsp",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_270win_jsp",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_300_winmag",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_300_winmag",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_3006",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_3006fmj",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_3006_incendiary",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_3006",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_3006fmj",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_3006_incendiary",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_308",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_308",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_4570_sp",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_4570_pen",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_4570_low",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_4570_bp",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_5x50dart",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_50bmg",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_50_incendiary",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_50ss",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_545",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_545_ap",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_300blk",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_300blk",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_556",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_556_incendiary",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_556",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_556_incendiary",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_700nx",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_762_51",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_762_51_incendiary",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_762_51",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "bp_762_51_incendiary",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_762_54R",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_762_m43",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "reloaded_762_m87",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "40x46mm_buckshot_m118",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "40x46mm_buckshot_m199",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "40x46mm_slug_m118",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "40x46mm_slug_m199",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "40x46mm_flechette_m118",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "40x46mm_flechette_m199",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "40x53mm_buckshot_m169",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "40x53mm_slug_m169",
+- "obsolete": true
+- },
+- {
+- "type": "recipe",
+- "result": "40x53mm_flechette_m169",
+- "obsolete": true
+- },
+ {
+ "type": "recipe",
+ "result": "shot_paper_00",
+@@ -1304,6 +729,11 @@
+ "result": "bp_44magnum",
+ "obsolete": true
+ },
++ {
++ "type": "recipe",
++ "result": "bp_44fmj",
++ "obsolete": true
++ },
+ {
+ "type": "recipe",
+ "result": "reloaded_45_acp",
+--
+2.35.1
+