Skip to content

[IDB IGNORE] Upstream Merge 2026-03-26 #141

Open
XeonMations wants to merge 535 commits intoMonkestation:masterfrom
XeonMations:upstream-merge
Open

[IDB IGNORE] Upstream Merge 2026-03-26 #141
XeonMations wants to merge 535 commits intoMonkestation:masterfrom
XeonMations:upstream-merge

Conversation

@XeonMations
Copy link
Copy Markdown
Collaborator

@XeonMations XeonMations commented Mar 26, 2026

About The Pull Request

Why it's Good for the Game

Proof of Testing

Changelog

🆑
/:cl:

Jacquerel and others added 30 commits March 22, 2026 21:53
## About The Pull Request

Adds the ability to use a pen or crayon or spraycan to draw a face or
eyes onto certain bots
This allows people who miss the pareidolia of the old medkit sprite to
fix it themselves
You can clean it off again using most cleaning products, if you disagree

<img width="649" height="220" alt="image"
src="https://github.com/user-attachments/assets/de4869b8-9ac1-4c79-8890-bd95fd4fcaa1"
/>

I think from looking at this screenshot apparently I haven't enabled
pixel perfect 2x on my laptop for which i should be executed, sorry

I didn't add any for ones not pictured here because I couldn't think of
a good way to draw them but it's simple enough to expand.
The face will be coloured with whatever ink you used to draw it, I was
just lazy and only used a regular pen in this picture
How are all of the non-white drawing implements adding that white
circle? Don't worry about it

This comes in the form of a component so if you want to make other
things easily graffitable then you can do that
I ironically called it the defaceable component even though it's used to
add faces

## Why It's Good For The Game

It seems like something people have been wanting and it seemed like a
cute idea

## Changelog

:cl:
add: You can draw faces onto some bots using a pen, crayon, or spraycan
/:cl:
## About The Pull Request

1. Removes the particle effects from mob fire. 

2. Fire lighting now scales with how "on fire" you are. 

3. Adds an emissive effect to mob fire. 

4. Slightly increased the number of firestacks needed for the more
intense effect (by 10%) (3->5)

5. Fixes the singular broken frame in monkey fire sprite. 

6. Xenomorphs now use the generic fire sprite, adjusting the offset for
larger xenos. Closes #12605 .

## Why It's Good For The Game

1. The effect just doesn't look good as mobs move and rotate
unfortunately. We could probably revisit it in the future when particle
frameworks are more developed, but in the meanwhile watching all of a
mob's embers just twist 90 degrees as they flop to the ground looks
jarring.

2. Produces a neat effect of the light dying out as you get closer to
extinguishing a fire.

3. Adds some bloom to fire, and keeps fire visible as the light dies out
(as the firestacks decrease). I think it looks neat, though I'm not sure
how... realistic? It is in practice?

4. You scarcely see the "low stack" fire vfx due to the low threshold it
was set to. This change is intended to make it slightly more common.

5. Bugfix. It was not offset correctly.

6. Bugfix. I didn't sprite anything unique for them - I just made them
use the generic fire overlay.

<img width="336" height="142" alt="image"
src="https://github.com/user-attachments/assets/ceeac35d-912c-4ad1-9d3b-4384ffdb905b"
/>

## Changelog

