Commit Graph
50459 Commits
Author SHA1 Message Date
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
Cody BrittainandGitHub 79aa48e033 Allow EditorConfig workflow to annotate PRs (#22200)
NUFC in SS13

Enables MegaLinter to annotate PRs.
2026-04-12 22:19:44 +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
79feb850d4 Fixes AirAlarm issues (#22214)
* Missing toolbar
* Unable to change temperature before unlocking it

Co-authored-by: Werner <Arrow768@users.noreply.github.com>
2026-04-12 09:33:52 +00:00
Changelogs b31cef0707 Automatic changelog compile [ci skip] 2026-04-12 02:27:34 +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
VMSolidusandGitHub 488f43c2d3 LED Collar Bugfix (#22184)
This PR just fixes LED collars not emitting light when attached to
clothing.


https://github.com/user-attachments/assets/949f8355-db8d-41ec-b645-f1e7f0cec7db
2026-04-11 12:01:54 +00:00
80945f374c Atmos GUI Update (#22121)
Updates the atmos GUIs using Claude Code

Oxygen Regenerator:
<img width="380" height="320" alt="image"
src="https://github.com/user-attachments/assets/25da98e9-b1d0-4cec-b7bf-254c0997481d"
/>


Air Alarm:
<img width="381" height="609" alt="image"
src="https://github.com/user-attachments/assets/0d8bba24-8eb0-4571-b69f-15f3c694e7b2"
/>
<img width="381" height="609" alt="image"
src="https://github.com/user-attachments/assets/68b94262-8456-4e43-b8b0-b44c8004da77"
/>
<img width="380" height="580" alt="image"
src="https://github.com/user-attachments/assets/21df1247-12f8-4bf4-af57-081bef33552e"
/>
<img width="380" height="580" alt="image"
src="https://github.com/user-attachments/assets/4217f40c-f549-4c8f-91ee-acfddfd58c6a"
/>
<img width="380" height="580" alt="image"
src="https://github.com/user-attachments/assets/ea44abae-5167-47e5-b352-b45b0fd8d102"
/>
<img width="270" height="156" alt="image"
src="https://github.com/user-attachments/assets/acc3bb15-3876-4957-a38f-6d86abb12605"
/>

Atmos Alert Computer:
<img width="400" height="400" alt="image"
src="https://github.com/user-attachments/assets/dfd0da2d-2bd6-4818-b82f-25baee9bbf45"
/>

Omni Filter:
<img width="430" height="360" alt="image"
src="https://github.com/user-attachments/assets/9f19c7a7-abaa-4bdb-8ae3-016c54ae5c05"
/>


Omni Mixer:
<img width="430" height="360" alt="image"
src="https://github.com/user-attachments/assets/48c79763-a45b-4e74-bb01-e51c1944fa9d"
/>

---------

Co-authored-by: Werner <Arrow768@users.noreply.github.com>
2026-04-11 12:00:10 +00:00
Changelogs 7c133bb98d Automatic changelog compile [ci skip] 2026-04-11 02:05:31 +00:00
VMSolidusandGitHub 66b4453d84 Pants Hard Del (#22175)
Pants references weren't being nulled from humans with pants. I have no
idea how this was around for so long.
2026-04-10 18:55:40 +00:00
Changelogs 16eb7dfbc6 Automatic changelog compile [ci skip] 2026-04-10 02:25:50 +00:00
FabianK3andGitHub 7174467756 Radiation refactor (#22158)
# Summary

This PR refactors radiation values and cleans up custom radiation values
without a definition.
This also fixes #22155.

## Changes

- Update ARMOR_RAD_STRONG 75 -> 70, now fits RAD_LEVEL_VERY_HIGH.
- Update radiation level defines:
  - NONE         = 0
  - VERY_LOW     = 1 (old LOW)
  - LOW          = 10
  - MODERATE     = 25
  - HIGH         = 40
  - VERY_HIGH    = 70 (old value was 100)
  - EXTREME      = 100
  - CATASTROPHIC = 120
- Update a couple of rad values to their respective define name (with
minor implicit balancing).
- Remove the super awkward/LRP hairloss with high radiation exposure.
2026-04-09 15:56:45 +00:00
Changelogs bd26b28b31 Automatic changelog compile [ci skip] 2026-04-09 02:05:54 +00:00
90402ae86b buffs thermal vaurca execution blade and fixes operative hardsuit spawns (#22134)
Gives the thermal blade belt and back slots in order to make it more
competitive with a energy sword in portability, aswell as fixing some
hardsuits that failed to spawn properly.

---------

Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
2026-04-08 16:30:42 +00:00
Casper3667andGitHub 8bc224d453 Enforces that the tesla rig requires a military tesla spine to work (#22154)
Done after talks with Catsin/taj lore.

The tesla rig has been removed from the golden deep submap and replaced
with more available rigs, and the rig now requires a military grade
tesla spine to function.
2026-04-08 15:55:26 +00:00
CatsinHDandGitHub 7c4cd46fa3 Kalkii Dynhvah's custom submariner coat (#22104)
Adds Kalkii Dynhvah's custom PRA submariner coat as per
[https://forums.aurorastation.org/topic/22881-kalkii-dynhvahs-submariner-coat/](https://forums.aurorastation.org/topic/22881-kalkii-dynhvahs-submariner-coat/).

Please do not merge until #22094 is merged, as this custom item is a
sub-type. It won't like, break anything but just to reduce issues.

Sprites were created by me, modified/based on Ebin-Halcyon's Honorable
Vanguard Battlecoat from Shiptest found in this PR:
https://github.com/shiptest-ss13/Shiptest/pull/2281
2026-04-08 15:53:17 +00:00
VMSolidusandGitHub 174577fb5b Portal Hard Del Fix (#22167)
Another small fix, but for a hard del that was "Player on demand
harddelete". Each and every single time Telescience activated their
portal machine, a hard delete occurred. Which is pretty silly
considering the average science player- if they use the machine, will
press it like 50 times in a round, and I know this because they'll make
50 hard dels lol.

It was a pretty simple problem. Portals stored two references to the
thing that made them, but weren't clearing them when destroyed.
2026-04-08 15:53:10 +00:00
VMSolidusandGitHub 7d15ceb8d5 freelook hard del (#22169)
This fixes a hard del on freelook eyes, which are used by some antag
items and building blueprints.

<img width="377" height="152" alt="image"
src="https://github.com/user-attachments/assets/5b1f9b00-88ba-44e1-9888-abf37e59195d"
/>

The hard del was caused by eye/freelook/Destroy() deleting a **holder**
for references before its parent eye/Destroy() could use that holder to
correctly clear its references.

eye/Destroy() calls release(owner)

<img width="189" height="90" alt="image"
src="https://github.com/user-attachments/assets/2864debe-15aa-4974-84b1-bc308a886e8f"
/>

which can only correctly release a reference in the visualnet var if it
wasn't already null. But the freelook was nulling it before it could be
correctly deconstructed.

<img width="364" height="257" alt="image"
src="https://github.com/user-attachments/assets/cc5c3010-42e7-4620-924e-564116e7b590"
/>
2026-04-08 15:53:07 +00:00
VMSolidusandGitHub a290281d14 Fix Improper Destroys (#22166)
We think the culprit behind this one was VSCode autofilling Destroy()
with . = ..()
which is improper. There's a **surprising** number of improper order
Destroy() procs in the repo, so I might as well get all of them in one
pass. Several of these files are associated with currently known hard
dels, such as the modular computer and organ related dels. More than a
couple were my own mistakes, since the Destroy() or Removed() . = ..()
behavior on signal registering objects also prevents the signal from
being unregistered, which similarly creates a hard del.

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
2026-04-08 15:52:13 +00:00
FenodyreeAvandGitHub 5cce3fe664 Fixes flashbangs not damaging the hand they explode in (#22160)
Makes flashbangs damage the hand they explode in again.
2026-04-08 15:51:38 +00:00
Casper3667andGitHub f0688891dc Fixes ID cards being left behind by the residential lifts (#22162)
Adds a new var to the uninstall component that defaults to true. We only
disable it if we're trying to delete the id card too, such as by the
deleting the pda in the residential lift.
2026-04-08 15:51:35 +00:00
Changelogs 5771330125 Automatic changelog compile [ci skip] 2026-04-08 02:12:29 +00:00
FyniandGitHub b5a1eed718 PRA Submarine Coat fix (#22168)
I accidentally labelled the closed version "closed" when it should have
been nothing. Removed those 6 letters from the sprite sheet so it
appears properly in game.

---------

Signed-off-by: Fyni <itsfyni@gmail.com>
2026-04-07 23:44:38 +00:00
f65412bc9c Adds the PRA Submariner Coat (#22094)
Adds the PRA submarine coat, available in the loadout for Tajara
characters under the "tajara coat" category.

Sprites taken from shiptest and modified by @CatsinHD, with an extra
modification by me.

---------

Signed-off-by: Fyni <itsfyni@gmail.com>
Co-authored-by: Cody Brittain <1779662+Generalcamo@users.noreply.github.com>
Co-authored-by: Fyniiy <=>
2026-04-07 21:54:33 +00:00
VMSolidusandGitHub 2af48cf40e fix observer hard del (#22165)
The Planemasters Update gave observers a hud reference to store, but no
Destroy() method was added for them to clear this reference when
despawning, which caused a hard del. Pretty simple fix.
2026-04-07 20:40:58 +00:00
FenodyreeAvandGitHub e8944e087d Modular laser fixes and nerfs (#22147)
**Fixes the bugs found on the recent nations round.**

- Fixed firedelay doing nothing on modlasers with the shotgun lens. Also
fixed the existing laser shotgun as a side effect. Fixes #22141 and
Fixes #22137
- Fixes the shotgun lens not having any dispersion.
- Fixes bluespace capacitors not teleporting you on a failure.
- Fixes phoron capacitors not hurting the user when they explode.
- Fixes messages about malfunctions not displaying to the user.
- Fixes a bunch of bugs related to repairing components
- Stops components getting qdeled but leaving their references on all
other components, breaking them if reused.

**Nerfs a few of the most problematic things.**

- Cut the damage of the blaster projectile by 20% and reduced it's AP
from 60 to 35, also drops it's incendiary value to 1.
This projectile was FAR more powerful than any other, ignored all armour
and set the user on fire without a damage penalty.
With this change, lasers are now better on unarmoured targets, the
blaster is better on 40+ armour, so Heavy and Specialist Ablative.

- Added an immediate electric shock to the user (and anyone within one
tile if the capacitor is unstable enough).
The previous low level failures all irradiated the user. This did more
damage in the long term, but didn't affect the outcome of any fights and
was easy to negate with suits.
The tesla shock is obvious to everyone nearby, causes immediate pain and
the gun to be dropped if the capacitor is overcharged.
This makes minor failures a significant factor mid fight, especially on
powerful guns.

- Makes the phoron capacitor directly damage the hand holding it when it
explodes.
This capacitor can be built with phoron and uranium, which both spawn at
roundstart, though uranium isn't accessible.
It's therefore the most common capacitor, and the second most powerful.
This increases downside a lot, in addition to the explosion being fixed,
it will break the hand that fires it when it malfunctions.
If the capacitor is unstable, such as in a 60 damage monster, it will
gib the hand that fires it on malfunction.


**Tweaks, aimed at making the guns easier to understand, repair and
test**

- Adds a locker and boxes of modlaser parts. Not mapped in, but easy to
spawn for testing.
- Adds big red warning messages, visible to everyone nearby, explaining
what happened to the gun, who was holding it and how bad the malfunction
was.
- Made the lenses repairable with glass, or reinforced glass. The
nanopaste cost of a repair was more than 50x the cost of just printing a
new lens.
2026-04-07 20:08:41 +00:00
VMSolidusandGitHub 3348558d80 IPC Limb Hard Del Fix (#22164)
Another smallish hard del fix, this time for external organs. Turns out
it really is pretty important that Destroy() procs need to close with
return ..() instead of open with . = ..()

I made this after watching an IPC ghostrole leave a round via cryo, and
then triggered 3s worth of hard dels all at once.

<img width="406" height="774" alt="image"
src="https://github.com/user-attachments/assets/096c084e-6953-4eb5-a708-0fa7018890d6"
/>
2026-04-07 20:01:10 +00:00
FyniandGitHub 42a4ddbadf Laser rifle sprite fix (#22156)
Adds the 75%, 50% and 25% sprite to the laser rifle, so it will update
as it drains like before.

---------

Signed-off-by: Fyni <itsfyni@gmail.com>
2026-04-07 20:00:10 +00:00
VMSolidusandGitHub 2cf4e321f0 Grem Larva Hard Del (#22163)
Small PR fixing a hard del related to grem larva, and also a bug where
they instantly teleport into vents without a delay.
2026-04-07 19:51:13 +00:00
FabianK3andGitHub 411a4a362d Maintenance connection from aft starboard to chapel/medical/ops (#22148)
# Summary

This PR extends the maint between medical and operations into the public
hallway.
This drastically shortens the path to starboard-aft maint areas
resulting in quicker travel time and more navigation options for antags.

## Preview

<img width="846" height="695" alt="image"
src="https://github.com/user-attachments/assets/8192c5e1-b248-4a44-b557-b56a104c1b48"
/>
2026-04-07 14:52:19 +00:00