51178 Commits
Author SHA1 Message Date
Changelogs cd7fce13e7 Automatic changelog compile [ci skip] 2026-08-26 01:11:30 +00:00
Casper3667andGitHub d6f2c56e00 Fixes the case dossier files sometimes self-deleting (#23141)
As per the title. I did a mistake, whoops. I'm pretty sure this fixes
it.
2026-08-25 22:42:16 +00:00
VMSolidusandGitHub 986765fecd Fix Showers Again (#23146)
My last PR broke showers because I used the wrong start processing
macro, as I discovered while working on gas canisters. This PR fixes
showers so that they actually clean again. This time I've tested my PR
and attached screenshots to prove it works. While I was at it, I added a
simple functionality for showers to automatically turn themselves off
after 5 minutes. Ostensibly so that they won't process forever after
turned on.

Dirty character, showers are off, 4943 processing machines.

<img width="1905" height="983" alt="image"
src="https://github.com/user-attachments/assets/d587f100-9bb7-4548-94d1-ea859d1e9b9e"
/>

Shower turned on, 4944 processing machines.

<img width="1246" height="323" alt="image"
src="https://github.com/user-attachments/assets/45a8c5a8-56eb-48bd-8e49-19be01dde9ac"
/>

Character steps into shower, and is cleaned. 

<img width="1708" height="728" alt="image"
src="https://github.com/user-attachments/assets/de19b097-bc0c-40c3-9ccb-512c93ddf89e"
/>

verifying shut off time is set.

<img width="1030" height="497" alt="image"
src="https://github.com/user-attachments/assets/c9150554-9ae4-405c-9f94-5a847ad645ae"
/>
2026-08-25 17:33:17 +00:00
DreamySkrellGitHubDreamySkrell <>
8468c8210c Ship gun loader auto connects to ship gun (#23101)
.

---------

Co-authored-by: DreamySkrell <>
2026-08-25 17:32:26 +00:00
Changelogs f0161713d6 Automatic changelog compile [ci skip] 2026-08-25 01:08:43 +00:00
FabianK3andGitHub 17d6672e1c Fix buta tendon reaction (#23137)
# Summary

This PR fixes the Butazoline OD/cryo treatment reaction not properly
healing cut tendons.
2026-08-24 21:40:14 +00:00
rattydewandGitHub d32a59d614 Kitchen mapping fix (#23136)
Removes the two floating buttons left in the recent kitchen remap, and
swaps out a misplaced full tile.

<img width="196" height="138" alt="image"
src="https://github.com/user-attachments/assets/38b763d4-5117-481a-8fc3-a1d7ca3da577"
/>
2026-08-24 21:13:31 +00:00
Casper3667andGitHub 9cd197a338 Reduce warehouse psirens spawn frequency (#23120)
The relevant lore arc is over, so here is the PR to reduce it. Only a
little delayed.
2026-08-24 20:55:14 +00:00
Casper3667andGitHub 19c4fe100f Makes unathi able to drink ethanol and eat nutriments (#23119)
Per unathi lore's request.
Unathi can now eat nutriments, but it has half efficiency, while protein
was upgraded to double efficiency.
They can now also drink ethanol with no issues. Note they had an
existing ethanol weakness making them 20% more vulnerable to it compared
to humans.
2026-08-24 19:39:16 +00:00
KanoandGitHub ec5f726615 Slight refactor for wall colouring (#23123)
## About PR

- Materials no longer cache pre-coloured icons, instead this is handled
by color var. This will allow mappers to colour walls more conveniently
without resorting to code crimes

- Clears some repetitive checks in the wall code

- Adds RESET_COLOR flag to some wall overlays, so they don't inherit the
walls' color

Tested the init time with and without the changes on horizon map several
times, with away sites disabled. There's no change in speed
2026-08-24 19:38:56 +00:00
Changelogs 46aa210975 Automatic changelog compile [ci skip] 2026-08-24 01:10:33 +00:00
VMSolidusandGitHub 8e28ca63f4 Remove Shower Processing (#23134)
There's about ~5500 processing entries in the Machinery subsystem, at
any given point showers are about 50 of them. This PR just makes it so
that showers that aren't on automatically remove themselves from
processing to free up time for the machinery subsystem.
2026-08-23 21:39:29 +00:00
GeevesandGitHub 56bae6cc24 Mining Points DB Fix (#23016)
* Mining point balances are now loaded only when interacting with mining
machinery or transferring a mining point card, preventing unrelated ID
cards from querying mining point history.
* Claiming zero mining points no longer creates a persistent balance
record.

AI usage disclosure: Code committed by myself were generated using GPT
5.6 Sol.
2026-08-23 21:29:50 +00:00
antandGitHub 39007368a7 the media office returns, death to the journalist office (#23114)
linking because i dont wanna have to do the description again

https://github.com/Aurorastation/Aurora.3/pull/23100
2026-08-23 15:02:09 +00:00
Changelogs 782b6b74ed Automatic changelog compile [ci skip] 2026-08-23 01:12:49 +00:00
aecd47ee77 Fixes plane of /turf/space/transit (#23111)
it was set to 0 which is above GAME_PLANE -6 and basically everything

---------

Signed-off-by: DreamySkrell <107256943+DreamySkrell@users.noreply.github.com>
Co-authored-by: DreamySkrell <>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
2026-08-22 14:42:09 +00:00
DreamySkrellGitHubDreamySkrell <>
b6ac9fc625 Adds a generate_dirt var to areas (#23110)
changes:
- rscadd: "Adds a `generate_dirt` var to areas, to allow automatic
generating dirt on floor turfs."

---------

Co-authored-by: DreamySkrell <>
2026-08-22 14:41:57 +00:00
GeevesandGitHub 4590d7da08 Emissive LED Collar Fix (#23125)
* Turned LED collars into an emissive, it no longer renders above
everything.

<img width="114" height="127" alt="image"
src="https://github.com/user-attachments/assets/f1056359-68b8-4870-9adb-e668d942df08"
/>
2026-08-22 13:36:26 +00:00
Casper3667andGitHub 1d258388c9 The takeout box (#23068)
This adds a takeout box that can be crafted from cardboard and found in
the kitchen dinnerware vending machine.
Food (made and grown) can be put into it as well as liquid reagents to
create a meal. It cannot be taken out once put in it.
When all food in it has been eaten, it is turned into a trash item.
The box itself can be eaten from with any utensil and can be opened and
closed with alt-click or using it in-hand.

<img width="210" height="160" alt="dreamseeker_RghC7jk3th"
src="https://github.com/user-attachments/assets/92f7c4a0-f02d-496d-8fd8-ed783c6daa49"
/>

### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:
- Takeout boxes

| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/kitchen.dmi | Tomixcomics (Aurora Station) | CC-BY |
2026-08-22 13:19:45 +00:00
Casper3667andGitHub 36fd3660c6 Fixes the ops head lacking rad proofing (#23121)
The ops head is now rad proof. 
Fixes https://github.com/Aurorastation/Aurora.3/issues/22861
<img width="384" height="320" alt="billede"
src="https://github.com/user-attachments/assets/5c5646bb-23ce-4c3d-8318-1b2dd6fe6081"
/>
2026-08-22 01:24:05 +00:00
FenodyreeAvandGitHub e73f49e9e7 Slight decloner damage nerf, Tumors are now a chance (#23102)
Reduces decloner damage so it falls just under the threshold to give a
tumor, on all but the most powerful guns.

Tumors from genetic damage are now also a chance, rather than guaranteed
at any genetic damage over 10.
You are guaranteed to have at least one tumor if your limb reaches
maximum genetic damage.
2026-08-22 01:23:14 +00:00
FabianK3andGitHub 144a6a943b Revert "Refactor Get Pain" (#23118)
Reverts Aurorastation/Aurora.3#22847
2026-08-21 01:25:32 +00:00
Changelogs a0964c70a4 Automatic changelog compile [ci skip] 2026-08-21 01:11:59 +00:00
GeevesandGitHub 1fc3b2343c Gear Selection Icons (#23090)
* Gear loadout item variant selections now display item icons in a
searchable list.

<img width="988" height="779" alt="image"
src="https://github.com/user-attachments/assets/58f5704c-7445-4430-892f-145771c029b9"
/>

AI usage disclosure: Created using GPT 5.6 Sol.
2026-08-21 00:01:50 +00:00
rattydewandGitHub 855db5e362 Offsite starlight fixes + Xanu Frigate entry point fixes (#23112)
Resolves a lot of broken exterior lighting in a few offsites/offships,
inclusive of the Xanu Frigate and Ranger Corvette. Adds a few missing
entry points to the Xanu Frigate so its gunnery nacelles can be shot
from the fore.
2026-08-20 23:39:11 +00:00
rattydewandGitHub bef5be0478 Layers shutters over airlocks (#23109)
As title. I'm not sure why this was set to the layer it was, but it
meant any shutters lowered over airlocks - such as those in both
holodecks - were effectively invisible.
2026-08-20 23:38:56 +00:00
7565a99703 Fix null stat_panel read in subsystem fire (#23066)
* Please describe the intent of your changes in a clear fashion.
This PR addresses the `Cannot read null.stat_panel` error occurring in
`SSstatpanels/fire()`.

**Root Cause:**
The primary cause was a race condition during client login. A `client`
object was added to `GLOB.clients` in `client/Login()` before its
`stat_panel` member had been fully initialized. This allowed the
`SSstatpanels/fire()` subsystem, which iterates over `GLOB.clients`, to
attempt to access `target.stat_panel.is_ready()` on a `null`
`stat_panel`, leading to a runtime error. Recent changes increasing the
frequency of `stat_panel` updates exacerbated this issue.

**Solution:**
1. **Reordered Client Initialization:** In
`code/modules/client/client_procs.dm`, the line `GLOB.clients += src`
has been moved to occur *after* `stat_panel = new(src, "statbrowser")`
and `stat_panel.subscribe(...)`. This ensures that a client is only
added to the global list once its `stat_panel` is properly instantiated,
eliminating the race condition.
2. **Defensive Null Checks:** Additional null checks for `stat_panel`
have been added in `code/controllers/subsystems/statpanel.dm`:
* In `fire()`, the condition `!target.stat_panel.is_ready()` was updated
to `!target.stat_panel || !target.stat_panel.is_ready()`.
* In `refresh_client_obj_view()`, an early return
`if(!refresh.stat_panel) return` was added.

These defensive checks provide robustness against any future reordering
issues or unexpected scenarios where `stat_panel` might be null.
* Please make sure that, in the case of mapping changes, you include
images of these changes in the PR's description.
* Please make sure to mark your PR as wip or review required by making a
comment with !wip or !review required
* If you include sprites/sounds/... (assets) that you have not created
yourself specify the license and original author below.
* Ensure that you also credit them in the appropriate location /
changelog as specified in the contributor guidelines

### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:

| Path | Original Author | License |
| --- | --- | --- |
| icons/example.dmi | ExamplePerson (Example Station) | CC0 |

Fixes
[SERVER-PROD-1M4](https://aurorastation.sentry.io/issues/7547575486/?seerDrawer=true)

---------

Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2026-08-20 15:46:08 +00:00
933ae32a1a Fix: Prevent on_user_login runtime when machine is a mob (#23061)
* Please describe the intent of your changes in a clear fashion.
This PR addresses a runtime error occurring in `mob/proc/LateLogin()`
when `machine.on_user_login(src)` is called. The error happened when the
`machine` variable on a mob was unexpectedly set to a
`/mob/abstract/ghost/observer` (instead of an `/obj`), typically during
the shared dreaming (Srom) wakeup process.

The `on_user_login()` proc is defined on `/obj` but not on `/mob` types.
The fix adds a type check `isobj(machine)` before attempting to call
`machine.on_user_login(src)` in `code/modules/mob/login.dm`, ensuring
the proc is only invoked when `machine` is indeed an object, thus
preventing the 'undefined proc or verb' runtime.
* Please make sure that, in the case of mapping changes, you include
images of these changes in the PR's description.
* Please make sure to mark your PR as wip or review required by making a
comment with !wip or !review required
* If you include sprites/sounds/... (assets) that you have not created
yourself specify the license and original author below.
* Ensure that you also credit them in the appropriate location /
changelog as specified in the contributor guidelines

### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:

| Path | Original Author | License |
| --- | --- | --- |
| icons/example.dmi | ExamplePerson (Example Station) | CC0 |


Fixes
[SERVER-PROD-2SZ](https://aurorastation.sentry.io/issues/7666863585/?seerDrawer=true)

---------

Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2026-08-20 15:29:48 +00:00
Wowzewow (Wezzy)andGitHub 4839724189 Wezzy Kitchen Tweaks (#23021)
<img width="1386" height="1387" alt="image"
src="https://github.com/user-attachments/assets/374ffb1a-e367-472c-9a80-b6570236b565"
/>

<img width="1429" height="1426" alt="image"
src="https://github.com/user-attachments/assets/0240ac66-f753-472a-bd07-bc72a8a2a2d2"
/>
2026-08-19 23:56:30 +00:00
GeevesandGitHub 67eef8efa7 Smooth Progress Bar (#23093)
* Progress bars now use smooth, colour-changing fills and support visual
themes.


https://github.com/user-attachments/assets/ac493f6d-dce7-4b11-a105-985a076f4904


Ported from https://github.com/NebulaSS13/Nebula/pull/1574, which ported
from the original PR:
https://github.com/ParadiseSS13/Paradise/pull/15695

### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:

| Path | Original Author | License |
| --- | --- | --- |
| <img width="532" height="309" alt="image"
src="https://github.com/user-attachments/assets/c75a9e8f-83f4-4d28-9888-3da075598f88"
/> | [dearmochi](https://github.com/dearmochi) (ParadiseSS13) | Creative
Commons 3.0 BY-SA |

AI usage disclosure: Ported using GPT 5.6 Sol.
2026-08-19 23:04:35 +00:00
VMSolidusandGitHub 40e88e0d2d Refactor Get Pain (#22847)
This PR refactors get_pain() to be essentially performance free.
Previously it was a member of the top 5 most expensive procs.
I had to touch a metric shitton of files to make this happen. Notably
get_pain() was also 1/3rd of the entire processing cost for Mobs - Life
2026-08-19 22:50:40 +00:00
GeevesandGitHub db385f9710 Radiant Eye Damage (#22940)
* Welding arcs now damage the eyes of visible onlookers within two tiles
who are facing the welder and are not wearing eye protection.


AI usage disclosure: The code for this was created in-part using GPT 5.6
Sol.
2026-08-19 22:50:34 +00:00
GeevesandGitHub 53cb94745b Tail Hologram Fix (#23022)
* Fixed tails layering oddly in character preview, holograms, photos,
etc.

AI usage disclosure: The code for this was created using GPT 5.6 Sol.
The sprite edits were all done by myself, manually.
2026-08-19 22:50:27 +00:00
FyniandGitHub a8eebee94b Overmap Icon Fixes (#23050)
Adds the missing [!] to the gravity anomoly overmap icon and a new
psiren overmap icon, so they no longer share an icon with carp.

---------

Signed-off-by: Fyni <itsfyni@gmail.com>
2026-08-19 22:50:22 +00:00
4f27d9e777 Med Remap Quick-fixes (#23098)
Removes extra grate right above the GTR decal
Fixes broken vent right above the roller bed rack
Removes the medical sign from the recovery room
pharm requests console is no longer mounted on a window in the pharmacy
re-adds a bag of SBS to OR supplies
moves med lobby water cooler to a less weird spot
fixes the fences at the pharmacy desk queue
adds more light to ICU
adds a ringer button to outside of ICU
adds a button to toggle door bolts on the ICU airlock

---------

Signed-off-by: ASmallCuteCat <neofelisnebulosa128@gmail.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
2026-08-19 22:50:14 +00:00
6cd7332292 BAPI - mapmanip directional submap insert marker (#23080)
```
changes:
  - rscadd: "Directional submap insert marker."
```

<img width="1691" height="585" alt="image"
src="https://github.com/user-attachments/assets/b3d734f8-d23d-449a-bd17-9397f5b81139"
/>

---------

Signed-off-by: DreamySkrell <107256943+DreamySkrell@users.noreply.github.com>
Co-authored-by: DreamySkrell <>
Co-authored-by: AuroraBuildBot <action@github.com>
Co-authored-by: FabianK3 <21039694+FabianK3@users.noreply.github.com>
2026-08-19 22:08:30 +00:00
DreamySkrellGitHubDreamySkrell <>
b03dfab8f6 Mapmanip script output gitignore (#23084)
Co-authored-by: DreamySkrell <>
2026-08-19 22:08:15 +00:00
FenodyreeAvandGitHub 0ab602f7c6 Fixes technomancer apportation (#23099)
- bugfix: "Fixes technomancer's apportation spell. It now grabs mobs
instead of runtiming and has a cooldown."


https://github.com/user-attachments/assets/c832934f-45dd-49f9-a5b2-80296d4e9f31
2026-08-19 19:52:58 +00:00
GeevesandGitHub bb6f125f1e Airlock Controller Stuff (#23087)
* Airlock controllers now display controller and door power, door and
bolt status, pump activity, the current cycle phase, and unresponsive
equipment.

<img width="508" height="350" alt="image"
src="https://github.com/user-attachments/assets/06200c0b-10ce-4b7a-8b26-ec3fb5df753f"
/>
<img width="488" height="339" alt="image"
src="https://github.com/user-attachments/assets/4dca7188-baf7-4abc-a241-a20fe3610ca0"
/>


AI usage disclosure: The code for the tweaks here was created using GPT
5.6 Sol.
2026-08-19 18:13:05 +00:00
DreamySkrellGitHubDreamySkrell <>
27be532e9a External Airlock Marker (#23075)
makes `/obj/effect/map_effect/marker/airlock` into `ABSTRACT_TYPE()`

for better organization and stuff

adds:
```
/// External airlock marker, for non-docking non-shuttle airlocks.
/// Just a plain external access airlock.
/obj/effect/map_effect/marker/airlock/external
```

---------

Co-authored-by: DreamySkrell <>
2026-08-19 18:11:45 +00:00
FenodyreeAvandGitHub d5e38f9fc0 EMPs check armour and drain less cell power (#23053)
Any ion currently oneshots a mech, by draining it's power cell to zero.

The amount of cell power drained is now random, up to the max charge of
the cell for a heavy EMP.
Up to half the max charge of the cell for a light EMP.

This PR makes EMPs respect energy armour, as the description of energy
armour says they should.

Energy armour is averaged across the mob, weighted for limb size.
This is then the chance to downgrade the EMP.
A heavy EMP can be downgraded into a light EMP, but no further.
A light EMP can either be negated completely, or only affect the mob's
contents.

Eg. A human wearing Ablative armour, (Energy 40), gives a 33% chance to
downgrade a heavy EMP to a light, as it leaves the hands and feet
uncovered.

The same mob struck by a light EMP has a 33% chance to have the EMP only
affect it and not it's contents (internal organs), if that is
successful, there is a further 33% chance to negate the EMP completely.

This means a mech with EM armour is guaranteed to downgrade a heavy EMP
to light, and to ignore light EMPs completely.

All other types of mech armour have Energy 10.

Almost all EMPs are heavy, with the edge of EMP grenades being the only
source of a light EMP.

Ion rifles EMP the target twice, 8 heavy EMP's downgraded to light, will
still seriously damage an unpowered EM armoured mech.

---------

Signed-off-by: FenodyreeAv <fenodyree.av@gmail.com>
2026-08-19 18:10:42 +00:00
984c308e09 Fix ammo pile scatter crash (#23062)
* Please describe the intent of your changes in a clear fashion.
Addresses a "list index out of bounds" error occurring in
`obj/item/ammo_pile/proc/remove_ammo` when
`obj/item/ammo_pile/proc/scatter()` was called.

The root cause was a race condition where `scatter()` iterated over the
`ammo` list and called `remove_ammo()` for each item. `remove_ammo()` in
turn called `check_ammo()`, which would `qdel(src)` (and thus empty the
`ammo` list) when only one round remained. This left `scatter()` to
continue its loop and call `remove_ammo()` on an already empty list,
leading to the crash.

The fix rewrites `scatter()` to directly handle the unregistering of
signals, force-moving, and throwing of each bullet. After all bullets
have been processed, the `ammo` list is cleared, overlays are cut, and
the pile is `qdel`'d. This avoids the problematic mid-loop calls to
`remove_ammo()` and `check_ammo()`, preventing the list index out of
bounds error.
* Please make sure that, in the case of mapping changes, you include
images of these changes in the PR's description.
* Please make sure to mark your PR as wip or review required by making a
comment with !wip or !review required
* If you include sprites/sounds/... (assets) that you have not created
yourself specify the license and original author below.
* Ensure that you also credit them in the appropriate location /
changelog as specified in the contributor guidelines

### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:

| Path | Original Author | License |
| --- | --- | --- |
| icons/example.dmi | ExamplePerson (Example Station) | CC0 |


Fixes
[SERVER-PROD-3N](https://aurorastation.sentry.io/issues/7405041136/?seerDrawer=true)

---------

Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2026-08-19 18:10:10 +00:00
81c4eb2b79 Fix reagent temperature mismatch crash (#23063)
* Please describe the intent of your changes in a clear fashion.
This PR addresses a crash (`SERVER-PROD-2R6`) caused by a temperature
mismatch when adding new reagents, particularly in low-volume metabolism
holders.

The root cause was identified as a combination of:
1. A coarse rounding guard in `set_thermal_energy` that discarded
small-but-valid thermal energy changes.
2. A temperature assertion in `add_reagent` that was too sensitive to
floating-point inaccuracies.
3. The `nicotine` reagent lacking an explicit `fallback_specific_heat`.

Changes implemented:
- **`code/modules/reagents/Chemistry-Temperature.dm`**: Modified
`set_thermal_energy` to remove the `round(delta, 1)` guard. Now,
`if(!delta)` is used, allowing small, non-zero energy changes to be
processed.
- **`code/modules/reagents/Chemistry-Holder.dm`**: Updated the
temperature assertion in `add_reagent` from `round(temperature, 1) !=
round(get_temperature(), 1)` to `abs(temperature - get_temperature()) >
0.1`. This provides a more robust, tolerance-based comparison.
-
**`code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm`**:
Added `fallback_specific_heat = 1.67` to
`/singleton/reagent/mental/nicotine` to ensure it has a proper specific
heat value.

* Please make sure that, in the case of mapping changes, you include
images of these changes in the PR's description.
* Please make sure to mark your PR as wip or review required by making a
comment with !wip or !review required
* If you include sprites/sounds/... (assets) that you have not created
yourself specify the license and original author below.
* Ensure that you also credit them in the appropriate location /
changelog as specified in the contributor guidelines

### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:

| Path | Original Author | License |
| --- | --- | --- |
| icons/example.dmi | ExamplePerson (Example Station) | CC0 |


Fixes
[SERVER-PROD-2R6](https://aurorastation.sentry.io/issues/7661064998/?seerDrawer=true)

---------

Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2026-08-19 18:09:57 +00:00
0a16ab6564 Fix carp migration hard delete (#23064)
* Please describe the intent of your changes in a clear fashion.
This PR addresses issue SERVER-PROD-12K by correcting a hard delete
warning related to `/mob/living/simple_animal/hostile/carp` during the
carp migration event.

Previously, in `code/modules/events/carp_migration.dm`, the `end()` proc
was calling `qdel(carp_weakref)` instead of `qdel(fish)`. This meant the
weakref datum was being deleted, but the actual carp mob was left
without a proper `qdel()` call, leading to BYOND's garbage collector
performing a 'hard delete' and logging a warning.

The fix changes `qdel(carp_weakref)` to `qdel(fish)` on line 103,
ensuring the carp mob is correctly soft-deleted when the event ends.

* Please make sure that, in the case of mapping changes, you include
images of these changes in the PR's description.
(No mapping changes in this PR)
* Please make sure to mark your PR as wip or review required by making a
comment with !wip or !review required
* If you include sprites/sounds/... (assets) that you have not created
yourself specify the license and original author below.
* Ensure that you also credit them in the appropriate location /
changelog as specified in the contributor guidelines

### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:

| Path | Original Author | License |
| --- | --- | --- |
| icons/example.dmi | ExamplePerson (Example Station) | CC0 |
(No new assets included in this PR)

Fixes
[SERVER-PROD-12K](https://aurorastation.sentry.io/issues/7522667244/?seerDrawer=true)

---------

Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2026-08-19 18:09:28 +00:00
Changelogs 40d14d34f1 Automatic changelog compile [ci skip] 2026-08-20 01:08:04 +00:00
KanoandGitHub 2ef48f07a9 Tweaks turf add overlay logic (#23071)
## About PR

Makes it so when a turf calls the overlay subsystem (if overlay layer
was left as default) it'll add overlays slightly above the turf layer.
With this we'll no longer have the silly issue where turf smoothing
overlays appear under the adjacent turfs depending on turf load order

In short, here's what it fixes

Before:

<img width="396" height="601" alt="Screenshot_10"
src="https://github.com/user-attachments/assets/91708402-c6c6-433f-af9f-5293ce926731"
/>

After:

<img width="391" height="598" alt="Screenshot_9"
src="https://github.com/user-attachments/assets/556d48dd-d463-4f76-b075-f0d77340e837"
/>

---

to-do:
- [x] Figure out whether to change `is_plating()` check method or add
the missing `initial_flooring` for every exoplanet turf type since this
plays a role in deciding decal layer, suffer as both paths are equally
agonizing
2026-08-19 18:08:28 +00:00
85ec63da94 Fix IPC posibrain die() null transfer (#23060)
* Please describe the intent of your changes in a clear fashion.
The `die()` proc for the positronic brain
(`/obj/item/organ/internal/machine/posibrain/die()`) was attempting to
transfer `owner.mind` to `stored_mmi.brainmob` without first checking if
`owner.mind` was null. This led to a runtime error (`Cannot execute
null.transfer to().`) when the IPC mob was mindless (e.g., an NPC, a
disconnected player, or if the mind had already been transferred).

This change adds a null-check (`if(owner.mind)`) around the
`transfer_to()` call in `die()` at line 103 of `posibrain.dm`. This
prevents the error by ensuring the transfer only occurs when a mind
object actually exists, mirroring the safe pattern already present in
the `removed()` proc.
* Please make sure that, in the case of mapping changes, you include
images of these changes in the PR's description.
* Please make sure to mark your PR as wip or review required by making a
comment with !wip or !review required
* If you include sprites/sounds/... (assets) that you have not created
yourself specify the license and original author below.
* Ensure that you also credit them in the appropriate location /
changelog as specified in the contributor guidelines

### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:

| Path | Original Author | License |
| --- | --- | --- |
| icons/example.dmi | ExamplePerson (Example Station) | CC0 |


Fixes
[SERVER-PROD-RG](https://aurorastation.sentry.io/issues/7496141971/?seerDrawer=true)

---------

Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2026-08-19 18:07:53 +00:00
GeevesandGitHub 1b93c850ca Hivebot Beacon Heisenbug Fix (#23082)
fixes a heisenbug related to hivebot beacons and their smoke spawning in
2026-08-19 18:04:41 +00:00
rattydewandGitHub 3e7ea58013 Versebook onmob fix (#23108)
Fixes versebook onmobs.
2026-08-19 18:04:27 +00:00
BatrachophrenoandGitHub 96d9151817 Post-Arc Bugfixes, Non-Sea Balance, etc. (#22836)
Fixes bugs associated with Lemurian Sea. Former test merge PR
2026-08-19 17:35:13 +00:00