Skip to content

Upstream 2026-06-06#142

Merged
Glamyrio merged 68 commits into
masterfrom
upstream
Jun 6, 2026
Merged

Upstream 2026-06-06#142
Glamyrio merged 68 commits into
masterfrom
upstream

Conversation

@mass-bot

@mass-bot mass-bot Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

🆑 MassMeta
add: Upstream 2026-06-06
/:cl:

SmArtKar and others added 30 commits June 4, 2026 17:17
## About The Pull Request

I didn't realize that default aggro range for mobs is 9, so tendrils
would try to attack you with their whips and spikes despite you being
completely out of their range, which looks pretty funny.
I've fixed this by separating out aggro ***grab*** range and aggro
sustain ranges, lowering latter to 5 for tendrils, and adding checks for
target distance for both abilities it has. The Thing also had a similar
behavior but used rather jank code for that (which I don't think even
worked), so I've modified it to use the new system as well.

## Why It's Good For The Game

Stationary mobs probably shouldn't try to attack mobs completely out of
their reach

## Changelog
:cl:
fix: Tendrils no longer try to attack you when you're out of their reach
code: Cleaned up The Thing's aggro code
/:cl:
## About The Pull Request

`assign_reagent()` does not take paths

## Why It's Good For The Game

fixes #96333

## Changelog
:cl:

fix: Toxin bees get toxin

/:cl:
## About The Pull Request
🚨THIS IS AN ADVANCED VERSION OF #96227 WITH NEW FEATURES, CLOSE #96227
IF THIS IS MERGED 🚨
this pr adds botanic trays - you can get one by filling an empty
hydroponic tray with any soil!
the botanic tray acts like a pile of soil but it can be upgraded, has
auto-grow and indicators.
once you fill the tray there is no way back - it becomes botanic
permanently (until you deconstruct it)

<details>
    <summary> Sprites </summary>

<img width="856" height="846" alt="image"
src="https://github.com/user-attachments/assets/ca9e2a55-ba29-4d08-80e7-aa79e73bb79f"
/>

<img width="825" height="285" alt="image"
src="https://github.com/user-attachments/assets/815e93c2-47cd-4540-86ae-0d2bd8efd325"
/>

Default on the left, reskin on the right
sprites made by me (trays from #96227 made by kreks) (also works with
old-designed tray mode)
see #96227 for tray resprite old/new
</details>


## Why It's Good For The Game
soil is boring and almost no one uses it
emissive is cool
you can now see the type of soil in your tray even when the auto-growth
is on


## Changelog
:cl:
add: added botanic trays - hydroponic trays with soil instead of water,
just fill a tray with any soil and done!
image: resprited auto-growth mode and added emissives to it
image: resprited hydroponic trays 
add: added old-designed mode for hydroponic trays - use a screwdriver or
a plant analyzer on the circuit!
image: added emissives to hydroponic tray indicators
/:cl:

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request

Closes #96078

Cryox has been nerfcrept over the years so hard that at the moment you
can use it to softlock people by trapping them inside with burn damage,
as cryoxadone heals so slowly that the 73k air will hurt you nearly more
than the cryox even heals you. This PR changes cryox so that sleeping is
no longer a hard requirement, rather it simply doubles the "power" of
the cryoxadone, like how being on fire doubles the power of pyroxadone.
Even with this it's still not a great heal, doing about 2-3 of each
damage per tick, far inferior to a proper healmix. When you're awake it
heals you the same as it does now.
## Why It's Good For The Game

Helps cryoxadone actually fill its niche a bit better (Healing
wounds/triage with the cryo tubes/less efficient new player fallback
option) without reintroducing the abusive abilities that got cryox
nerfed in the first place, namely naked spacewalking since pressure
damage has been doubled and waking cryox will no longer let you outheal
it. The hard requirement on unconsciousness is also very uninteresting
and anti-sandbox (you MUST use the cryo tube or this reagent does
NOTHING)

## Changelog
:cl:
balance: instead of the hard requirement for sleeping, cryox's healing
power is doubled by being asleep instead
fix: on default settings a cryo tube filled with cryoxadone can no
longer softlock you by outdamaging its own healing potential
/:cl:
Straightforward conversion to basic mob. Only effective change is slight
increase in movement speed. They're still walking punching bags.

:cl:
balance: polar bears are tiny bit faster
/:cl:
## About The Pull Request

