1530 Commits
Author SHA1 Message Date
Casper3667andGitHub 9c6d28ee08 Fixes that the tajaran himean modkit can't modify industrial rigs (#23048)
Fixes https://github.com/Aurorastation/Aurora.3/issues/23042

A simple oversight. This allows an industrial rig (such as miners) to be
made into a tajaran himean variant.
2026-08-13 16:20:55 +00:00
d1c6d12dd3 Fixes journalist camera not showing up when worn (#23007)
See title.

---------

Co-authored-by: Jaraci <mirandatrasen@nt.net>
2026-08-06 09:32:21 +00:00
HaydenandGitHub 13beeb437a Megaphones now create floating chat and use accent/lang (#22942)
Megaphones now use your accent, language, and create floating text when
used.

<img width="2560" height="1400" alt="dreamseeker_V1ntU7aL2j"
src="https://github.com/user-attachments/assets/36828048-9e5b-4c6d-bad9-974d8880adef"
/>

Port of https://github.com/Baystation12/Baystation12/pull/35232 but only
in spirit.
2026-08-02 01:24:36 +00:00
ac0c3902fc Adds listener filtering for the journalist's microphone. (#22948)
The journalist's microphone by default no longer allows everyone to
speak into it. Click someone with the microphone in hand to allow the
microphone to pick up their voice. If you move more than 5 tiles away
from the microphone, you will automatically be de-registered from its
allowed listeners. People screaming will bypass the allowed listeners.

You can alt click the microphone to disable this functionality.

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2026-08-02 01:24:31 +00:00
BatrachophrenoandGitHub c92d909534 Wires Panel and Signaler Expansion (#22846)
Fleshes out wire panel skill behavior and signaler management.

Electrical Engineering 4 was very OP for revealing all wire labels of
all machines, and it was super fun while it lasted.

Wire panels now have associated skills with their use, and increased
skill ranks will increase the proportion of wires (chosen at random)
that are easily recognizable on sight for certain types of wiring
panels.
**Professional:** 75% revealed
**Trained:** 50% revealed
**Familiar:** 30% revealed
_(note: having both Electrical and Mechanical engineering at least
Trained gives you that baseline 30%, reflecting how your knowledge can
probably translate to decent guesswork.)_

The following wire panels are affected:
**Electrical Engineering:**
- APCs
- Cameras
- IFF Beacons
- Radios
- Smartfridges
- SMES Units

**Mechanical Engineering**
- Airlocks
- Disposal Units
- Fabricators
- Vending Machines

**Atmospherics Systems**
- Air Alarms

**Reactor Systems**
- Particle Accelerator Control Boxes (lol)

**Robotics**
- Hardsuits
- Suit Storage Units (sharing the love is all)
- Robots
- Tag Scanners

**Xenobiology**
- Stasis Cages

Also, I made it possible to blow out all the lights in an APC's area by
snipping the power regulator cable and then pulsing the lights wire.
Great for signalers.

Speaking of signalers, new app deployed to all Engineering, Research,
and Robotics personal modular computers:
<img width="816" height="722" alt="Screenshot 2026-07-14 144049"
src="https://github.com/user-attachments/assets/3d588712-ebfd-47ac-b699-7cdac2c04907"
/>

Self-explanatory. Please only use corporate-provided software for
behavior within your contract regulations.
2026-07-26 18:05:15 +00:00
hazelratandGitHub 637b519140 Integrates Axiom & Salamasian lore to accents and origins (#22837)
Integrates the new fluff for Axiom and the Salamasians, as seen
[here](https://wiki.aurorastation.org/index.php/Axiom), into the server.
Adds a new culture for Axiom IPCs. Removes all mentions of 'Orepit' from
the codebase.

Also adds new accent tags for each origin. I'd really much rather have
the sprites depict environments rather than flags, but I'm at a creative
deficit right now - can always edit to be more substantial later.

<img width="236" height="125" alt="image"
src="https://github.com/user-attachments/assets/c4cee6fd-984b-4873-9303-7e3fd5a8ab8f"
/>

Human origin:

<img width="987" height="617" alt="image"
src="https://github.com/user-attachments/assets/2e5de35b-509e-4b2e-8214-70d3af2fc8e8"
/>

Synthetic origin:

<img width="996" height="536" alt="image"
src="https://github.com/user-attachments/assets/862ec8f4-3607-422c-97b0-5c205a0f1836"
/>

Also adds Salamasian flags to the loadout. Sprites courtesy of Ill
Fated!

<img width="404" height="204" alt="image"
src="https://github.com/user-attachments/assets/3109c269-76a5-4d42-b3d6-1ab5dd1d5e0f"
/>
2026-07-17 11:31:52 +00:00
VMSolidusandGitHub e117ef3f87 Nuke Limb Processing (#22814)
<img width="1549" height="857" alt="image"
src="https://github.com/user-attachments/assets/3830233d-0635-4942-b2aa-024651e6cffa"
/>

Limbs make up roughly half of the "Per additional player" processing
overhead, while Organs make up most of the other half.
Not every organ is an easy candidate for "Event-only processing", but
external limbs are significantly easier to do so.

So this PR makes it so that External Limbs no longer require Processing
unless an event happens that would justify them requiring processing.
Which SIGNIFICANTLY reduces the overall additional cost to the
Processing subsystem per player that joins the server.

Oh and I also made the Appendix and Kidneys not require constant
processing. The Appendix will only process if it is hit by an
Appendicitis event, and the Kidneys will only process if they are either
damaged, or you get poisoned.
2026-07-12 20:45:24 +00:00
BatrachophrenoandGitHub 1c8c0c2221 Bugfix pile (#22823)
Fixes several runtimes from the past few weeks, some additional material
repath regressions, and the fact that if I shoot you with a stream of
ionized deuterium particles, it doesn't riddle you with cancer.

changes:
- bugfix: "Fixes emergency shields runtiming when hit by thrown
objects."
  - bugfix: "Fixes several stale global list runtimes."
- bugfix: "Fixes several health percentage checks that could use unset
initial health values."
  - bugfix: "Fixes additional materials regressions in INDRA code."
  - bugfix: "Fixes invalid fuel injector depletion math."
- bugfix: "Makes accelerated particles apply radiation damage to living
mobs they pass through."
2026-07-12 18:06:28 +00:00
VMSolidusandGitHub 2e61d8fd15 Kill Hardsuit Processing (#22809)
Life() was wasting a bunch of processing time on "Every hardsuit
forever" regardless of if it was equipped or not. Additionally Life()
was responsible for double-processing hardsuits, which is extremely
improper. Since hardsuits are being moved to SSprocessing instead of
SSmobs, which has a different tickrate, I went ahead and tick
differentiated them to make sure that nothing will break.
2026-07-10 17:05:20 +00:00
c#min7andGitHub bd18c72d58 Reade and New Gibson Origin Items (#22776)
Adds a variety of loadout origin items from Reade and New Gibson.

_All sprites by Alsoandanswer/Wezzy._

---

**New Gibsonite Uranium Glass Accessories:**
- Adds a bracelet, ring, and necklace that are an emissive green.
- Only selectable by characters with the New Gibson origin, incl. Tau
Ceti Skrell and Tau Ceti IPCs (for lack of New Gibson-specific
skrell/ipc origins).

<img width="965" height="101" alt="accessories"
src="https://github.com/user-attachments/assets/4a235dee-28ce-485f-931d-4913853a22ef"
/>

---

**Readic Personalised Breath Mask:**
- Adds a recolourable breath mask with an oni mask-like design.
- Only selectable by characters with the Reade origin. 

<img width="1331" height="107" alt="mask"
src="https://github.com/user-attachments/assets/ef500fed-bf0f-4b22-a037-0a21938e2928"
/>

---

**Reade Extreme Racing Jackets:** 
- Adds an extreme racing jacket with a bi-colour design and various
decals that can be selected.
- The jacket has an action that temporarily hardens the wearer against
heat/near-void conditions for 1 to 2 minutes (though only covers the
torso and so cannot replace a soft/voidsuit).
- Only selectable by characters with the Reade or New Gibson origins,
incl. Tau Ceti Skrell and Tau Ceti IPCs (for lack of New Gibson-specific
skrell/ipc origins).

<img width="1393" height="97" alt="jacket"
src="https://github.com/user-attachments/assets/20ec051e-3fe5-49b0-ace3-5159ec8a9938"
/>


Coloured Example:
<img width="654" height="309" alt="image"
src="https://github.com/user-attachments/assets/0fc81d89-c1b3-452a-87c7-374cc1e6dd18"
/>

---

**New Gibsonite Voidsuit and Modkit:**
- Adds a sleek/high-tech engineering/ops voidsuit to contrast against
the lower tech ones.
- A modkit to convert engineering/atmospheric/mining/hangartech
voidsuits is available in the loadout.
- Has human, skrell, and tajara variants.
- A unathi variant has also been sprited but is not available ingame.  
- Only selectable by characters with the New Gibson, incl. Tau Ceti
Skrell (for lack of New Gibson-specific skrell/ipc origins)

<img width="1625" height="110" alt="suit"
src="https://github.com/user-attachments/assets/330db8cd-2bc2-4745-a720-6a0409b97332"
/>
2026-07-07 14:13:54 +00:00
hazelratandGitHub 162cf14fa3 Portable cooler tweaks + sprite fix (#22762)
Modified the name and description of the portable cooling unit to
reflect its importance for keeping synthetics alive after their coolers
get shot up, and fixed its on-mobs not appearing on characters' backs.
Now you can see when someone is wearing it!

<img width="208" height="137" alt="image"
src="https://github.com/user-attachments/assets/d768d31b-d0aa-4fb8-8a67-4e1817355f6e"
/>
2026-06-26 18:19:32 +00:00
60d09f31b1 TCAF expansion/rework stuff (#22717)
- renames/redescs/etc existing stuff to fit new TCAF lore
- lots of 4 years defunct TCFL stuff has been deleted or
repathed/renamed
- the tcfl peacekeeper ship that was soft-removed has been deleted
- the uniforms has also been modified and have had the necessary amount
of blue added. essentially i kitbashed the old TCFL uniforms with the
new TCAF uniforms

i probably missed a lot of tcfl stuff still.

---------

Signed-off-by: c#min7 <sadkermit01@gmail.com>
Co-authored-by: Kano <89972582+kano-dot@users.noreply.github.com>
2026-06-22 13:53:32 +00:00
YonnimerandGitHub 35a8154ed0 Adds a voidtamer-unique lantern (#22716)
Includes a new voidic lantern for the voidtamer ship crew and as a
loadout item for the culture

It's a buffed lantern able to barely sustain a dionae, its a little
stong but only locked to the one specific culture and ship by default,
i'm not sure if it'll spawn in the warehouse tbh, but it's fine if it
does

---------

Signed-off-by: Yonnimer <31339047+Yonnimer@users.noreply.github.com>
2026-06-20 14:07:06 +00:00
2f4a8d6f3d Fixes pain and announcement font size. (#22681)
title, h2 and manual font size brokey

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2026-06-19 17:23:07 +00:00
FenodyreeAvandGitHub ab65965c5c Fixes guns being unwielded by mousing over the inventory UI (#22712)
Fixes #22036 

changes:
- bugfix: "Fixed guns getting unwielded when mousing over UI elements."
- bugfix: "Fixed mob_can_equip using M as mob, instead of mob/M. Also
adds its parameters to all its children."


https://github.com/user-attachments/assets/0f427609-3cfc-4c71-b817-44a8d2c6350d
2026-06-16 19:21:38 +00:00
BatrachophrenoandGitHub 0c7ab8baa7 Lemurian Sea (#22686)
changes:
  - refactor: "Refactors Gravity Generator UI from HTML to TGUI."
- rscadd: "Adds sector-based modifier var 'overmap_hazards_multiplier'
for generating total overmap hazard count."
  - soundadd: "Adds new Lemurian Sea 'welcome' announcements."
- rscadd: "Added Lemurian Sea gravitic anomalies as overmap hazards and
random events."
  - rscadd: "Adds ADPI/The Voices."
- rscadd: "Adds ADPI Panel for modmins to send ADPI messages to a single
character or all characters from their respective pools, or custom
messages."
- balance: "Vaurca Hivenet communication, the Hivenet Manifest, and
Hivenet Echoes are now disabled while the ship is in Lemurian Sea
sectors."
2026-06-13 16:25:49 +00:00
lewandGitHub 11a9a2d644 Multi-Languages: a complete Saycode rewrite (#22637)
Rewrites Saycode and Langchat to add support for multiple languages in
one message, including audible emotes.

<img width="1139" height="338" alt="image"
src="https://github.com/user-attachments/assets/25e26932-7a6e-4c54-ab74-56fffb92ecad"
/>

Here's some samples to explain how to mix languages.

<img width="422" height="26" alt="image"
src="https://github.com/user-attachments/assets/e1b176cc-8625-4dc9-83c8-a053d3f310e6"
/>

`Languages ,2 can be mixed ,3 like this.`

<img width="540" height="21" alt="image"
src="https://github.com/user-attachments/assets/19156c67-4670-4d7a-84d7-26e527de2676"
/>

`!explains, ,2Emotes work too. ,0The text will get auto-quoted.`

<img width="592" height="18" alt="image"
src="https://github.com/user-attachments/assets/cfc31c5c-2383-41c8-82be-b36836339321"
/>

`,3Most languages ,0can be ,2mixed ,1arbitrarily, ,3any number of
,0times.`

<img width="636" height="20" alt="image"
src="https://github.com/user-attachments/assets/388b4f9d-192a-4374-ac31-bbd4e4e5dfe4"
/>

`,2Emotes. ,eAnd he nods. ,3They don't have to come first anymore.`

There are some exceptions. The exceptions are currently anything with
any of the flags `SIGNLANG`, `HIVEMIND`, `PRESSUREPROOF`,
`KNOWONLYHEAR`. Exceptions work the same as current languages do: they
must be the first language in the message. If so, they prevent switching
into any other language mid-message; if they're not first, they just
wont trigger.

They're exceptions currently because there's not really a clean way that
I or the people I asked for help on this one to make them look nice.
`SIGNLANG` for example doesn't scramble text, it shows it's own `
gestures a lengthy message.` text for those that don't understand. Could
we just replace every instance of sign language with that if somebody
doesn't understand? Probably. It would look pretty awful though. e.g.
`Alina Eskelinen says, "Hello." Alina Eskelinen gestures a short
message.`

This definitely needs testmerging because it more or less rewrites the
entire pipeline surrounding `say`. The `say` code itself had to be
rewritten to support the multiple languages, as well as all the existing
plumbing for listeners receiving messages. In return though, it's
significantly more straightforward and hopefully by extension easier for
people to add to in the future.

Primarily, instead of having four different `hear_say`, `hear_radio`,
`hear_sleep`, etc., routes for messages to come through, every single
audible message is received by `hear_message`, which is responsible for
figuring out how clear the message is (is the radio damaged? is it a
whisper we're eavesdropping on?), who needs to receive it in their
chatbox, formatting it correctly for each listener, and finally if any
npc or object within range needs to react to it in some way, like a
parrot or a mech.

changelog:
- rscadd: "Adds code-switching: you can now speak in multiple languages
in the same message."
- rscadd: "Adds audible emotes to the language list. They can be
triggered with ,e."
  - rscdel: "Removes SSrunechat."
- refactor: "Rewrote langchat in order to support multiple languages and
partial comprehension."
- refactor: "Rewrote a vast majority of all saycode and the code
responsible for displaying saytext to clients."
- bugfix: "Sleeping mobs are no longer able to understand all
languages."
- bugfix: "Langchat now correctly shows the appropriate comprehension
for all viewers rather than all viewers sharing the comprehension of the
last viewer."
- bugfix: "Languages which are supposed to be invisible when not
understood no longer appear as scrambled overhead text."

Forgive me whoever has to review this. Biggest areas that have room for
error is stuff like a borer inside someone's head, and Dionae stuff. Old
langchat had odd exceptions for those and I was forced to rewrite it
entirely, but I think I got it all back to how it was working before.
2026-06-11 10:47:26 +00:00
BatrachophrenoandGitHub 1b05577bdf TGUI Hotfixes, Oh God Am I The TGUI Guy Now Edition (#22648)
changes:
- bugfix: "Restores the Modular Computer access cable header button for
connecting to IPCs and machinery."
- bugfix: "Fixes display issues in the Robotics interface's
<collapsible> elements."
- bugfix: "Fixes in-chat feedback text provided by the Cyborg Analyzer
(organ name and status now both inline)."
  - bugfix: "Crew Manifest PDA app now filters out off-ship personnel."
- bugfix: "Fixes Autolathe TGUI appending search- and category- filtered
recipes instead of recomputing the list with those filters."
- bugfix: "Fixes runtime when ghost opens dedicated camera console UI."
- code_imp: "Update some defs referencing 'supply' department to
'operations'."
- refactor: "Standardizes all interface search bars to use the native
'SearchBar' component."
- refactor: "AtmosAlarmControl interface now correctly auto-sorts alarms
by alert status."
2026-06-08 10:45:31 +00:00
c#min7andGitHub fbe11c6579 IPC Suit Cooler Size + Power Tweaks (#22581)
This allows IPC suit coolers to fit inside of bags and be more easily
used as a first response tool for IPCs who have had their coolers shot
out, whether it be an IPC keeping one in their bag for
self-stabilisation or a machinist lugging one around when responding to
a call.

The battery that spawns in suit coolers was reduced to a heavy-duty
power cell (from 30,000 power storage to 15,000), and the maximum
discharge rate was increased by 85%.
- When cooling a cooler-less IPC, it lasts roooghly 10 minutes, which is
still plenty long enough for 90% of incidents and only becomes
problematic on expeditions.
- Under more ordinary EVA conditions, it still lasts ages.

Upgrading power cells is incredibly worthwhile, x2ing (high) or x4ing
(super) or x6ing (hyper) these durations.
2026-06-06 10:00:08 +00:00
Casper3667andGitHub 3cf0d1607e A bunch of smaller bugfixes (#22618)
Fixes:
- https://github.com/Aurorastation/Aurora.3/issues/22592
- https://github.com/Aurorastation/Aurora.3/issues/22369
- https://github.com/Aurorastation/Aurora.3/issues/22398
- https://github.com/Aurorastation/Aurora.3/issues/22358
- https://github.com/Aurorastation/Aurora.3/issues/22432
- https://github.com/Aurorastation/Aurora.3/issues/22591
- https://github.com/Aurorastation/Aurora.3/issues/22411
- And the sound when putting items into metal briefcases, crime scene
kits and pill bottles
- As well as the sprites for the two boonie hats for taj
2026-06-05 21:32:01 +00:00
Wowzewow (Wezzy)andGitHub e3d3d00347 More Handling Sounds (#22528)
Just ports more pickup, drop and handling sounds from /tg/ to keep pace.

Attributions in their own .txt files.
2026-05-30 12:07:44 +00:00
BatrachophrenoandGitHub 4ecb0bc21c Repath obj/machinery to obj/structure/machinery [MDB Ignore] (#22500)
Repaths obj/machinery to obj/structure/machinery. **Note for
reviewers:** the only meaningful changed code exists within
**code/game/objects/structures.dm** and
**code/game/objects/structures/_machinery.dm**, largely concerning
damage procs. With the exception of moving airlock defines to their own
file, ALL OTHER CHANGES ARE STRICTLY PATH CHANGES.

Objects, _categorically_, are largely divided between those you can hold
in your hand/inventory and those you can't. Machinery objects are
already subtypes of Structures behaviorally, this PR just makes their
pathing reflect that, and allows for future work (tool actions, more
health/destruction functionality) to be developed without unnecessary
code duplication.

I have tested this PR by loading up the Horizon and dismantling various
machines and structures with tools, shooting guns of various types
throughout the ship, and detonating a bunch of explosions throughout the
ship.
2026-05-26 19:35:48 +00:00
Casper3667andGitHub 9b8ebf7e4a Updates the health analyzer TGUI to be prettier (#22498)
This fixes a few minor bugs for non-handheld health analyzers, as well
as updating the UI for them to be prettier.
<img width="521" height="823" alt="image"
src="https://github.com/user-attachments/assets/f0c121f1-e84c-4615-b4c5-1ec1f6620222"
/>
2026-05-26 17:57:40 +00:00
BatrachophrenoandGitHub 2111cb97f3 Item Size Adjustments (#22476)
Small handful of obj/item size adjustments for common sense, QoL, and
standardization.

changes:
  - balance: "Decreases size of Dosimeter from Normal to Small."
- balance: "Decreases size of Bomb Defusal Wirecutters and Music
Cartridge from Small to Tiny."
- balance: "Increases size of Airlock Electronics from Tiny to Small
(matches other circuitboards)."
2026-05-22 12:14:08 +00:00
Casper3667andGitHub 95dac4990d Updates the health analyzer to use TGUI (#22421)
- rscadd: "Health analyzers now use a TGUI instead of outputting to the
chat."
- rscadd: "The handheld health analyzer now take 1.5 seconds to scan a
person."
- rscadd: "It is now possible to pull up the last scan on the handheld
health analyzer."
- rscdel: "It is no longer possible to switch limb mode on the handheld
health analyzer."

Beyond the above, device levels were added, primarily as a concept
though it is not implemented in full, so all the ingame health analyzers
still show the same data as before.

<img width="520" height="620" alt="image"
src="https://github.com/user-attachments/assets/b718300b-b377-4e1f-82ab-4d4d73560e34"
/>
<img width="520" height="620" alt="image"
src="https://github.com/user-attachments/assets/cbe2236e-4eca-4ab1-9dea-9fc058933e0f"
/>
<img width="520" height="620" alt="image"
src="https://github.com/user-attachments/assets/84010edb-867e-4062-a6ec-d2629e2fa625"
/>
<img width="520" height="620" alt="image"
src="https://github.com/user-attachments/assets/8b1b85d4-3a53-46c3-b63e-1e78d5797176"
/>
2026-05-18 21:46:09 +00:00
VMSolidusandGitHub 3b6d0f20ec Light Sensitivity Refactor (#22386)
The last time the Light Sensitivity code was changed, I remarked in a
review that "This should probably be a component so that its code isn't
being run on every mob forever". Well I've gotten around to doing that
myself, except I figured out it's even better off as an Element in this
situation rather than a Component. So this is now my first time adding
Elements to the repo. It turns out they're really awesome when paired
with signals.

This PR removes the hardcoded check for the light senstivity and dark
phobia traits from the Life() path, replacing them instead with two
Elements which hook into the pre-existing signal used to handle vision
updates for human mobs. I've mainly done this to help cut down on the
overwhelmingly high cost of the Life() codepath, which is currently one
of the most expensive paths we have.

While I was at it with refactoring these two, I noticed that there
wasn't a trait selection for either of them, so I added selections for
both traits to the disabilities tab so that players can opt-in to being
light sensitive or afraid of the dark!

<img width="318" height="336" alt="image"
src="https://github.com/user-attachments/assets/a1e60e83-d899-44df-8ea3-0cd5a87c231c"
/>
2026-05-18 19:21:19 +00:00
BatrachophrenoandGitHub 9d6b304ac7 [IDB Ignore] Centralize HUD icon file location (#22464)
Moves all HUD screen object icon files from various scattered locations
to icons/hud. No changes made to any icon_states in this PR, no
player-facing changes. Part of larger icon organization work and in
preparation for action button rework.
2026-05-18 19:19:40 +00:00
KanoandGitHub 4285cc90ea Fixes flashlight lighting direction mismatch when dropped (#22417)
## About PR

Makes it so lighting system recognizes the direction flashlight is
facing when dropped, so it no longer defaults to south

The reasoning behind this method is,


https://github.com/Aurorastation/Aurora.3/blob/38a5988115e33594fcc9e9fafd08d474bbf76967/code/datums/components/overlay_lighting.dm#L503-L509

items don't update their directions when held and carried around, and
`set_dir()` is where the signal is sent which system listens to

also removes an unused var
2026-05-11 18:13:03 +00:00
BatrachophrenoandGitHub ed7df070f3 Add light meters to the autolathe (#22330)
Adds light meters to the autolathe and fixes their inhand sprites.
2026-04-28 23:41:57 +00:00
33b8164013 Radiation Damage Rebalance (#22238)
Adds: 
- Dosimeter, keeps track of how many rads a person has absorbed as well
as showing the dose after armour.
- Adds a message to shelter in maint to the supermatter explosion.
- Adds a flag that makes damage not apply to robotic limbs, useful for
preventing radiation burns to metal parts. Should also be added to
chemicals that deal brute damage, such as arithrazine and the the burns
from chemical exposure to chlorine, but that's another PR.
- Added radiation resistance values to makeshift armour. As it only
covers the chest, this isn't very useful, but better than nothing.

Balance:

- Re-scaled radiation damage.
- Radiation now maxes out at 1000, from the previous 100.
- Radiation damage when at maximum rads is converted directly into burn
damage.
- Radiation sources decay slowly, so all the old numbers were maxing
people's radiation values instantaneously.
- Re-scaled organ damage from radiation. Previously you would take no
organ damage till 75% rads, then lose your liver almost immediately. Now
organ damage ramps up from 500-1000, with 750-1000 being about 1/3rd the
organ damage of 75-100.
- Added debilitating, but not lethal, effects to moderate and high
radiation levels. Lots of pain events instead of straight damage.
- Reduced speed and stamina for high radiation doses.
- Hyronalin and Arithrazine both remove much more radiation.


The intent: People should now be able to work in low radiation zones,
without using the radiation suit for short periods of time.

The geiger counter is no longer an 'if this is ticking you are at max
rads' detector.

With the engineering voidsuit, 75% rads, I could stand next to a charged
supermatter ~50rads a second, for about 2 minutes before I hit lethal
radiation levels.

If people stay in a radiation zone, or are exposed to extreme radiation
100+ rads a second, radiation is much more lethal, but not by just
killing your organs. Conventional medicine will help a lot.

---------

Signed-off-by: FenodyreeAv <fenodyree.av@gmail.com>
Co-authored-by: Batrachophreno <Batrochophreno@gmail.com>
2026-04-21 12:43:25 +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
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
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
Cody BrittainandGitHub b3762de674 Fix medical scans showing no wounds as minor wounds (#22031)
Yep..
2026-03-14 16:26:59 +00:00
6c23b4ca76 A few medical fixes. (#22022)
- Pneumalin no longer fixes damage on robotic lungs.
- Fixed augments not processing. This means that HUD augments are fixed
as well.
  - Fixed health analyzers displaying damage between 0 and 1 as 'none'.

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2026-03-12 20:04:12 +00:00
BatrachophrenoandGitHub 20e1b8b37a Buff flashlight battery lifespan (#21985)
I think flashlights drain unreasonably fast.

This PR reduces the power usage of all flashlights by 10x.

This makes them not drain unreasonably fast.
2026-03-09 21:47:27 +00:00
FabianK3andGitHub ff133de35b Fix marshalling wands handheld sprite (#21943)
# Summary

This PR fixes the handhelds sprites after the recent rework of the
marshalling wands in #21921.

## Changes

- Refactored icon_update logic in marshalling wands to fix handheld
sprites, including overlay stacking.
2026-03-01 06:48:23 +00:00
VMSolidusandGitHub 1423fcd04e Various Delta Time Fixes (#21871)
Organs were being given ~3 seconds of DT per ~2 seconds of real time,
because they were being hit by Process() TWICE, once during processing
for the "Set of all objects", and again during processing for the "Set
of all mobs". No species was hit harder than this but IPCs, who suffered
from having wildly inconsistent temperature mechanics that seemingly
never matched the expected numbers.

I have actually tested this PR to verify that it works. I even went the
extra mile to more extensively test IPC temperature mechanics to find a
separate bug unrelated to DTs that was causing suit coolers to just
straight up not work at all (space suit or otherwise) on a majority of
all IPC subspecies. I then tested the numbers in the PR for IPC cooling
to verify that things work as intended.

<img width="969" height="623" alt="image"
src="https://github.com/user-attachments/assets/01c3aca7-b436-4e52-86f7-aed847dcba5e"
/>

I also tweaked all the subsystems to have a small performance
improvement.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
2026-02-27 01:28:20 +00:00
BatrachophrenoandGitHub 8e602afb32 Paint gun consolidation and crate/locker painting (#21902)
We don't need a million paint guns. Makes it so a single paint gun can
paint whatever you want. Which now also includes crates and lockers.

changes:
- rscadd: "Paint sprayers can now be used on unpainted crates and
lockers to give them a custom appearance."
  - rscadd: "Adds paint sprayers to Hangar Tech lockers."
- qol: "Moves pipe painter functionality to paint sprayers; pipe
painters now just flavor objects on some offsites."
- qol: "Adds paint sprayers to allowed items list for utility
toolbelts."
- imageadd: "Codersprites pipe painter with recolorable paint storage
component indicating current color (used by paint sprayer)."
  - imagedel: "Removes old paint sprayer sprite."
- bugfix: "Removes old runtime caused by targeting turfs w/ paint
sprayers that don't have flooring singletons assigned."

<img width="496" height="505" alt="Screenshot 2026-02-20 142403"
src="https://github.com/user-attachments/assets/152ea63a-4baf-48e5-864e-400caef9efc6"
/>
<img width="515" height="429" alt="Screenshot 2026-02-20 142424"
src="https://github.com/user-attachments/assets/cb05b674-ac4f-4e2f-8f17-9d8654f099ff"
/>
<img width="450" height="102" alt="image"
src="https://github.com/user-attachments/assets/aa6e51b5-a325-4e8c-baf8-21134843fbf2"
/>
2026-02-27 01:12:05 +00:00
WildkinsandGitHub e1770df81e Lag War Day 4: Under Pressure, High Voltage (#21878)
Replace /datum/gas_mixture/proc/return_pressure with XGM_PRESSURE(xgm)
macro. Having such a relatively simple statement contributing proc
overhead to procs called millions of times is ridiculous

Rename /datum/gas_mixture/proc/zburn to react, deleting the old react
which was just an alias for it. Free proc overhead

Turn check_combustibility into a macro CHECK_COMBUSTIBLE(is_cmb, xgm).
also rewrite it slightly so that it only needs to do one pass. Its a bit
nasty so I apologize for that, but speeeeed.

Delete most powernet and obj/machinery/power procs for handling power,
replacing them with macros. The fact that we were unironically calling a
draw_power() on APCs to call draw_power() on their terminals to call
draw_power() on their powernet every single process tick was insane.

Turn `between` into a macro alias for clamp() since the param order is
different

turn `Percent` into a macro AS_PCT

Rewrite significant chunks of update_canmove so its not quite as
horrifying of a proc and hopefully doesn't eat the entire mob subsystem
every movement now
2026-02-27 00:35:41 +00:00
WildkinsandGitHub 346c06824b Fix shortwave radio channel selection (#21937)
oops
2026-02-27 00:31:25 +00:00
BatrachophrenoandGitHub d8e916bfc5 Make Radios appear on character sprites again (#21932)
Back-end change caused radios to vanish due to not having explicit
contained_sprite setting.

You can see clip-on radios, headsets, etc. on your characters again.
2026-02-26 18:38:56 +00:00
FabianK3andGitHub 3d0a989e97 Marshalling wands update (#21921)
# Summary

This PR updates the marshalling wands and gives them intent based
coloring. In addition, hold a second wand in your hand, the settings
will be automatically synced.

## Changes

- Update marshalling wand sprite (more the structure then the actual
sprites).
- Added color modes, updated text, added mechanical hints and two hand
sync to marshall wands.
- Added signal for mob intent changes (unused at the moment).
- Adjusted Hangar Tech round start spawn points in the breakroom.
- Added second marshalling wand to each Hangar Tech locker.

## Preview

(Note this preview has been made prior further pixel adjustments,
consider it a demo.)


![dreamseeker_nYNBHIbQkl](https://github.com/user-attachments/assets/edc2d3f2-33ac-4adc-8c65-586360176e6a)
2026-02-26 18:38:34 +00:00
WildkinsandGitHub 91b42cecfe TGUI Radio (#21917)
updates radio / headset UI, inspired heavily by TG's version


![eRcywUYQFD](https://github.com/user-attachments/assets/45a89b9c-c985-4758-b7e6-95b9801d486c)
2026-02-26 18:38:24 +00:00
WildkinsandGitHub e4192f9b8f Lag War Day 5.5: are you serious dude (#21889)
we have a gorillion hard deletions and it turns out half of them are
because we set the "ALWAYS HARD DELETE THIS" flag rather than just like.
fixing the hard delete.

cool
2026-02-21 01:41:50 +00:00
BatrachophrenoandGitHub 8111a8489b Restore many missing inhand sprites for items, add/port others (#21831)
Many, many, many items have inhand sprites in their .dmis but for
whatever reasons do not display them in-game. This PR:

1. Updates many item definitions to point to their already-existing
inhands correctly. This consists largely of held tools, but also gas
tanks and jetpacks mounted in the suit storage slot.

2. Adds a few codersprites made by me for objects with either missing
inhands or poorly matching mishands (IE, the tape recorder, which has a
black case, reused the white inhand sprites of the health analyzer). The
new sprites are modified or recolored variations of other inhand sprites
from our repo, except for circuitboards which are new.
<img width="444" height="400" alt="image"
src="https://github.com/user-attachments/assets/7f107b9a-fe24-4e31-8f16-4d34768ee117"
/>


3. Adds inhand sprites for Inflatables and Inflatable Boxes made by
Tomixcomics.
<img width="424" height="101" alt="image"
src="https://github.com/user-attachments/assets/434107c4-8577-49a2-a58e-d6b014c03933"
/>

4. Ports inhand sprites for the Hydraulic Rescue Tool from tg's Jaws of
Life.
<img width="224" height="94" alt="Screenshot 2026-02-07 172931"
src="https://github.com/user-attachments/assets/070c7956-f6a8-4fb5-870f-10c64afcc8b3"
/>

5. Some additional cleanup while in the area. The 'analyzer' has been
renamed the 'gas analyzer' to be consistent with the other analyzer
objects, standardized icon_state naming conventions where I saw
oddballs, updated code docs to use DMDocs when in the area, etc.

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

| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/item/hydraulic_rescue_tool.dmi | [SomeAngryMiner (bee
station)](https://github.com/BeeStation/BeeStation-Hornet/pull/2487),
[maxymax
(/tg/station)](https://github.com/tgstation/tgstation/pull/58616) |
CC-BY-SA |
| icons/obj/item/inflatables.dmi |
[Tomixcomics](https://github.com/tomixcomics) | CC-BY-SA |
2026-02-17 17:51:22 +00:00
8998842f7a Large Variety Of Hard Dels (#21834)
I spent the entirety of today's event looking at hard dels with my new
digital minions. This was *nearly* every Hard Del that came up during
2/7/2026's event. It turns out that AI is extremely well suited to
hunting down circular references like this across an entire repo. This
PR was made with Antigravity-Gemini3Pro.

I have not yet tested this PR.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Wildkins <john.wildkins@gmail.com>
2026-02-17 15:57:11 +00:00
WildkinsandGitHub 84d3a447ab Lag War Day 2: TGUI performance improvements (#21848)
<img width="707" height="659" alt="image"
src="https://github.com/user-attachments/assets/6c8db0bf-dec6-40f2-86e8-120531fa5693"
/>

the traitor uplink is causing a genuine hostage situation to the server
by simply being open due to the frankly insane amount of data that it
builds and ships every single UI process tick (which is very often!!!)

i've never been ragebaited by a single .dm file before so hard in my
entire developer career so I simply neutered it into using static data
and hit the commit button. it might break, if it does we're burning it
to the ground and remaking it. genuinely heinous crimes going on there

In addition I'm porting:

* [Fix several SHOULD_NOT_SLEEP hits in SStgui.update_uis()
tgstation/tgstation#75411](https://github.com/tgstation/tgstation/pull/75411)
* [Moves ui references from the tgui subsystem to datums themselves
tgstation/tgstation#76215](https://github.com/tgstation/tgstation/pull/76215)
* [Fixes some spurious runtimes in SStgui procs
tgstation/tgstation#76251](https://github.com/tgstation/tgstation/pull/76251)
* [Fixes tgui_open_uis tracking
tgstation/tgstation#77101](https://github.com/tgstation/tgstation/pull/77101)

moving ui references to the datums themselves is a pretty nice
performance boost because otherwise we have to iterate across all open
uis every time a list input closes which sucks! the rest are just fixes
to that original PR.

thank you for your attention to this matter
2026-02-14 02:17:23 +00:00
Casper3667andGitHub d0da59a72e Fixes journals, quik-pay and credit symbol use (#21844)
Three for one.

- The ability to write in journals held in ones hand was restored.
- The quik-pay quick-input now works properly.
- The credit symbol use was standardised to use 5电 and inserted into a
few places where it used credit instead.
2026-02-11 23:58:45 +00:00
Casper3667andGitHub f555d6b281 Fixes several in-hand lights (#21811)
The in-hand sprites of a lot of handheld lights now exist again.
Torches, flares and marshal wands also now correctly give a light all
around, instead of directional.
2026-02-06 20:41:57 +00:00