This adds a signal that can be used to stop bone repair surgery for any
cause that might prevent such. In this particular case, I used it with
Kathira's leg aug to fit with it being a support for her leg, which
can't heal properly otherwise.
This is primarily for when she ends up in surgery and can't inform the
doctors they shouldn't be trying to begin with.
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
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>
This PR reworks the controls for Mechs to now operate under
"Battletech-Style" controls. Where the W and S keys are instead Forward
and Reverse, while A and D are turn-left and turn-right respectively.
This control scheme is generally significantly more playable for mechs,
since mechs can only interact with objects or fire weapons in a
forward-facing arc. Mechs were previously incapable of both
repositioning and fighting at the same time, while with this update a
mech can now face an enemy, fire upon them, and either move closer to
them or further away.
Mechs also now have reverse speed characteristics based on their chassis
selection. Bipedal legs generally have the worst reverse speed. Quad
legs have significantly better reverse handling, and Treads have no
reverse speed reduction at all (with the fun caveat that they suck at
turning).
I have also fixed the issue of mechs feeling like they were "too easy to
mobility kill". It turned out that mechs were hardcoded to be mobility
killed when they took only 45 points of damage, regardless of how tough
their legs were. I have reworked this to instead be a linear decrease in
movement speed, based on the damage taken ratio of the legs. Larger and
tougher legs are naturally more resistant to being impeded by mobility
damage.
I have actually tested this PR, here's it in action! NOW WITH STRAFING
https://github.com/user-attachments/assets/3123fed8-ec22-4118-8a6a-7cbfe45e6667
---------
Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Cody Brittain <1779662+Generalcamo@users.noreply.github.com>
Passive vents, as the name suggests, passively interact with the
atmosphere. Basically think of them as an open pipe.
This makes them useful to vent a pipe network to a vacuum, or equalize
the atmospheres of two otherwise unconnected rooms. Being passive
however, they are just as capable of intaking air as they are outputting
air, with no way to control it. If you want to guarantee that air only
goes -out-, use an injector or a pump vent.
Revives https://github.com/Aurorastation/Aurora.3/pull/17215 with the
needed species changes.
As I said last time this was tried, the key issue is that our walkspeed
is a lot lower than any other server's. Even if we add atom gliding as
is, it would just look like gliding through molasses and would give you
motion sickness, because it takes a half-second to finish a glide to
another tile. Meaning that to compensate the movement speed has now been
significantly buffed for everyone. Yes, even dionae, G2, simple mobs,
everyone.
As compensation, m'sai/bishop/unathi sprint were especially nerfed
because otherwise they'd go lightspeed.
https://github.com/user-attachments/assets/7ba07389-b874-4a7d-8dd5-b5d3bfe611e4
---------
Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Batrachophreno <Batrochophreno@gmail.com>
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
This PR adds a feature requested of me by @Fyniiy , adding optional
Filters to the Narrate panel that allow Storytellers to narrate only to
people that meet a set condition. The conditions themselves were
specifically requested to be "Psi Narrates" and "Synth Narrates", with
optional variations on Synth narrates that include people with cranial
implants. While I was touching these files, I've also fixed the improper
message sanitization bug with admin messages in general.
<img width="926" height="536" alt="image"
src="https://github.com/user-attachments/assets/08dcfd2a-5399-48b0-a13d-2bfd3a2c88f0"
/>
Here's a breakdown of the filter options.
1. **Skrell-like Psi-sensitives**: Anyone with a Psi-sensitivity score
of "At least 1". This will include Skrell, anyone with a Psi-receiver,
and people with the High Psi-sensitivity trait. It will exclude people
who are blocked from receiving telepathy for any reason, such as having
a mindshield, mindblanker, or having the psi-suppression power active.
Skrell with the Low Psi-sensitivity trait are counted as "Human-like
Psi-sensitives", and so won't be caught by this filter.
2. **Human-like Psi-sensitives**: Anyone who isn't blocked from
receiving telepathy, and also has a Psi-sensitivity score of "At least
0". This will basically catch "Most people who aren't a Vaurca,
Synthetic, or Diona". It will ignore Humanoids with the Low
Psi-sensitivity trait.
3. **Silicons**: Basically all of the possible robots/IPCs.
4. **Silicons + Implants**: It's fairly common practice during Hivebot
related events for Storytellers to also include characters with brain
implants. This filter automates that by including said brain implant
owners in the "Are you a synthetic?" check.
5. **Hivenet**: Pretty simple, people with the Vaurca language. This
would be Vaurca, plus anyone with the hivenet implants.
The next step in the Psi Reworks is here, this time adding all of the
remaining sources and applications of Psi-sensitivity and Psi-protection
that were on my To-Do list. Aside from a variety of tweaks and bugfixes
to powers, the most player-facing addition is the new Psi-sensitivity
related traits, which are High Psi-sensitivity, and Low Psi-sensitivity.
These traits modify the character's psi-sensitivity, which messes with
their interactions with psionics in a variety of ways.
All of these new sources and interactions with psionics are handled
entirely through components, which operate on the previously added
COMSIG_PSI signals.
Check the changelog file for more specific details on what all was
fixed. I've fixed quite a lot of bugs and issues with the various psi
powers.
I have actually tested this PR and verified that it works as advertised.
<img width="1902" height="1015" alt="image"
src="https://github.com/user-attachments/assets/e922593c-0595-4b63-bee4-36080d9cb8b4"
/>
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>
Adds turf fires (ported from Baystation, which ported them from
Shiptest), which are now used instead of ZAS fires for fuel decals and
flamethrowers. They also supplement ZAS fires in especially bad atmos
fires.
This makes flamethrowers and related objects more suitable for AOE
denial, rather than cooking the room (including yourself). They still do
the latter, but less so than a gaseous fire.
To make flamethrowers actually useful against them, simple mobs now take
brute damage when on fire.
### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:
| Path | Original Author | License |
| --- | --- | --- |
| sound/weapons/flamethrower/flamethrower1.ogg |
[rye-rice](https://github.com/rye-rice) (Shiptest) | CC-BY-SA 3.0 |
| sound/weapons/flamethrower/flamethrower2.ogg |
[rye-rice](https://github.com/rye-rice) (Shiptest) | CC-BY-SA 3.0 |
| sound/weapons/flamethrower/flamethrower3.ogg |
[rye-rice](https://github.com/rye-rice) (Shiptest) | CC-BY-SA 3.0 |
| sound/weapons/flamethrower/flamethrower_empty.ogg |
[rye-rice](https://github.com/rye-rice) (Shiptest) | CC-BY-SA 3.0 |
| icons/effects/particles/smoke.dmi |
[rye-rice](https://github.com/shiptest-ss13/Shiptest/commits?author=rye-rice)
(Shiptest) | CC-BY-SA 3.0 |
| icons/effects/turf_fire.dmi | CM Dev (cmss13) | CC-BY-SA 3.0 |
Added a unit test that automatically generates byond defines for Font
Awesome entries. I need this for future usage, and it's difficult to get
a list of Font Awesome entries anyway. This solves both problems in an
atomized PR.
For a robust crafting system, I need a new materials framework.
For a new materials framework, I need to clean up reagents.
To clean up reagents, I need to pare down foods from reagent holders.
To pare down foods from reagent holders, I need to port edibility
components.
To port edibility components, I need to port processing components.
To port processing components, I need to port tool behaviors.
This is all back-end code, no new features or functionality from this.
Changes the Auth System to use the new login server to fetch the
users/groups instead of the deprecated forumuserapi.
Removes the ForumUserAPI and moves the admin authorization processes to
a auth subsystem
---------
Co-authored-by: Werner <Arrow768@users.noreply.github.com>
V2 of [previous music playing
PR](https://github.com/Aurorastation/Aurora.3/pull/21466). TLDR no
longer uses the connect_range component for implementation because it
turned out a bit too inflexible for overlapping music players.
Removes a NanoUI template for the [TGUI
update](https://github.com/Aurorastation/Aurora.3/pull/21046).
New changelog:
- refactor: "Ported Jukebox's NanoUI interface to TGUI."
- refactor: "Ported Jukebox audio playing functionality to a component."
- refactor: "Sound keys refactored from singletons to datums, along with
larger breakout of sound.dm to allow for easier SFX updates in future."
- code_imp: "Expanded track datums to include track lengths."
- code_imp: "Reorganized music file folders for more intuitive access."
- rscadd: "Earphone status feedback text now includes track length."
- rscadd: "Added autoplay functionality to earphones."
- bugfix: "Fixed earphones' 'Previous Song' verb not sending you to the
end of the playlist when used while the first track is selected."
- bugfix: "Fixed gain adjustment for 'Konyang-1' (-23 dB -> standard
-9.8 dB)."
- bugfix: "Fixed y-offset of audioconsole-running overlay animation to
line up with the actual screen."
---------
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Continued from #19839
> Part 1 of a refactor to try and make our various fabricators use the
same system and basic code. This adds the microlathe as a proof of
concept to the whole refactor, ported from Baystation. Currently not
mapped anywhere.
> This also ports over Nebula's autolathe working sound, however it is
adapted to fit our code. As such, I went to the original sound and
re-cut it, now including start and stop sounds.
Plan is overall to make it much easier to add new types of fabricators.
### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:
| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/machinery/fabricators/microlathe.dmi |
[BloodyMan](https://github.com/BloodyMan) (Baystation 12) | CC-BY-SA |
| sound/machines/fabricators/autolathe/ |
[pencilina](https://freesound.org/people/pencilina/) | CC-0 |
---------
Co-authored-by: Cody Brittain <cbrittain10@live.com>
## About PR
Adds an industrial themed away site for Odyssey scenarios. The map
starts with a shuttle, broken by a randomized destruction feature.
Actors or the crew may choose to repair it to make it fly once more
### Detailed Changelog
<details><summary>Details</summary>
<p>
- Added a new map_effect, randomized destruction. It comes with two
varieties and different impact ranges. The way it work is the effect
chooses a random amount of turfs in the area it's placed on, and calls
`ex_act` on applicable contents in the turf.
- Added unused sprites for low railing and documented relevant functions
in the existing code.
- Made it so when a railing has an open end that doesn't connect to
anywhere, it'll apply an end cap, making it look more smooth.
- Added ceiling lattices.
- Adjusted unit tests to avoid conflicts that may occur with ceiling
lattices.
- Fixed a bug where the Odyssey subsystem repeatedly added lastly loaded
z-level to the scenario z-levels, instead of all relevant levels to the
site. This was causing issues in Odyssey maps with shuttles.
- Fixed hydrogen tank not using its sprite. Also recoloured the tank to
match modern hydrogen canister colour.
- Fixed `/obj/machinery/door/airlock/maintenance` not using its intended
appearance.
</p>
</details>
## Images
<img width="4128" height="2528" alt="StrongDMM-2025-11-10 21 33 47"
src="https://github.com/user-attachments/assets/09d8b671-457c-4ec5-88ac-e503641a0531"
/>
<img width="3424" height="2016" alt="StrongDMM-2025-11-10 21 34 27"
src="https://github.com/user-attachments/assets/943b8529-7f2a-41db-a7be-e57d5d30ead7"
/>
<img width="1312" height="800" alt="StrongDMM-2025-11-10 21 34 52"
src="https://github.com/user-attachments/assets/f665800a-367b-466e-a16e-a6f0b122e3bd"
/>
<img width="997" height="999" alt="Screenshot_54"
src="https://github.com/user-attachments/assets/c06667c6-0dfc-4dc4-af67-821f36ad2933"
/>
<img width="997" height="1001" alt="Screenshot_55"
src="https://github.com/user-attachments/assets/848a2847-9eb0-450a-87e9-08c371aaf78a"
/>
<img width="998" height="992" alt="Screenshot_61"
src="https://github.com/user-attachments/assets/e6174cb5-d4d6-4afc-82ab-bbf412eda607"
/>
<img width="998" height="990" alt="Screenshot_63"
src="https://github.com/user-attachments/assets/cc838bdc-9e22-4aed-ad16-0f8722442b8a"
/>
This PR updates the repo fully to Byond 516.1673. We now have access to
Associative Lists, Vectors, Matrices, and a huge number of math
improvements tha will allow us to catapult the repo into a new era of
simulationism.
I have tested this PR to verify that it works.
<img width="1076" height="1079" alt="image"
src="https://github.com/user-attachments/assets/c69a7276-7611-4a59-8630-46d8dd8a12a6"
/>
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>
This PR includes several changes to bring our wound code up to date with
baystation, nebula, and modern standards. Highlights include:
- The usage of integers between 0 and 100 for ratios (expressed as a
percentage), instead of 0.0 to 1.0. Small decimal values are prone to
floating point precision errors, but by moving to a percentage instead,
we can reduce the impact of this.
- The untangling of damage flags and injury flags, which were used
interchangably in the code. This could have caused issues should we
expand any of these.
- Larger embedded objects now halt bleeding in wounds, until they are
pulled out. In exchange however, embedded objects will halt healing in
wounds (it is difficult to close an open wound that currently has a rod
stuck in it)
- A lot of data, such as implanted objects and organs, are now stored in
amputated limbs.
changes:
- balance: "Dirty bomb cleanable 'greenglow' decal left behind is now
actually radioactive to make it more persistently hazardous."
- balance: "'Radioactive waste' rare Warehouse spawn submap now uses
low-radioactivity variants for some of its contents and also been given
a radioactive gear crate."
- balance: "Adds increased taste_mult values to radioactive waste,
napalm, and nitroglycerin; it should be noticeable if your drink is
spiked with any of them."
- balance: "Both uranium and radioactive waste reagents will create
radioactive pools on the floor if spilled (uranium weak, radioactive
waste medium/strong)."
- balance: "Bombs are now allowed to be planted on any mob type except
for carbons."
- balance: "Increases the numbers of assemblies (signalers, igniters,
etc.) stocked in vending machines."
- rscadd: "Adds a radioactive waste chemical canister to the Uplink (5
tc)."
- code_imp: "Adds additional variants of greenglow/radioactive decal and
radioactive_waste/hazardous obj that are more or less radioactive for
mapping and ST use."
- code_imp: "Cleans up bomb timer setting code and admin logging."
- qol: "Adds more examine hints to reagent dispensers."
- qol: "Adds more examine hints to bombs."
The 'radioactive waste chemical canister' item cost was set to 5 tc to
match the other 'hazardous chemical' antag item, the Chlorine Tank.
<img width="1701" height="292" alt="image"
src="https://github.com/user-attachments/assets/db1dbc50-1a6a-4549-b9e5-b838ec62f849"
/>
**This is but one of several PRs as part of Project Anabasis, and is a
necessary building-block for a Traits System and a Skills System**
This PR was essentially prompted by recent lore changes to Skrell that
weren't yet existing in the game, so I'm kicking off this as a PR to
start a series of more meaningful psionic reworks. With a focus on
Components and Signals as a way of dramatically increasing the systems
interactivity of psionics. With this PR, mobs have an effective
"Psi-Sensitivity" that can be checked by psionic effects, and influence
a wide variety of interactions.
Psi-Sensitivity is calculated based on a Signal interaction, whereby
multiple responding sources have a chance to respond to the signal and
influence the end result of the calculation. For now there still remains
a cutout specifically for owners of a Psi-Complexus(Which is just Skrell
and Antag Psions), who have a bonus to the psi-sensitivity check equal
to their PSI-RATING. That being 1 for Skrell, and 2 for antag psions.
But eventually in the future this should be replaced with a standalone
component separate from the concept of "Sending"
The other common sources of sensitivity currently are the Psionic
Receiver implant, MindShield, and Mind Blanker implants. With Psionic
Receivers giving a bonus to psi-sensitivity, and the latter two giving a
penalty to psi-sensitivity. Both MindShields and Mind Blankers are now
unified in how they interact with psionics, both using the same system
of Signals without a hardcoded check for the mindshield.
As an important distinction to make, Psi-Sensitivity is NOT the same
thing as being Psionic. Actually Psionic characters like Skrell have a
big bonus to their sensitivity. It's more a measurement of how receptive
a character is to Receiving (separate from Sending) psionic influences.
You can actually be capable of using psionic abilities, but have a
sensitivity of 0, effectively meaning such a character can "Send but not
Receive" psi influences.
- [x] I have tested this PR and have verified that it works, you're
welcome.
## About PR
- Fixes#21487
- Fixes#21634
- Fixes#21639
- Fixes#21640
- Also turns some comments into dmdocs in touched files, documents some
missing stuff
Fixes an issue where having a language processor from your origin gets
deleted if you also take a language processor in your loadouts. They're
intended to be parallel and not replacements for each other.
Fixes https://github.com/Aurorastation/Aurora.3/issues/21509
**Summary:**
Cleans up a lot of old Greimorian egg implantation code- rewrote the
actual worker injection behavior to use the organ/internal/parasite code
we have, instead of creating effects with their loc set to the organ
itself.
This largely means that not only is Greimorian implantation able to be
treated pharmaceutically (as you'd expect, with them being parasitic and
medicine including antiparasitics), but it also means that 'greimorian
eggs' also get the same treatment as nerve flukes, etc. That is to say,
antags can now purchase Greimorian Clade Kits from the uplink and inject
people or monkeys with them to cause Unhappy Tidings.
This code is also fairly easy to modify, if one wanted to create more
implantable parasites that burst out of people, unrelated to
Greimorians.
**Changes:**
- refactor: "Refactors the egg injection of Greimorian Workers to use
parasite code; it can now be treated with anti-parasitic medicines in
addition to amputation of the affected limb. Works on all playable
species, and monkeys."
- rscadd: "New reagent 'Greimorian Eggs' creates an egg cluster parasite
in a random organ when metabolized in the bloodstream. It also has very
mild soporific effects."
- balance: "Greimorian Workers and playable Greimorian Servants/Queen
now inject Greimorian Eggs instead of Soporific."
- rscadd: "Greimorian Clade Kit now available in Uplink under Bioweapons
section (Greimorians now able to be introduced to ship by egg cluster or
injectable reagent)."
- balance: "All parasite kit bioweapons have had their vial reagent
count increased from 2 -> 5."
- balance: "Helmizole no longer treats K'ois Mycosis, Black K'ois
Mycosis, Zombification, or Tumors (Benign or Malignant)."
- code_imp: "Updates a lot of code documentation to dmdocs."
This PR updates Agent ID cards to use TGUI instead of NanoUI and
introduces some addtional qol features. Comparison image in following
comments.
- Extended examine information: mechanics hints and antagonist hints
both for standard ID cards and Agent ID cards (explains things like how
Agent ID cards EW suites recharge over time, how to imprint biometrics,
etc.
- Silent warning message added to Agent ID cards for when power starts
getting low.
Removes a NanoUI template for the [TGUI
update](https://github.com/Aurorastation/Aurora.3/pull/21046).
## About PR
- Reduces the site's cost from `2` to `1`.
- Tweaks wall destroying logic of horde type mobs to a saner
alternative.
- Fixes corpses created by landmarks not getting assigned with the
specified access. Fixes#21527
- Creates an abomination subtype that is guaranteed to spawn with a
disguise.
Fixes https://github.com/Aurorastation/Aurora.3/issues/18504
Fixes https://github.com/Aurorastation/Aurora.3/issues/21064
Fixes https://github.com/Aurorastation/Aurora.3/issues/21267
Fixes https://github.com/Aurorastation/Aurora.3/issues/21455
Fixes https://github.com/Aurorastation/Aurora.3/issues/21535
Miscellaneous bugfixes, code cleanup, etc. Smaller batches this time.
changes:
- spellcheck: "Renames 'gibber' to 'autobutcher'."
- code_imp: "Cleans up a lot of old autobutcher code."
- code_imp: "Simplifies and unifies a lot of circuit board naming code."
- code_imp: "Updates various code comments to DMDocs format."
- balance: "Slightly increased damage of beating someone with a ladder."
- bugfix: "Fixes foreign speech displaying the translated versions in
langchat for non-fluent listeners."
- bugfix: "Fixes whispered speech langchat; whispers are now correctly
italicized."
- bugfix: "Fixes shouted speech langchat; shouts are now correctly
biggified."
- bugfix: "Adds missing Omni Gas Mixer, Gas Meter options from RFD-P."
- bugfix: "Adds missing circuit boards for bioballistic delivery system,
lysis-isolation centrifuge, and autobutcher to allow for construction
and deconstruction."
- bugfix: "Fixes empty algae chips bag having description set for its
name."
- bugfix: "Adds fallback_specific_heat values to several reagents that
were missing them."
- bugfix: "Fixes antimateriel projectiles being erroneously
damage-capped when hitting walls."
- bugfix: "Fixes laser beam effects not using the base colors of their
beam VFX."
- qol: "Added helpful feedback hint to move closer when someone speaks
aloud within 4 tiles while you're in vacuum (as features go, this one
felt more like a bug to experience)."
- qol: "Updated various examine hints."
---------
Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
From the list of bioaugments requested by Schwann.
https://docs.google.com/document/d/1SLbll969PyJ_H9J1LP8cmdso9OMozUc8MGOVZkY4HbE/mobilebasic
Gravity Adaptations are a bioaugment that serves as an implanted
alternative to legbraces, which grant the same effect. These are unique
to Galatean Offworlders in the same vein as legbraces being unique to
offworlders. They also essentially have the same effect, making the
offworlder immune to the effects of "Gravity Weakness". To make this
work, I refactored the gravity weakness mechanic to operate via a
signal, which has a shared response between legbraces and gravity
adaptations. This "Cancelable signal" pattern is going to be fairly
common going forwards as I refactor a variety of systems to allow far
greater degrees of unique interactions, without the need of hardcoding
said interactions at the source.
<img width="797" height="84" alt="image"
src="https://github.com/user-attachments/assets/01622f2b-56a1-4fb8-ae43-d78afd35f3b5"
/>
<img width="935" height="91" alt="image"
src="https://github.com/user-attachments/assets/309bbc66-d6aa-44b1-9a59-64f7fc800c90"
/>
<img width="617" height="259" alt="image"
src="https://github.com/user-attachments/assets/81a1f973-b1af-45c1-8373-05549fde286a"
/>
I have tested this PR and have verified in my dev environment that it
works as advertised.
**Overview:**
The first huge fuckoff mapping PR for giving the Horizon enough extra
space to be able to comfortably map on it for the duration before NBT2
and not be super cramped (extends aft by 6 turfs).
Includes a SECOND vault to heist at the back of the ship and a lot of
maint area people can repurpose. Notably, this also removes the Xenobio
Hazardous Containment room and the Medical Emergency Storage room
(contents of the latter have been moved). Otherwise, y'all got more
ship.
**Map Images (OUTDATED NOW):**
<img width="2453" height="868" alt="Screenshot 2025-10-16 141649"
src="https://github.com/user-attachments/assets/be9a540d-af92-46b4-b59f-e298204a678a"
/>
<img width="2450" height="940" alt="Screenshot 2025-10-16 141702"
src="https://github.com/user-attachments/assets/b96f3f3e-dd4b-4457-9c5c-1f09f8bb7a00"
/>
<img width="2452" height="895" alt="Screenshot 2025-10-16 141714"
src="https://github.com/user-attachments/assets/9a16e55d-8386-46d9-a3d3-d4e5a0ff6ec0"
/>
**Misc Features:**
<img width="1069" height="685" alt="Screenshot 2025-10-16 141727"
src="https://github.com/user-attachments/assets/89c14f85-f476-4f91-bd02-7c36f36a4418"
/>
<img width="983" height="825" alt="Screenshot 2025-10-16 141736"
src="https://github.com/user-attachments/assets/6b20da20-982c-4ec1-b252-3507f1211e94"
/>
<img width="1382" height="951" alt="Screenshot 2025-10-16 141743"
src="https://github.com/user-attachments/assets/fdfd683d-33a4-47e3-9df8-dec1f9286598"
/>
<img width="2405" height="863" alt="Screenshot 2025-10-16 141803"
src="https://github.com/user-attachments/assets/c539c4bd-4a8f-4326-a30b-5a1d09eca26b"
/>
**changes:**
- qol: "Hugely expands the Horizon's maints and adjusts/expands much of
the aft of the ship."
- rscadd: "Adds a new Vault to Horizon (Deck 3 aft, behind the Gym)."
- rscdel: "Removes Xenobiology Hazardous Specimens compartment."
- rscdel: "Removes Medical Emergency Storage compartment."
- spellcheck: "Replaces a few mentions of 'room' with 'compartment.'"
- spellcheck: "Renames the Bridge Break Room to Bridge Wardroom."
- spellcheck: "Renames the Kitchen to the Galley."
- spellcheck: "Renames the Dining Hall to the Mess Hall."
- spellcheck: "Renames each Washroom to the Head."
Ports https://github.com/tgstation/TerraGov-Marine-Corps/pull/3528
Credit goes to original coders. This PR makes large objects transparent
when something important is behind it.
For now the list of large objects and the things make them transparent
by using this component as follows:
Large objects:
- Trees
- Cranes
- Old shipping containers (new ones doesn't allow anything to go behind
it)
The things make them transparent:
- Mobs
- Carts
- Portable generators
- Nuke
## Images
https://github.com/user-attachments/assets/a4f8ddfc-0fde-4b2d-8bd8-d15e1c6e8e0b
### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:
| Path | Original Author | License |
| --- | --- | --- |
| code/datums/components/large_object_transparency.dm | nemvar (TGMC) |
AGPLv3 |
## About PR
Adds an interactive away site. Full of evil, traps, point-defense horde
cleaning and story. This is part 1 of the changes. Currently incomplete
on some mechanics mostly pertaining north-east section of the ruin but I
believe this has enough content as is and a good step for the next
changes to come!
## Detailed Changelog
<details><summary>Contains spoilers, click to expand!</summary>
<p>
- `A revivable mob type`. If this mob wasn't burned or deleted by any
means within a 3 minutes period, it will revive.
- `Abominations`, a subtype of revivable mob. This type can spawn with a
chance to split into smaller creatures in death, if someone approaches
close enough. These mobs are also able to mimic appearance of humans,
being completely pacifist until it reaches to its unsuspecting prey or
gets attacked before it could.
- `Mob tracking console`, tracks any mobs/objects that exists in the
same Z level as the console itself, and included in a global list.
Displays its data in a TGUI screen.
- `Rigged (trapped) vents`, if it detects a player passing by within 1
tile radius from an unwelded rigged vent, it'll spawn up to 2 mobs. The
chances of triggering varies on following coniditons: running (100%),
walking (medium chance), throwing items near it (very small chance).
- `Storytelling holopads`, core logic is ported from Paradise Station,
made by Qwertytoforty. I did minimal modifications to make it work with
our codebase and do some additional things.
- `Footprint mapping helper`, allows mapping footprints of any type.
- `A light fixture subtype`, has a 50-50 chance to spawn as broken or
functional after Initialize.
- `An extraction mini game`, special to this ruin. It entails finding 5
canisters scattered randomly in the ruin and killing every creature
that's lurking around. If these conditions are met players are required
to hold off an extraction device and protect it from the waves of
creatures, while swapping said canisters. Modified from phoron deposit
ruin.
</p>
</details>
---
### What's the overall story this ruin tries to convey, and where it's
allowed to spawn at?
This isn't final and a subject open for change where deemed fit. This
ruin is a remnant dating back to pre-Interstellar War. Solarian Alliance
Science Facility (SSF) Nemora, is a failed experiment/expedition
co-conducted by Department of Colonization. I believe it'd make sense to
find this ruin in the old Solarian frontiers far from the Core Worlds,
even so if the sector in question was colonized, nothing would've
stopped a department of a desperate nation in search for their gold in
blind hope. But not too close to an inhabited space.
***This needs to be evaluated by a lore nerd!***
**Possible Sectors:**
- Valley Hale
- Badlands
- Weeping Stars
- Light's Edge
- Lemurian Sea (still up in the air for this one, but I like to think
Solarian suveyors took a swing at it at the time)
- All Crescent Expanse Sectors (east, west, far).
<details><summary>Details on story. I'd advise to skip this bit to not
spoil the experience if you're not reviewing this PR. Spoilers alert,
click to expand!</summary>
<p>
Shortly before the Second Great Depression, when the upcoming crisis had
begun to be felt within the nation's departments, some surveyors from
the Department of Colonization encountered an anomolous signal,
incalculable energy levels in deep space. When they decided to
investigate its source, small expedition teams went missing after a
while.
This drew the attention of the department, as seeing multiple expedition
teams went radio silent. A third-party incursion was suspected here,
pirates or worse. This led to the deployment of sufficiently armed Navy
corvettes to the last known coordinates of the expedition.
To no avail, all that was found was the vacant shuttles of the
surveyors, drifting in orbit around an anomolous asteroid. This gave
room for further discussion in the smaller parts of relevant
departments, after hearing what the inital expedition members had left
behind. The department conceded to pursue this further, funding a
thorough investigation to unearth what was hidden and to see if this was
a threat to demolish or an unexpected resource to exploit.
In time, an outpost was constructed and a researcher, eminent in their
field was commissioned to oversee operations on behalf of the
department. A majority of the attempts didn't go far enough beyond to
bear any fruit. As the progress was too slow and unsatisfactory in the
eyes of funders, this led to a review of the project and therefore
forced Nemora's hand to commence an experimental approach, which proved
a success, _so to say_.
Following this incident, the outpost crumbled under the weight of the
crises that had befallen it. All subsequent requests and communications
fell on the deaf ears of the nation in the midst of a large scale
economic crisis, forced Nemora to join the caravan of "low priority"
demands along with many other pressing nation affairs. In the end, the
facility remained forgotten, burried beneath the many rubble inflicted
by the inevitable storm of change Spur has known, Interstellar War. But
this may yet change, now the same Spur has turned their gaze back to
those uncharted heights, in a desperate attempt to exhaust what is
little known.
</p>
</details>
---
### What does "interactive" part entail exactly?
This ruin contains some coded elements (traps, objectives, consequences
of some choices made), attempting to imitate a gameplay loop what a
player would expect from an admin controlled event. While this may not
go further than some coded/scripted events, I think this ruin has some
fun content for security/engineering/medical departments.
Currently this PR contains some core functionality for actual "choices
matter™" stuff for part 2 (if this gets approved).
Also most of the functions used in this ruin was made so it could be
used in any maps.
## Images
this:
https://discord.com/channels/157516682288562176/1162868440814600232/1393057047443931197
and this:
https://discord.com/channels/157516682288562176/1162868440814600232/1395312791925166160
<img width="4736" height="6144" alt="image"
src="https://github.com/user-attachments/assets/9526d40d-4da3-44b6-9220-80cf48ff2c72"
/>
## Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:
| Path | Original Author | License |
| --- | --- | --- |
| /environmental_storytelling_holopad | Qwertytoforty (Paradise Station)
| CC BY-SA 3.0 |
| icons/obj/structure/bluespace_portal.dmi | Paradise Station | CC BY-SA
3.0 |
| icons/obj/structure/urban/bunk_beds.dmi | TGMC | CC BY-SA 3.0 |
| hospitalcurtain in icons/obj/structure/urban/tailoring.dmi | TGMC | CC
BY-SA 3.0 |
| roadbarrierwood in icons/obj/barricades.dmi | TGMC | CC BY-SA 3.0 |
| icons/obj/flora/rocks_brown.dmi and icons/obj/flora/rocks_grey.dmi |
TGMC | CC BY-SA 3.0 |
| the_thing and the_thing_chitin in icons/mob/npc/human.dmi | TG | CC
BY-SA 3.0 |
| sound/music/quarantined_outpost.ogg | Betrayer by Karl Casey --
https://karlcasey.bandcamp.com/track/betrayer | CC BY 3.0
| sound/effects/earthquake_rumble.ogg | Digging.wav by prozaciswack --
https://freesound.org/s/82722 | CC0 1.0 |
| sound/effects/robot_talk_1.ogg & sound/effects/robot_talk_2.ogg |
Robot Talk SFX by TheEndOfACycle -- https://freesound.org/s/674306/ |
CC0 1.0 |
| sound/effects/light_heavy_on.ogg | Light - Heavy lights turned on by
TILIADESIGN -- https://freesound.org/s/486536/ | CC0 1.0 |
Part one of our nefarious plans to destroy lag forever, and also
accomplish some cool shit.
This replaces our renderer system with plane masters, this will also be
used to turn skyboxes into backdrops and thus totally remove skybox
updating lag. Additionally, this will let us manipulate entire planes
very easily to do all sorts of zany shit. All credit goes to the
original coders, this is some seriously cool stuff.
Also fixes some bizarre smoothing behaviour, reduces updateoverlays
calls since now not every single structure in the game tries smoothing
with nothing.
<img width="1349" height="1349" alt="image"
src="https://github.com/user-attachments/assets/9b7cecd7-3c47-448b-9dd8-9b904640bf82"
/>
<img width="1349" height="1349" alt="image"
src="https://github.com/user-attachments/assets/647d75a2-1bff-45ca-ab92-0aea10631afd"
/>
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Ship shields currently occupy something like 40% of every machinery
process ticks. Basically generators make a fuckhuge list of all
generated shields (1.5k in the Horizon's case) and then they iterate
over this list every tick strengthening the shields.
The idea in this PR is to shunt shield logic to an abstract datum.
Fields no longer store strength individually; they store damage taken.
They only process once they take damage, they reduce that damage by the
field gain tick value every tick, and then they stop processing when
they no longer need to. Shield strengthening is shunted off to a signal,
so we only need to traverse the big ass list once every round probably.
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
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>
Destroys a ton of sources of lag:
- /obj/machinery/biogenerator/interact and
/obj/machinery/computer/rdconsole/attack_hand
Both of these call REF(src) constantly on their UI update, which also
happens constantly. Death by a thousand cuts
- /obj/machinery/button/ignition/attack_hand and
/obj/machinery/button/switch/holosign/attack_hand
Sleeps rather than timers, iterating the entire machinery list rather
than just storing the IDs we need at roundstart
- /obj/machinery/telecomms/update_icon and /obj/machinery/meter/process
Calling overlay updates WAY TOO MUCH. UpdateOverlays is a significant
overhead for the server at this point and the two of these combined are
responsible for a little over 20% of updates. They now should only
update overlays when necessary rather than every tick.
- NEW! /obj/machinery/disposal/proc/update and
/obj/machinery/portable_atmospherics/hydroponics/update_icon
These two were also offenders, worse than telecomms but better than
meters. They have also been brought into line.
- /mob/living/carbon/slime
Hard-del'd if grinded into slime extract less than two minutes after
being "born". Fixed by adding TIMER_DELETE_ME flag.
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
This fixes an issue where only the last fluff augment selected in
loadouts will be used. It was being caused by fluff augments all sharing
the same parented organ tag, which was normally used to prevent
identical augments from being stacked.
Hydroponics tray processing is a massive chunk of machinery processing
for no good reason, I have a sneaking suspicion that this is due to proc
overhead on get_trait, as process can call it upwards of 30 times per
tick per tray.
Realistically most of the things that are traits should instead be
variables, but that's a refactor for someone with more time.
# Summary
This PR adds trash to the persistence system.
- Trash becomes persistent the moment it is dropped unless it is dropped
in a maint or the disposal room.
- It looses persistence when it lands in a maint/disposal room or gets
picked up again.
- Persistent trash can be found up to three days.
Those are the base rules, some trash types have additional rules.
List of trash to be implemented:
- [x] Basic trash (snacks and such)
- Cigarette buts
- spitwad
- Burned matches
- [x] Broken bottles
- [x] Torn inflatable (-doors)
> Littering is a i120 violation and can be punished with 3-7 minutes of
prison time or with a 40-150 credit fine.
> Stop littering and keep the ship clean.
## Follow-up tasks
- [x] Update GitHub Wiki: Add section on how to add persistent trash
types.
- [x] Update GitHub Wiki: Make persistence_get_content nullable/empty.