Upstream 2026-06-17#149
Open
mass-bot[bot] wants to merge 127 commits into
Open
Conversation
…onds/bluespace crystals (#96417) ## About The Pull Request Boulder-specific materials got overriden by the vent ## Changelog :cl: fix: Fixed diamond and bluespace artifact boulders not containing any diamonds/bluespace crystals /:cl:
…ty change in plants with the gene. (#96402) ## About The Pull Request Cross-pollination has a lot of potential for fun, but the aspect of instability loss and gain in plants makes me experience great suffering. Therefore, it has been suggested that I can get rid of this great pain by just preventing it with a plant trait! Magnificent! Grass was chosen to receive this trait because of its.. _checks notes_ "[remarkable conservation of gene content and gene order](https://pmc.ncbi.nlm.nih.gov/articles/PMC33824/)"! How wonderful! I hope I'm interpreting that correctly! ## Why It's Good For The Game The trait allows for botanists to achieve a finer control over which plants are altered during cross-pollination, preventing undesired instability loss or gain. With this, the experience of setting up trays next to each other comes with fewer pains, and enables more sophisticated cross-poll. setups as one wishes, preventing undesired mutations or reagent changes. ## Changelog :cl: add: Adds "Conserved Genetics", a plant trait which prevents the plant from having its instability be altered by cross-pollination. /:cl:
## About The Pull Request This adds the flashlight toggle on/off sound to the room light switches. This is also used by a lot of other lighting objects, like lamps and lanterns. ## Why It's Good For The Game Mah Immersion! ## Changelog :cl: sound: Add on/off sound to light switches in rooms /:cl:
## About The Pull Request Tin. If someone decides to add wilderness levels for maps that isnt ice, they will not suffer anymore. Uses default icy wilderness traits (renamed define for clarity), also adjusted another var name, for clarity too. ## Why It's Good For The Game Allows for a higher degree of customisation for wilderness levels, which is a very good idea, but somehow it was hardcoded to only work with snow maps. ## Changelog Nothing player facing (i hope)
… from last item in the stack (#96404) ## About The Pull Request Fixes #96244. Problem was that when you use last item in the stack, the stack gets qdel'd and the destructor is called. The destructor sets `mats_per_unit = null` for the object, and when custom materials applied to tile/wall it is null. Bug was caused by #92620. I'm not gonna review 272 files from that PR to see if I can delete that destructor, potentially breaking something else, so this is a lazy fix for the annoying bug which is 6 months old. ## Changelog :cl: fix: fixed material tiles and walls not having material when constructed from last item in the stack /:cl:
updates dreamluau to [0.2.2](https://github.com/tgstation/dreamluau/releases/tag/0.2.2) - the only change is a meowtonin update that should fix the compiler issues that tg is struggling with on live closes tgstation/tgstation#96434
## About The Pull Request Santa Claus can hear prayers that contain the words "santa", "claus", "christmas" or "xmas". Prayers containing the word "satan" have a 40% probability to being "erroneously" relayed to Santa instead. Talk about a terrible typo. I'm toooootally sure nobody will do it on purpose (totally forced joke ik ik). Santa cannot know who the person praying is if not told inside the prayer itself, however he can tell if the person is naughty (either antag or has the evil trait) or not, so be mindful of that. If tired or harassed by unwanted prayers, Santa can also click an action button at any time to silence them. The prayers will still be sent to admins, they just won't be heard by Mr. Claus. This PR comes with a new component and a mild refactor of prayers. For admins, the message from the pray verb is now wrapped in boxed message spans. This will make prayers a bit easier to notice, since the lack of message box coupled with lack of sound (for now, unless it's the chaplain praying) makes them easy to miss. Also tinfoil hats prevent you from hearing prayers, Santa (redundant with the action button, this is just a little touch). ## Why It's Good For The Game Early Christmas PR ! Yeah, I know, headsets exist and Santa Claus is very capable of wearing one, but he's the same guy who rides a flying sleight, climb down chimneys (notwithstanding his corpulent body). The prayer thing makes a bit sense if you think of the more religious roots of the character, though our Santa Claus is a bit more secular ya know, and this is more of an excuse to give him something extra. Oh, yeah, if people will abuse the feature, I guess I could add an incapacitated check for the praying mob so that Santa won't hear prayers from people dying or restrained, or remove the tidbit that says if the person who sent the prayer is naughty or not. ## Changelog :cl: admin: Prayers from players are now boxed (like examine messages and some health readouts for example), making them easier to tell apart from the constant stream of text in your chat tabs. add: Santa Claus can now hear prayers that mention him or Christmas. He won't know who's praying unless told, though he can tell if they're naughty. /:cl:
## About The Pull Request Ports Monkestation/Monkestation2.0#5744, alongside the metadata stuff from Monkestation/Monkestation2.0#11617 and Monkestation/Monkestation2.0#11644 > This PR adds a websocket client to the chatbox, that redirects all incoming payloads from the server, to the specified server, which allows for external integrations with the game. All of which is parsable JSON. > > Some ideas include RGB feedback, triggering an event in VTubing software, or automating a physical device based on what's sent to the chat. (For example, a haptic suit, and have a regex for "in the right leg" or any body part) The websocket can also be used to request basic "metadata" about the current round - server name, station name, round id, map name, round duration, and game state (all this information can be obtained via the `status` world topic without being logged in anyways, to be clear) - if the server has webroot set up, it will also send the webroot base url and the links to the chat assets (i added this just so i could embed the chat styling and icons in my chat log html) **To be clear, the websocket is entirely client-side, if it's not obvious.** <details> <summary>Example of metadata JSON</summary> ```json { "type": "metadata", "payload": { "game_version": "/tg/Station 13", "server_name": "kbity station 13 (tg)", "round_id": "152", "map_name": "Minimal Runtime Station", "round_duration": 6, "gamestate": 3 } } ``` </details> <sub>if y'all make a freaky joke i will beat you with a rock, I do not care about _that_ kind of thing in the slightest.</sub> ## Why It's Good For The Game Lots of interesting things. I've made a doohickey that allows me to automatically save my chat logs instead of having to manually click "Save Chat Log" in settings repeatedly (which is also limited by the chat scrollback limit) "i have had a recurring thought of adding websocket support so I can swap my spotify playlists whenever I get into combat on lavaland" - smartkar ## Screenshots <img width="676" height="158" alt="2026-05-27 (1779927348) ~ dreamseeker" src="https://github.com/user-attachments/assets/28185ddd-b6b6-423e-9b46-cfaa519972ac" /> <img width="2298" height="608" alt="2026-05-27 (1779927386) ~ WindowsTerminal" src="https://github.com/user-attachments/assets/1e41b783-6c43-4399-9ab5-a9c8bf67d117" /> <img width="1651" height="391" alt="2026-05-27 (1779927395) ~ dreamseeker" src="https://github.com/user-attachments/assets/5e905670-edd6-4efc-8d0c-3d19e39799a6" /> ## Changelog :cl: Absolucy, Flleeppyy add: Added a websocket client, you can now forward incoming chat messages to an external program, i.e allowing you to change music playlists based on events, or such. /:cl:
## About The Pull Request Capitalizes the butterbean plant name when planted so it shows up as `hydroponics tray (Butterbean Plant)`, instead of `hydroponics tray (butterbean Plant)`. ## Why It's Good For The Game Consistency (this one thing has bugged me for a while and I have only just now decided to fix it). ## Changelog :cl: spellcheck: Butterbean plants are now capitalized properly when planted. /:cl: Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
## About The Pull Request After #96352 got merged, the actual interaction for dumping a bag of soil/vermaculite/etc. into a hydroponics tray broke because the current_soil (and subsequently soil flags) weren't being transferred properly. This fixes that by adjusting transfer_soil() to return the placed/moved soil, allowing us to grab the soil flags and whatnot. ## Why It's Good For The Game I think dumping soil into the tray should probably work right. ## Changelog 96352 didn't have a changelog so maybe this one shouldn't either. --------- Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
## About The Pull Request Mending globule can no longer be cast if you don't have enough nutrition to do so. The ooze hud now inherits the living hud, meaning ooze mobs can see their health and all of the other stuff. <img width="1186" height="776" alt="image" src="https://github.com/user-attachments/assets/068cc22d-5721-4c90-ac38-bcdda9af9dcc" /> The combination of the nutrition display and the health doll is kinda ugly for now but probably better than nothing. The descriptions of shoolean grapes abilities now include the cost of the ability in question. ## Why It's Good For The Game Not being able to see how wounded you are is kinda bad, and being able to see that is kinda good. Knowing how much your abilities cost is good too. ## Changelog :cl: qol: Ooze mobs from cytology now have the same type of HUD as other mobs, allowing them to see their health qol: The abilities of shoolean grapes now have their cost specified in their description fix: The mending globule ability used by shoolean grapes no longer can be cast while there isn't enough nutrition to do so /:cl:
my watch has ended <img width="401" height="256" alt="ffffff" src="https://github.com/user-attachments/assets/a539203c-020b-4ad8-b034-f69ec0eafa78" /> ## Changelog :cl: Profakos (originally pulled from their branch, did massive chunk of this), Ben10omintrix refactor: mulebots have been refactored. please report any bugs /:cl:
…t animation) (#96450) ## About The Pull Request Missing END_STAGE check caused mask overlays to remain when the weather ended and bleed through the blackness if you did not have mesons equipped (which i did during testing, and did not spot the issue. Oops) ## Changelog :cl: fix: Fixed broken area overlays for particle weather /:cl:
## About The Pull Request The module was active but stealth itself was passive, so calling deactivate() would runtime as the module would not necessarily be active at this point. ## Changelog :cl: fix: Fixed wraith cloaking module runtimes /:cl:
## About The Pull Request <img width="670" height="600" alt="image" src="https://github.com/user-attachments/assets/db451921-5cfa-437d-b9ca-be09f0daa91e" /> Adds buttons to eject 1, 5, or all sheets of any material from the autolathe, and removes sheet designs. ## Why It's Good For The Game The existing system is insanely stupid and results in most uncommon materials being stuck in the autolathe until it is disassembled, and having to find the sheet manually is annoying. ## Changelog :cl: qol: Materials can now be directly ejected from autolathes rather than needing to be printed. /:cl:
## About The Pull Request Closes #96531 ## Changelog :cl: fix: Fixed earthcracker not getting spent on mining z levels /:cl:
…(#96319) ## About The Pull Request - Discord message is now sent when the PR is reopened - Removes `username`, `title_url`, `title`, & `message` from discord notify action as their default values work fine ## Changelog N/A
## About The Pull Request Tooltips are positioned according to `screen_loc` var which was incorrectly being modified by `/datum/storage_interface/silicon`. They covered the whole item making it virtually impossible to click on. We can't check if the item is in the borgs hand because `add_items()` gets called BEFORE the transfer to hands not after BUT we can check if the item was transferred out of storage via the `IN_STORAGE` flag which has the same results. It's fixed now Before <img width="182" height="156" alt="Screenshot (23)" src="https://github.com/user-attachments/assets/cd3db288-87bb-49bb-bf02-b8662104e441" /> After <img width="296" height="113" alt="Screenshot (25)" src="https://github.com/user-attachments/assets/1e61fc36-1f40-4b06-9c01-1b1ce7fc07b8" /> ## Changelog :cl: fix: Tooltips no longer cover the whole borgs hands held items /:cl:
## About The Pull Request <details> <summary>About the gizmode</summary> - It creates a code that the user needs to crack. - The interface for the code is much like those RPG maker combination locks: <img width="190" height="107" alt="image" src="https://github.com/user-attachments/assets/8b64d29a-7585-4e61-9308-7d66eb01f32b" /> - You can cycle the selected position and the selected digit, then send the code to test it. - After every cracking attempt, the code is reset and some sort of feedback is provided, including how many attempts are left. - There are 2 versions of this gizmo, the "tutorial" and the "hard-mode". - The "tutorial" code is 2 digits long, and it tells the user whether the digits they inputted are higher, lower or exactly the same as the solution digits ("over/under" feedback). - The "hard-mode" code is 2-3 digits long "bulls and cows" puzzle, essentially. It can only be accessed by solving the tutorial. </details> Also, fixed a bug I noticed where users didn't have a way to interact with item gizmo wires ## Why It's Good For The Game The gizmodes that currently exist are simply way too easy to work with. We gotta spice it up with some real interface hell. ## Changelog :cl: add: new gizmode fix: you can now interact with item gizmo wires /:cl: --------- Co-authored-by: l0 <-->
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🆑 MassMeta
add: Upstream 2026-06-17
/:cl:
conflicts: .github/workflows/discord_pr_announce.yml
code/__DEFINES/say.dm
code/__DEFINES/text.dm
code/__HELPERS/spatial_info.dm
code/__HELPERS/tts.dm
code/controllers/subsystem/traitor.dm
code/controllers/subsystem/tts.dm
code/datums/3d_sounds/_3d_sound.dm
code/game/say.dm
code/modules/client/preferences/middleware/tts.dm
code/modules/clothing/chameleon/generic_chameleon_clothing.dm
code/modules/mob/living/living_say.dm
code/modules/mob/living/silicon/ai/ai_say.dm
code/modules/mob/living/silicon/silicon_say.dm
code/modules/transport/tram/tram_controller.dm
config/config.txt
tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/tts_voice.tsx