:cl: Melbert
del: Removed ember particle effects from mob fire 
add: Mob fire brightness now scales with how "on fire" it is - the more
fire, the brighter the light
add: Mob fire now has a bloom effect and glows a bit
add: The threshold that human fire sprites update from "small" to "big"
has been increased (by 10%)
fix: Fixed broken frame in monkey fire animation
fix: All Xenomorphs now use the generic fire sprite
fix: All Xenomorphs no longer lose their fire sprites when resting
fix: Large Xenomorphs now offset their fire overlay to the middle of
their sprite
/:cl:
…MODsuits via strip menu (#95250)

Allows deployment, undeployment, activation and deactivation of other
people's MODsuits via stripping buttons. Deployment and undeployment is
the same as if you were right clicking the button, i.e. undeployment if
you have any parts active, deployment otherwise.

Each action takes the MOD's `strip_delay` as its time to complete.

DNA lock modules' consequences do not trigger on anybody if the `user`
is not the `wearer`. They still don't deploy unless the acting agent is
the right dna.

Currently, there are two ways to get a MODsuit to activate or deploy on
another person without that person's involvement. An very rare PDA app
and sacrificing an AI. That's unfortunate, given as MODsuits are the
most used space protection. If you're forced to take off someone's
MODsuit in order to provide some sort of medical care, you are unable to
then put it back on them to prevent additional space-wrought damage. You
can't ~waste~ use a MODsuit to protect a incapacitated prisoner, or
force a springlocked MODsuit on a potential victim. It feels like a
missed avenue of interaction.

The PDA app is still powerful, for better reasons, as is the AI. Not to
imply anyone was using AIs for this.

:cl:

add: You can now deploy, undeploy, activate & deactivate other people's
MODsuit via the strip menu

/:cl:
## About The Pull Request
Fixes this.

<img width="1201" height="213" alt="Workflow"
src="https://github.com/user-attachments/assets/4f1fb7db-c060-495e-80db-645f1bdcb754"
/>

It has been causing flaky CI Failures all over the place. Speed merge
would be appreciated cause it's been spamming my notifications

## Changelog
N/A
## About The Pull Request
Proper fix because domi doesn't have time rn
Closes #95226

## Changelog
:cl:
fix: Fixed rogue "ING IN" on lobby screen
/:cl:
… (#95317)

## About The Pull Request
Replaces the usage of "Dicktard" in heckacious.json with "boneheafd",
fitting more with the general theme of the mutation. As well as not
being something some people consider a slur nowadays.

Also as goofball pointed out. Github TOS.

If the word is decided to be kept, it can be done in a server-side json
override. Just not in the repo.
## Why It's Good For The Game
This language is not needed at all in current day and a good amount of
people consider it a slur. After a code review, changed it to be a (more
fitting) replacement of the word said instead of a downright removal of
the word.

Also TOS Violation Bad.
## Changelog
:cl:
spellcheck: Heckacious Larincks no longer uses a github-TOS-breaking
word as one of it's transforms
/:cl:
…(#95316)

Tin, these in particular make sense to be relative to the max blood
volume.

Better code (in particular for codebases that might modify
`MAXIMUM_BLOOD_VOLUME`).

Not player-facing
## About The Pull Request

Fish can be scanned as animals for the DNA vault

Increases the average number of animals needed by ~6-10

Reduces the average number of plants needed by like... ~8-12 or
something?

## Why It's Good For The Game

Fish are animals. It makes sense to me. 

Because fishing is pretty darn easy I increased the animal count to
compensate. I see this as fine anyways because there are more than
enough animals on station to fulfill the vault as-is.

While I was tweaking the numbers, I budged the plant count down because
it's quite a lot of plants to wait to be fully grown - upwards of 30 at
times.

## Changelog

:cl: Melbert
balance: Fish can be scanned for the dna vault. 
balance: You need more animals on average to complete a dna vault.
balance: You need less plants on average to complete a dna vault.
/:cl:
## About The Pull Request
- Removed global list `fake_reagent_blacklist` in favour of
`abstract_type`. Saved memory
- Removed proc `get_chemical_reaction()` in favor of
`GLOB.chemical_reaction_list`. No proc overhead and faster access
- Remove unused proc `remove_chemical_reaction()`
- Removed proc `find_reagent()` in favour of
`GLOB.chemical_reagents_list`. No proc overhead and faster access
- Directly access name of reagents via `::` operator from typepaths
instead of looking up the datum in global chemical reagents list for
some operations. Faster variable access
- Removed unit test `reagent_id_typos`. The typepaths will error at
compile time because they aren't strings so there's no need for this
test

## Changelog
:cl:
code: cleaned up code pertaining to reagent & reaction lookup
/:cl:
- Removing reagents now won't trigger new chemical reactions. This has
always been the default behaviour in code and if you think about it
logically if the reagents failed to react to begin with then removing
already present reagents doesn't help in starting new reactions.

- Transferring reactions has now been removed because it made no sense.
We call `handle_reactions()` on the target holder anyway which will
create new reactions for us with the reagents we have just transferred

**Note**: Please Test merge first as it does effect a lot of reagent
related stuff

:cl:
code: reagent transfer & removal operations now have faster cpu
performance
/:cl:
## About The Pull Request

Revival of tgstation/tgstation#91378 for renewed
effort of ruining the stat panel for everyone.

This PR does a few things to address issues I've had with the HUD in
hopes to bring reliance less upon the stat panel.

1. Adds a Memory button

<img width="133" height="169" alt="image"
src="https://github.com/user-attachments/assets/7f643882-5666-4099-9c68-5d6092a6d82c"
/>
<img width="134" height="169" alt="image"
src="https://github.com/user-attachments/assets/e7592ec3-ec3e-4afe-baa3-6d0e6d5d22c8"
/>

Potential alt icon, but I don't know if it's better
<img width="1322" height="115" alt="image"
src="https://github.com/user-attachments/assets/82cc6ad9-becd-4502-8b83-276b0ef6ed0d"
/>


2. Makes Alien, Animal & Borg HUDs more compact (This is uploaded before
Borg HUD icons were made)

Borg - Removed 'Store' button, now you left click your model to store it
(RMB to open/close), think of it more like a bag now.
<img width="1054" height="324" alt="image"
src="https://github.com/user-attachments/assets/5352a350-8f3e-4b3a-8634-929e2c9aa2f4"
/>


Alien
<img width="305" height="189" alt="image"
src="https://github.com/user-attachments/assets/c0f0b9f0-941a-405e-bdfd-4b5b46690fb6"
/>

Animals - Their HUDs now appear in the corner of the screen rather than
having the strange offset
<img width="202" height="168" alt="image"
src="https://github.com/user-attachments/assets/ddf26108-d930-4744-8ef5-17f981a3384b"
/>

I didn't touch gorilla, they still look weird.
<img width="732" height="181" alt="image"
src="https://github.com/user-attachments/assets/5c1534c3-7190-491d-8a1f-6fe51eebd9a2"
/>

2. Fixes borg numbers not showing up at the request of a user
<img width="701" height="312" alt="image"
src="https://github.com/user-attachments/assets/65464e15-8e31-41f8-b506-050fa27cebde"
/>

Closes tgstation/tgstation#95163

I also added a rustle sound when you drop something as a borg so you
have an audio cue that you dropped something, sometimes as a borg I'll
drop something and think it disappeared, cause I didn't realize I
accidentally hit drop. This is a local sound, so it doesn't play to
anyone near you. Purely for feedback.

3. If you didn't notice, this de-hardcodes the UI for non-humans

UIs now respect your prefs for many more mobs now, pretty much only the
ones with unique special UIs (Alien, pAI, AI, Borg) will now respect
your prefs.

## Why It's Good For The Game

UIs make a bit more sense, takes Memories out of being only accessible
through the stat panel, allows your prefs to be respected more and makes
inventories a little more consistent through mob types.

If the stat panel is to be removed or made optional, we can't afford to
hide Memories through it because certain antagonists (see: nukies)
absolutely rely on it.

## Changelog

:cl: ttt, JohnFulpWillard
add: Added a Memory HUD to your UI. In case you didn't know, you get
memories of things happening around the station, or important antagonist
info such as the nuclear codes.
del: Removed Borg's "store" button, now the cyborg module will behave
more similar to a backpack (LMB to store, RMB to open/close)
fix: Borg material now properly displays how much materials they can
afford with their cell's charge.
qol: Your HUD prefs are respected on more mobs now.
qol: Improved the HUD of simple/basic animals, as well as Cyborgs, AIs,
pAIs and Xenomorphs.
/:cl:

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
## About The Pull Request

What it says on the tin-- with having a nice abstract types system now,
we can utilize that in create_and_destroy.

## Why It's Good For The Game

Removes a lot of the need for snowflake item exclusions, and makes this
test likely a lot more stable (and a little faster even).

## Changelog

Not player-facing
…ter Paint App (and related modular computer changes) (#95213)
## About The Pull Request
Contains two changes cherry-picked from my CM PR,
cmss13-devs/cmss13#11826.

1) Fixes incorrect args to `block()` in `increase_max_y()` that caused
it to add turfs to every z-level's world.area contents list instead of
just the correct one. This is probably left over from when the area
contents list wasn't split by z-level.

2) Avoids a case where turfs could be removed from area contents twice
if the subsystem returned early on a later Z-level.

## Why It's Good For The Game
Fixes two bugs with the area contents system.

## Changelog

:cl: MoondancerPony
fix: fixed turfs sometimes not being in any area's contents
/:cl:
tgstation-ci bot and others added 15 commits March 24, 2026 19:16
## About The Pull Request

The barcode scanner has a check-in mode, but to checkout you have to
scroll through a (potentially) large list of books. This aims to fix
that by letting you skip the UI using the same item you use to check-in.



https://github.com/user-attachments/assets/916b743e-d974-4e7d-a9f2-a407562c5123


Also limits library book borrowing time to 2 hours, cause the UI looked
really weird with it uncapped (also any round that goes more than 2
hours you should bring your books back)

## Why It's Good For The Game

Better UX I think.
## About The Pull Request
Not sure if it is oversight or because of some valid balancing concern,
but this PR just enables display's design to be able to be printed in
golems and charlie station lathes

## Why It's Good For The Game
Existence of this item in ghostroles' hands wont impact balancing in any
way, as opposed to other locked items such as shuttle parts crew
pointers (which, gonna be honest, wont impact said balance either, but
whatever). Vitals display is just too cool of a thing to make it limited
just for station's people.
## About The Pull Request
porting shadekin species
Bubberstation/Bubberstation#147
## How This Contributes To The Nova Sector Roleplay Experience
New race!
## Proof of Testing
<details>
<summary>Screenshots/Videos</summary>
<img width="1159" height="670" alt="image"
src="https://github.com/user-attachments/assets/84baace0-4896-424a-a22d-cfd106b24545"
/>
</details>

## Changelog
:cl:
add: Adds a new species: shadekins
/:cl:

---------

Co-authored-by: pepe <john@john.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
## About The Pull Request

Includes everything besides the digi underwear one

## Changelog

Autochangelogs
@XeonMations
Copy link
Copy Markdown
Collaborator Author

icons are fine so im turning off icondiffbot

@XeonMations XeonMations changed the title Upstream Merge 2026-03-26 [IDB IGNORE] Upstream Merge 2026-03-26 Mar 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.