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>
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>
## About PR
Adds some building/planning mechanics typically seen in
base-building/survival games such as Grounded. Hopefully this will ease
the away base construction process. Happy base buildings!
Currently, this allows placing blueprint objects that players can click
on with the required materials to build whatever the blueprint
represents. You can place templates, edit them or build your own
glorious base from ground.
Sprites for `blueprints` and `blueprints_unfolded` inside
`base_planning_blueprints.dmi` are ported from SS20 Russian Paradise
Station.
## Images
https://youtu.be/FCrZn8BkISU?si=Fst0ksAgi47D_wN7
### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:
| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/item/base_planning_blueprints.dmi | vovakons (SS20 Russian
Paradise Station) | AGPLv3 |
This does a few times, after the scope got bigger than I originally
planned:
- Watches now have an action button top left to check time.
- Taj time checking code was moved over to the time helper file to not
be watch exclusive.
- The taj wrist watches now shows the time on adhomai.
- Papercode now has the ability to show taj time and date, and to insert
the credit symbol.
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>
Fixes https://github.com/Aurorastation/Aurora.3/issues/21289
Fixes https://github.com/Aurorastation/Aurora.3/issues/15779
Handles a lot of mapping cleanup, container definitions for the Horizon,
and several bugfixes found along the way.
changes:
- code_imp: "Added set definitions for several Horizon-specific
containers."
- code_imp: "Updated 'full' material stacks on the Horizon from sneaky
var-edited singles to properly defined full stacks"
- code_imp: "Cleaned up all Air Alarms, Fire Alarms, and APCs on the
Horizon that were directional children with their dir var edited."
- code_imp: "Cleaned up all Power Cables on the Horizon that had d1 or
d2 var edited instead of just icon_state."
- code_imp: "Adjusted pixel shifts for 'south' (north-facing) Air
Alarms, Fire Alarms, APCs, and Extinguisher Cabinets to address layering
issues when standing vs. leaning."
- code_imp: "Minor refactor of shuttle/* Air Alarms and APCs to reduce
excess children; req_one_access perms now assigned based on
/area/horizon/shuttle/*."
- qol: "Adds feedback hint for uses remaining to Emag cards."
- qol: "Added Tip about the shift-click behavior of the 'up-hint'/'Look
Up' button."
- bugfix: "See-through turfs (like lattices/catwalks over open space)
can now be Looked Up through from below."
- bugfix: "Fixed the shift-click behavior of 'up-hint'/'Look Up' button,
allowing you to see nearby turfs that can be Looked Up through."
- bugfix: "Maintenance Panels located on the floor have had their
layering issues fixed."
- bugfix: "Borg eye emissive effects MAYBE no longer visible through
higher z-levels."
- bugfix: "Added missing leanable component to window/shuttle obj type."
This started out as an update to reduce vision while inside closets.
While I was testing that, I noticed closet teleporters weren't updating
the camera properly, so I fixed that, as well as a bug with an early
`return` causing closets to have 0 density while a closet teleporter was
on cooldown.
Reduce vision inside locker:
<img width="1354" height="1345" alt="image"
src="https://github.com/user-attachments/assets/5f581031-51c0-4502-bddd-21045329c754"
/>
Updated balloon alerts with the latest changes from tgstation.
Improvements include a new plane for them, and their duration changes
depending on their length.
Unfortunately, since they were added, they have been abused for really
long text that is difficult to parse in-game (by myself included).
Balloon alerts are useful, but they are not smoking guns and have
limitations due to their lack of persistence. I have clamped down on
their abuse in favor of the standard established by tgstation, [seen
here](https://hackmd.io/0Cvr4hpcTe-KI6SbgfUWtw#balloon_alertballoon_alert_to_viewers).
We lack updated runechat so I will not propose this be a fully
implemented standard at this time, but I have cut down all existing
balloon alerts to size.
Refactored (second passage) how movement works, now it's mostly in line
with TG handling and avoids calling 3 gazillion Cross() Uncross() etc.
on every atom in a turf.
Fixed EMP protection from species not actually protecting (this includes
the surge prevention for IPCs).
Fixed EMP 3D calculation runtiming because I forgot to make the value
absolute and it was doing the square root of a negative number.
It's now possible to queue the round to start with the Start Round verb
even while the system is initializing, for an even faster pain train to
enter the round and test things.
Updated the renderers to work with BYOND 516.
Some update of ZAS to hopefully be more efficient, and cold/hot air
effects.
Gas effects are now less prominent.
Ported from Bay
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.
- You can now look down open spaces by shift clicking/examining them
when they're next to you.
- You can now look up open spaces by clicking the HUD element at the top
right.
- Fixed inconsistencies with the camera getting stuck while looking up
or down. It should now be much more fluid.
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
From previous PR:
- Fixes Quick Equip (Thanks, Matt)
- Fixes Loadout Preview, will override uniforms properly now
- Turns shirts into uniform items, so you can attach accessories to them
This also fixes the issue of people spawning in shirtless if they didn't
attach properly to the pants.
Additions:
- Shifts suspenders, leather chaps, and kneepads to be pants
accessories.
(This fixes the issue of accessories staying even without pants, e.g.
assless chaps)
(In future, hip holsters are to be added to this accessory list)
Anyway, that's the long and short of it. Have fun.
---------
Signed-off-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com>
Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
Enabled new opendream pragmas
Fixed some runtime access check operators (`:`) around the codebase (not
all, some are unfixable as they're used in macros)
No player facing changes (hopefully)
Refactored mousedrag procs, added signals, some safeguards, did some
cleanups around, renamed them to make a little more sense. Mostly put in
line with TG's code.
Fast clicking and releasing with a drag, depending on the grace period
and how fast it is done, can be counted as clicks, to aid in combat
scenarios where you spamclick.
https://forums.aurorastation.org/topic/20198-mission-briefing-auroras-gamemode-revolution
To-do:
- [x] Finish storyteller verbs.
- [x] Storyteller landmarks.
- [x] Proper storyteller spawning. Right now the gamemode system is
happy with just picking one storyteller and no actors.
- [x] Antagonist whitelists code.
- [x] Adding the Storyteller whitelist.
- [x] Mission map loading code.
- [x] Map in a bunch of missions.
- [ ] Storyteller adminhelps.
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: DreamySkrell <>
Does what it says on the tin. Purely cosmetic for now. This is step
zero.
Basically, clothing is starting to get real bloated with a lot of
variants.
More pressingly, accessories as well, and we're probably going to get
accessories of accessories.
After seeing what's going on with arm guards, leg guards, plate carriers
and the like,
it's heading towards a really messy level of abstraction.
Hopefully this will nip it in the bud, so to speak.
I've also added the layering feature used in watches, so you can tuck in
your uniform in your pants, or your coat in your pants if you're so
inclined to.
This also means that in the near future, we'll finally have the ROLL
PANTS feature that has escaped us for so long.
For reviewers :
This PR is majority legwork of simply adding the new pants slot in. Very
similar to my previous Wrist slot PR.
The rest is just changing the existing pants/skirts over to a new
loadout slot and changing paths.
---------
Signed-off-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com>
Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
Runtime map now has a bunch of new areas / items with often-tested
stuffs, and some hard-to-put-at-runtime stuffs.
Runtime map jobs now are positioned to make it faster to reach the
aforementioned often-tested stuffs.
Runtime map doesn't generate an overmap anymore by default, which speeds
up the process.
Runtime map now loads in ~11 seconds instead of ~40 seconds as it was
before.
Updated the maploader to be faster in parsing maps.
Bapi is not engaged anymore if we're only measuring the map size, which
speeds up the process.
In fastboot we do not generate the codexes anymore, which speeds up the
process.
In fastboot and if exoplanets and away sites are not enabled, we do not
parse the map templates anymore, which speeds up the process.
Updated the icon smoothing to be faster.
Optimized cargo area code.
Other optimizations.
Refactored the abstract meta propriety into defines.
It's now more easy to spot/see abstract types thanks to the macro that
defines them.
Added a check on initialization of atoms to avoid spawning abstract
types.
Made the spawn_atom proc check for abstractness.
Made the spawn_atom proc use tgui_list for types list shorter than 1000
elements, which enables to search in them. It's too laggy on larger
lists so above 1000 it uses the builtin input.
Made the spawn_atom use a list subtraction instead of a double list,
it's lighter on memory and processing.
Diona nymphs can now run correctly, without a weird empty stamina bar,
and stopping as appropriate when their stamina (health) is low, with a
message.
Fixes#14038
Adds tents, in two variants (A larger and smaller one). These utilise a
new large structure framework allowing a single item to spawn multiple
structures (The parts of the tent) in the correct places. The tents
count as inside, so can be used to shelter from weather. Tents have
roofs which become semi-transparent when entered. There are also
mappable effects which generate a tent at round start for mapping.
Adds sleeping bags, which can be attached to the outside of bags for
easy carrying. Ideally this would be an accessories interaction, but
backpacks aren't clothing and converting them to be such is outside of
the scope of this PR.
Adds foldable tables, for setting up on expeditions.
I changed add_antag to add_antag_mind in borer/LateLogin because the
former proc re-created the borer, causing it to drop the src/client
reference. The only notable difference I observe is the antag noise
doesn't play, which could be added manually if needed. Alternative
methods to solve this would be welcome, though. I did have an
alternative method
[here](https://github.com/Aurorastation/Aurora.3/commit/5d4157588baa0998f499aba7678bf8c6551247ca),
but that only "fixed" the ghost spawner, not admin possession. I also
say "fixed" because that method does not give the post ghost-spawn
message.
Fixes#18600
- The implant check was only checking for objs, which the borer implant
is not. The borer was also erroneously being removed from the implants
list when releasing control back to their host.
Fixes#18281
- This had a few pain points. psi was null, so it made the callback for
activating powers fail. Once that was fixed, it caused many RTEs when
trying to draw the HUD/screen for the powers. Refactoring a few
encoding/decoding procs fixed that.
Fixing these issues fixed borer monkeys not being able to speak TCB,
which is strange because I thought I'd seen a borer monkey speaking TCB
during a round where the psychic bug existed.
Fixes#9621
- For this, I switched rejuvenate to revive. This lets them move, and
also does not kill them again due to brain damage. If it proves to be
too strong, it can be tweaked, but I did want to get brain devouring
working for this PR.
- There's also the jumpstart verb, which seems will never be used with
this revive in place (or even before, with the rejuvenate). I suppose it
can be used if they die again after reviving.
- Should a message be added to the revive given during the devouring
process? Jumpstart gives one:
`visible_message(SPAN_WARNING("With a hideous, rattling moan, [src]
shudders back to life!"))`
Fixes#9523
Also fixes borers not being able to infest someone they are being held
by.
Existing Issues not addressed by this PR:
- Infesting a monkey does not give you the monkey's health HUD (because
it doesn't exist?). Assuming and releasing control will show it, though.
- Borer antag overlay icons on Mobs seems inconsistent. potentially due
to testing methods with clientless mobs
- Borers cannot use psychic lance while being held
- Psi aura on first receiving powers. Equip first ability and drop to
fix.
---------
Signed-off-by: AlaunusLux <89751433+AlaunusLux@users.noreply.github.com>
A significant amount of influence was taken from
https://github.com/Baystation12/Baystation12/pull/33255, however adapted
to Aurora. Key things to note is the port of the newer alpha settings
from /tg/, among other improvements.
The ancient holographic and screen overlay code has been purged. This is
now handled with emissives, while holograms are handled with filters as
well.
---------
Co-authored-by: Cody Brittain <cbrittain10@live.com>
Our SSOverlays system is outdated, and is likely the cause of many of
the issues seen in #18895. It has also been linked to a massive server
performance decrease.
This brings an updated system from Baystation, hopefully with speed
increases.
Should be testmerged, ideally with #18895.
---------
Co-authored-by: Cody Brittain <cbrittain10@live.com>
Reworks blueprints to use an eye component for area selection and
changing. Blueprints will now work on whichever overmap site they spawn
on if overmap is enabled, though currently they have only been added to
the Horizon.
Adds shuttle-modifying blueprints for altering shuttle areas and
exoplanet outpost blueprints for creating areas on exoplanets. A set of
outpost blueprints and a lockbox containing blueprints for the Horizon's
shuttles have been added to the CE's locker.
Moves eye creation to a component.
Ported from:
https://github.com/NebulaSS13/Nebula/pull/465https://github.com/NebulaSS13/Nebula/pull/564https://github.com/NebulaSS13/Nebula/pull/3046
Unified most of the procs into one definition, so there are no duplicate
around the codebase.
Marked some of the above as overridable if a good enough case can be
made for them (eg. external dependency or unlikely to be used).
Part 2 of the PR series to bring /tg/'s and bay's plane masters to
Aurora, the lack of which is blocking several features we want.
This ports over the easier to understand Bay version of plane masters,
which is detailed in the relevant readme file in the code. Example
effect code for a warp effect is also in, which has been implemented for
gravity catapults.
Relies on #18741
---------
Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Cody Brittain <cbrittain10@live.com>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
This is part 1 of a project to, eventually, bring the render planes
system from /tg/ and bay into Aurora. This is a prerequisite and blocker
for many things the development team and community want to have, and
this was long overdue.
Many objects have been re-assigned layers, which are now thoroughly
defined. Maps have had their custom layer defines purged, as we should
be moving away from this in favor of saner definitions in the base
items.
This should be a test-merge due to the sheer amount of layers changed,
which will very likely create issues that I cannot possibly discover and
debug in a reasonable amount of time myself.
---------
Co-authored-by: Cody Brittain <cbrittain10@live.com>
* first reordering, committed in case i fuck up badly next
* from the moment i understood the weakness of my flesh
* sdafa
* you asked for this
* we can't have nice things
* sdafasdf
* sdafasd
* sdfa
* fsa
* worth a shot
* more pain
* sdfasdf