Commit Graph
33915 Commits
Author SHA1 Message Date
VMSolidusandGitHub b383b8799e Another Observer Hard Del Fix (#22284)
Another and hopefully my last fix for the Observer hard dels. This
probably but might not also clear the Storyteller harddel since they're
an observer child. But I dunno. I have actually tested this.

<img width="670" height="435" alt="image"
src="https://github.com/user-attachments/assets/41e75448-211d-429b-b694-43b9d025e996"
/>
2026-04-19 05:28:57 +00:00
Casper3667andGitHub deab6b4e99 A large set of ops program fixes + elevator ghost sound fix (#22278)
- bugfix: "Fixed the operations status display screens not showing the
elevator status."
- bugfix: "Fixed the cargo delivery program not displaying the account
that was used to pay for an order with."
- bugfix: "Fixed the cargo delivery program not displaying shipped
orders regardless of payment status."
- bugfix: "Fixed the ghostly ambience on the operations lift and the
lift near security."
- bugfix: "The operations program now displays the elevator time in
seconds instead of minutes, given the minutes would always show 0."
2026-04-19 05:28:40 +00:00
VMSolidusandGitHub 90ceccb06b ID Card Hard Del (#22276)
Fixes a hard del related to ID cards. Yet another of the "extremely tiny
hard dels".
2026-04-19 05:28:28 +00:00
VMSolidusandGitHub fbcaf7168d Bioaug Hard Del Fix (#22273)
This PR fixes a hard del related to any kind of direct organ replacement
via loadouts, which it turns out all of them were doing. But it was most
commonly showing up with bioaugs because the boosted heart and boosted
liver are the only organs besides custom items that replace an internal
organ during loadouts spawning.
2026-04-19 05:28:15 +00:00
VMSolidusandGitHub 83f2c7922a Mob Human Timers Cleanup (#22272)
Just cleaning up some Mob Human related timers that occasionally hard
del(). Fixing the /mob/living/carbon/human hard del completely is
proving to be a challenge because there's just so many damn things that
could possibly cause it that there's really no definitive source for it
without having the reference logging enabled.
2026-04-19 05:27:39 +00:00
VMSolidusandGitHub 32a6a7fabe Ntnet Hard Del (#22271)
Fixes a harddel() related to PDA chat channels.
2026-04-19 05:27:10 +00:00
VMSolidusandGitHub d44e759a2a Exploding Mob Hard Del (#22269)
This PR fixes a hard del related to mobs that explode into scrap on
death, such as maintenance drones, icarus drones, and hivebots. I have
actually tested this.

<img width="1409" height="693" alt="image"
src="https://github.com/user-attachments/assets/9daf9bff-45f3-44ef-8940-08d3bee13726"
/>

And all this work, but I'm now scraping the barrel of hard deletes, and
this would have only saved 5 seconds of lag during the most recent
odyssey round.

<img width="479" height="905" alt="image"
src="https://github.com/user-attachments/assets/e819e520-1f51-4c0e-9d99-0de6773b265c"
/>
2026-04-19 05:26:08 +00:00
BatrachophrenoandGitHub 310a0bbe78 Status Displays show ship time by default at round start (#22263)
See title. Status displays still attempt to provide arrivals shuttle
timer on init, resulting in blank screens; this PR fixes that.
2026-04-19 05:25:56 +00:00
runecapandGitHub fe15943c1f Telepad's Set GPS Memory actually functions now (#22257)
This has been a clickable button on the telepad control console for
literally over a decade with its own variable within GPSes, and I think
the original coder just forgot to have it display. It's going down as a
bugfix because of this, var/locked_location is literally never used
otherwise.

Telescience was reworked to use portals years ago specifically so using
GPSes isn't risk-free, but portals make having a valid destination
_mandatory_, so this won't really remove risk as it just removes tedium.
For the other 4 telescientists, rejoice.
<img width="583" height="490" alt="image"
src="https://github.com/user-attachments/assets/db7e2be4-9b08-419a-b50c-7cef1922ff8c"
/>
2026-04-19 05:25:27 +00:00
FenodyreeAvandGitHub 8d92c62a1f Fixes one handed firing dispersion penalties (#22252)
Fixes One Handed Dispersion & Accuracy penalties only applying to full
auto.
Removes one handed penalty from guns that can only be fired one handed.

<img width="903" height="201" alt="image"
src="https://github.com/user-attachments/assets/5306410b-6ecf-43fe-bf5c-f7a2d407ca27"
/>
<img width="904" height="201" alt="image"
src="https://github.com/user-attachments/assets/9e9d243c-5daa-410e-89f7-aad23b1256bc"
/>

The STS dispersion penalty (the worst, except for the light machine gun)
is 5, 5, 15.
So short bursts from the STS one handed have: 
79%, 79%, 41%, 41%, 41% chance to hit at 7 tiles.
Down from:
100%, 100%, 58%, 58%, 58% chance to hit at 7 tiles.

As the first 2 shots of your burst are still 100% accurate, this gives a
very tiny reason to actually wield your STS, if you're shooting bursts
at max range.
2026-04-19 05:24:46 +00:00
1562a3871c Adds Drosiá Soda! (#22183)
Adds Drosiá Cherry soda, and refluffs the grape soda to Drosiá Grape!
Assunzione's very own soft drinks.

Both are available on random yokes, or from the Commissary.

---------

Signed-off-by: Fyni <itsfyni@gmail.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
2026-04-19 05:23:38 +00:00
260f744906 Skills System Revival: The Things She Remembered Had Never Been Her Own (#21853)
This PR is a revisit to the previously derelict PR #20159 that has been
unfinished for sometime now. More details about it in general can be
found here:
https://github.com/orgs/Aurorastation/projects/2?pane=issue&itemId=53167153

For awhile I've been talking about "Things I've been doing but it would
be really nice to do them with a skills system", or "And here's how I
would put this into the skills system when it's done". The main thing
that was stopping me from building it myself was having poor real life
skills in UI code and in DB code. However, I've gotten permission to
resume this PR, which has already completed the steps I would not have
been able to do myself. The rest of the PR fits well into my skillset as
a dev.

I'm opening this PR as a draft so as to enable my dev environment to
locally track all the previously modified files. I'll take this PR out
of draft and give this a full writeup when I have more work to show for
the PR this weekend.

### TODO

- [x] Rework a decent chunk of the currently existing skills to no
longer require hardcoded inserts into other systems. EG, converting from
classical ss13 methods, to modern /tg/-style ECS coding methods that
work off of component-signal patterns.
- [x] Make sure all of the existing skills have actual game
functionality (I won't PR a 2016 Baystation12 situation where 90% of the
skills are fluff only)
- [x] Add the various skills not yet made but are necessary for
completion sake, EG: Pilot (Spacecraft), Gunnery, Pilot (Walkers).
- [x] Examine each existing job in the game and assess whether it should
have a skill made with it in mind, or if it's covered by an existing
skill.
- [x] TO DISCUSS, BUT NOT ESSENTIAL: Additional skill proposals not
currently in the pre-existing TODO list, proposing subcategories.
- [x] Ensure that the previous TODO list is completed.

### Current Skills
The current list of skills, checkmarked for if I've completed them/they
have actual game mechanics. Or if we're just relegating them to separate
PRs. Originally this list was going to be forced to visit for a bare
minimum "does at least one thing" requirement, but now that is being
forgone due to this PR ballooning out of control and in complexity, as
well as development time overruns.

- [x] Bartending
- [x] Cooking
- [x] Gardening
- [x] Entertaining
- [x] Electrical Engineering
- [x] Mechanical Engineering
- [x] Atmospherics Systems
- [x] Reactor Systems
- [x] Medicine
- [x] Surgery
- [x] Pharmacology
- [x] Anatomy
- [x] Forensics
- [x] Robotics
- [x] Pilot: Spacecraft
- [x] Pilot: Exosuits
- [x] Research
- [x] Xenobotany
- [x] Xenoarchaeology
- [x] Xenobiology
- [x] Unarmed Combat
- [x] Armed Combat
- [x] Firearms
- [x] Leadership

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: FabianK3 <21039694+FabianK3@users.noreply.github.com>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
2026-04-18 14:33:48 +00:00
Casper3667andGitHub 2948b1dc87 Fixes the citizenship check for factions (#22243)
Now the new faction window will properly display if a nation can't be
selected due to the citizenship of a char.
2026-04-18 01:55:17 +00:00
VMSolidusandGitHub 3be57b7e18 Another LED Collar Fix (#22245)
This PR fixes LED collars reverting to the old light settings when
changing their color.
2026-04-18 01:55:06 +00:00
d5931c5ffe Adds an universal object health system. (#21266)
https://www.youtube.com/watch?v=ZpUYjpKg9KY

As per title. The goal is to add health to most objects in the game and
thus allow them to be dynamically destructible, while also avoiding
shitcode like each structure having its own snowflake health update
proc.

---------

Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
2026-04-16 23:22:08 +00:00
BatrachophrenoandGitHub 1d2871729f Internals runtime bugfix (#22259)
Fixes https://github.com/Aurorastation/Aurora.3/issues/22254

Adds lines missing from
https://github.com/Aurorastation/Aurora.3/pull/22224! Last change did
not go through, causing runtime when enabling internals w/ CO2 jetpack.
VSCode moment.
2026-04-16 20:05:43 +00:00
b96e4a6e5b Four new whiteboard drawings (#22218)
# Summary

This PR adds four new whiteboard drawings: SCCV Horizon, Navigation
chart, Task list and thrust diagram.

*Mini Horizon my beloved.*

## Preview

<img width="170" height="106" alt="Screenshot 2026-04-12 210202"
src="https://github.com/user-attachments/assets/d7755f4c-7aca-40e1-b776-81c53c7beba5"
/>

<img width="167" height="96" alt="Screenshot 2026-04-12 210232"
src="https://github.com/user-attachments/assets/0c790fe8-7c92-4892-bc72-1345c34770e3"
/>

<img width="170" height="99" alt="Screenshot 2026-04-12 210244"
src="https://github.com/user-attachments/assets/a196ce31-3953-4d9d-84bc-3933540f630c"
/>

<img width="160" height="95" alt="Screenshot 2026-04-12 210218"
src="https://github.com/user-attachments/assets/486cade4-a9df-43ac-bb6b-c937fba095e8"
/>

---------

Signed-off-by: FabianK3 <21039694+FabianK3@users.noreply.github.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
2026-04-15 19:46:36 +00:00
Casper3667andGitHub 3cd75fed16 Fixes APC not resetting properly after electric storms (#22244)
As per the description.
2026-04-15 15:06:47 +00:00
SleepyGemmyandGitHub d04d14532d Fix Watches and Add Ashtrays Examine Hint (#22219)
fixes watches referring to bluespace during the roundend timer, ashtrays
not having a examine hint about emptying vs putting it into a disposal,
and ashtrays not giving a feedback message when trying to empty a empty
one.

fixes #22209 and fixes #22215.
2026-04-15 15:06:40 +00:00
BatrachophrenoandGitHub c50a2d9c69 Internals tank co2 check (#22224)
Fixes https://github.com/Aurorastation/Aurora.3/issues/22170

This PR disqualifies any tank with distribute_pressure set to 0 from
being considered by Internals when determining the 'best' tank
available. This currently only affects CO2 jetpacks.

This PR also adds a few cases where using the atmos analyzer on a tank
didn't update its manipulated_by var.
2026-04-15 15:06:38 +00:00
Matt AtlasandGitHub 54f1cd9896 Revert "TGUI Alert Button List Cleanup" (#22230)
doesn't work
2026-04-13 21:21:57 +00:00
03f313a19d Moves various things to the new DBCore (#21544)
```
- server: "Changed the synthsprites to use the new DBCore"
- server: "Changed the MalfAI to use the new DBCore"
- server: "Changed the Alien Whitelists to use the new DBCore"
- server: "Changed the Requests Console to use the new DBCore"
- server: "Changed the Contracts Uplink to use the new DBCore"
- server: "Changed the Admin Ranks to use the new DBCore"
- server: "Changed the Job Bans to use the new DBCore"
- server: "Changed the Tickets to use the new DBCore"
- server: "Changed the Create Command Report to use the new DBCore"
- server: "Changed the WebInterface interconnect to use the new DBCore"
- server: "Changed the CCIA Recorder to use the new DBCore"
- server: "Changed the IPCTags to use the new DBCore"
- server: "Changed the Main Menu Poll-Check to use the new DBCore"
- server: "Changed the Client-Procs to use the new DBCore"
```

---------

Co-authored-by: Werner <Arrow768@users.noreply.github.com>
2026-04-13 22:45:29 +02:00
BatrachophrenoandGitHub 17721ddae4 Warehouse submap tuneup (#22187)
Makes several small changes to the warehouse submaps; primarily, this
reworks the 'radioactive waste' submap such that the radiation it
produces does not fill the rest of the warehouse. In future, more
hazardous submap content should be restored with some changes made to
the warehouse itself to both improve signalling and workarounds, but for
now, we'll be nice to the hangar techs.

While working in the submaps, some that were not very interesting were
removed (such as the ship gun and cars), and others were added or
modified, largely based on feedback from TheGreyWolf. Examples of such
modifications were the inclusion of a crate of music cartridges in the
'entertainment electronics' submap, which hadn't existed before.

changes:
- qol: "Warehouse submap compartment shutter now spawns closed by
default."
- qol: "Warehouse submap compartment walls are now reinforced walls for
radiation blocking."
- qol: "Modifies several warehouse submaps; removes static objs like
ship weapon and cars, increase variety of existing content, removes a
few lore-unfriendly items, tunes radiatioactive waste submap, etc."
  - bugfix: "Acid barrel now spawns with acid in it."
2026-04-13 18:35:03 +00:00
BatrachophrenoandGitHub b3b9223617 Custom item implementation (Shigaraz Hiskyn) (#22182)
Implements custom engineering voidsuit, engineering voidsuit helmet,
modkit for same, and poncho for Shigaraz Hiskyn.

[Forum
thread](https://forums.aurorastation.org/topic/22880-shigaraz-hiskyns-custom-voidsuit/)

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
2026-04-13 17:27:35 +00:00
BatrachophrenoandGitHub adfa7b44d4 Fix Light Sensitivity Proc (#22223)
Guess how many people play characters with the Light Sensitive trait who
also have mechanical eyes? At least one, me.

Well it turns out my original implementation ends with your augs
poisoning you because it didn't check for whether your eyes autoheal.

Removed the 1 damage from the fluorescents being too bright.
2026-04-13 12:31:24 +00:00
sentry[bot]GitHubsentry[bot] <39604003+sentry[bot]@users.noreply.github.com>Arrow768
dd866ef58b TGUI Alert Button List Cleanup (#22207)
* Please describe the intent of your changes in a clear fashion.
Fixes
[SERVER-PROD-4](https://sentry.io/organizations/aurorastation/issues/7404427517/).
The issue was that the `QDEL_NULL` macro was used on a list variable,
causing `qdel` to error when a list was passed directly. To resolve
this, `QDEL_NULL(buttons)` was replaced with `buttons = null` in
`/datum/tgui_alert/Destroy`. This refactors the cleanup of the buttons
list during alert destruction. This fix was generated by Seer in Sentry,
triggered by Werner. 👁️ Run ID: 13170119. Not quite right? [Click here
to continue debugging with
Seer.](https://sentry.io/organizations/aurorastation/issues/7404427517/?seerDrawer=true)
* 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 |

---------

Signed-off-by: Arrow768 <1331699+Arrow768@users.noreply.github.com>
Co-authored-by: sentry[bot] <39604003+sentry[bot]@users.noreply.github.com>
Co-authored-by: Arrow768 <1331699+Arrow768@users.noreply.github.com>
2026-04-13 12:31:02 +00:00
FabianK3andGitHub 4e4c4c4905 Fix admin spawn verb (#22178)
# Summary

This PR adds a argument check to the spawn verb to prevent server lag
caused by searching all atoms.

## Changes

- Added length check to admin Spawn verb.
2026-04-13 12:30:43 +00:00
VMSolidusandGitHub ba0bb16435 Some Projectile Code Cleanup (#22217)
Cleaning up some memory leaks due to projectiles. This one I've actually
made by hand.
2026-04-12 22:20:07 +00:00
VMSolidusandGitHub 49467a332f Stop Sheet Snatcher Spam (#22180)
There's like 8 different items in the game that go in a sheet snatcher.
If the intended purpose of the Sheet Snatcher is to grab all of the
material sheets from a giant pile of random crap in the warehouse, then
it spamming the chat is apparently incredibly useless. This PR was
requested to me by some warehouse mains.

<img width="425" height="85" alt="image"
src="https://github.com/user-attachments/assets/427c2426-6784-4377-8d59-1aa8d7469409"
/>
2026-04-12 22:19:54 +00:00
VMSolidusandGitHub ea0063a4d4 Stop Drugs Spam (#22197)
closes #22119

Drugs are just ungodly spammy in general, this PR puts a stop to that by
limiting the rate at which your chat can be flooded with "YOU FEEL
AWESOME!" messages.

<img width="1248" height="632" alt="image"
src="https://github.com/user-attachments/assets/3ecc81fa-4bd6-4422-b55b-7d07bbe2498e"
/>
2026-04-12 22:19:50 +00:00
VMSolidusandGitHub 1daf9000f0 Fixed Spammy Pointless Signals Runtime Error (#22204)
<img width="1233" height="377" alt="image"
src="https://github.com/user-attachments/assets/6e267bec-cf6a-4c8b-8371-e0347068d7eb"
/>

Literally pointless runtime error, except this time I'm disabling it
without making it harder to port stuff from TG.
2026-04-12 22:19:42 +00:00
VMSolidusandGitHub 04234f70d0 Revenge Of The Pants (#22205)
I have actually tested this PR to verify it. Thanks to Sentry for
finally giving me the data point needed to figure out where the hell the
bug was coming from. It turns out the culprit for The Pants Hard Delete
was people accidentally saving Abstract Pants in their loadout, which
would immediately produce a runtime error when the game attempts to add
them to the chargen dummy.

<img width="655" height="560" alt="image"
src="https://github.com/user-attachments/assets/6b4028a2-0661-4479-a9a5-03cc7157e5f7"
/>
2026-04-12 22:19:40 +00:00
VMSolidusandGitHub 3acc659bbd Simple Hostile HardDel Cleanup (#22208)
<img width="1919" height="985" alt="image"
src="https://github.com/user-attachments/assets/f10f6e84-65e3-4a73-b977-4017aca5169a"
/>

I have also actually tested this PR. This PR cleans up Hostile Mob code,
removing **several** hard del conditions that were universal across all
hostile mobs, as well as a few individually specific simple mobs that
weren't cleaning up overlay images correctly. While I was at it, I
removed some verifiably unused vars from hostile mobs.
2026-04-12 22:19:38 +00:00
VMSolidusandGitHub 218baee161 Another Turf Hand Fix (#22211)
<img width="385" height="397" alt="image"
src="https://github.com/user-attachments/assets/fa4d574e-74dc-4cb1-b2a9-d06bce6bde3f"
/>

Blast doors are counted as doors, and so were capable of intercepting
the turf hand click, even though they have no hand interaction. This
meant that most doors which had shutters sharing their tile could not be
closed via clicking the tile underneath them. There's a simple fix to
that, and it's exempting shutters from turf hand (which you can't close
them by clicking on them anyway)
2026-04-12 22:19:37 +00:00
VMSolidusandGitHub c5a8107322 BST Hard Dels (#22212)
Another PR for Bluespace Techs, this time swapping them to hold a
weakref to their original mob. There's a ton of code in BSTs that can
create race conditions with all their associated Destroy() procs, so
swapping them to weakref methods should significantly cut down on that.
2026-04-12 22:19:35 +00:00
1a1a875bdb Revenge Of The Instruments (#22213)
Take 2

<img width="320" height="149" alt="image"
src="https://github.com/user-attachments/assets/21e45078-ef69-4b3c-8b50-208800b82558"
/>

It somehow got even worse over time.

<img width="311" height="164" alt="image"
src="https://github.com/user-attachments/assets/882d9a8e-16f1-4172-9c7b-f741d5bede8d"
/>

And now I have finished fixing it by hand and testing to verify that my
fixes work.


https://github.com/user-attachments/assets/0106593b-4b3f-4e7d-88f0-86c4b22571ff

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
2026-04-12 22:19:33 +00:00
VMSolidusandGitHub aeee6aa3ef Water Hard Del Fix (#22210)
Small mistake that makes fire extinguishers cause a hard delete. Water
effects were nulling the effect reagents before calling their parent,
but then their parent attempts to QDEL_NULL(reagents) a reference that
it can no longer correctly cleanup. The simple solution was to get rid
of the Destroy() override on effect/water since it wasn't needed.
2026-04-12 22:19:13 +00:00
ba9f358d65 Commune can now be used on adjacent objects to store & later send a mental image of their icon and examine (#22171)
Initially inspired by Show-Held-Object, hence the branch name, but this
doesn't actually make a hyperlink for it.

With a mental image stored, Commune can also be activated to "warp" and
(ONLY) add to the image's description or clear a previous warp.
Everything here is already canon (encouraged, actually
https://wiki.aurorastation.org/index.php/Skrell#Telepathy | "Telepathy
is versatile, and you can convey IMAGES, sounds, emotions, and
sensations along with regular speech.)" and technically mechanically
possible, just done through "You see X" phrasing in normal Commune.

Slightly unique sensitivity checks for low targets having a 60% chance
to not even get the icon and separate, varying amounts of scrambling for
object name, note description, and warp description. Standard targets
will get a blue message that can pass as an actual examine at a glance
Low-Sensitivity (and sender's message)
<img width="758" height="160" alt="image"
src="https://github.com/user-attachments/assets/39235fc4-91dc-4d73-ba26-90f116068ea2"
/>
Standard
<img width="765" height="140" alt="image"
src="https://github.com/user-attachments/assets/a1778983-1208-47bd-a4a7-0fac6e428cc4"
/>
High/Psion (and a warped description)
<img width="656" height="83" alt="image"
src="https://github.com/user-attachments/assets/a6a2dcac-6db0-4627-8c53-c837241907ba"
/>

---------

Signed-off-by: runecap <43975590+runecap@users.noreply.github.com>
Co-authored-by: Cody Brittain <1779662+Generalcamo@users.noreply.github.com>
2026-04-12 12:52:59 +00:00
BatrachophrenoandGitHub 1e250373b1 Fixes light sensitivity origin traits behaviors not firing (#22172)
Light sensitivity traits (either to excess of light or absence of light)
were not firing, because they were tucked behind a 0.1% chance prob for
an unrelated spooky noise proc if you're in pitch black.

Did some testing and found a prob value that was infrequent but not
absent. Also added a little visual effect for the light-sensitive one
(similar to v minor flash, which is 1 eye dmg that immediately heals & a
very brief translucent grey overlay).
2026-04-12 12:52:50 +00:00
sentry[bot]GitHubsentry[bot] <39604003+sentry[bot]@users.noreply.github.com>Arrow768
0dcc582f1b Fix human damage pain check (#22206)
* Please describe the intent of your changes in a clear fashion.
Fixes
[SERVER-PROD-8](https://sentry.io/organizations/aurorastation/issues/7404514309/).
The issue was that: Mob's `adjustHalLoss` compares HUD `pain` object to
integer, instead of organ's numeric `pain`.

- Corrected pain check from local 'pain' variable to 'E.pain' when
healing damage.
- Ensures the pain attribute of the specific entity 'E' is referenced.

This fix was generated by Seer in Sentry, triggered by Werner. 👁️ Run
ID: 13169977

Not quite right? [Click here to continue debugging with
Seer.](https://sentry.io/organizations/aurorastation/issues/7404514309/?seerDrawer=true)

* 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 |

---------

Signed-off-by: Arrow768 <1331699+Arrow768@users.noreply.github.com>
Co-authored-by: sentry[bot] <39604003+sentry[bot]@users.noreply.github.com>
Co-authored-by: Arrow768 <1331699+Arrow768@users.noreply.github.com>
2026-04-11 23:52:47 +02:00
VMSolidusandGitHub 68892b7fb0 Implanted HUD Flicker Fix (#22191)
closes #22079 
closes #21945

This bug was also my fault, and it happened when I decoupled organ
processing from the life() tick to prevent organs being processed twice.
Since Huds were generated during the Life() tick, but implants were
adding the Hud during Process(), a flicker occured whenever they fired
out of sync, with the Life() tick erasing the hud and Process() adding
it back. To significantly cut down on the time complexity of having to
iterate and fire every HUD producing implant and component during
Life(), I've instead reworked it into a Signal that permits the HUD
implants to inject hud elements into the Life() codepath dynamically.

Here is the fix in action now.


https://github.com/user-attachments/assets/18ccc80d-cb5f-4fd7-9ad5-28c91acf6ca5
2026-04-11 14:24:34 +00:00
VMSolidusandGitHub 676919b876 Turf Hand Fixing (#22189)
Yea this bug was my fault. Here's it fixed. You can now once again close
airlocks by clicking on the turf underneath them.


https://github.com/user-attachments/assets/edd0f178-1ea8-4b3a-86a4-2481660d36fd
2026-04-11 14:24:24 +00:00
2012165f72 CCIA Universal Translator (#22192)
closes #22082

This PR makes it so that reading faxes via the admin commands bypasses
the language system, effectively giving Admins and CCIA a universal
translator for faxes.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
2026-04-11 13:13:51 +00:00
VMSolidusandGitHub 5029d5a81b Instrument Memory Leak Hotfix (#22199)
<img width="325" height="156" alt="image"
src="https://github.com/user-attachments/assets/32814c7b-e068-4ac2-863c-3d58ad337dff"
/>

1. **INTERNAL SCREAMING**
2. **EXTERNAL SCREAMING**
2026-04-11 13:13:46 +00:00
VMSolidusandGitHub 5ef0219ae0 Fix Ancient IIS Module Bug (#22198)
closes #2951

Oh my god this was the oldest confirmed still active bug in the entire
issue tracker, and it's 9 years old. This bug was reported originally in
2017 and was never fixed. Uhhh. Hell.

This makes it so that pAIs can actually control a hardsuit via an
installed IIS Module. The thing that module was meant to do 9 years ago.
2026-04-11 13:13:30 +00:00
0ccd900aac Library Update (#22120)
Updates the Library to TGUI and the new DBCore

The GUI was created using Claude Code

Public Library Computer
<img width="652" height="501" alt="image"
src="https://github.com/user-attachments/assets/eba1841a-5784-4fe4-b337-6a9e9503bb58"
/>


Library Management Computer:
Inventory Page:
<img width="750" height="605" alt="image"
src="https://github.com/user-attachments/assets/e4f38fcb-7299-4baf-a8a2-0974297a544c"
/>

Check Out Page with Book Picker active:
<img width="750" height="607" alt="image"
src="https://github.com/user-attachments/assets/e9189157-1617-4535-a053-942b17378614"
/>

Library Order Page with pagination:
<img width="747" height="598" alt="image"
src="https://github.com/user-attachments/assets/07d3abaf-5a16-4229-8ab8-e64e2f73de24"
/>

Emag action:
<img width="752" height="602" alt="image"
src="https://github.com/user-attachments/assets/285cd4bf-0ed3-4cf2-a9cb-4469e6466ad0"
/>

Book Uploader:
<img width="747" height="602" alt="image"
src="https://github.com/user-attachments/assets/b4b648ab-59e4-48f1-90a3-77e8440f01e4"
/>

And its orderable instantly:
<img width="750" height="602" alt="image"
src="https://github.com/user-attachments/assets/1c1c21fa-28fd-42fe-82b5-1c859cd74fdf"
/>

---------

Co-authored-by: Werner <Arrow768@users.noreply.github.com>
2026-04-11 12:21:13 +00:00
VMSolidusandGitHub cfdcac3453 Colorblind Traits Fix (#22193)
closes #22159

This PR fixes the colorblind traits so that they actually apply to
characters.

<img width="1919" height="988" alt="image"
src="https://github.com/user-attachments/assets/06f06796-40fe-494c-a19e-45c226a41d63"
/>
2026-04-11 12:14:47 +00:00
VMSolidusandGitHub 96d0ab85f1 Point Blank Guns Fixes (#22195)
closes #22065
closes #22107

This PR fixes some bugs with point blank gunfire that made it not work
as intended. It's now possible to shoot someone on the same tile as you
(such as a Human Shield Hostage) if you click on them directly,
otherwise your bullets will bypass them by shooting in the direction you
declare. You can also no longer shoot people who have a one way glass
window between you and them, the bullet will hit the glass first.

Finally, you can also no longer accidentally shoot yourself if you
sprint forwards in the same direction you are shooting (by running into
your own bullets).

Basically, you can now take a human shield, use them as cover, and then
when security tries to run in you can execute the human shield by
clicking on their head.

Yes, you can also still shoot yourself if you deliberately click on your
own sprite. Suicide by gun still works.


https://github.com/user-attachments/assets/fbfe0eea-03ee-419a-b9ae-c08af79c1e15
2026-04-11 12:12:21 +00:00
VMSolidusandGitHub 86bf8c1f8b Posibrain Fixes (#22196)
closes #21982
closes #21705

<img width="465" height="394" alt="image"
src="https://github.com/user-attachments/assets/6ae35510-73c5-46e8-b624-a83e71dca603"
/>

This PR fixes the longstanding IPC med rework bug whereby surgically
removing a posibrain would just delete it. Also fixes a bug where it
wasn't possible to join as a posibrain ghost role.
2026-04-11 12:10:16 +00:00
FenodyreeAvandGitHub d3fdea4b99 Fixes the healthdoll not showing robot limbs, or updating when pain goes away. (#22190)
Adds some signals to update the HUD when necessary.

The only one which will fire every tick is in remove_pain, which will
now only fire if there is pain to remove.

The extra update in robotize is necessary because robotize is called
after Initialize, so robot limbs were being set to the wrong colour.

Fixes: #22186
2026-04-11 12:03:52 +00:00