## About The Pull Request
Added the ability to drag and drop multiple files with scripts onto
`Update Paths.bat` instead of just one.
<img width="979" height="275" alt="изображение"
src="https://github.com/user-attachments/assets/986a3ecc-803a-487a-80c6-54932ac94437"
/>
## Why It's Good For The Game
It is faster and easier to use!
## Changelog
Not needed?
## About The Pull Request
This is a general clean up of some of our modular vending machine code,
highlights are:
- Merges the skyrat `modular_vending` folder into our own
- Eliminates the `skyrat_products`, `skyrat_product_categories`,
`skyrat_contraband`, and `skyrat_premium` vars, merge their stuff into
the bubber equivalents
- Changes the handling for modular autodrobe additions to just add them
to the global list because the autodrobe uses global lists for some
reason, this fixes#4758
- Change a `+=` to `|=` to prevent duplicate entries in vending machines
causing both to appear out of stock
- Fix a duplicate recolor button in the vending machine TGUI
## Why It's Good For The Game
Less duplicate code and bugs, the autodrobe one in particular was funny
because what was happening is the category lists of items were global
lists, and the modular code for adding our own stuff to categories just
`+=` adds it, and that runs every time an autodrobe is created on the
map, so each time the same stuff was being added to the same list and
bloating it to several hundred
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>
<img width="425" height="559" alt="image"
src="https://github.com/user-attachments/assets/e9ab16ed-3c7c-4061-90d5-dc27a7d8a40e"
/>
</details>
## Changelog
🆑
fix: fixed the autodrobe being mostly out of stock and broken
fix: fixed certain vending machines having duplicate items that broke
fix: fixed a bug with the recolor button in vending machines appearing
twice
code: merged modular skyrat vending machine code into our folder
/🆑
## About The Pull Request
Not reported yet but I noticed this and immediately knew I broke it, my
bad.
Fixes latejoiners not being buckled into their chairs & Hangover station
trait effects, also merges the two hangover landmarks into one cause i
dont see why they had to be two, I put it in the same updatepaths as the
PR this is a fix to.
## Why It's Good For The Game
Bug fixes
## Changelog
🆑
fix: Latejoiners are buckled in to their chairs & Hangover station trait
now kicks their effects in again.
/🆑
## About The Pull Request
This is was created because I found several rare and exciting canisters
in game and then finding out there is no way to actually construct the
vendor they belong to!...
<img width="768" height="385" alt="image"
src="https://github.com/user-attachments/assets/70261cea-daaf-41df-a212-21cef6d6bd0c"
/>
### This PR:
* Makes all noteable vendors constructable, if you have the canister.
* Adds canisters to syndismokes, syndiechem, liberation station,
magivend, shambler's juice and bombuddy
* Replaces the old tptally random canisters spawner, with a variety of
spawners weighted for power and split according to different themes.
* Adds the new main canister spawner to maint.
### Spawner weights
The random canister spawner from maintenance has a:
* **93,5%** chance to spawn a common station vendor refill(with weights
for wardrobes being somewhat reduced.)
* **6%** chance to spawn a rare and special vendor refill.
* **0.5%** chance to spawn a oddity level., super powerful vendor
refill.
## Why It's Good For The Game
One must never place a filled canister in maint if it isn't going to be
constructed It's wrong to make promises you don't mean to keep.
## Changelog
🆑
add: Nearly all notable vendors are now constructable if you have the
canister.
add Added refill canisters for syndiesmokes, liberation station,
magivend, bombuddy 3000, shambler's juice and syndichem.
add: Random vending refill canisters now have a chance to spawn in
maint.
image: Robco Toolmaker and Centdrobe canisters have new sprites.
/🆑
## About The Pull Request
Station alarm consoles now register to all Station Z levels+Areas if
they were created on a station Z level (this doesn't include mining, but
station ones will see mining areas), otherwise will be a "local" console
to that Z level only.
Mostly the same applies for Cyborg/AI, but if they were built on a
non-station Z level then they have their Z level added on top of Station
Z levels, so example Nukie saboteur borgs will see alarms they might
need, while a Golem/Oldstation AI will also be able to see their own
alarms.
Because of how alarms and spawning in worked, Cyborgs/AIs had CentCom's
Z level as something it would detect, so we simply create the mob at the
spawn location rather than on the title screen during Initialization,
fixing that issue as well.
## Why It's Good For The Game
Adds easy multi-z support for station alarms and removes the previous
bandaid of having to deconstruct your board and multitool it or map in
every single station alarm console to allow station alerts (which is
quite silly) which was done in
https://github.com/tgstation/tgstation/pull/88343.
Closes https://github.com/tgstation/tgstation/issues/61592
Closes https://github.com/tgstation/tgstation/issues/83042
Closes https://github.com/tgstation/tgstation/issues/69314
I find this solution better since it catches pretty much all use cases
without the need for special subtypes and needing players to actually
know the difference between these things.
## Changelog
🆑
fix: Cyborgs and AIs will now see alerts of the whole station rather
than solely the Z level they were spawned on.
fix: Cyborgs and AIs will no longer get alerts about Thunderdome.
/🆑
## About The Pull Request
Deletes the Bluespace Gas Vendor and accompanying Bluespace Gas Sender
## Why It's Good For The Game
These wall mounts were added as ways to encourage Atmos Techs to
participate in the economy and crew at large. Unfortunately, it's missed
the mark and is unused in 99% of all rounds*.
**I have seen more atmos techs use the bluespace gas sender for exploits
than for its intended use.*
It has been noted that
1. Atmos doesn't need to sell gas to the crew to make money. They can
export gas to cargo to make more money.
2. The crew doesn't really care about gases. They will rarely go out of
their way to acquire them, even if free.
3. Most importantly, most atmos players **like to give out gas for
free** - it's mass producible and seeing people utilize their creations
tend to be its own reward.
4. Even for the atmos techs that want to charge for their products (to
create conflict or whatnot), *you could easily do that by hand via
pre-filling tanks**.
***I have seen more atmos techs make money off of selling pre-filled
tanks than by using the vendor.*
Ultimately, this machine serves no purpose besides bloating wall space
and existing as an atmos exploit vector.
## Changelog
🆑 Melbert
del: Bluespace Gas Vendors and the accompanying Bluespace Gas Sender
have been removed
/🆑
## About The Pull Request
closes#93025 and closes#93013
also gives borg thermals right icon, i acidentally used regular meson
icon before, and kills borg goggles items (forgot to do that)
## Why It's Good For The Game
because bugs smell
## Changelog
🆑
fix: Fixed meson and thermal view action for cyborgs
fix: You can't eject infinite toner from cyborg decal painter anymore.
del: Removed now unused cyborg meson and thermal goggles items.
/🆑
## 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>
## About The Pull Request
**1. Qol**
- Air sensors(maploaded & hand crafted) now auto connect to any input
ports & output valves that are within a 4 tile radius from it meaning
there is no need for these ports to have unique IDs attached to them &
you don't need a multitool to link them together if you first placed
those ports & then placed the air sensor close to them
- Atmos control monitors now finds all air sensors that are closest to
it within the same z level meaning you can have/place multiple air
sensors of the same type on the same z level & the monitor will locate
them correctly without any ambiguity
**2. Refactor**
- Removed var `chamber_id` from both injectors & vents meaning you don't
need to have unique ids assigned to them. As long as mappers/players put
them within 4 tile radius from the air sensor it will auto connect to
them
- Removed var `GLOB.map_loaded_sensors`
## Changelog
🆑
qol: hand crafted air sensors now auto connect to input & output ports
if they are located within a 4 tile radius from it
qol: atmos control monitors now locate all air sensors nearest to in on
that same z level meaning you can have multiple air sensors of the same
type on the same map
refactor: refactored how air sensors & atmos monitors connect to each
other. Please report any atmos computers that have missing input
valves/output ports on their connected air sensors or those that don't
list any air sensors at all on github
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
## About The Pull Request
<img width="491" height="301" alt="image"
src="https://github.com/user-attachments/assets/a3b5b19f-edf5-4de9-9201-9cbfab9e8827"
/>
Mod computers with the access changing software installed have a
secondary ID slot once again. This ID slot doesn't contribute to access.
You can insert IDs into the slot with right click and remove them with
alt-right click.
Also removes the "New IDs and you" memo paper.
Also tweaks PDA on_deconstruct so contents are dropped on when they're
deconstructed with assembly.
Fixes#92151
## Why It's Good For The Game
Changing IDs is very unnecessarily clunky with the one slot. Insert hop
id, log in, remove hop id, insert crew id, change access, remove crew
id, log out.
We had it right back when we had two slots. Insert hop ID, insert crew
id, log in. It just works.
This also allows for mobile HoPs to change access without necessitating
removing their ID from their PDA.
Other changes:
The "New IDs and you" memo is very old. They haven't been new for 4
years now. I don't think anyone reads it and they served their purpose.
I found it odd that, if your PDA was melted or blown up, it would delete
your ID. If this is a hold-over from old PDA behavior feel free to let
me know but otherwise it seems sensible that it'd spit out the contents
as you would expect.
## Changelog
🆑 Melbert
qol: The access changing software (the HoP console) now has ID two slots
again (one for the HoP's id and one for the ID being changed). You can
insert IDs in the secondary slot via the UI or right click, and remove
them via the UI or alt-right click.
qol: If your PDA is destroyed via acid or bombs, your ID (and similar
contents such as disks) are spit out instead of being deleted
del: Deletes the "New IDs and you" memo in the HoP's office. They
haven't been new for 4 years.
fix: Engineering sub-tab in the access changing software no longer looks
messed up
fix: Fix reversed alt-click logic for mod pcs
/🆑
# Conflicts:
# code/modules/modular_computers/computers/item/computer.dm
## About The Pull Request
<img width="491" height="301" alt="image"
src="https://github.com/user-attachments/assets/a3b5b19f-edf5-4de9-9201-9cbfab9e8827"
/>
Mod computers with the access changing software installed have a
secondary ID slot once again. This ID slot doesn't contribute to access.
You can insert IDs into the slot with right click and remove them with
alt-right click.
Also removes the "New IDs and you" memo paper.
Also tweaks PDA on_deconstruct so contents are dropped on when they're
deconstructed with assembly.
Fixes#92151
## Why It's Good For The Game
Changing IDs is very unnecessarily clunky with the one slot. Insert hop
id, log in, remove hop id, insert crew id, change access, remove crew
id, log out.
We had it right back when we had two slots. Insert hop ID, insert crew
id, log in. It just works.
This also allows for mobile HoPs to change access without necessitating
removing their ID from their PDA.
Other changes:
The "New IDs and you" memo is very old. They haven't been new for 4
years now. I don't think anyone reads it and they served their purpose.
I found it odd that, if your PDA was melted or blown up, it would delete
your ID. If this is a hold-over from old PDA behavior feel free to let
me know but otherwise it seems sensible that it'd spit out the contents
as you would expect.
## Changelog
🆑 Melbert
qol: The access changing software (the HoP console) now has ID two slots
again (one for the HoP's id and one for the ID being changed). You can
insert IDs in the secondary slot via the UI or right click, and remove
them via the UI or alt-right click.
qol: If your PDA is destroyed via acid or bombs, your ID (and similar
contents such as disks) are spit out instead of being deleted
del: Deletes the "New IDs and you" memo in the HoP's office. They
haven't been new for 4 years.
fix: Engineering sub-tab in the access changing software no longer looks
messed up
fix: Fix reversed alt-click logic for mod pcs
/🆑
## About The Pull Request
an update paths to convert `/turf/open/space : /turf/open/space/basic`
## Why It's Good For The Game
From what i can tell there is 0 reason to use non-basic space turfs in
maps and this should be a free <sub><sup>*micro micro micro
micro*</sub></sup> optimization. consistency and avoiding confusion on
which one to use
## Changelog
🆑
map: converts all non-basic space turfs to space/basic
/🆑
(cherry picked from commit 2f932ccc88)
## About The Pull Request
an update paths to convert `/turf/open/space : /turf/open/space/basic`
## Why It's Good For The Game
From what i can tell there is 0 reason to use non-basic space turfs in
maps and this should be a free <sub><sup>*micro micro micro
micro*</sub></sup> optimization. consistency and avoiding confusion on
which one to use
## Changelog
🆑
map: converts all non-basic space turfs to space/basic
/🆑
## 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)
/🆑
## 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.
## 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)
/🆑
## 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.
## About The Pull Request
puts both the grass and normal sabre sheath types under a shared parent
type for shared behavior.
considered subtyping the storage datum but it seemed overkill. can do if
requested.
## Why It's Good For The Game
less copy paste. good if someone wants to add a clay-more sheath for
similar (believe that exists somewhere downstream), would have done it
myself but no sprites.
## Changelog
N/A
## About The Pull Request
You can now construct reinforced plastitanium walls by using a single
plastitanium sheet on a reinforced girder. These are mostly identical to
syndicate walls, but only have 2 explosion resistance like normal
reinforced walls, as opposed to the 20 of syndicate walls.
## Why It's Good For The Game
Have you ever wanted a construction project to have that cool syndicate
aesthetic, but doing so would compromise its security due to the walls
being able to be simply welded down? Now you can make a syndicate
shuttle or satellite that will at least require thermite or the aid of
an engiborg to rapidly break into.
## Changelog
🆑
add: You can construct reinforced plastitanium walls by using
plastitanium on reinforced girders.
/🆑
## About The Pull Request
puts both the grass and normal sabre sheath types under a shared parent
type for shared behavior.
considered subtyping the storage datum but it seemed overkill. can do if
requested.
## Why It's Good For The Game
less copy paste. good if someone wants to add a clay-more sheath for
similar (believe that exists somewhere downstream), would have done it
myself but no sprites.
## Changelog
N/A
## About The Pull Request
You can now construct reinforced plastitanium walls by using a single
plastitanium sheet on a reinforced girder. These are mostly identical to
syndicate walls, but only have 2 explosion resistance like normal
reinforced walls, as opposed to the 20 of syndicate walls.
## Why It's Good For The Game
Have you ever wanted a construction project to have that cool syndicate
aesthetic, but doing so would compromise its security due to the walls
being able to be simply welded down? Now you can make a syndicate
shuttle or satellite that will at least require thermite or the aid of
an engiborg to rapidly break into.
## Changelog
🆑
add: You can construct reinforced plastitanium walls by using
plastitanium on reinforced girders.
/🆑
- SMES now directly gives/takes charge to the power cells stored inside
its component parts instead of modifying a `charge` variable whose value
was set from the total charge of its stored cells
- Removed `capacity` var. It's now derived from the total cells
`max_charge`. Even then its value was set to this so manually setting it
was a waste
- Fixes#71918. Because of point 1, this also means if you install
rigged cells in the SMES it now explodes
- Adds examines & screentips for installing terminal & other tool acts
- Smes can be connected to the powernet with a multitool with the panel
open after construction.
- General maintenance for portable smes as well. Repaths it to machine
subtype instead of power cause all it's functionality wasn't used
- Removed a bunch of unused defines, autodoc and shuffled around other
code
🆑
qol: SMES has examines and screentips for various stuff
code: Improved code of SMES in general
fix: smes can be connected to the powernet with a multitool with the
panel open after construction
refactor: SMES now functions consistently with its power cells & the
RPED.
/🆑
## About The Pull Request
- SMES now directly gives/takes charge to the power cells stored inside
its component parts instead of modifying a `charge` variable whose value
was set from the total charge of its stored cells
- Removed `capacity` var. It's now derived from the total cells
`max_charge`. Even then its value was set to this so manually setting it
was a waste
- Fixes#71918. Because of point 1, this also means if you install
rigged cells in the SMES it now explodes
- Adds examines & screentips for installing terminal & other tool acts
- Smes can be connected to the powernet with a multitool with the panel
open after construction.
- General maintenance for portable smes as well. Repaths it to machine
subtype instead of power cause all it's functionality wasn't used
- Removed a bunch of unused defines, autodoc and shuffled around other
code
## Changelog
🆑
qol: SMES has examines and screentips for various stuff
code: Improved code of SMES in general
fix: smes can be connected to the powernet with a multitool with the
panel open after construction
refactor: SMES now functions consistently with its power cells & the
RPED.
/🆑
## About The Pull Request
A note to start: the coroner's mail goodie is untouched. They still get
their brain-in-a-jar, prefilled with formaldehyde and with the
ghostrole-brain.
**First part is fairly simple. It's printable now.**

**Balance is hopefully also simple...**
Originally it could store 150u, which just made it an improvement over
most of the other basic beakers... but it shouldn't even be useful in
chemistry, it's rather unshapely for that!
So the balance is as follows:
- It stores 120u of chemicals, printable roundstart.
_Identical to the X-Large Beaker - even in cost, needing some plastic
(which makes it shatter-proof. i guess.)_
- The unwieldy lip means it can only pour in large amounts (20, 40, 60,
120)
_It's not ideal for mixing in chemistry... This will **hopefully**
discourage using it where it'd look out-of-place.
Why juggle big numbers when you can use easier to handle, equivalent
X-Large Beaker?_
If players so choose they **can**, of course, still mix their spacedrugs
soaking in a bottle with a Felinid Liver. It's just not a preferred
shift-start beaker.
_Also it's a /beaker subtype now because I wanted to inherit some
things, like the pickup/drop sounds.
This technically means it works as a component in machines, but since
it's equal to an X-Large beaker that doesn't really mean anything. Just
a funny interaction._
## Why It's Good For The Game
I can finally torment my patients without having to hope the Mail Gods
deem me (or the department Coroner) worthy.
The idea of gifting them their inflamed appendix in a preserved jar
makes me happy.

## Changelog
🆑
add: Medical (and Science) can now print Organ Jars from their
protolathes! Their shatter-proofing requires some plastic, though.
balance: Organ Jar capacity lowered to 120u, and they can only pour in
large quantities (have you ever tried pouring out of a jar with a lip
like that? Disaster. Such a mess.).
/🆑
## About The Pull Request
#91885 deleted the hand and neck items and repathed the headband during
the re-sprite and those could have been mapped in somewhere... on a
downstream far away
## Why It's Good For The Game
Deleting/repathing items likely to be on maps should have updatepaths
script
## Changelog
No player facing changes
## About The Pull Request
The script is backwards, it replaces bandages with emergency sutures
## Why It's Good For The Game
It doesn't work
## Changelog
No
## About The Pull Request
A note to start: the coroner's mail goodie is untouched. They still get
their brain-in-a-jar, prefilled with formaldehyde and with the
ghostrole-brain.
**First part is fairly simple. It's printable now.**

**Balance is hopefully also simple...**
Originally it could store 150u, which just made it an improvement over
most of the other basic beakers... but it shouldn't even be useful in
chemistry, it's rather unshapely for that!
So the balance is as follows:
- It stores 120u of chemicals, printable roundstart.
_Identical to the X-Large Beaker - even in cost, needing some plastic
(which makes it shatter-proof. i guess.)_
- The unwieldy lip means it can only pour in large amounts (20, 40, 60,
120)
_It's not ideal for mixing in chemistry... This will **hopefully**
discourage using it where it'd look out-of-place.
Why juggle big numbers when you can use easier to handle, equivalent
X-Large Beaker?_
If players so choose they **can**, of course, still mix their spacedrugs
soaking in a bottle with a Felinid Liver. It's just not a preferred
shift-start beaker.
_Also it's a /beaker subtype now because I wanted to inherit some
things, like the pickup/drop sounds.
This technically means it works as a component in machines, but since
it's equal to an X-Large beaker that doesn't really mean anything. Just
a funny interaction._
## Why It's Good For The Game
I can finally torment my patients without having to hope the Mail Gods
deem me (or the department Coroner) worthy.
The idea of gifting them their inflamed appendix in a preserved jar
makes me happy.

## Changelog
🆑
add: Medical (and Science) can now print Organ Jars from their
protolathes! Their shatter-proofing requires some plastic, though.
balance: Organ Jar capacity lowered to 120u, and they can only pour in
large quantities (have you ever tried pouring out of a jar with a lip
like that? Disaster. Such a mess.).
/🆑
## About The Pull Request
#91885 deleted the hand and neck items and repathed the headband during
the re-sprite and those could have been mapped in somewhere... on a
downstream far away
## Why It's Good For The Game
Deleting/repathing items likely to be on maps should have updatepaths
script
## Changelog
No player facing changes
## About The Pull Request
The script is backwards, it replaces bandages with emergency sutures
## Why It's Good For The Game
It doesn't work
## Changelog
No
## About The Pull Request
This PR removes the suture/emergency item and replaces it with a bandage
in all instances.
Provides as much brute healing overall(25), but in one big chunk.
## Why It's Good For The Game
### Flavour
Suturing is a specialised medical skill and not typically something
you'd expect to find a standard workplace first aid kit.
The emergency suture also shared a sprite with the regular suture
causing confusion.
### Healing Glut
Like when I first added sutures and mesh six year ago, one of the main
reasons for making this change is also to start making a dent in the
glut of free easy healing available to the crew.
While medical is in a much better place than before we started the grand
medical revitalisation project¹ 6 or so years ago, we have been
backsliding by turbo powercreeping chems, letting plumbing churn out
ungodly amounts of heal mix patches, nerfing organ damage and wounds and
adding more free healing items to maps.
While these bandages provide the same amount of healing, the healing is
less granular as such some of it will likely be wasted, leading to a
modest reduction of free heal points available to the crew under real
world conditions.
#### Wound Treatment
The bandages are worse for treating bleeds, but the kit already contains
a super ez bleed fixing pen and gauze, so the kit is still very robust
for dealing with bleeds.
Hopefully the minor reduction in bleed treating power will encourage
players to engage more with the expansive and robust system we have for
ghetto treatment of bleeds.
While this doesn't address the multiple elephants in the room, it
reduces the free item glut slightly.
1. (cloning removal, organ damage, trek meds removal, sleeper removal,
bruise pack removal, surgery expansion etc)
## About The Pull Request
This PR removes the suture/emergency item and replaces it with a bandage
in all instances.
Provides as much brute healing overall(25), but in one big chunk.
## Why It's Good For The Game
### Flavour
Suturing is a specialised medical skill and not typically something
you'd expect to find a standard workplace first aid kit.
The emergency suture also shared a sprite with the regular suture
causing confusion.
### Healing Glut
Like when I first added sutures and mesh six year ago, one of the main
reasons for making this change is also to start making a dent in the
glut of free easy healing available to the crew.
While medical is in a much better place than before we started the grand
medical revitalisation project¹ 6 or so years ago, we have been
backsliding by turbo powercreeping chems, letting plumbing churn out
ungodly amounts of heal mix patches, nerfing organ damage and wounds and
adding more free healing items to maps.
While these bandages provide the same amount of healing, the healing is
less granular as such some of it will likely be wasted, leading to a
modest reduction of free heal points available to the crew under real
world conditions.
#### Wound Treatment
The bandages are worse for treating bleeds, but the kit already contains
a super ez bleed fixing pen and gauze, so the kit is still very robust
for dealing with bleeds.
Hopefully the minor reduction in bleed treating power will encourage
players to engage more with the expansive and robust system we have for
ghetto treatment of bleeds.
While this doesn't address the multiple elephants in the room, it
reduces the free item glut slightly.
1. (cloning removal, organ damage, trek meds removal, sleeper removal,
bruise pack removal, surgery expansion etc)
## About The Pull Request
Air tanks (ones that can slot into tank holders) and breath masks
(normal, surgical and muzzle, which has been repathed to be a subtype of
breath masks instead of being a subtype of a muzzle, for some reason)
can now be attached to operating tables, and removed using
wrenches/screwdrivers respectively.
Right-clicking on an operating table with a mask attached will put it in
your hand akin to defib paddles (similarly snapping back if you walk
away). Dragging the table with an attached tank onto the person lying on
it will attempt to connect their internals to the attached tank.
Also since I had to adjust the table sprite, its lights now change color
based on whenever there's an active patient and an active operating
computer.
##### This is a commission for Improvedname/Ezel
## Why It's Good For The Game
Anesthetics are incredibly clunky to use, as either the person
themselves, or you as a surgeon, need to equip the tank onto whoever is
being operated on, then equip and activate the mask. This should make
them a bit less tedious, so maybe they'll actually see some use.
## Changelog
🆑
add: You can now attach anesthetic tanks and breathing masks to surgical
tables.
/🆑
This PR aims to clean or bring up to date portions of code about dna,
the dna console and mutations. This includes taking care of or removing
some of the awful choices like the pratically useless
`datum/mutation/human` pathing, or the class variable, in favor of using
sources to avoid potential issues with extraneous sources of a mutation.
The files changed are over a hundred just because I removed the
`datum/mutation/human` path, but the actual bulk of the code is mainly
shared between the datum/dna.dm, _mutations.dm and dna_console.dm.
Mutation shitcode is hurting my future plans for infusions a little.
Also it's a much needed refactor. Drafted 'till I'm sure it works
without issues.
🆑
refactor: Refactored mutation code backend. Report any issue.
/🆑
## About The Pull Request
Air tanks (ones that can slot into tank holders) and breath masks
(normal, surgical and muzzle, which has been repathed to be a subtype of
breath masks instead of being a subtype of a muzzle, for some reason)
can now be attached to operating tables, and removed using
wrenches/screwdrivers respectively.
Right-clicking on an operating table with a mask attached will put it in
your hand akin to defib paddles (similarly snapping back if you walk
away). Dragging the table with an attached tank onto the person lying on
it will attempt to connect their internals to the attached tank.
Also since I had to adjust the table sprite, its lights now change color
based on whenever there's an active patient and an active operating
computer.
##### This is a commission for Improvedname/Ezel
## Why It's Good For The Game
Anesthetics are incredibly clunky to use, as either the person
themselves, or you as a surgeon, need to equip the tank onto whoever is
being operated on, then equip and activate the mask. This should make
them a bit less tedious, so maybe they'll actually see some use.
## Changelog
🆑
add: You can now attach anesthetic tanks and breathing masks to surgical
tables.
/🆑
## About The Pull Request
This subtype isn't currently used on any TG maps but it is a subtype
that was renamed in the refactor
## Why It's Good For The Game
More complete UpdatePaths scripts
## Changelog
Nothing player facing
## About The Pull Request
This PR aims to clean or bring up to date portions of code about dna,
the dna console and mutations. This includes taking care of or removing
some of the awful choices like the pratically useless
`datum/mutation/human` pathing, or the class variable, in favor of using
sources to avoid potential issues with extraneous sources of a mutation.
The files changed are over a hundred just because I removed the
`datum/mutation/human` path, but the actual bulk of the code is mainly
shared between the datum/dna.dm, _mutations.dm and dna_console.dm.
## Why It's Good For The Game
Mutation shitcode is hurting my future plans for infusions a little.
Also it's a much needed refactor. Drafted 'till I'm sure it works
without issues.
## Changelog
🆑
refactor: Refactored mutation code backend. Report any issue.
/🆑
## About The Pull Request
This subtype isn't currently used on any TG maps but it is a subtype
that was renamed in the refactor
## Why It's Good For The Game
More complete UpdatePaths scripts
## Changelog
Nothing player facing
Refactors most of blood handling code untouched by #90593 and completely
rewrites all blood decals, components and reagents.
- Blood types now have behavioral flags which allow them to control
where they leave decals/DNA/viruses. Oil no longer transfers DNA and
viruses with it, while podpeople water-blood doesn't leave visible
decals on turfs and items, but still can be picked up by DNA scanners.
- Multiple blood types have received unique handling - liquid
electricity blood now glows in the dark, oil trails are flammable and
lube ones are slippery. Oil blood can be restored with fuel, lube with
silicon and slime with stable plasma (as normal plasma already passively
regenerates their blood), instead of everything using iron. Saline
solution only supplements on iron-based blood and won't do anything to
help with bloodloss for species who rely on different blood types.
(Roundstart this applies only to Ethereals)
- All blood logic has been moved away from the blood reagent itself into
a blood element that is assigned to the blood reagent by default, and to
any reagent that's drawn from a mob as their "blood" (in
``transfer_blood_to``). This means that blood you draw from lizards will
be green and have lizard's blood description instead of mentioning red
blood cells, Ethereal "blood" will actually contain their DNA and genes,
etc.
- Refactored all blood decals. Blood states are no more, everything is
now handled via blood DNA. Credits to MrMelbert and Maplestation, as a
significant amount of code has been taken from
https://github.com/MrMelbert/MapleStationCode/pull/436 and many of his
followup PRs. Oil and xenomorph splatters are now subtypes of blood,
blood drying is now animated, blood trails now curve and can be
diagonal.
- Rewrote bloodysoles and bloody_spreader components, credits to Melbert
again for the former, while latter now makes more sense with its
interactions. Bloody soles no longer share blood DNA with your hands.
- Ported Melbert's bloody footprint sprites and bot-blood-spreading
functionality.
- Removed all species-side reagent interactions, instead they're handled
by said species' livers. (This previously included exotic blood
handling, thus the removal)
- Slightly optimized human rendering by removing inbetween overlay
holders for clothing when they're not needed.
- Blood-transmitted diseases will now get added to many more decals than
before.
- Cleaned up and partially refactored replica pods, fixed an issue where
monkeys/manipulators were unable to harvest mindless pods.
- Exotic bloodtype on species now automatically assigns their blood
reagent, without the need to assign them separately.
- Clown mobs now bleed (with colorful reagent instead of blood during
april fools), and so do vatbeasts (lizard blood)
- Implemented generic procs for handling bleeding checks, all sorts of
scanners now also correctly call your blood for what it is.
- Podpeople's guts are now lime-green like their organs, instead of
being weirdly greyish like their water-blood. (Their bleeding overlays
are still grey, as they're bleeding water)
- Slimepeople now can bleed. Their jelly is pale purple in color, but
their wound overlays copy their body color.
- Injecting/spraying/splashing/etc mob with a reagent preserves its
data, so you could theoretically recycle fine wines from someone's
bloodstream
- Fixed burdened chaplain's sect never actually giving a blessing when
applying effects, and giving a blessing when nothing can be healed.
Inverted check strikes again.
- Closes#91039
A lot of blood here has dried, visually the blood colors are almost
exactly the same as before either of the blood refactors.


Prettier (an auto formatter) is set to only run within the tgui folder
currently. This removes that limitation, allowing it to automatically
format all supported files in the repo (.js, .html, .yml
[etc](https://prettier.io/docs/))
I made a few exceptions for bundled and generated files
I'm of the opinion that code should look uniform and am lazy enough to
want CTRL-S to format files without having to think beyond that