359 Commits
Author SHA1 Message Date
FabianK3andGitHub 144a6a943b Revert "Refactor Get Pain" (#23118)
Reverts Aurorastation/Aurora.3#22847
2026-08-21 01:25:32 +00:00
VMSolidusandGitHub 40e88e0d2d Refactor Get Pain (#22847)
This PR refactors get_pain() to be essentially performance free.
Previously it was a member of the top 5 most expensive procs.
I had to touch a metric shitton of files to make this happen. Notably
get_pain() was also 1/3rd of the entire processing cost for Mobs - Life
2026-08-19 22:50:40 +00:00
c#min7andGitHub 14266ea5aa applications of phoron: telecomms, SMESs (#22966)
- Represents phoron lore in telecomms stock part descriptions
- Represents phoron lore in SMES unit sprites/descriptions
- Adds a phoron-free cryogenic alternative to phoronic SMES units
- Replaces all instances of quantum mechanics being used for FTL Comms
with Bluespace (eg. the Quantum Relay -> Bluespace Relay)

Does not map the cryo SMES in anywhere, but use-cases would be Einstein
Engines, EE-supported factions, and less affluent indie groups

some basic recolouring:
<img width="333" height="107" alt="resprite1"
src="https://github.com/user-attachments/assets/8961274a-39bc-4523-8e11-9daadc652be7"
/>
<img width="559" height="106" alt="resprite2"
src="https://github.com/user-attachments/assets/3afefe66-5487-41f1-bbd7-59ea1bb37b40"
/>
2026-08-03 01:23:20 +00:00
BatrachophrenoandGitHub 7172d3dbe3 NTNet Extensibility (#22908)
Fixes https://github.com/Aurorastation/Aurora.3/issues/21944

Spiritual successor of
https://github.com/Aurorastation/Aurora.3/pull/22352
Cherrypicked changes from the C3 Crew Management branch, this PR
contains all NTNet extensibility features, including Field Relay
construction, off-site camera usage (contingent on standing up remote
hardware and being out of jamming), etc. This also fixes a handful of
outstanding telecomms and view/mobeye-related bugs adjacent to where I
was working.

changes:
- rscadd: "Adds NTNet extensibility, requires new machinery constructed
on away-site z-levels."
- rscadd: "Breaks NTNet Relay machinery into Quantum Relay ('core' obj
on Horizon) and Field Relay (deployable off-site constructions)."
- qol: "Embedded cameras (basically every video camera EXCEPT those
which are installed on walls) can now be viewed from NTNet-connected
z-level, not just connected ones."
- rscadd: "Adds several public camera monitor consoles to the Horizon
(near where public sensor grid feed consoles already exist)."
- rscadd: "Adds some spare camera console boards to Horizon technical
storage."
- qol: "Adds action button for 'cancel-camera-view' verb while viewing
cameras or looking up/down z-level."
- bugfix: "Fixes Jockey comms (frequency was missing from ANTAG_FREQS)."
- bugfix: "Fixes look-up/look-down actions intermittently failing
without first using cancel-camera-view."
2026-08-02 01:24:45 +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
antandGitHub 091d6d84c2 XO office remap (#22909)
a pretty comprehensive remap of the XO's office, splitting it into two
separate rooms
2026-07-26 18:03:40 +00:00
Wowzewow (Wezzy)andGitHub 2c91c8bba4 Adds Bartending Codex & Chem Codex touch-up (#22860)
Title

Also touches up the Chem Codex, by having catalysts, inhibitors and
temperature show up only if used by the reaction.
This should reduce a lot of dead space and info.
<img width="844" height="1033" alt="image"
src="https://github.com/user-attachments/assets/bb78c2a3-e9e4-4b95-9a86-64f2d14c8d8e"
/>
2026-07-25 13:03:34 +00:00
802d3fe01f Persistency subsystem update - Generics and history records (#22114)
# Summary

This PR is the next update to the persistency subsystem. The goal of
this PR is to provide more framework like functions to allow more types
of content to be made persistent.

Currently only volatile game objects created during a round can be (*in
a [clean](https://www.youtube.com/watch?v=rZ3ETK7-ZM8) way*) saved and
made persistent. This update attempts to provide methods to make
*everything*¹ persistent.

This introduces persistent generics and history.

## Database

The following things are going to be changed and added in the database  
(open in new tab for better visibility, PNG file includes the drawIO
code):

<img width="1692" height="1041" alt="aurora_persistency_db drawio"
src="https://github.com/user-attachments/assets/ea53f419-f9aa-4592-af8f-3a8d5edf3177"
/>

**Deviations on database implementation from diagram:**  
- Removed unique constraint on history table - Prevented adding multiple
records per round per attribute.

## Framework surface changes

- MC/VV: Moved global object track register to subsystem var space.
- MC/VV: Point of interest: Added history_cache and generic_cache to
subsystem var space.
- MC/VV: Updated subsystem stat entry message, now providing information
on cache sizes of new types.
- Added `singleton/persistent_type` defines (Type, clean-up rules,
finalization hook) and macros allowing new definitions of said types.
- Added cache structures that are also used for returns on public procs
in generics and history persistent types.
- Major new framework features: Persistent history (example: Mining
yield records) and persistent generics (example: Persistent Horizon
overmap position). See documentation for more information.

DrawIO diagram for documentation, includes source in it (open in new
tab):

<img width="200" height="200" alt="Persistence-subsystem-flowchart
drawio"
src="https://github.com/user-attachments/assets/51f28331-f999-49a2-a7cc-58278f7ae416"
/>

## Tasks

(These lists are not comprehensive.)

**General**
- [x] Update DB - Write SQL scripts.
- [x] Add subsystem modular files for generics and history.
- [x] Add type definition logic, macros.
- [x] Add type-DB init logic.
- [x] Logging.
- [x] A lot of testing. *A lot.*
- [x] Changelog.
- [x] Self-Review.
- [x] Update documentation on the persistence subsystem.

**"Persistent history"**
- [x] Add init logic.
- [x] Add finalize logic.
- [x] Add framework surface procs.
  - [x] Get last record.
  - [x] Get last X records.
  - [x] Add record.
  - [x] Add character ID related validation.
- [x] Add initial example mechanic.

**"Persistent generics"**
- [x] Add init logic.
- [x] Add finalize logic.
- [x] Add framework surface procs.
  - [x] Save.
  - [x] Load.
- [x] Add initial example mechanic.

## Changes

Too many changes to be listed here - Check changelog and actual changes.

## Warning

There are certain use/test cases that *cannot* be tested locally due to
missing preexisting data in the database. This should only affect new
data structures (new persistent types), not existing data.

¹ _Large scale persistent mapping is excluded for this version._

---------

Co-authored-by: Copilot <copilot@github.com>
2026-07-19 20:56:17 +02:00
Casper3667andGitHub 4a50853514 Fixes PDA and cargo tug lights (#22859)
PDA flashlights work again and their strength is now determined by the
flashlight inside. There is still only one type of flashlight.
Cargo tug lights work again and are now directional.
2026-07-17 20:50:04 +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
CatsinHDandGitHub 5c7a012e8b File Manager Refresh (#22649)
- Abstracts edit and rename function in the File Manager.
- Files are now edited in the program and not a separate input box.
- File editor now has an editor toolbar with formatting buttons and
keybind functionality.
- File descriptions can now be edited.
- Forms can now be downloaded into a computer's file manager as a text
file.
- File browser now shows a file description.
- Fixed an issue where copying to/from a USB would throw an error
because it didn't read the ID of the device being held.

I was planning to add folder functionality, but that requires far more
work since we store our files directly into the hard drive, which does
file manipulation. Meaning, in order to add folders, I'd need to
completely redo how hard drives and the file structure works. I'll
tackle that later.

CCIA Forms currently generate the entire form, which can be edited
without reservation. This is fine, however a future PR may be viable for
converting forms to use limited edit-access on fields to streamline the
form-filling process. That or just adding the ability for files to
display [field] properly.

Forms tested by Fabian :)

- [x] Fix ID check for copying programs to/from work devices
- [x] Add editor/formatting functionality
- [x] Test Forms functionality (unless an ultra cool dev can for me :) )
- [x] Add description box for editing
- [x] Add actually good formatting to editing
- [x] Misc bugtesting with encrypting, decrypting
- [x] Fix USB files sticking in browser after USB is removed

<details><summary>Video</summary>
<p>


https://github.com/user-attachments/assets/c6c666de-18fd-41a0-9751-3961aeda48fc

</p>
</details>

---------

Signed-off-by: CatsinHD <31459154+CatsinHD@users.noreply.github.com>
2026-06-19 17:05:40 +00:00
Casper3667andGitHub 7a99813dd0 The Case Dossier program (#22703)
This adds the case dossier program. A program intended for investigators
to use for their cases, with the ability to record evidence, photos,
documents, people and their notes on a case. The rest of security is
able to view cases in the program, but not edit them.
Additionally, the forensic skill was added to evidence bags and photos,
allowing a person to add the time, place and the person using them,
mainly intended to be used with the case dossier program.
Fibers and prints can now be gathered from objects inside evidence bags,
to avoid contamination.
Also fixed some bugs with taking photos of certain objects, such as
airlocks.


https://github.com/user-attachments/assets/92a880e9-9032-46d4-88c0-43d45b64f979
2026-06-19 04:36:07 +00:00
45372d6f97 Adds the Orion theme and a couple of small changes to the cargo programs (#22655)
The orion theme has arrived! This theme is intentionally not using the
orion colors, as I couldn't get them to look good and I found this theme
to feel better for the warehouse aesthetic.
Other changes include:
- It is now possible to clear the currently selected/viewed order in the
cargo control and cargo delivery programs.
- The cargo delivery program was fixed to not crash if you clicked
overview or pay before selecting an order
- It is now possible to pick a theme for the program selection screen
(see last image) for modular computers. This is currently only used for
the operations delivery tablets.
- The cargo delivery program can print invoices, if the modular computer
has a nanoprinter. One was given to the delivery tablet in the HT
locker.

<img width="800" height="800" alt="image"
src="https://github.com/user-attachments/assets/4f2de8dd-9e94-4898-9907-c97a53084771"
/>
<img width="800" height="800" alt="image"
src="https://github.com/user-attachments/assets/afc841ca-a257-4cd0-9d9d-654ba6abe8f6"
/>
<img width="800" height="800" alt="image"
src="https://github.com/user-attachments/assets/7d2e757e-79fb-4100-a373-9a378d18d6ec"
/>
<img width="1200" height="800" alt="image"
src="https://github.com/user-attachments/assets/bc2da18b-1a5c-463e-a63c-a79b10de20b0"
/>
<img width="1200" height="800" alt="image"
src="https://github.com/user-attachments/assets/441e3479-71b0-4898-a5f0-14f6441ebf97"
/>
<img width="575" height="700" alt="image"
src="https://github.com/user-attachments/assets/25e95e1a-3b1d-4a5b-bc8f-dc01ba07c107"
/>
<img width="620" height="800" alt="image"
src="https://github.com/user-attachments/assets/f68f6954-f077-40c7-b57d-d65e16b897ae"
/>
<img width="575" height="700" alt="image"
src="https://github.com/user-attachments/assets/879d97d3-e5ed-499b-9e15-5459e16ee38e"
/>
<img width="400" height="500" alt="image"
src="https://github.com/user-attachments/assets/ae7b4123-b556-438e-8d55-a826611f00bf"
/>

---------

Co-authored-by: Batrachophreno <batrochophreno@gmail.com>
2026-06-18 20:02:49 +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
BatrachophrenoandGitHub 0d92359da7 Bun, Inferno->React migration (#22529)
Re-creation of https://github.com/Aurorastation/Aurora.3/pull/21046 to
skip merge conflict hell. Brings us modern TGUI.

**ALTERNATE TITLE: TGUI HELLSCAPE PR
ABANDON ALL HOPE YE WHO ENTER HERE**

- [x] Migrate build tools (javascript -> typescript, bun for package
management).
- [x] Upgrade all TGUI dependencies and associated root files to
TG-congruent versions (axios, babel, dompurify, eslint, highlight,
marked, prettier, sass, source-map, stacktrace-parser, typescript).
- [x] InfernoJS -> React migrations
- [x] React cleanup and polish (migrate all remaining .js files to
appropriate .ts or .tsx filetype, all remaining hooks, linting, error
corrections, etc.)
- [ ] Test all remaining TGUI interfaces
2026-06-05 15:55:22 +02: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
328c56be11 Arc feature - Persistent supplies (#22368)
# Summary

This PR adds persistent supply packages and a specialized charge card
for lore arcs.
Both can only be created using admin permissions and are not intended
for general availability.

## Changes

- Added a new package type, persistent supplies.
- Abstracted existing orion deliveries for shared code.
- Added a new persistent charge card variant.
- Added exceptions and specific logging for new card variant.

## Notes

Depends on PR #22367. Specific merge order not relevant.

Icons by @Fyniiy.

Relevant information for the current arc can be found on the forum
thread [Operation Deep
Dive](https://forums.aurorastation.org/topic/22921-all-crew-thread-operation-deep-dive/).

---------

Signed-off-by: FabianK3 <21039694+FabianK3@users.noreply.github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
2026-05-05 01:25:06 +00:00
Casper3667andGitHub 36d442beb8 Makes the ops handling fee a percentage, removes supplier fee, ability to remove approved orders and bugfixes (#22350)
- qol: "Reduced the crate fee when making operation orders."
 - bugfix: "Fixed the wording in some of the operation programs."
 - bugfix: "Fixed the delivery app showing deliveries it shouldn't."
- bugfix: "The cargo control program now properly display status
messages."
- balance: "Supplier fee was set to 0 for all current suppliers,
eliminating the 20 credit charge per supplier."
- balance: "The operations order handling fee has been turned into a
percentage charge instead, and reduced to 5% by default instead of a
flat 20 credits."
- rscadd: "It is now possible to reject orders that have been approved
but not shipped or paid for."
2026-04-29 18:08:00 +00:00
SierraKomodoandGitHub 5913873b80 Fix missing map program overlay for PDAs (#22353)
Fixes PDA sprites missing an overlay when the map program is loaded.
Sprites drawn by myself based on the DOOM automap and a very poor
attempt to model the E1M1 entry room.


https://github.com/user-attachments/assets/3a2d8c2f-9ff7-4f46-a63a-c38cf52f3615

- Fixes #22250
2026-04-28 23:42:39 +00:00
BatrachophrenoandGitHub 44bb1d5c82 Port Volturno Bar (#22308)
Replaces the top floor of WITCH HAND with a small bar, several other
minor fixes/cleanup in the area.
<img width="1237" height="1217" alt="Screenshot 2026-04-21 130646"
src="https://github.com/user-attachments/assets/fd89d713-9686-4b2f-9df8-aac5a44bda7c"
/>

Also, a minimap and portable map readers distributed at the spaceport
and ghost role spawns.
<img width="553" height="289" alt="image"
src="https://github.com/user-attachments/assets/3b15998f-e0be-4db2-bc82-3e50dc457549"
/>
2026-04-22 20:33:55 +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
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
0c342878e5 Engineering spriting (detailing & port), portable shield balance, bugfixes (#21862)
EXTREMELY MINOR MISCELLANEOUS CHANGES TEEHEE

changes:
- imageadd: "Adds +bolted, +welded, +lights overlays to several large
machines for easier visual identification of whether or not clicking on
that emitter will kill you or not, etc."
- imageadd: "Modifies the base of the Shield Wall Generator sprite to
better match that of the Emergency Shield Projector (and so they can use
the same overlays mentioned above)."
- imageadd: "Tweaks the Emitter's directional sprites slightly so that
the base doesn't seem to change shape quite so drastically when
rotated."
- imageadd: "Ports very pretty space heater sprites made by Wallemations
and vinylspiders from /tg/."
  - imageadd: "Adds unique sprites for Old and Heavy-Duty power cells."
- balance: "Increases power draw and range of Emergency Shield
Projectors."
  - balance: "Increases power draw of Shield Wall Generators."
- balance: "Greatly reduces time for debugger to fix APCs corrupted by
electrical storms."
- balance: "Increases multi-z shield capacitor reserve charge and
maximum throughput, so that high-strength shields can actually be run
(at high power draw)."
- balance: "Tweaks the INDRA power output formula to scale better with
increasing temperature."
- balance: "Slight adjustments to space heater efficiency formula with a
friendly handwave to entropy."
- balance: "Old power cells have a 5% chance to be defective and have
slightly lower maxcharge than standard cells."
  - qol: "Adds extended examine hints to engineering objects."
- qol: "Extends list of object types which INDRA core field will
interact peacefully with."
- qol: "Improved space heater UX (chat msgs changed to balloon alerts,
audible feedback, etc.)"
  - code_imp: "Updates many code comments to use DMdocs."
- code_imp: "Consolidates various shield generation machine sprites in
scattered across multiple files into a single shield generator machines
sprite file."
  - bugfix: "Fixes Emergency Shield Projector hard del issue."
- bugfix: "Emergency Shield Projector now shuts down as intended if the
area's APC gets completely drained."
- bugfix: "Firing the gyrotron into the INDRA while no reactants are
present will no longer generate heat."
  - bugfix: "Fixes INDRA runtime."
- bugfix: "Fixes Power Monitoring app not displaying grid sensors when
run from a modular computer held in-hand."
  
  Bolted/welded down Emitter:
<img width="130" height="101" alt="Screenshot 2026-02-13 123842"
src="https://github.com/user-attachments/assets/8357b5ea-77e6-46f7-b4a0-724aaa141cef"
/>

Modified shieldwall sprites (with old ones for comparison)
<img width="667" height="103" alt="Screenshot 2026-02-13 111422"
src="https://github.com/user-attachments/assets/2b1e849e-f955-49cb-b094-0bef098a754f"
/>

Shields actually useful for damage control now (though they'll blow
through APC charge if you go as crazy as this):
<img width="804" height="891" alt="Screenshot 2026-02-13 124245"
src="https://github.com/user-attachments/assets/39268b42-5abe-4a3b-ba8a-a18bdc63873e"
/>

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

| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/atmos.dmi (all "sheater*") | [Wallemations, VinylSpiders
(/tg/station #93800)](https://github.com/tgstation/tgstation/pull/93800)
| CC-BY-SA |

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
2026-03-11 16:39:54 +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
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
a1dda72a1c Records Computer Tweaks (#21840)
I got annoyed one too many rounds in a row that I had to print the
medical records to get the medical records, and did not know until
writing this PR that you have to click where it says "medical" to view
said records. So I have tweaked a bunch of things about the records, so
that they now automatically open to the appropriate tab matching their
records type, EG Medical Records opens by default to Medical Records.

<img width="903" height="661" alt="image"
src="https://github.com/user-attachments/assets/abea1c4b-c78d-4716-ada5-13a100a3316e"
/>

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Casper3667 <8396443+Casper3667@users.noreply.github.com>
2026-02-17 15:40:22 +00:00
6ad39a46f7 Bounty paper update (#21820)
# Summary

This PR updates the bounty paper sheet to a new design. No bounty
related content has been added or removed.

It now contains a timestamp from printing to make it easier to
differentiate between old and new prints.

## Preview

<img width="495" height="573" alt="Screenshot 2026-02-06 185245"
src="https://github.com/user-attachments/assets/1d382450-5fb9-4a36-883b-c412409706f7"
/>

<img width="476" height="559" alt="Screenshot 2026-02-06 185252"
src="https://github.com/user-attachments/assets/2a6c36e0-f184-43df-ae04-b180e2f669e3"
/>

---------

Signed-off-by: FabianK3 <21039694+FabianK3@users.noreply.github.com>
Co-authored-by: Cody Brittain <1779662+Generalcamo@users.noreply.github.com>
2026-02-09 23:20:30 +00:00
VMSolidusandGitHub 16724e956c Fix Silicons See Offship (#21798)
It was possible for a player to incorrectly be able to view the
ghostroles in the Off-ship Manifest by entering any sort of camera, then
opening the manifest. This was most trivial to do with Borgs and AI, but
was also possible for player characters in some situations. This fixes
that by making it so that Eyes (a type of abstract mob used for cameras
and borgs), are specially excluded from viewing the Off-ship manifest.
Other types of observers should remain unaffected.
2026-02-06 20:25:05 +00:00
VMSolidusandGitHub 4d43d53c6f Ghostroles In Lobby Manifest (#21772)
This PR makes it so that player characters who are active in the
ghostrole list will show up on the Crew Manifest, but only if you the
player are not currently in-round. Any type of Observer, including
ghosts, aghosts, and actually being in the lobby, all allow the user to
view Off-ship characters in the manifest. If you are not any kind of
observer, the Crew Manifest will only show Horizon characters.


I have tested this PR. Behold.


https://github.com/user-attachments/assets/76ffb40a-bb67-4719-a2e7-df04f38b929e
2026-02-03 10:09:49 +00:00
Casper3667andGitHub 306206f542 Operations delivery app fixes and improvements (#21720)
A small bundle of fixes with what is displayed, as mentioned in the
changelog.

Notable changes:
- It is now possible to charge department accounts directly using it.
The one doing it is logged in the transaction log for that account so
command can still go and check it. This was a feature I have been
requested repeatedly to make by operations member, to help encourage
people to buy more things for their department. Only a hangar tech
should be able to change the account that is charged as well.
- The delivery and pay buttons are now separate in the delivery app,
permitting someone to pay without having it delivered, or have it
delivered without paying. This also fixes a bug that paying before it
gets shipped to the Horizon could get an order permanently stuck as
being shipped & paid but not delivered.

<img width="575" height="700" alt="image"
src="https://github.com/user-attachments/assets/f14c9c0d-39fb-41b1-b3e9-aa479ccc0804"
/>
<img width="575" height="700" alt="image"
src="https://github.com/user-attachments/assets/7e33b8ef-caff-4e11-9e02-7c0ab3b4dba9"
/>
<img width="452" height="532" alt="image"
src="https://github.com/user-attachments/assets/413d8097-1379-432a-91ec-cd7ed13f0832"
/>
<img width="452" height="532" alt="image"
src="https://github.com/user-attachments/assets/8b73ddc0-3dfa-4503-bfcc-972a32687f97"
/>
<img width="575" height="700" alt="image"
src="https://github.com/user-attachments/assets/93663ba7-e443-45f4-8b87-cc04de35faf7"
/>
<img width="452" height="532" alt="image"
src="https://github.com/user-attachments/assets/8d4a1ba7-fbd5-40c9-a5ef-592c2067074e"
/>
2026-02-01 23:29:38 +00:00
Cody BrittainandGitHub 3f62424312 [MDB Ignore] [IDB Ignore] Kills off /obj/item/device (#21774)
This has zero reason to exist in our code base. We have no procs or
variables tied to this. I removed it to make future modifications
cleaner.

---------

Signed-off-by: Cody Brittain <1779662+Generalcamo@users.noreply.github.com>
2026-02-01 05:14:26 +00:00
BatrachophrenoandGitHub b64cb2a1c6 Fixes Camera Monitoring Console UI restricted network access (#21758)
Fixes https://github.com/Aurorastation/Aurora.3/issues/21757.

Changes made in https://github.com/Aurorastation/Aurora.3/pull/21734
allowed for camera monitoring consoles to launch their own headless
versions of the Camera Monitoring app, but the Horizon's mapped
consoles, unlike Runtime's, have some dedicated network restrictions.

This PR adds a var to the camera_monitor program that can hold the src
of the UI, which in the case of camera monitoring consoles, will
restrict the available networks displayed to those set on the console
obj itself.

changes:
- bugfix: "Dedicated camera monitoring console UIs now display only that
console's predefined networks, not all networks to which the user has
access (as is the case with regular use of the camera monitoring app.)"
- bugfix: "Removes an unnecessary process() func from camera monitoring
consoles."
2026-01-30 19:27:26 +00:00
e0aa218843 Shell May Cry: A comprehensive rework of synthetics. (#20721)
https://www.youtube.com/watch?v=9mPvZ96pHJI

A pull request commissioned by the Synthetic Lore Team to
comprehensively rework synthetics (read: IPCs) and how they work in
Aurora. The objective is to make IPCs as unique as possible from humans,
upgrading the robotic feel and atmosphere, while also preserving a good
sense of balance in-game.

Key features:

- A comprehensive expansion of synthetic organs, all of which now
fulfill a purpose: hydraulics, cooling units, power systems, actuators,
diagnostics units.
- Customizable organs with benefits and drawbacks, such as with cooling
units and power systems.
- Unique ways to repair the organs and more involved steps.
- Unique damage mechanics - every organ has wiring and electronics which
affect its functioning, and they are defended by plating which provides
natural armour.
- Improved and immersive diagnostics.
- Unique features, benefits, and drawbacks for every IPC frame.
- A rework of the positronic brain, which can be either destroyed or
shut down, alongside effects caused by low integrity.
- A rework of how EMPs affect IPC organs.
- Non-binary damage states for each organ.

To-do:

- [x] Finish the unique features for each frame.
- [x] Look into if mechanical synthskin is possible.
- [x] Power system.
- [x] Posibrain mechanics.
- [ ] Passive cooling expansion.
- [x] EMP mechanics.
- [x] Repair mechanics.
- [x] Mob weight mechanics.
- [ ] Gurney for heavy mobs.
- [x] New augments.
- [ ] IPC tag scanning and flashing.

---------

Signed-off-by: Werner <1331699+Arrow768@users.noreply.github.com>
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: Geeves <22774890+Geevies@users.noreply.github.com>
Co-authored-by: Werner <1331699+Arrow768@users.noreply.github.com>
2025-12-21 16:26:23 +00:00
Casper3667andGitHub ad0c35d714 Fixes the file manager program (#21674)
The file manager did not properly go back to the file menu when it had
loaded a program, without reloading the whole window. It was caused by
it still having loaded the specific window, so the fix here is to simply
make sure it is no longer loaded.
2025-12-19 20:21:31 +00:00
Casper3667andGitHub 1098d40e4a Puts blood type in the medical record and let the medhud see it (#21521)
The blood type was already stored in the medical records, but was not
visible to players. With this, anyone with medical record access can see
the blood type and change it, and anyone with a medical hud can also see
what it is in the person's medical record.
2025-11-01 20:39:55 +00:00
b3b4f4b9c6 INDRA, general nuclear fusion update (#21285)
Fixes https://github.com/Aurorastation/Aurora.3/issues/18951
Fixes https://github.com/Aurorastation/Aurora.3/issues/19447
Fixes https://github.com/Aurorastation/Aurora.3/issues/20283
Fixes https://github.com/Aurorastation/Aurora.3/issues/21395

Overhauls a wide variety of INDRA behaviors and related gas/material
properties.
changes:
- balance: "Fusion reaction modifications. Higher radiation and
temperature output, comparable power output."
- balance: "Increased rad resistance modifier of Borosilicate Windows
from 1 -> 4 and (closed) Blast Doors from 1 -> 6."
- balance: "INDRA Field Strength minima/maxima changed from 1-100 ->
20-120. Power costs increased significantly."
- balance: "INDRA instability increase per tick now limited, similar to
Supermatter (prevents sudden instability spike from instantly nuking
it)."
  - balance: "APC cell charge rate increased 10x."
  - balance: "Rebalanced contents of INDRA hard storage compartment."
  - balance: "SMES coils capacities halved, throughputs doubled."
  - balance: "SMES unit maximum coil capacity increased from 6 -> 8."
- balance: "TEG maximum power output increased from 500000 -> 2500000."
- balance: "Power wasted from exceeding TEG maximum power output
decreased from 50% to 33%."
- balance: "Portable generators of all types have had their power
generation capacity doubled."
- rscadd: "New 'Fusion Codex' app added for all crew with ACCESS_ENGINE
that details all available nuclear fusion chains."
- rscadd: "Boron added as a singleton/reagent. Poisonous to vaurca,
still usable in nuclear fusion as fuel assembly rods."
- rscadd: "INDRA Field Strength now scales plasma temperature entropy,
power output from temperature multiplier, and instability increase per
tick."
- refactor: "'Boron' gas renamed to 'Helium-3'. Boron is not a gas. Deal
with it."
  - refactor: "'Steam' gas renamed to 'Water Vapor'."
  - code_imp: "Descriptions added to gas singletons for future use."
  - qol: "Minor remap of INDRA control room for usability."
  - qol: "Standardized gas canister naming conventions."
- qol: "INDRA and APC TGUI interfaces now use use kW, MW abbreviations
for high wattages."
- bugfix: "INDRA Kinetic Harvester no longer rapidly deselects materials
for harvest when too many are being generated at once."
- bugfix: "INDRA EM Field effect no longer considers the camera within
its reactor chamber a destabilizing influence."
  - bugfix: "INDRA reactor core now produces radiation as intended."
- bugfix: "Deuterium and Tritium canisters no longer contain 50%
standard hydrogen (inheritance issue)."

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Geeves <22774890+Geevies@users.noreply.github.com>
2025-10-05 20:13:06 +00:00
Casper3667andGitHub 9a9e259104 Adds the parcel cart to operations. (#21288)
This adds a parcel cart to the mail room in operations, which can be
loaded with up to 17 packages. These packages can be any that can be
held in the hand, so not crates but anything smaller effectively yes as
long as it can be wrapped in package wrapper.
When it is loaded with 5 packages, it gives a slowdown to the person
pushing it, and further slowdown at 11 packages.
The cart can have a total of 17 packages at the moment, as that is the
amount of different sprites I have for it.
The code is based on the engineering cart, and also contain a small
bugfix so the engineering cart give back steel when taken apart, as that
is what is used to build it.


https://github.com/user-attachments/assets/b8613c9e-55e1-4f76-926a-60f4acd6269e

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

| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/parcelcart.dmi | Tomixcomics (Aurora Station) | CC-BY |
2025-09-10 19:05:19 +00:00
b9d1343ade Adds Missing Access Checks to Airlock Equipment (#21148)
Fixes https://github.com/Aurorastation/Aurora.3/issues/13378
Airlock controllers and Sensors now also check if the user has access

---------

Signed-off-by: Ben <91219575+Ben10083@users.noreply.github.com>
Co-authored-by: Ben10083 <Ben10083@users.noreply.github.com>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
2025-08-15 13:59:04 +00:00
d7706ece53 Bug fixes, init signals for mobs, density updates. (#21108)
1. Look up now follows your mob (no more auto-removal when you move,
only when you go below a solid tile). Maybe add a hotkey?
2. Made the codebase work with the latest version of spacemandmm lint.
3. Advanced kits don't work on robotic limbs.
4. Density shifting should now always use set_density. Ported
TRAIT_UNDENSE from CM to better control the density of living mobs.
Fixes weird shifting behaviour with wall leaning -- what was happening
is that mob density was getting reset to TRUE because the mob wasn't
lying down.
5. TGUI say light prefs actually save.

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2025-08-06 10:18:14 +00:00
BatrachophrenoandGitHub 6bba514a4d Misc Modular Computer Fixes/Cleanup (#21092)
Prompted by
[this](https://github.com/Aurorastation/Aurora.3/issues/21090) (Atmos
control app not reliably updating all alarms from
SSmachinery.processing). Did what I could but barring a larger refactor
of how computer programs are initialized, didn't want to burn Too much
time so implemented a Refresh button in the application interface as an
in-game fallback option.

Also fixes the bug with Loadout-spawned laptops not booting; their hard
drives were being initialized with default software due to accidental
codeblock removal
[here](https://github.com/Aurorastation/Aurora.3/pull/20660/files#diff-40a75a936400e3c347fd8c3d4c804190a63ac9be980912f6a9995efd1b296a1e).
Restored the affecting code.

Updated several other files I discovered in passing while working on
this with proper DMdocs formatting.
2025-08-03 16:12:30 +00:00
BatrachophrenoandGitHub f096b206a0 Atmos Alarm Control computer program search fix and UI refactor (#21056)
Scope creeped PR. Fixes a breaking bug in the Atmos Alarm Control
application introduced after areas-cleanup PR, but also refactors it
into a grid-based interface that actually allows you to reliably search
alarms by name, department, and deck # (possible now with all the area
metadata we have to play with).

Also does behind-the-scenes cleanup of alarm panel code in general, a
few area def problems, and some manually defined air alarm names on the
map.

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
2025-08-01 22:41:34 +00:00
BatrachophrenoandGitHub 0851144182 Area definitions cleanup (Horizon/Runtime) (#20914)
**Goals:**
1. Delete area definitions no longer used in any map or file.
2. Update area definitions such that everything used in mapping the
Horizon exists in 'maps\sccv_horizon\areas' with the parent
'area\horizon\'.
3. Reorganize/rename/restructure those Horizon area definitions to make
future mapping easier and code that hooks into area properties easier.
4. Present area names and blurbs in the status panel.

This PR only handles Horizon and Runtime areas, for digestibility/ease
of reviewing. Offsite areas for another PR.

Naming convention reference:
The /area/ 'name' variable no longer contains either 'Horizon' or the
Deck# of the area or its approx location on the ship. All Horizon areas
now have several new variables as metadata-- area names now need only be
strictly descriptive, and the appropriate constants used in the area
definition, and a new function generates the display name with
consistent formatting for us.

Detailed documentation to follow after any adjustments are made to
mappers' preferences.

This also adds area blurbs to most areas- if not bespoke, then general
department-wide blurbs to parents. I know feature creep always sucks,
but while some areas having pre-existing blurbs, the overwhelming
majority of areas don't, and while testing it was very distracting to
see them randomly appearing and disappearing. Most blurbs are pretty
basic but I feel are entirely presentable- more clever individual ones
can follow in a separate PR.
2025-07-25 19:16:33 +00:00
SleepyGemmyandGitHub 5f9201fdf0 Transferred Typo Fixes (#20879)
this PR fixes transferred being spelled as "transfered".
2025-06-25 21:10:01 +00:00
BatrachophrenoandGitHub 3e8e76b464 Improve usefulness of Custodial Supplies Locator app (#20814)
Currently, the Custodial Supplies Locator app provided X and Y coords of
every single mop, bucket, janicart, and cleanbot on the entire server.

This PR makes it so that these objects will only be registered to the
global list of custodial supplies if they are present on the Horizon on
init, and it will also provide Z coords so you can tell if they're on a
different deck.

The app also has a weird built-in GPS function that tracks the reader's
movements instead of the device's. Instead of fixing this to follow the
device, I just removed GPS feedback text- a Janitor can grab one of the
GPS units that comes in their lockers, and this also allows them to be
tracked by other units.
2025-06-22 18:09:07 +00:00
6de43617a8 AI Lawboard Conglomeratization + Conglomerate Aggressive Lawboard (#20575)
Nanotrasen and Nanotrasen aggressive law modules/boards renamed to
Conglomerate/Conglomerate Aggressive

Adds the Conglomerate Aggressive lawboard (this lawset already exists,
just never was given a board?). Adds a copy to AI Secure Storage
(alongisde the existing lawboards, this falls under a board the SCC
would have just in case, like the other ones there.)

---------

Co-authored-by: Ben10083 <Ben10083@users.noreply.github.com>
2025-03-12 17:43:12 +00:00
55f4e12614 Codeside Cargo Refactor (#20030)
**NOTE TO SYSADMINS: See "SQL Details" section below for information on
SQL modifications.**

Moves the data containing cargo items (i.e. the ones you order from ops
and get in the cargo shuttle) from the online database to the codebase.
Everything from suppliers to categories to individual items is now
code-side and editable by developers/contributors.

Refactors cargo items to use `singletons` instead of `datums` for
`cargo_supplier`, `cargo_category`, and `cargo_item`. Multiple-instnace
things like cargo_orders, etc. still use `datums`.

Fixed a bunch of strange discrepancies in categories, suppliers, and
pricing for various cargo items. I did a little bit, but it's exhausting
to go through all of it right now.

Clicking the 'Details' button on the Cargo Order app now actually gives
you details instead of bluescreening. Also added some UI elements to the
Cargo Order app - Cargo Control and Delivery remain untouched.

Overhauled the Cargo Order console TGUI window. It now has tabs on the
left, displays restricted access, supplier information, and boasts
search functionality.

### SQL Details
<details>
<summary>SQL Details [Click to Expand]</summary>

The following SQL tables should be deleted or deprecated from the server
database, as they are no longer in use:

- `ss13_cargo_items`
- `ss13_cargo_categories`
- `ss13_cargo_suppliers`

The included migration file, `V011__codeside_cargo`, creates a new table
`ss13_cargo_item_orderlog` to the DB. This **replaces**
`ss13_cargo_orderlog_items`. Because of this,
`ss13_cargo_orderlog_items` is deprecated and should either be deleted
or locked & preserved for logging purposes.

</details>

## Screenshots


![image](https://github.com/user-attachments/assets/79129923-1fb6-4cee-ac8d-5505a52270a4)

![image](https://github.com/user-attachments/assets/a323be35-8ce6-4ec4-98f7-ee701d0931a3)

![image](https://github.com/user-attachments/assets/5ddb02c5-152f-4715-b2da-20903fa11c93)

![image](https://github.com/user-attachments/assets/420e45b0-6a9f-4420-beb8-a2c8423a5be4)

![image](https://github.com/user-attachments/assets/114f4755-ee51-41e6-8670-07aacc5326ae)

---------

Signed-off-by: naut <55491249+nauticall@users.noreply.github.com>
Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
2025-03-04 18:18:00 +00:00
FluffyandGitHub 267b4a1211 Fixed ninja teleporter (#20542)
Fixed ninja teleporter requiring access to run.
Renamed the program to 'ninja teleporter' and removed the standard
teleporter from the program list for the preset.

Fixes #20237
2025-03-02 11:14:10 +00:00
FluffyandGitHub 3185c10cf1 516 internal links (#20428)
Convert all (appropriate) links to use the required `byond://` for 516

Added a grep to detect incompatible ones
2025-02-20 22:54:10 +00:00
FluffyandGitHub 7265630dde Turn more unmanaged global vars into GLOB (#20446)
Turned a ton of unmanaged globals into managed globals.
Refactored some UT output.
Removed some unused things, including vars.
Added a test to ensure people don't keep adding new unmanaged vars.
2025-02-17 23:34:02 +00:00
860987c6bc Golden Deep Fixes & Merchant Program Refactor (#20225)
Merchant program refactor to remove need to have subtypes, causing less
issues

Minor fixes to Golden Deep ship (gramophone is anchored)

---------

Co-authored-by: Ben10083 <Ben10083@users.noreply.github.com>
2025-01-13 19:50:14 +00:00