From b2f41f9e28edf324570ada2eab8663f7594a6a4f Mon Sep 17 00:00:00 2001 From: Penelope Haze Date: Fri, 13 Feb 2026 12:06:52 -0500 Subject: [PATCH 01/14] Fix reagent holders being cleared when approximately 0 units are transferred --- code/modules/reagents/Chemistry-Holder.dm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index c8872711cd3e..aa30e8395d34 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -483,6 +483,8 @@ var/global/datum/reagents/sink/infinite_reagent_sink = new /// Removes up to [amount] of reagents from [src]. Returns actual amount removed. /datum/reagents/proc/remove_any(var/amount = 1, var/defer_update = FALSE, var/removed_phases = (MAT_PHASE_LIQUID | MAT_PHASE_SOLID), skip_reagents = null) + amount = CHEMS_QUANTIZE(amount) + if(amount <= 0) return 0 @@ -518,8 +520,11 @@ var/global/datum/reagents/sink/infinite_reagent_sink = new else return 0 - var/removing = clamp(CHEMS_QUANTIZE(amount), 0, total_volume) // not ideal but something is making total_volume become NaN - if(!removing || total_volume <= 0) + var/removing = clamp(amount, 0, total_volume) // not ideal but something is making total_volume become NaN + if(!removing) + return 0 // don't clear, we aren't removing any + + if(total_volume <= removing) // we're removing everything . = 0 clear_reagents() return From af2fbfb7cc80bf2432a4fbb9d3969334bad36820 Mon Sep 17 00:00:00 2001 From: Penelope Haze Date: Fri, 13 Feb 2026 14:45:15 -0500 Subject: [PATCH 02/14] Fix passports spawning on the floor --- maps/~mapsystem/maps.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maps/~mapsystem/maps.dm b/maps/~mapsystem/maps.dm index 83ec36784973..5ddba61742de 100644 --- a/maps/~mapsystem/maps.dm +++ b/maps/~mapsystem/maps.dm @@ -555,7 +555,7 @@ var/global/const/MAP_HAS_RANK = 2 //Rank system, also toggleable var/obj/item/passport/pass = new passport_type(get_turf(H)) if(istype(pass)) pass.set_info(H) - if(!H.equip_to_slot(pass, slot_in_wallet_str) && !H.equip_to_slot(pass, slot_in_backpack_str)) + if(!H.equip_to_slot_if_possible(pass, slot_in_wallet_str, del_on_fail=FALSE, disable_warning=TRUE) && !H.equip_to_slot_if_possible(pass, slot_in_backpack_str, del_on_fail=FALSE, disable_warning=TRUE)) H.put_in_hands(pass) /datum/map/proc/populate_overmap_events() From ccbc020e543cb3ce9218d8b42f5198b614c1fbb8 Mon Sep 17 00:00:00 2001 From: Nyello Date: Mon, 16 Feb 2026 08:53:51 +0000 Subject: [PATCH 03/14] shotgun icon fix --- code/modules/projectiles/guns/projectile/shotgun.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index 0021fc7522b5..8d78adbcf305 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -24,6 +24,12 @@ else icon_state = "[get_world_inventory_state()]-empty" +/obj/item/gun/projectile/shotgun/pump/update_base_icon_state() + if(chambered) + icon_state = get_world_inventory_state() + else + icon_state = "[get_world_inventory_state()]-empty" + /obj/item/gun/projectile/shotgun/pump/consume_next_projectile() if(chambered) return chambered.BB From 973ac960f6cb967f99b1df60c950abe46cb0c62f Mon Sep 17 00:00:00 2001 From: MelNye Date: Mon, 16 Feb 2026 15:01:14 +0000 Subject: [PATCH 04/14] skin color is preserved by rejuv --- code/modules/organs/external/_external.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/organs/external/_external.dm b/code/modules/organs/external/_external.dm index 8917e89de859..699995352410 100644 --- a/code/modules/organs/external/_external.dm +++ b/code/modules/organs/external/_external.dm @@ -158,6 +158,8 @@ /obj/item/organ/external/copy_from_mob_snapshot(datum/mob_snapshot/supplied_appearance) _icon_cache_key = null + skin_colour = supplied_appearance.skin_color //match skin colors + skin_tone = supplied_appearance.skin_tone if(organ_tag in supplied_appearance?.sprite_accessories) var/list/sprite_cats = supplied_appearance.sprite_accessories[organ_tag] for(var/category in sprite_cats) From 4b2bc284ab2999138e8477f40020e054671bb950 Mon Sep 17 00:00:00 2001 From: MelNye Date: Thu, 19 Feb 2026 12:21:24 +0000 Subject: [PATCH 05/14] fixes plate carriers being invisible --- code/modules/clothing/armor_attachment/plate.dm | 1 + code/modules/clothing/suits/armor/plate_carrier.dm | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/armor_attachment/plate.dm b/code/modules/clothing/armor_attachment/plate.dm index 5723b909ce9b..84ef485f04da 100644 --- a/code/modules/clothing/armor_attachment/plate.dm +++ b/code/modules/clothing/armor_attachment/plate.dm @@ -17,6 +17,7 @@ /decl/material/solid/metal/steel = MATTER_AMOUNT_SECONDARY ) origin_tech = @'{"materials":1,"engineering":1,"combat":1}' + draw_on_mob_when_equipped = FALSE /obj/item/clothing/armor_attachment/plate/get_fibers() return null //plates do not shed diff --git a/code/modules/clothing/suits/armor/plate_carrier.dm b/code/modules/clothing/suits/armor/plate_carrier.dm index 26d057e38302..20bb9d7cf56f 100644 --- a/code/modules/clothing/suits/armor/plate_carrier.dm +++ b/code/modules/clothing/suits/armor/plate_carrier.dm @@ -8,7 +8,6 @@ restricted_accessory_slots = list(ACCESSORY_SLOT_INSIGNIA, ACCESSORY_SLOT_ARMOR_C, ACCESSORY_SLOT_ARMOR_A, ACCESSORY_SLOT_ARMOR_L, ACCESSORY_SLOT_ARMOR_S) material = /decl/material/solid/organic/leather starting_accessories = null - draw_on_mob_when_equipped = FALSE /obj/item/clothing/suit/armor/pcarrier/light starting_accessories = list( From f80b65427c1a48e465a7d60fdeef01b044755a96 Mon Sep 17 00:00:00 2001 From: mistakenot4892 Date: Mon, 23 Feb 2026 22:17:40 +1100 Subject: [PATCH 06/14] Fixes issues with moving off open spaces. --- code/game/turfs/turf.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index b92b9cf9ccae..fdacc8c04d43 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -374,7 +374,7 @@ var/old_height = old_turf.get_physical_height() + REAGENT_TOTAL_VOLUME(old_turf.reagents) var/current_height = get_physical_height() + REAGENT_TOTAL_VOLUME(reagents) if(abs(current_height - old_height) > FLUID_SHALLOW) - if(current_height > old_height) + if(current_height > old_height && !is_open() && !old_turf?.is_open()) // check is_open() due to open turf depth stuff. return 0 if(istype(mover_mob) && MOVING_DELIBERATELY(mover_mob)) to_chat(mover_mob, SPAN_WARNING("You refrain from stepping over the edge; it looks like a steep drop down to \the [src].")) From 3a4cd9d8801af2a7c857021c584ad343fd62c5ea Mon Sep 17 00:00:00 2001 From: NebulaSS13Bot Date: Tue, 3 Mar 2026 01:18:22 +0000 Subject: [PATCH 07/14] Automatic changelog generation [ci skip] --- html/changelog.html | 6 ------ 1 file changed, 6 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 9e0ead821a49..4dea7670967f 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -75,12 +75,6 @@