A synchronous signal re-entrancy vulnerability caused a server crash
when plasma-infused floor lights were ignited.
When on_deconstruction() called break_light_tube(), the tube spawned
sparks before updating its internal broken state. The sparks ignited the
plasma, which triggered a secondary on_deconstruction() on the same
tick, resulting in an infinite recursion loop and eventual Overflow.
<img width="2559" height="1391" alt="Screenshot 2026-06-04 151658"
src="https://github.com/user-attachments/assets/e8f1b5fa-826e-4c76-8d04-3ba6c424822a"
/>

This PR applies a State-Before-Side-Effects pattern, the status =
LIGHT_BROKEN mutation is now applied before do_sparks() is invoked
(caching the previous state for the effects). This kills any synchronous
recursive loops originating from the sparks.
<img width="2559" height="1389" alt="Screenshot 2026-06-04 155247"
src="https://github.com/user-attachments/assets/db5b346e-d525-493b-ab64-00acc48493cd"
/>

Fixes #96126

## Why It's Good For The Game

Fixes a reproducible server crash that could be triggered by a single
player in seconds if they got metalgen (funny but broken). It also
hardens the core light machinery architecture against future re-entrancy
bugs caused by synchronous environmental events.

## Changelog

:cl:
fix: Fixed a server crash caused by igniting plasma-covered floor
lights.
/:cl:
## About The Pull Request

<img width="714" height="648" alt="dreamseeker_4N3ALTkuIp"
src="https://github.com/user-attachments/assets/3a05782a-b620-4193-a6fe-b5797a16d586"
/>

By smoothing with natural walls and floors and utilizing overlays to add
artificial smoothing with them, we can have nice-looking multi-type
smoothing on the same tile without too much overhead.
I've implemented this for both lavaland lava and water (despite latter
only being mapped in near the raptor area which has guaranteed basalt
flooring, it might be useful to have in the future for ruins and what
not)

## Why It's Good For The Game

Lava smoothing using basalt edges looks really weird and jank.

## Changelog
:cl:
refactor: Implemented overlay-based smoothing for lavaland lava and
water
/:cl:
tgstation-ci Bot and others added 25 commits June 6, 2026 11:57
## About The Pull Request

Checking `occupier` right after `occupier` is nulled

Also, entirely unused signal, deleted.

## Why It's Good For The Game

Runtime Error

## Changelog
:cl:

fix: Pinpointers stop tracking a shunted ai when that ai is no longer
shunted

/:cl:
## About The Pull Request

The parameter is `atom_dir` not `dir`

## Why It's Good For The Game

`dir` doesn't exist so it was always falling back to the default of
north regardless of what you picked

## Changelog
:cl:
fix: fixed TGUI spawn panel direction option not working
/:cl:
## About The Pull Request

fixes `/datum/lootpanel` not being removed from SSlooting's
backlog/processing when destroyed.

another native reftracker W

```
[2026-06-04 15:54:59.739] REFSCANNER: native refscan complete for /datum/lootpanel ([0x21068f2e]), took 942 ms
 - === 2 finding(s)===
 - [list]       list #5085 [index 0] (len=1, refs=1)
 - [list_owner] datum #1977 (/datum/controller/subsystem/looting).processing -> list #5085
```

also fixed a bug where SSlooting wouldn't really process after `backlog`
was moved to `processing`.

## Why It's Good For The Game

hard delete bad

## Changelog

no player-facing changes
## About The Pull Request

Adds COMSIG_BLOCK_RESIST. 

## Why It's Good For The Game

This functionality would be nice.

## Changelog

