Commit Graph
1988 Commits
Author SHA1 Message Date
+37 21b4095dfd [MDB IGNORE] [IDB IGNORE] Upstream Sync - 04/17/2026 (#5453)
Upstream 04/17/2026

fixes https://github.com/Bubberstation/Bubberstation/issues/5549

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: rageguy505 <54517726+rageguy505@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Aliceee2ch <160794176+Aliceee2ch@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Tsar-Salat <62388554+Tsar-Salat@users.noreply.github.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: Maxipat <108554989+Maxipat112@users.noreply.github.com>
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com>
Co-authored-by: loganuk <fakeemail123@aol.com>
Co-authored-by: Leland Kemble <70413276+lelandkemble@users.noreply.github.com>
Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com>
Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
Co-authored-by: Lucy <lucy@absolucy.moe>
Co-authored-by: siliconOpossum <138069572+siliconOpossum@users.noreply.github.com>
Co-authored-by: Isratosh <Isratosh@hotmail.com>
Co-authored-by: TheRyeGuyWhoWillNowDie <70169560+TheRyeGuyWhoWillNowDie@users.noreply.github.com>
Co-authored-by: Neocloudy <88008002+Neocloudy@users.noreply.github.com>
Co-authored-by: Alexander V. <volas@ya.ru>
Co-authored-by: ElGitificador <168473461+ElGitificador@users.noreply.github.com>
Co-authored-by: Twaticus <46540570+Twaticus@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Cameron Lennox <killer65311@gmail.com>
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: Layzu666 <121319428+Layzu666@users.noreply.github.com>
Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com>
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: mrmanlikesbt <99309552+mrmanlikesbt@users.noreply.github.com>
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: John F. Kennedy <54908920+MacaroniCritter@users.noreply.github.com>
Co-authored-by: Cursor <102828457+theselfish@users.noreply.github.com>
Co-authored-by: Josh <josh.adam.powell@gmail.com>
Co-authored-by: Josh Powell <josh.powell@softwire.com>
Co-authored-by: Yobrocharlie <Charliemiller5617@gmail.com>
Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com>
Co-authored-by: shayoki <96078776+shayoki@users.noreply.github.com>
Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
2026-05-16 00:56:00 +02:00
ArturlangandGitHub d67ca75e37 kills cargo imports (#5491)
## About The Pull Request
kills cargo imports with no mercy, moves it into goodies with
newly-added subcategories
also adds a persi only agent ID single pack per request
also also tarkon and persi can buy private packs via id money
## Why It's Good For The Game
ugly UI that doesn't work for other factions and needs hacks to work
with cargo ui is not great

## Proof Of Testing


<summary>Screenshots/Videos</summary>
<img width="1268" height="1124" alt="image"
src="https://github.com/user-attachments/assets/fd3d9a58-ea0b-4242-88d2-b6123a214c72"
/>

## Changelog

🆑
add: cargo imports moved into it's own category with a brand subcategory
system, and orderable without a private account (god why did i do this)
add: persistence only agent ID single pack
add: persistence and tarkon can now buy stuff via ids directly
add: captain access can always unlock departmental orders
fix: persistence and persistence cargo consoles sending cargo pods to
the station if cargo bay is selected
del: entire cargo company imports system
/🆑
2026-05-12 17:20:32 -07:00
Alexis 5c5a636485 Merge branch 'master' into upstream-feb12-2026 2026-03-02 07:42:16 -05:00
ManateeandGitHub 79b1019458 Ports the Holotool from yogstation (#5252)
## About The Pull Request
Ports the Experimental Holotool from yogstation. An RD item that is all
the tools in a compact package.
## Why It's Good For The Game
RD has nothing interesting except the armor that kills you if you use
it, and many people dont because of that. This gives a unique,
interesting item that is useful to their kit, much like the CMO's hypo.
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>

<img width="273" height="314" alt="image"
src="https://github.com/user-attachments/assets/7111c679-928c-4069-a4d9-ab93588d9daf"
/>

<img width="127" height="83" alt="image"
src="https://github.com/user-attachments/assets/86346c30-3ae3-449d-b40a-3c26b05f6949"
/>


</details>

## Changelog
🆑
add: The RD now has an Experimental Holotool! It starts in their locker.
/🆑
2026-02-21 15:34:19 +01:00
nevimer 00ccf0c6b5 Merge remote-tracking branch 'tgstation/master' into upstream-feb12-2026
# Conflicts:
#	.github/CODEOWNERS
#	.github/workflows/compile_changelogs.yml
#	.github/workflows/stale.yml
#	SQL/database_changelog.md
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	code/__DEFINES/atom_hud.dm
#	code/__DEFINES/inventory.dm
#	code/__DEFINES/mobs.dm
#	code/__DEFINES/species_clothing_paths.dm
#	code/__DEFINES/subsystems.dm
#	code/__DEFINES/surgery.dm
#	code/__HELPERS/global_lists.dm
#	code/_globalvars/lists/maintenance_loot.dm
#	code/_globalvars/traits/_traits.dm
#	code/controllers/subsystem/minor_mapping.dm
#	code/controllers/subsystem/processing/quirks.dm
#	code/controllers/subsystem/shuttle.dm
#	code/datums/components/palette.dm
#	code/datums/components/surgery_initiator.dm
#	code/datums/diseases/advance/advance.dm
#	code/datums/hud.dm
#	code/datums/mood.dm
#	code/datums/mutations/chameleon.dm
#	code/datums/quirks/negative_quirks/nyctophobia.dm
#	code/datums/status_effects/debuffs/debuffs.dm
#	code/datums/status_effects/debuffs/drunk.dm
#	code/datums/status_effects/debuffs/slime/slime_leech.dm
#	code/datums/weather/weather.dm
#	code/game/data_huds.dm
#	code/game/objects/items.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/game/objects/items/frog_statue.dm
#	code/game/objects/items/rcd/RLD.dm
#	code/game/objects/items/robot/items/hypo.dm
#	code/game/objects/items/stacks/medical.dm
#	code/game/objects/items/stacks/wrap.dm
#	code/game/objects/items/storage/garment.dm
#	code/game/objects/items/tools/medical/defib.dm
#	code/game/objects/items/weaponry.dm
#	code/game/objects/items/weaponry/melee/misc.dm
#	code/game/objects/structures/crates_lockers/closets/secure/security.dm
#	code/game/objects/structures/curtains.dm
#	code/game/objects/structures/dresser.dm
#	code/game/objects/structures/girders.dm
#	code/game/objects/structures/maintenance.dm
#	code/game/objects/structures/mirror.dm
#	code/modules/admin/greyscale_modify_menu.dm
#	code/modules/admin/verbs/light_debug.dm
#	code/modules/antagonists/ashwalker/ashwalker.dm
#	code/modules/antagonists/heretic/knowledge/starting_lore.dm
#	code/modules/antagonists/ninja/ninjaDrainAct.dm
#	code/modules/art/paintings.dm
#	code/modules/client/preferences.dm
#	code/modules/client/verbs/ooc.dm
#	code/modules/clothing/head/wig.dm
#	code/modules/events/disease_outbreak.dm
#	code/modules/holodeck/holo_effect.dm
#	code/modules/jobs/job_types/head_of_security.dm
#	code/modules/jobs/job_types/security_officer.dm
#	code/modules/library/skill_learning/generic_skillchips/point.dm
#	code/modules/mining/lavaland/ash_flora.dm
#	code/modules/mining/lavaland/mining_loot/megafauna/ash_drake.dm
#	code/modules/mob/dead/new_player/new_player.dm
#	code/modules/mob/living/basic/guardian/guardian.dm
#	code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm
#	code/modules/mob/living/carbon/carbon.dm
#	code/modules/mob/living/carbon/human/human.dm
#	code/modules/mob/living/carbon/human/human_defines.dm
#	code/modules/mob/living/carbon/life.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob/living/living_defines.dm
#	code/modules/mob/mob.dm
#	code/modules/mob_spawn/ghost_roles/mining_roles.dm
#	code/modules/mod/mod_control.dm
#	code/modules/mod/modules/modules_general.dm
#	code/modules/modular_computers/computers/item/computer_ui.dm
#	code/modules/paperwork/paper.dm
#	code/modules/paperwork/paperbin.dm
#	code/modules/power/lighting/light.dm
#	code/modules/projectiles/guns/energy/kinetic_accelerator.dm
#	code/modules/projectiles/projectile.dm
#	code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
#	code/modules/reagents/chemistry/reagents/food_reagents.dm
#	code/modules/reagents/chemistry/reagents/other_reagents.dm
#	code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
#	code/modules/research/xenobiology/crossbreeding/_clothing.dm
#	code/modules/research/xenobiology/crossbreeding/prismatic.dm
#	code/modules/surgery/advanced/brainwashing.dm
#	code/modules/surgery/advanced/lobotomy.dm
#	code/modules/surgery/amputation.dm
#	code/modules/surgery/blood_filter.dm
#	code/modules/surgery/bodyparts/_bodyparts.dm
#	code/modules/surgery/brain_surgery.dm
#	code/modules/surgery/cavity_implant.dm
#	code/modules/surgery/coronary_bypass.dm
#	code/modules/surgery/gastrectomy.dm
#	code/modules/surgery/healing.dm
#	code/modules/surgery/limb_augmentation.dm
#	code/modules/surgery/organ_manipulation.dm
#	code/modules/surgery/revival.dm
#	code/modules/surgery/sleeper_protocol.dm
#	code/modules/surgery/surgery_helpers.dm
#	code/modules/surgery/surgery_step.dm
#	code/modules/unit_tests/_unit_tests.dm
#	code/modules/unit_tests/designs.dm
#	code/modules/unit_tests/icon_state_worn.dm
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_cultist.png
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_headrevolutionary.png
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_provocateur.png
#	code/modules/unit_tests/screenshots/screenshot_husk_body.png
#	code/modules/unit_tests/screenshots/screenshot_husk_body_missing_limbs.png
#	icons/map_icons/clothing/head/_head.dmi
#	icons/map_icons/clothing/shoes.dmi
#	icons/map_icons/items/_item.dmi
#	icons/mob/huds/hud.dmi
#	icons/mob/inhands/64x64_lefthand.dmi
#	icons/mob/inhands/64x64_righthand.dmi
#	icons/obj/machines/computer.dmi
#	tgui/packages/tgui/interfaces/OperatingComputer.jsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/MainPage.tsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/types.ts
#	tgui/packages/tgui/interfaces/SurgeryInitiator.tsx
#	tools/icon_cutter/check.py
2026-02-12 23:50:09 -05:00
44b98df815 Fix right clicking a closet with an ID in hand toggling locks twice in one tick (#95112)
`togglelock` is called in both tool_interact and attack_hand. Aborting
on the first success here prevents the double toggle

🆑
fix: Fixed right clicking a closet with an ID in hand toggling locks
twice in one tick
/🆑

Co-authored-by: Jordan Dominion <Cyberboss@users.noreply.github.com>
2026-02-08 18:58:45 -05:00
NickandGitHub 12fabce357 Katanas now have their own respective sheaths, adds leather crafting recipes for katana sheaths (#94939) 2026-01-28 13:09:44 +02:00
MrMelbertandGitHub 596b785ec5 More medical larp: Stasis bodybags and triage cards (#94709)
## About The Pull Request

1. Adds stasis bodybags, unlocked with cryogenics tech 

These bodybags are portable forms of stasis. However, they wear down
with use, only being able to keep someone in stasis for about 2, 3
minutes before falling apart.

Bodyparts and organs put in the bodybag are also frozen, allowing you to
maintain parts of gibbed people.

You can med scan through the walls of the stasis bag as well. Also you
can med scan through holographics bodybags.

2. Adds triage cards to the medical vendor

Triage cards are small pieces of paper you can write on and stick to
people. They're color coded according to severity, and are intended to
be used in mass casualty events for prioritizing patients.

3. You can pin paper to bodybags

You can pin a sheet of paper to bodybags that people can read, be it
autopsy or whatever.

4. Updates paper interaction code slightly

We have new procs for allowing interactions rather that snowflakes

5. Other forms of stasis apply tumor suppression

Oversight?

## Why It's Good For The Game

I made these a while back to just give medical doctors a few more tools
to play around with beyond the meta tools. Just to get more immersed
into the larp.

Otherwise, stasis bodybags gives Paramedics a tangible upgrade(if you
can call it that), offering a safer way to retrieve patients

## Changelog

🆑 Melbert
add: Adds stasis bodybags, unlocked with cryo tech. They put its
occupants (organ or mobs) in stasis, but wear down over time.
add: Adds triage cards to the medical vendor, a flavor item docs can use
during mass casualty events.
qol: You can pin papers to closed bodybags. Keep organized with your
autopsies.
qol: You can interact with papers in folders and on clipboards
qol: All forms of stasis stop brain tumors
/🆑
2026-01-17 10:37:49 -07:00
d5102b2030 Void stamp integration - the stampening (#94359)
## About The Pull Request

Void stamp added to bureaucracy loot spawners, a new box that contains a
granted, denied, and void stamp found in the lawdrobe, hop locker,
bureaucracy crate, mod stamper module, and the paperwork implant gets a
stamp that can cycle between 3 different ones like the mod stamp.

## Why It's Good For The Game

Finally the void stamp is obtainable

## Changelog

🆑
add: The void stamp is now obtainable
add: The lawdrobe now sells a box of stamps
add: The head of personnel's locker now contains a box of stamps
fix: The mod stamper module is now visible
/🆑

---------

Co-authored-by: Fghj240 <fakeemail@notrealemail.com>
2026-01-08 18:31:15 +00:00
3799968eb3 feat: new floppy disk sprites; most disks are now under the /item/disk type; adds disk stacking, uqinue styling and wrapping (#94112)
## About The Pull Request

Floppy disks received a sprite upgrade, as well as unique wraps:

<img width="364" height="150" alt="image"
src="https://github.com/user-attachments/assets/0ac433e3-7432-4c06-bec2-aeae00b6852f"
/>

<img width="786" height="527" alt="image"
src="https://github.com/user-attachments/assets/0f36bd0d-0362-4431-8131-49060a2fe348"
/>

You can now stack floppy disks! They also scatter around when thrown.
The video also showcases new styling options with a selection of
stickers! You can also write something on the disk instead of selecting
an icon:


https://github.com/user-attachments/assets/ff0a8542-9d79-4108-ae46-672ca5d620a2

MOST disks now inherit the `/item/disk` type to properly stack and do...
stuff. An updatepaths script included.

## Why It's Good For The Game

Old school is cool. Stacking disks makes them feel more authentic, while
styling allows for more crearivity!

## Changelog

🆑
add: New unique wraps for floppy disks
qol: Floppy disks can now be stacked
image: New sprites and stickers for floppy disks
map: Added and ran an updatepaths script
refactor: Most disks are now under the base disk item type
/🆑

---------

Co-authored-by: The-Tyrant <tyrantofgaming@gmail.com>
2026-01-04 08:52:18 +13:00
MrMelbertandGitHub 8259c2fc1e Eigenstasium can no longer create Eigenlockers, but adds rare maint Eigenlockers as a replacement (#94683)
## About The Pull Request

1. Eigenstasium can no longer be splashed onto lockers to link them
2. Maintenance lockers can rarely be linked to another locker on the
station - any locker, including head of staff lockers. This has a 0.1%
chance, which amounts to a ~5% chance to spawn on a map with 50 lockers.
3. Teleporting via an eigenlocker no longer opens up the opposite side,
allowing you to jumpscare people

## Why It's Good For The Game

1a. Eigenstasium's lockers are both significantly easier to produce and
significantly easier to use than our "intended" method of spot-to-spot
teleportation, the Quantum Pad.

There is an argument to be made in that the Quantum Pad needs to be
brought up to this level, and I may do that, because honestly, it's a
valid point. But in the meanwhile, it doesn't really make sense that
Chemistry can make better teleportation... than the teleportation
department.

1b. Eigenstasium wears too many hats. It really is a wonder chem. It
intrudes on other mechanics of other jobs and frankly doesn't need the
extra sauce, it's already interesting enough.

If your wikibox has a *collapsible*, it might be doing too much.... 

<img width="1567" height="397" alt="image"
src="https://github.com/user-attachments/assets/969b6d32-5e85-42a1-8d3b-7769b6968b95"
/>

2. However, teleporting lockers are funny. We have the station trait,
but it announces itself and affects (potentially) every closet, which
ruins some of the mystique. So I wanted to add that effect as something
you can stumble upon in the wild accidentally - Imagine hopping into a
locker in maint to dodge sec and you end up in the Captain's office.

3. Builds off of 2. Finding a locker that teleports you into the middle
of security so you can jump out and surprise them the next time they
show up sounds really funny.

## Changelog

🆑 Melbert
del: Eigenstasium can no longer create Eigenlockers
add: Rarely, maintenance lockers will spawn as Eigenlockers, potentially
linked to any other locker on the station - yes, even the Captain's.
add: Teleporting via an Eigenlocker doesn't auto-open the destination
locker, allowing you to hide in them.
/🆑
2026-01-04 08:47:34 +13:00
SmArtKarandGitHub 992625b829 Makes right-clicks on closets with an item open/close them (#94658)
## About The Pull Request

As title says, right clicking on a closet with an item now opens or
closes it. Makes sense you'd be able to do that by using your shoulder
or feet.

## Why It's Good For The Game

Makes inventory management a bit easier and lets players offload their
backpacks into lockers easier (when they actually do so for once)

## Changelog
🆑
qol: Right-clicking closets with an item now opens/closes them
/🆑
2025-12-31 11:47:06 -05:00
BloopandGitHub cf14dcfc1a Converts 3 components into elements (#94589)
## About The Pull Request

`adjust_fishing_difficulty` is a good one to make into a bespoke element
since a number of the same clothing item are created in the wardrobe
system.

climb_walkable is also good due to how prevalent it is, and it is a bit
of a two for one since it also removes the need for the
`/component/connect_loc_behalf`

Also stops adding the on_climbable trait to literally everything in the
turf, it now only applies it to atoms with density. So no more pipes and
stuff getting trait lists created for no reason.

<details><summary> Tested + things still work as before </summary>

<img width="422" height="122" alt="image"
src="https://github.com/user-attachments/assets/b23696f5-cd16-4150-aeb3-14ea6bd256fc"
/>

</details>

## Why It's Good For The Game

Lessens overhead, fixes a bug as well.

## Changelog

🆑
fix: fixes a pushed crate not removing on_climbable trait properly off
the mob standing atop it
/🆑
2025-12-30 01:05:50 +01:00
BloopandGitHub acaae89cf6 Removes some cargo culty global lists that don't need to be global lists (#94531)
## About The Pull Request

Not really sure why these were there storing the lists in memory
permanently, when these just get consumed anyway. People copy paste them
all over it seems so I'm going to put a stop to that.

## Why It's Good For The Game

Cleans up like 7 years of cargo cult.

## Changelog

Not player-facing
2025-12-19 10:14:57 -05:00
nevimer 6e9f2ccfc0 Merge remote-tracking branch 'tgstation/master' into upstream-12-15
# Conflicts:
#	.github/workflows/compile_all_maps.yml
#	.github/workflows/run_integration_tests.yml
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	code/_onclick/hud/credits.dm
#	code/controllers/subsystem/networks/id_access.dm
#	code/datums/diseases/advance/advance.dm
#	code/datums/diseases/advance/symptoms/heal.dm
#	code/game/machinery/doors/door.dm
#	code/game/objects/structures/crates_lockers/closets/secure/medical.dm
#	code/game/objects/structures/crates_lockers/closets/secure/security.dm
#	code/modules/antagonists/malf_ai/malf_ai_modules.dm
#	code/modules/jobs/job_types/_job.dm
#	code/modules/loadout/categories/accessories.dm
#	code/modules/loadout/loadout_helpers.dm
#	code/modules/loadout/loadout_items.dm
#	code/modules/loadout/loadout_preference.dm
#	code/modules/mob/living/silicon/robot/robot_defense.dm
#	code/modules/mod/mod_theme.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	code/modules/reagents/reagent_containers/cups/drinks.dm
#	code/modules/shuttle/mobile_port/variants/supply.dm
#	code/modules/surgery/organs/internal/eyes/_eyes.dm
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_heretic.png
#	icons/hud/screen_full.dmi
2025-12-15 18:12:29 -05:00
46e1f8ff27 Fix closets, crates, and drawers missing material tags (#94273)
## About The Pull Request
This adds custom material lists to closets and crates so it shows what
materials they are made out of when examined.

## Why It's Good For The Game
<img width="603" height="494" alt="dreamseeker_XhFtjANMiX"
src="https://github.com/user-attachments/assets/c31e0789-75ce-40d6-a56d-a52f6490da68"
/>

## Changelog
🆑
fix: Fix closets, crates, and drawers missing material tags
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2025-12-09 21:52:03 +01:00
RockdtbenandGitHub 1bab24127b Screentip for (closet) locker would always say "Unlock". Fixed to use the lock… (#94355)
… var.

## About The Pull Request

Fixes Closets so the right button ScreenTip doesn't say "Unlock" all the
time, but shows "Lock" and "Unlock" based on closet being Locked or not.

## Why It's Good For The Game

Death by a thousand cuts. Life by a thousand polishes.
2025-12-08 20:43:49 -06:00
AlienandGitHub c0686c63f0 Captain gets a command megaphone (#94322) 2025-12-06 17:32:56 +01:00
FalloutFalconandGitHub c0a061c352 You can throw items over cardboard crates (#94290)
## About The Pull Request
Seems like an oversight, just makes it so they inherit normal crate
passflags of `pass_flags_self = PASSSTRUCTURE | LETPASSTHROW`
## Why It's Good For The Game
There sprite is smaller then normal crates. why do they block throwing
things over them
## Changelog
🆑
fix: You can toss things over cardboard crates
/🆑
2025-12-05 00:10:33 +01:00
FalloutFalconandGitHub 97ed5502a1 Cardboard crates are now made of cardboard (#94289) 2025-12-03 11:41:19 +00:00
GhomandGitHub 0b0c5ea91e Unit test material checks are now performed on all crafting recipes by default. All stack recipes now transfer mats to the results (#92620)
## About The Pull Request
Extends the part of the crafting unit test that ensures consistency
between the total mats of the components of a recipe (or rather, the
result of said recipe) and a generic instance of the same type as its
result, previously only implemented on food recipes.

## Why It's Good For The Game
This ensures a degree of consistency with the material composition of
various objects in the game. I couldn't do it in the original PR as that
one was too big already and it took months to get it merged, and have
the relative bugs fixed.

Currently a WIP as I slowly deal with the unit test reports.

## Changelog

🆑
refactor: Follow-up to the crafting/material refactor from months ago.
All objects crafted with stacks now inherit their mat composition (not
necessarily the effects and color) by default, while previously only a
few things like chair, sinks and toilets did. Report any object looking
or behaving weirdly as a result.
fix: The material composition of ammo boxes is no longer a 1/10 of what
it's supposed to be. It was a shitty hack to make it harder to recycle
empty ammo boxes. Instead, they lose materials as they're emptied now.
/🆑
2025-12-02 18:29:01 -05:00
AlienandGitHub 99fcd710e5 Warden can open the lethal injection locker (#94247)
## About The Pull Request

The access of the injection locker matches the rest of the room and
warden can open it (not normal officers)

## Why It's Good For The Game

It makes no sense why this one method of execution specifically is only
for HOS and captain. Warden can already shoot it open with lasers or
shoot the guy being executed with lasers so it's not like it's
powercreep or smth.

## Changelog
🆑
balance: The lethal injection locker is now accessible by the warden.
/🆑
2025-12-02 10:23:58 -05:00
NickandGitHub 595b9c00b3 Removes Defibrillators from being printable, and adds cmo compact defib as a spy objective. (#94182)
## About The Pull Request
This PR removes Defibrillators from being printable in the techlathe.
Which means the Compact belt becomes CMO exclusive item.
And adds a objective for spies to steal compact belt because it feeds it
into the black market, which other antags can maybe buy and emagg it to
turn it into a reasonable weapon
This pr also makes it so the baseline of roundstarting defibs is 4

## Why It's Good For The Game
Years ago we made defibrillators never printable, and there was no way
to get them unless it was trough cargo, and later we added it to the
techlathe which immediatly voided the cargo crate.
Medical starts with 4 defibrillators medbay usually uses 2, and then the
other 2 go to medical borgs (and theres not really ever a real reason to
print out another since you got plenty).

We also have spefific upgrade modules for medical cyborgs which is
voided by just printing a defib and inserting it into the medical borgs.

TL;DR order it from cargo either 1 using your departmental budget, 2
using your free ordering console, or 3 just from cargo

## Changelog
🆑 ezel
add: Compact Defibrillator is now a Spy objective
balance: Compact Defib is CMO exclusive again
balance: you can no longer print Defibrillators in techlathe (purchase
them via cargo if needed)
sprite: CMO compact defib now looks unique from other ones
map: catwalk defibs trimmed to 4 instead of 6
map: metastation defib added from 3 to 4
map: wawastation defib added from 3 to 4
map: tramstation defib added from 3 to 4
map: nebulastation defibs trimmed from 6 to 4
/🆑
2025-12-01 00:17:21 -05:00
nevimer baf3837ae8 Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29
# Conflicts:
#	_maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm
#	_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	_maps/map_files/tramstation/tramstation.dmm
#	code/_onclick/hud/new_player.dm
#	code/datums/components/squashable.dm
#	code/datums/diseases/advance/symptoms/heal.dm
#	code/datums/diseases/chronic_illness.dm
#	code/datums/status_effects/buffs.dm
#	code/datums/status_effects/debuffs/drunk.dm
#	code/datums/status_effects/debuffs/stamcrit.dm
#	code/game/machinery/computer/crew.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/game/objects/items/wall_mounted.dm
#	code/game/turfs/closed/indestructible.dm
#	code/modules/admin/view_variables/filterrific.dm
#	code/modules/antagonists/heretic/influences.dm
#	code/modules/cargo/orderconsole.dm
#	code/modules/client/preferences.dm
#	code/modules/events/space_vines/vine_mutations.dm
#	code/modules/mob/dead/new_player/new_player.dm
#	code/modules/mob/living/carbon/human/death.dm
#	code/modules/mob/living/carbon/human/species_types/jellypeople.dm
#	code/modules/mob/living/damage_procs.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob_spawn/ghost_roles/mining_roles.dm
#	code/modules/mob_spawn/mob_spawn.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	code/modules/projectiles/guns/ballistic/launchers.dm
#	code/modules/projectiles/guns/energy/laser.dm
#	code/modules/reagents/chemistry/machinery/chem_dispenser.dm
#	code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
#	code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
#	code/modules/reagents/chemistry/reagents/medicine_reagents.dm
#	code/modules/surgery/healing.dm
#	code/modules/unit_tests/designs.dm
#	icons/mob/inhands/items_lefthand.dmi
#	icons/mob/inhands/items_righthand.dmi
#	tgui/packages/tgui/interfaces/ChemDispenser.tsx
2025-11-29 22:49:21 -05:00
WallemandGitHub eed4d09cba Abandoned crate UI (#94090)
## About The Pull Request

Gives abandoned crates a ui when you use a multitool on them

<img width="357" height="196" alt="423112"
src="https://github.com/user-attachments/assets/3742b222-d8b6-4222-89e4-89b176387f0e"
/>

<img width="352" height="278" alt="5656565623623"
src="https://github.com/user-attachments/assets/496095cf-d9d6-4ae7-9bbb-a6eff34864ca"
/>

Each `Button` component has a tooltip explaining how the minigame works
& what the column it's in means
## Why It's Good For The Game

Now you don't need to scroll through chat to find all your previous
attempts
## Changelog
🆑 Wallem
qol: Replaces abandoned crate multitool interaction with a TGUI window
that shows ALL your previous attempts
/🆑
2025-11-26 13:01:00 -07:00
267d31d531 Adds a bandolier to the warden's locker (#94130)
## About The Pull Request

PR title

## Why It's Good For The Game

Warden is the weapons guy and even starts with a super cool unique
shotgun. Bandoliers are roundstart items (can be bought from bartender's
vendor when they arent using it or arent preset, can be crafted by
killing five monkeys which there are plenty of) so this just removes the
hastle of having to go get it.

## Changelog
🆑
balance: The warden starts with a bandolier in their locker
/🆑

Co-authored-by: John Doe <markkavalerov87@gmail.com>
2025-11-25 19:46:03 -07:00
d76d2f5438 Laser Gun Update: Deep Lore, Gun Variety, Pew Pew (#93520)
## About The Pull Request

Updates the laser gun into four proper subtypes: Standard, Pistol, Rifle
and Carbine.

<img width="229" height="210" alt="image"
src="https://github.com/user-attachments/assets/12c03076-8ebf-4d87-8c98-6a8cce6821db"
/>

Current sprites are pending a palette change.

**Standard:** Functions as you would expect. Same as ever.

**Pistol**: Lower charge, 20 force, normal sized, recharges faster.

**Carbine**: 15 force, 26 mag, two round burst. Projectiles flight
slightly faster. Cannot dual-wield.

**Rifle**: 20 force. 40 mag. Two round burst. EMP resistant (not
immune). Projectiles fly slightly faster. Cannot dual-wield (not that
you need to).

All but the rifle can be sourced from cargo. You can also buy the sovl
version of the laser gun if you're especially nostalgic.

### Armory Changes

The Armory now can potentially spawn either pistols, carbines or
standard. The weighting leans closer to spawning carbines and standard
as opposed to pistols.

### Lore Dump

The laser line of weapons now all have lore. That rich, deep lore that
every game needs and is totally not important at all to the meat and
potatoes of the game. I'm paid by the hour ($0.00)

### Code Tidying

Lasers are old and a total mess code-wise so we've tidied up while we're
here.

## Why It's Good For The Game

Variety is the spice of life and also some of these weapons could have
used a face lift. Especially the laser carbine. Both functionaltiy wise
and appearance wise.

A bit of randomness in the armory means some rounds might have unique
outcomes compared to others. Sometimes, items in cargo don't see
particularly much use, so peppering in a few random potential deviations
can maybe nudge people to utilize variant gear on future rounds.

I'm obsessed with writing too much information. I blame Hatterhat.

## Changelog
🆑
add: Three variants of the laser gun; Carbine (replacing the existing
one), Pistol and Rifle! Find it (possibly) in your armory today!
balance: The armory laser guns might be different variants of the laser
gun, rather than always being the standard. The standard is the same as
ever, even if it looks different.
add: If you care, the sovl version is available as a goodie. And in the
hands of pirates...
spellcheck: Lore! LORE FOR LASER GUNS! LOOOORE! Examine laser guns
closely and you might learn more about them.
balance: The new set of laser guns come with brand new sprites.
/🆑

---------

Co-authored-by: StaringGasMask <62149527+Exester509@users.noreply.github.com>
2025-11-20 22:21:16 -05:00
NickandGitHub b7a54117ad Removes advanced health analyzer from CMO (#94017)
## About The Pull Request
This PR removed the health analyzer from cmo roundstart gear

## Why It's Good For The Game
Its a tech bypass and encourages heads to research stuff to the
department can do their work better plus cmo like the ce who lost his
tools get alot other QoL tools which give them the edge as a head

## Changelog
🆑 Ezel
balance: Cmo no longer starts with a advanced health analyzer
/🆑
2025-11-20 10:24:44 -05:00
MrMelbertandGitHub 8992bfa055 Bodybags don't have a door animation (#93939)
## About The Pull Request

Sets door_anim_time = 0 so bodybags don't try to animate a door that
doesn't exist

## Changelog

🆑 Melbert
fix: Things disappear instantly when going into bodybags
/🆑
2025-11-15 18:26:15 +01:00
Roxy 71faa643bf Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-2025-11-12 2025-11-12 16:44:13 -05:00
necromanceranneandGitHub 3c1860a128 Adds a plasma stabilizers and thermal regulator to the Operative equipment locker. (#93843)
## About The Pull Request

What it says on the tin

## Why It's Good For The Game

These modules are often found mapped in roundstart, and are also
printable extremely early in the round. They're not exactly high power
modules, and they are largely important quality of life tools for
non-humans species.

Which, now, operatives can be. So if the op cares to get it, they can
shove it in their suit. The complexity limits of their suit will more
than likely require them to be picky about what they put in anyway.
That's why the complexity system exists in the first place.

They're best placed here so we can assume by default the operative
doesn't need them, since most species don't need, for example, plasma
stabilization. It might be important for icemoon in case an operative
has a nasty fall! ~~Or experiences that weird bug where plasmification
spreads to people~~

## Changelog
🆑
qol: Operative lockers come with thermal regulator and plasma stabilizer
modules.
/🆑
2025-11-09 12:46:30 +01:00
Roxy e28e9fbdba Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-23-10-2025 2025-10-23 17:38:23 -04:00
ee388c204f More love to paramedic: revamping/adding paramedic offices, new access and more! (#93457)
## About The Pull Request

most of info in changelog, here i'll pin some screenshots. 
(also didnt touch catwalk on purpose since its medbay in process of
rework)

<details><summary>Screenshots</summary>


### Example of paramedic dispatch area, before it was used only on 2
maps:
<img width="479" height="490" alt="image"
src="https://github.com/user-attachments/assets/ca6f0ba6-93ed-4386-a94d-63b90985ef27"
/>
   
### Example of how I changed pallete to match paramedic outfit: dark
color mixed with blue
<img width="479" height="490" alt="image"
src="https://github.com/user-attachments/assets/e7acef94-2fd3-4fb4-9abf-5b83fd5cd738"
/>

### Icebox
<img width="463" height="320" alt="image"
src="https://github.com/user-attachments/assets/3e12aa10-caac-4b6e-89e8-81690d979150"
/>

(moved chem storage south)
<img width="534" height="476" alt="image"
src="https://github.com/user-attachments/assets/863a0644-520b-40a7-9deb-f1174b252757"
/>


### Tramstation
<img width="518" height="504" alt="image"
src="https://github.com/user-attachments/assets/f410f6c8-e2ee-423e-838c-03643ea1499f"
/>

(removed elevator and replaced with some public atmos equipment)
<img width="353" height="727" alt="image"
src="https://github.com/user-attachments/assets/df635bb5-5692-4367-b2b6-7c8df3c6c9a4"
/>

(theres new hall to replace the elevator path)
<img width="857" height="725" alt="image"
src="https://github.com/user-attachments/assets/15d12685-c9a0-44b5-a916-41766b12677c"
/>


### New locker that has all kind of stuff for emergencies!
<img width="186" height="155" alt="image"
src="https://github.com/user-attachments/assets/c1e40fd6-44f7-48e0-a5e4-ecb9fc562627"
/>


</details>

## Why It's Good For The Game

Since paramedic got more attention now, I feel it would be wise to
separate paramedic content (jaws and medical suit) from general medbay
and doctors.
<img width="382" height="135" alt="image"
src="https://github.com/user-attachments/assets/750e0d4c-7011-41e5-8ec4-d5f05f6c3515"
/>

For locker part: I think paramedic should have own locker with all kind
of emergency items/drip items instead of bloating items on the tables.


## Changelog

🆑
add: Added new medical access for paramedics.
map: Added paramedic dispatch on: TramStation and IceBox, removed
elevator from Tram and moved chemstorage on IceBox.
map: Paramedic dispatch area is used on every paramedic office now.
map: Medical MODsuit and Jaws of Recovery moved to paramedic office.
map: Redesigned northern medbay on MetaStation.
sprite: Paramedic locker was added.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2025-10-22 23:37:24 +00:00
MrMelbertandGitHub 799ec95d4e Closet contents are shown during the closet shutting animation (#93487)
## About The Pull Request


https://github.com/user-attachments/assets/d3ddfa79-c7c1-4ab3-81fb-08eedbf51539

## Why It's Good For The Game

I didn't really like how closets shutting would instantly vanish all of
the objects inside, so this is just a small tweak to maintain the
illusion.

The items are not grabbable while the closet is shutting, physically
they still enter instantly, we just visually keep them in place for a
moment

Unfortunately it seems like this doesn't play too nicely with sidemap -
some objects will outright disappear and the display order is shuffled,
I'm not sure the best way to get around that

## Changelog

🆑 Melbert
qol: Closet animation has been updated slightly - when closing objects
no longer disappear instantly.
/🆑
2025-10-19 04:56:45 +02:00
Leland KembleandGitHub 348789fa8d The Renamening- upgrades UNIQUE_RENAME and moves a lot of renaming implementations under it (#93115)
## About The Pull Request

Moves a lot of the unique renaming implementations described in #82664
to the functions given by the `obj_flag` `UNIQUE_RENAME`.
`UNIQUE_RENAME` has been given new properties to account for
non-standard renaming, these being the `RENAME_NO_DESC` flag that
prevents changing the description, the `nameformat()` and `descformat()`
procs that, when modified, allow for applying naming formats(i.e. "Body
Bag - [input]"), as well as other post-renaming handling such as
changing the name of the output plant of a renamed seed, the
`rename_checks()` proc that allows for unique naming prevention(such as
a locked personal closet), and the `rename_reset()` proc to clean up
other possible renamed variables potentially changed in `nameformat()`
and `descformat()`.

This also adds `/datum/element/tool_renaming` to crayons, which will let
them rename anything that has `UNIQUE_RENAME`. I looked through
everything with that flag, and I didn't see anything that I don't think
should be renameable by a crayon(except things that shouldn't be
renamable with pens), so it shouldn't fuck anything up.

## Why It's Good For The Game

moves all of the non-honorable mentions in #82664 to the same renaming
system, and also moves all of the honorable mentions save for:

- plaques, as they only get renamed once and wouldn't benefit from
`UNIQUE_RENAME` imo
- books, because they're far more than just renaming, and are persistent
- paintings, because they're persistent
- photos, because they're not normal renaming and they're persistent
- endoskeletons, because they're done with a multitool in UI
- cardboard IDs, because they're far more than just renaming

Additionally, this fixes:

- Implanter renaming didn't work because a ! was missing
- Clown borg picket sign renaming didn't work because they didn't use
the correct arguments

This'll make it easier to make renameable objects in the future, as
well.

## Changelog
🆑

fix: fixes implanter renaming not working
fix: fixes clownborg picket sign renaming not working
code: brought most unique renaming implementations under UNIQUE_RENAME

/🆑
2025-10-17 01:56:09 +02:00
Roxy d14e538393 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-15-10-2025 2025-10-15 19:34:41 -04:00
MrMelbertandGitHub e85674d366 Unified CMO blues slightly, updates garment bags slightly, updates CMO locker contents slightly (#93321)
## About The Pull Request

### CMO palette update

Before - after

<img width="533" height="324" alt="image"
src="https://github.com/user-attachments/assets/c8a843a6-875d-4796-8c62-d24dd509147b"
/>

Logical follow up to #93313 and #91902

CMO now has a backpack which matches their teal palette rather than
re-using the medical doctor's blue backpack

CMO now starts with white sneakers instead of blue sneakers

### Garment bag update

Garment bags can hold backpacks, duffels, etc. 

However they CANNOT store backpacks which have ANY contents, so no risk
of storage nesting memes here.

### Misc

Removed the defib mount from the CMO's closet

Minor bugfix for being unable to swap storage positions of items which
were instantiated in a storage

## Why It's Good For The Game

- Much like the Paramedic, the CMO has had many cooks which have not
always been on the same page, so this makes their sprite a bit more
coherent.

- Heads with unique packs just tossed them in their closet which is
pretty spammy given we have four variants now. Putting them in the
garment back makes sense.

- Defib mount in CMO's locker hasn't been necessary for a while now that
all treatment centers spawn with defib mounts.

- Bugfix.

## Changelog

🆑 Melbert
image: CMO now has unique backpack/satchel/etc. sprites which matches
their teal palette.
image: CMO spawns with white sneakers instead of blue sneakers.
qol: Garment bags can hold empty backpacks/satchels/etc.
del: Defib mount removed from CMO's locker.
fix: Items stocked in a storage item by default can be
mouse-drag-swapped like any other item.
/🆑
2025-10-13 00:16:49 +02:00
paganiyandGitHub c5254e1e96 Abandoned crate refactor 2025 (#93288)
## About The Pull Request
Completely rewrites the abandoned crates code to modern code standards,
replacing messy switch statements with weighted loot spawners.
## Why It's Good For The Game

- Clear code
- Simple to add new loot types or modify existing ones
## Changelog
🆑
refactor: Abandoned crates refactored
/🆑
2025-10-07 02:12:56 +02:00
xPokee b308ee9d78 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-09-24 10:13:01 -04:00
MrMelbertandGitHub 750ca9d2ec Two as anything greps (and some other cleanup) (#92974) 2025-09-20 13:44:28 -04:00
GhomandGitHub cd438cf794 The direction of your character changes when moving inside a cardboard box (#92985) 2025-09-20 06:14:43 -04:00
c0f8e7bb5c Multiload Second Pass (ft. Speedloaders Will Be Real In 2025) (#92854)
## About The Pull Request
Gets, yet again, more granular with multiload capabilities, by
introducing `AMMO_BOX_MULTILOAD_OUT_LOADED`; ammo boxes flagged with
this can speed-load ammo boxes that are currently inside another gun,
like revolver cylinders or internal magazines.

To accomodate for this, the previous flag that covered this,
`AMMO_BOX_MULTILOAD_OUT` can no longer speedload into currently loaded
magazines (e.g. internal magazines, including revolver cylinders).

Also implements a base type for speedloaders, moving .38 and .357
speedloaders along with .310 stripper clips to this type, instead of
being ammo boxes. Also features an UpdatePaths script for mappers, which
is why there's so many files touched - repathing is a pain.

Also also adds fancy types for ammo boxes, magazines, and speedloaders,
which isn't particularly player-facing.

Also also also makes the lionhunter ammo strip for the lionhunter rifle
visually three rounds only instead of being perpetually half-full (or
half-empty, depending on your pessimism).

## Why It's Good For The Game

The hypothetical case of "ammo box that holds shotgun ammo" should
probably... not... teleport as much of its ammo as possible into a
tube-fed shotgun, but should probably still be okay at reloading
magazines that actually go into shotguns. Or something.

More relevant, reloading BR-38 magazines with speedloaders, while funny,
probably also shouldn't be teleporting in six fresh rounds.

## Changelog

🆑
balance: General ammo boxes (not speedloaders, not stripper clips) can
no longer multiload into currently loaded magazines (revolver cylinders,
internal magazines).
balance: Speedloaders are now a separate type from ammo boxes, and can
only multiload into currently loaded magazines e.g. revolver cylinders.
qol: Ammo boxes, magazines, and speedloaders now have fancier types for
spawning in by admins.
sprite: Lionhunter ammo clips are visually smaller now.
/🆑

---------

Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
2025-09-20 08:10:35 +10:00
nevimer b348b617a3 Merge branch 'master' of https://github.com/tgstation/tgstation into pupstream-2025-09-07
# Conflicts:
#	README.md
#	code/__DEFINES/admin.dm
#	code/__DEFINES/melee.dm
#	code/_globalvars/traits/_traits.dm
#	code/controllers/subsystem/economy.dm
#	code/datums/components/crafting/crafting.dm
#	code/datums/elements/crusher_loot.dm
#	code/modules/antagonists/pirate/pirate_shuttle_equipment.dm
#	code/modules/clothing/suits/_suits.dm
#	code/modules/escape_menu/leave_body.dm
#	code/modules/jobs/job_types/_job.dm
#	code/modules/mining/equipment/mineral_scanner.dm
#	code/modules/mob/living/living.dm
#	code/modules/plumbing/plumbers/pill_press.dm
#	tgui/packages/tgui/interfaces/Vending.tsx
2025-09-07 00:37:52 -04:00
mcbalaamandGitHub d40bb5ddd2 H.A.U.L. gauntlets and package wrapper QOL (#92427)
## About The Pull Request

- Wrapping a crate with package wrapping while pulling it will now
automatically make you grab it
- You can now open the crate while dragging it with the H.A.U.L.
gauntlets if you're the one who's pulling it. Also applies to other
items (including MOD modules) that have the component


https://github.com/user-attachments/assets/7b4743c8-855d-4274-89ca-b0507f6d3e0e

## Why It's Good For The Game

QOL for cargo technicians - having to constantly grab and let go of
crates is very annoying
2025-09-02 21:32:47 -05:00
SyncIt21andnevimer d4ac4824f8 Fixes closets not reusing images for clients (#92408)
## About The Pull Request
- Fixes #92214
- Fixes #92407

Whenever a mob with a client attached to it steps into a closet we
create 2 images(background & contents image) to display to that viewer

https://github.com/tgstation/tgstation/blob/4ee0793ecd23876994fa125e4e112a13a6f44455/code/game/objects/structures/crates_lockers/closet_see_inside.dm#L87

We are meant to reuse these images for multiple clients however this
proc does not check if we already made an image before. It just creates
a new one for every client(and we don't keep track of those previously
creates images) so we loose track of all sanity.

But now we make sure we make this image just once to reuse across
multiple clients

## Changelog
🆑
fix: You can no longer see parallel universes when 2 or more people gets
shoved into closets.
code: cleaned up closet see through code. It's documented & slightly
faster performance wise
/🆑

(cherry picked from commit c6dcc304ce)
2025-08-08 15:29:13 -04:00
SyncIt21andGitHub c6dcc304ce Fixes closets not reusing images for clients (#92408)
## About The Pull Request
- Fixes #92214
- Fixes #92407

Whenever a mob with a client attached to it steps into a closet we
create 2 images(background & contents image) to display to that viewer

https://github.com/tgstation/tgstation/blob/4ee0793ecd23876994fa125e4e112a13a6f44455/code/game/objects/structures/crates_lockers/closet_see_inside.dm#L87

We are meant to reuse these images for multiple clients however this
proc does not check if we already made an image before. It just creates
a new one for every client(and we don't keep track of those previously
creates images) so we loose track of all sanity.

But now we make sure we make this image just once to reuse across
multiple clients

## Changelog
🆑
fix: You can no longer see parallel universes when 2 or more people gets
shoved into closets.
code: cleaned up closet see through code. It's documented & slightly
faster performance wise
/🆑
2025-08-05 05:27:00 +02:00
SmArtKarandRoxy 43349d99ba Fixes recovered crew bodybags being foldable while there's a "corpse" inside (#92423)
## About The Pull Request

Closes #92356
Also fixed prisoner envirobags being foldable while strapped despite
showing a failure message.

## Changelog
🆑
fix: Fixed recovered crew bodybags being foldable while there's a
"corpse" inside
/🆑
2025-08-04 20:53:41 -04:00
Thunder12345andRoxy e7c25d4c40 The Glitterening (#92226)
## About The Pull Request

Adds a number of new capabilities to glitter.

- It can be any colour.
<img width="657" height="398" alt="image"
src="https://github.com/user-attachments/assets/60e80c04-8eee-470c-8953-47f6eda9f83e"
/>

- It can be made in chemistry and dyed by combining it with acetone and
other reagents to give it the average colour of the non-glitter,
not-acetone reagents.
- Multiple colours can be mixed into one reagent datum, randomly
depositing a colour from those in the datum on the floor.
<img width="554" height="507" alt="image"
src="https://github.com/user-attachments/assets/9cc7d1d5-9bec-4b28-af06-310ffb24de49"
/>

- Anyone with glitter reagent in them will cough glitter onto the floor
- Glittery crates will leave a trail of appropriately coloured glitter
when moved
<img width="960" height="259" alt="image"
src="https://github.com/user-attachments/assets/71cc1176-23f9-4ae7-b500-1744b752c014"
/>

Resprited glitter to support these changes and make it not look like gas
(or ass).

## Why It's Good For The Game

It looks cool and raises the bar for chemists maximally pissing off the
janitor as they fill a room with multicoloured glitter and all the
occupants run off to cough more up all over the surrounding area.

## Changelog
🆑
add: Glitter can now be made from plastic polymers and aluminium.
add: Plastic polymer can be made at any temperature, and then heated to
produce sheets.
add: Glitter can now be made any colour, mix 10 units each of glitter
and acetone to change its colour to that of the other reagents in the
beaker.
add: Mixing different colours of glitter will cause a random selection
of those colours to appear on the floor when released.
add: Being exposed to glitter in reagent form causes you to cough up
more glitter onto the floor
add: Dragging glittery crates will now spread a trail of glitter and
angry janitors behind them.
image: Added new glitter sprites (that don't look like gasses)
/🆑
2025-08-04 20:53:39 -04:00
SmArtKarandRoxy 78908f40a3 Removes forced tint from NVGs (#92322)
## About The Pull Request

Partially reverts #84594, removing forced tint from night vision goggles
(if anyone for some reason wants to experience it again, they can toggle
it via alt click like it could be done before the [aforementioned
PR](https://github.com/tgstation/tgstation/pull/84594))

Approved by Ghom (the original PR author)

## Why It's Good For The Game

NVG tint is a pretty sizeable accessibility issue, as forced screentint
can easily cause eye strain if they're used for prolonged periods of
time, being especially bad for blue-tinted NVGs. They're already locked
pretty deep down the techweb, and this change just made everyone avoid
them. If we need to make tintless variants of them for every single
antag and special role (and bitrunners, lol), we maybe shouldn't have
added the tint in the first place.
2025-08-04 20:53:32 -04:00
SmArtKarandGitHub 36d95d44b4 Fixes recovered crew bodybags being foldable while there's a "corpse" inside (#92423)
## About The Pull Request

Closes #92356
Also fixed prisoner envirobags being foldable while strapped despite
showing a failure message.

## Changelog
🆑
fix: Fixed recovered crew bodybags being foldable while there's a
"corpse" inside
/🆑
2025-08-04 10:48:08 +02:00