Penelope Haze updated:

  • Kharmaan nymph jobbans now use the "Mantid Nymph" role in the jobban menu, rather than the Semi-Antagonist role.
- -

30 December 2025

-

Penelope Haze updated:

-
    -
  • Iron can now optionally be used instead of aluminum when filling sealant tanks for sealant guns.
  • -
From e1624d97361b312d94bc2040937dc0193b77695c Mon Sep 17 00:00:00 2001 From: NebulaSS13Bot Date: Wed, 4 Mar 2026 01:14:16 +0000 Subject: [PATCH 08/14] Automatic changelog generation [ci skip] --- html/changelog.html | 6 ------ 1 file changed, 6 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 4dea7670967f..bf211e520c01 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -69,12 +69,6 @@

Sutures updated:

  • The equip hotkey can now place items into backpacks and wallets.
- -

31 December 2025

-

Penelope Haze updated:

-
    -
  • Kharmaan nymph jobbans now use the "Mantid Nymph" role in the jobban menu, rather than the Semi-Antagonist role.
  • -
From 40c3ff60389bd9146baa71198815f01413bd60a5 Mon Sep 17 00:00:00 2001 From: NebulaSS13Bot Date: Fri, 6 Mar 2026 01:19:47 +0000 Subject: [PATCH 09/14] Automatic changelog generation [ci skip] --- html/changelog.html | 6 ------ 1 file changed, 6 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index bf211e520c01..24729b5cd40e 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -63,12 +63,6 @@