Not player facing.
…s (#95636) (#96335)

## About The Pull Request

This PR adds a `can_see_reagents()` check to the `examine()` function of
the water cooler (`/obj/structure/reagent_dispensers/water_cooler`).
It loops through the reagents and prints their specific volume and name,
mirroring the behavior of standard transparent containers when examined
by an authorized user.

Fixes #95636

## Why It's Good For The Game

The current state of the water cooler is inconsistent with other reagent
containers. As reported in the original issue, observers cannot see what
custom reagents are inside.

Furthermore, during local testing, I verified that this also negatively
impacts active gameplay, Chemists and Scientists wearing Science Goggles
are unable to read the chemical breakdown of the cooler's contents,
breaking immersion.

This PR implements the standard check without altering the cooler's
opaque identity for regular players.

**Before:**
<img width="2559" height="1391" alt="Screenshot 2026-06-03 155849"
src="https://github.com/user-attachments/assets/8b74fca7-5fe8-4a08-af23-9a1d4b5a5647"
/>
<img width="819" height="717" alt="Screenshot 2026-06-03 155929"
src="https://github.com/user-attachments/assets/21150f27-9806-4a6a-90b0-2ec4129b5492"
/>

**After:**
<img width="2559" height="1393" alt="Screenshot 2026-06-03 163407"
src="https://github.com/user-attachments/assets/84b368c7-46e6-4134-9ccb-65956fa5d58f"
/>
<img width="2559" height="1390" alt="Screenshot 2026-06-03 163422"
src="https://github.com/user-attachments/assets/7b13070f-193b-467f-9166-a00fdf8ea65e"
/>

## Changelog
:cl:
fix: Water coolers now properly reveal their custom reagents when
examined by ghosts or players with science goggles.
/:cl:
…TA` calls into one. (#96330)

## About The Pull Request

This PR bumps dreamluau to 0.2.1, which makes
`DREAMLUAU_CLEAR_REF_USERDATA` into a variadic function. As such, we can
replace all of the up to 8 byondapi calls in every call to Destroy with
only 1.

## Why It's Good For The Game

This should significantly improve the performance what is one of the
hottest procs there is.

## Changelog

No player-facing changes.
## About The Pull Request

Fixes #96344

The `if(!continuous_move && movement_dir)` did not respect whether the
"jetpack" was usable or not, allowing you to free-float regardless of
context.

I wrapped them in the same check and it seems to work fine in both
contexts (stabilizers on or actively moving).

I presume this affected more than just moth wings (empty jetpacks,
probably) but I'm not going to check

## Changelog

:cl: Melbert
fix: Fix moths being able to fly in space
/:cl:
## About The Pull Request

Ports fulpstation/fulpstation#1380 giving
coffins another direction.

## Why It's Good For The Game

Minor edit that makes coffins look a little better. Why not.

## Changelog

:cl: QuiteLiterallyAnything
image: Added a directional sprite for coffins.
/:cl:
…on-child, type from tier4 RPED (#96246)

## About The Pull Request

So now Adming Outfit and Debug Outfit using AdminDebug RPED with 40
parts of each, and its another RPED, not tier4, which is the same RPED,
which has spawnpoind at lavaland base
## Why It's Good For The Game

10 not so much, so its need to regive the RPED via regive of admin
outfit, so 40 is enough if, f. e., you need to fully upgrade 10 thermo
freezers for sm setup, emmiters and smes and you dont need to regive
yourself new admin outfit, clicking buttons like "delete old items",
"give outfit" and sm will not blew up on your localhost server - all
that gone, cause now your Admin RPED wont let you down
## Changelog
:cl:
qol: now Admin RPED has 40 parts each
code: now Admin outfit and Debug outfit(what is that) has AdminDebug
RPED with 40 parts, and not just tier4 RPED, which is like game thing
/:cl:
…r (#96240)

## About The Pull Request

This adds apple fritters, a breakfast food that is strikingly absent
considering we already have banana and pineapple fritters.

I decided to make them terran food (unlike the other 2 fritter types)
since they don't really fit with the martian theming.

Sprite provided by Dendydoom.

I kind of sort of updated the PR body to say I was using ArcaneMusic's
sprite but they mentioned the sprite being used was ILLEGAL and STOLEN
so I'm just going with the old one. Oops

## Why It's Good For The Game

They're a staple of pastries. Now you can consume and absorb the
nutrients of one.
## Changelog
:cl: Rhials, Dendydoom
add: Apple Fritters have been added to your local chef's cookbook!
/:cl:
## About The Pull Request
- Borg attack chain now passes modifiers to `attack_self()` so you can
check for right click & other stuff
- Omni Tool welder now won't turn on automatically when switching
between inventory slots or switching to the tool from the radial menu
- Omni Tool welder can now be turned on via LMB & not CTRL + LMB. To
switch to another tool use RMB instead when using the welder

## Why It's Good For The Game
- Closes #96213
- Closes #96214

## Changelog
:cl:
code: borg attack chain now passes modifiers to its item `attack_self()`
proc
qol: omni tool welder now won't turn on automatically when switching to
it via radial menu or using inventory button. This stops accidental
combustion in hazardous areas
qol: omni tool welder can now be turned on/off via LMB like regular
welder & not CTRL+LMB. Use RMB to open radial menu to switch to other
tools when using welder
/:cl:
@Glamyrio Glamyrio merged commit 3062d57 into master Jun 6, 2026
31 of 34 checks passed
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.