MistakeNot4892 updated:

  • Internal code for neo-avian markings has been reworked, check your sprite accessories.
- -

02 January 2026

-

Sutures updated:

-
    -
  • The equip hotkey can now place items into backpacks and wallets.
  • -
From 318927812abbc6d94873435ed9cac0da2869ee82 Mon Sep 17 00:00:00 2001 From: NebulaSS13Bot Date: Tue, 10 Mar 2026 01:11:35 +0000 Subject: [PATCH 10/14] Automatic changelog generation [ci skip] --- html/changelog.html | 6 ------ 1 file changed, 6 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 24729b5cd40e..432fdcc9b8b1 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -57,12 +57,6 @@

Penelope Haze updated:

  • Certain supply packs that give a random selection are now priced more fairly.
- -

06 January 2026

-

MistakeNot4892 updated:

-
    -
  • Internal code for neo-avian markings has been reworked, check your sprite accessories.
  • -
From 23c21fee3bdac29687f1c509ddb70f5466a7822a Mon Sep 17 00:00:00 2001 From: sypsoti Date: Tue, 10 Mar 2026 05:58:06 -0500 Subject: [PATCH 11/14] fixes random spawner --- code/game/objects/random/random.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm index b10416f63713..3a111afaccac 100644 --- a/code/game/objects/random/random.dm +++ b/code/game/objects/random/random.dm @@ -27,7 +27,7 @@ if(!type_to_spawn) return - for(var/atom/A as anything in create_instance(type_to_spawn)) + for(var/atom/A as anything in create_instance(type_to_spawn, loc)) if(pixel_x || pixel_y) A.default_pixel_x = pixel_x A.default_pixel_y = pixel_y From ef6e4fe3e730f1fb447ebafddd40d0bb1e1edd7a Mon Sep 17 00:00:00 2001 From: NebulaSS13Bot Date: Sat, 14 Mar 2026 01:13:50 +0000 Subject: [PATCH 12/14] Automatic changelog generation [ci skip] --- html/changelog.html | 6 ------ 1 file changed, 6 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 432fdcc9b8b1..2aecab0a3e31 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -51,12 +51,6 @@ -->
- -

10 January 2026

-

Penelope Haze updated:

-
    -
  • Certain supply packs that give a random selection are now priced more fairly.
  • -
From 4e4ab9b31404c035e639db0885dba9c3256a924d Mon Sep 17 00:00:00 2001 From: sypsoti Date: Fri, 13 Mar 2026 22:33:32 -0500 Subject: [PATCH 13/14] switching to stable --- .../modules/modular_computers/networking/machinery/telecomms.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/modular_computers/networking/machinery/telecomms.dm b/code/modules/modular_computers/networking/machinery/telecomms.dm index 93f7f7cd4914..8ff24e38a591 100644 --- a/code/modules/modular_computers/networking/machinery/telecomms.dm +++ b/code/modules/modular_computers/networking/machinery/telecomms.dm @@ -190,7 +190,7 @@ var/global/list/telecomms_hubs = list() listeners[ghost_listener] = TRUE for(var/mob/listener in listeners) - listener.hear_radio(message, message_verb, speaking, formatted_msg, " ", "", speaker, message_compression, vname = send_name, vsource = (listeners[listener] ? send_overmap_object.name : null)) + listener.hear_radio(message, message_verb, speaking, formatted_msg, " ", "", speaker, message_compression, vname = send_name, vsource = (listeners[listener] ? send_overmap_object?.name : null)) if(!chain_transmit) return From ae8d8743701ac9fc3183e3d68c4e98c8fca8653a Mon Sep 17 00:00:00 2001 From: Typhin Date: Fri, 13 Mar 2026 22:55:47 -0500 Subject: [PATCH 14/14] Garlic Oil now treats infections Adds `affect_blood_on_ingest` to garlic oil, allowing it to be an antibiotic without requiring it to be injected. --- code/modules/reagents/chems/chems_drinks.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/reagents/chems/chems_drinks.dm b/code/modules/reagents/chems/chems_drinks.dm index a00cf2beaf94..2be58a63f7a5 100644 --- a/code/modules/reagents/chems/chems_drinks.dm +++ b/code/modules/reagents/chems/chems_drinks.dm @@ -185,6 +185,7 @@ color = "#eeddcc" uid = "chem_drink_garlic" antibiotic_strength = 0.65 + affect_blood_on_ingest = TRUE glass_name = "garlic oil" glass_desc = "A potion of guaranteed bad breath."