<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.
Fixes several runtimes from the past few weeks, some additional material
repath regressions, and the fact that if I shoot you with a stream of
ionized deuterium particles, it doesn't riddle you with cancer.
changes:
- bugfix: "Fixes emergency shields runtiming when hit by thrown
objects."
- bugfix: "Fixes several stale global list runtimes."
- bugfix: "Fixes several health percentage checks that could use unset
initial health values."
- bugfix: "Fixes additional materials regressions in INDRA code."
- bugfix: "Fixes invalid fuel injector depletion math."
- bugfix: "Makes accelerated particles apply radiation damage to living
mobs they pass through."
Includes a new voidic lantern for the voidtamer ship crew and as a
loadout item for the culture
It's a buffed lantern able to barely sustain a dionae, its a little
stong but only locked to the one specific culture and ship by default,
i'm not sure if it'll spawn in the warehouse tbh, but it's fine if it
does
---------
Signed-off-by: Yonnimer <31339047+Yonnimer@users.noreply.github.com>
changes:
- refactor: "Refactors Gravity Generator UI from HTML to TGUI."
- rscadd: "Adds sector-based modifier var 'overmap_hazards_multiplier'
for generating total overmap hazard count."
- soundadd: "Adds new Lemurian Sea 'welcome' announcements."
- rscadd: "Added Lemurian Sea gravitic anomalies as overmap hazards and
random events."
- rscadd: "Adds ADPI/The Voices."
- rscadd: "Adds ADPI Panel for modmins to send ADPI messages to a single
character or all characters from their respective pools, or custom
messages."
- balance: "Vaurca Hivenet communication, the Hivenet Manifest, and
Hivenet Echoes are now disabled while the ship is in Lemurian Sea
sectors."
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.
The last time the Light Sensitivity code was changed, I remarked in a
review that "This should probably be a component so that its code isn't
being run on every mob forever". Well I've gotten around to doing that
myself, except I figured out it's even better off as an Element in this
situation rather than a Component. So this is now my first time adding
Elements to the repo. It turns out they're really awesome when paired
with signals.
This PR removes the hardcoded check for the light senstivity and dark
phobia traits from the Life() path, replacing them instead with two
Elements which hook into the pre-existing signal used to handle vision
updates for human mobs. I've mainly done this to help cut down on the
overwhelmingly high cost of the Life() codepath, which is currently one
of the most expensive paths we have.
While I was at it with refactoring these two, I noticed that there
wasn't a trait selection for either of them, so I added selections for
both traits to the disabilities tab so that players can opt-in to being
light sensitive or afraid of the dark!
<img width="318" height="336" alt="image"
src="https://github.com/user-attachments/assets/a1e60e83-d899-44df-8ea3-0cd5a87c231c"
/>
# Summary
This PR fixes the handhelds sprites after the recent rework of the
marshalling wands in #21921.
## Changes
- Refactored icon_update logic in marshalling wands to fix handheld
sprites, including overlay stacking.
# Summary
This PR updates the marshalling wands and gives them intent based
coloring. In addition, hold a second wand in your hand, the settings
will be automatically synced.
## Changes
- Update marshalling wand sprite (more the structure then the actual
sprites).
- Added color modes, updated text, added mechanical hints and two hand
sync to marshall wands.
- Added signal for mob intent changes (unused at the moment).
- Adjusted Hangar Tech round start spawn points in the breakroom.
- Added second marshalling wand to each Hangar Tech locker.
## Preview
(Note this preview has been made prior further pixel adjustments,
consider it a demo.)

The in-hand sprites of a lot of handheld lights now exist again.
Torches, flares and marshal wands also now correctly give a light all
around, instead of directional.
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>
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>
- Fixes hull beacons, radial lights and decal light sources not emitting
light. Thunderdome is no longer dark, fixes#21565
and fixes#21567
- Fixes radial lights not drawing any power from the powernet it's
connected to. Also refactors its toggle logic, since it never stopped
processing despite `STOP_PROCESSING` macro
Currently, only Preferences Verbs use subcategories. As a result, all
other Verb tabs are only organized alphabetically, meaning that a single
mechanic (ie. languages) has its governing Verbs scattered rather than
grouped together.
Verb organization by Tab handles broad organization - IC, OOC, Objects,
etc.- highly effectively but requires the user to click-navigate to
other Tabs to access any other verbs.
Verb organization within a Tab can be handled by A.) subcategories and
B.) Verb name prefixes (such as Earphones - *****). The first option is
the clearest and cleanest, but consumes additional vertical space. The
second option conserves vertical space at the cost of visual clarity.
This PR attempts to reorganize Verbs by their Tabs, Subcategories, and
prefixes with the following priorities in mind:
- Minimal disruption; any radical change must be justified (don't move
shit around just for the sake of moving shit around.)
- Verbs which share common functions (such as Languages) should be
grouped together.
- Maintainability. Contributors should not need to memorize an
excessively convoluted Subcategories list; Subcategories must be
intuitive and simple.
- Subcategories should be used judiciously when grouping Verbs to
conserve vertical space. Example: Instead of creating a Subcategory for
Emotes, just rename Audible Emote and Visual Emote to Emote (Audible)
and Emote (Visual).
- Subcategories should highlight uncommon or unusual verbs when
reasonable. Example: There are several animal husbandry-related Verbs,
and because most characters will not have access to those verbs
regularly, we can be less conservative with space (because they'll be
gone most of the time) for the sake of emphasizing their availability.
This PR covers the IC, OOC, and Object Tabs.
Subcategories:
OOC.Chat (Chat functions)
- AOOC
- LOOC
- Devsay (moved from Special Verbs)
- Dsay (moved from Special Verbs)
- OOC
OOC.Debug (Fix shit)
- Fit viewport
- Fix chat
- Refresh TGUI
OOC.Round (Round information)
- Check Gamemode Probability
- Check Round Info
- Custom Event Info
- Vote
IC.Antag (Antag verbs w/o their own tab)
- Invite to the Loyalists
- Invite to the Revolutionaries
- Set Ambition
IC.Critters (More critter stuff than you'd expect there to be)
- Befriend Carp (Previous name 'Become Friends')
- Befriend Cat (Previous name 'Become Friends')
- Befriend Dog
- Befriend Ives
- Name Alien Species
- Name Animal
IC.Language (Language-related stuff)
- Check Default Language
- Check Known Languages
- Set Default Language
IC.Maneuver (Movement, positioning, etc.)
- Adjust walk speed
- Do Pushup
- Face Direction
- Look Down
- Look Up
- Move Downwards
- Move Upwards
- Rest
Object.Equipped (Equipped object stuff, mostly for drip)
- Adjust Badge
- Adjust Bag Straps (Backpacks)
- Adjust Goggles
- Adjust Mask
- Adjust Welding Goggles
- Adjust Welding Mask
- Change Glasses Layer
- Change Pants Layer
- Change Wrist Radio Layer
- Change Wristwear Layer
- Check Time
- Flip Badge
- Flip Belt
- Flip Eyepatch
- Flip Hat
- Flip ID card (ID card)
- Flip Radio (Clip-on radio)
- Flip Wristwear
- Fold Collar
- Lock Antenna(e)
- Point At Watch
- Raise Shroud
- Roll Up Cape Mantle
- Roll Up/Down Jumpsuit
- Roll Up/Down Sleeves
- Switch Belt Layer
- Switch ID Layer
- Switch Lanyard Layer
- Switch Shoe Layer
- Toggle Aviators (Like a dozen variants)
- Toggle Ceremonial Garment Lights
- Toggle Coat Buttons
- Toggle Coat Zipper
- Toggle Hair Coverage (For hats helmets etc)
- Toggle Hair Coverage (FOR BABY CARP!!!!!)
- Toggle Helmet Camera
- Toggle Hood
- Toggle Lyodsuit Mask
- Toggle Poncho Tail Coverage
- Toggle Shirt Buttons
- Toggle Suit Sensors
- Toggle Visor (Pilot helmet)
- Toggle Waistcoat Buttons
- Transform Holoclothing
- Voidsuit - Eject Suit Cooler
- Voidsuit - Eject Tank
- Voidsuit - Toggle Helmet
Object.Held (If you're HOLDING it, its probably relevant to you rn)
- Activate Held Object (Silicons; moved from IC)
- Alter Beacon's Signal (Radio beacon)
- Change Bite Size (Utensils)
- Change Pen Colour
- Choose Colour (Paint sprayer)
- Choose Decal (Paint sprayer)
- Choose Direction (Paint sprayer)
- Choose Preset Colour (Paint sprayer)
- Describe Prototype
- Draw Boot Knife
- Empty Bee Net
- Empty Spray Bottle
- Holster
- Name Gun
- Name Prototype
- Plant Flag (Flags)
- Print Plant Report
- Remove Chopsticks
- Remove Top
- Set Detector High-Bound (Light meter)
- Set Detector Low-Bound (Light meter)
- Set Hailer Message (Hailer)
- Set Timer (Timer igniter)
- Set Valve Pressure (Pneumatic cannon)
- Show Held Item
- Spin Cylinder (Revolvers)
- Switch Verbosity (Health analyzer)
- Toggle Chainsaw Power (Chainsaw)
- Toggle Flashlight Brightness (Flashlights)
- Toggle Gun Safety
- Toggle Hazard Vest
- Toggle Pinpointer Mode (Pinpointer)
- Toggle Mister (Backpack water tank. Goes into/out of hands)
- Twist Cap
- Use Scope
- Wield Pick/Drill
- Wield Two-Handed Weapon (Two-handed weapons)
Object.Cards (I fucking hate cards!!!)
- Deck - Deal
- Deck - Draw
- Deck - Pick
- Hand - Pick
- Turn Hand Into Deck
Object.Earphones (Enough here to separate out)
- Eject Music Cartridge
- Change Volume
- Next Song
- Pause/Unpause
- Play/Stop
- Previous Song
Object.Jetpack (This is probably really important to see quickly)
- Toggle Jetpack
- Toggle Jetpack Stabilization
Object.Tape Recorder (Enough here to separate out)
- Start Recording
- Stop Recording
- Clear Memory
- Playback Memory
- Print Transcript
- Eject Portable Storage
**IC tab example:**
<img width="1061" height="277" alt="Screenshot 2025-08-09 101813"
src="https://github.com/user-attachments/assets/a2afe92d-34fd-4160-bf68-b459a4195e26"
/>
**Objects tab example:**
<img width="1100" height="472" alt="Screenshot 2025-08-09 101807"
src="https://github.com/user-attachments/assets/a36e4c76-594e-4569-93ba-ffcda57e8760"
/>
Extends and reworks how various extended information text (desc_info,
desc_build, desc_upgrades) are handled to make object interactions and
mechanics A.) much more clearly documented in-game and B.) much easier
to support from the back-end.
Almost certainly a candidate for test merge.
Assembly/Disassembly instructions are noticeably sporadic, largely due
to our current lack of a unified framework. That's a future thing I'd
like to attack so that it can be handled programmatically, but for now I
only targeted the biggest culprits as I came across them.
---------
Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
Refactored the attack proc signature.
Added signals and components for the attack proc.
Added signals and components for the attackby proc.
Adjusted some leftover attackby procs signatures.
Added grep test to ensure people don't keep adding attack/attackby procs
with the wrong signature.
Refactored hitby to be in line with TG's version.
Refactored item weight defines to a more clear naming scheme, also in
line with TG's version.
Refactored how the movement bumps are handled, ported signals to handle
them, in preparation for the movement update.
Fixed disposal hit bouncing the hitting atom on the wall.
Items do not push other items anymore if they are tiny.
Trying to bring both in line with this PR:
https://github.com/Aurorastation/Aurora.3/pull/18708
Maglights have the same force as binoculars, multitools, etc - other
formerly 5-force items. They are still outclassed by crowbars and guns
in melee, so they shouldn't revert to being the default weapon of
choice.
Energy weapons were not buffed in the above PR, so I've simply adjusted
active_force by the formula above.
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>
* Added Lead and Aluminium as new materials, and added them and Plastic to the Autolathe
* Fix Spaceman.dmm lint
* CL
* Remove bad merge
* Mapped in Aluminium and Plastic to operations, mapped in Aluminium for Engineering
---------
Co-authored-by: Cody Brittain <cbrittain10@live.com>
* Initial commit of new drugs
Start on caromeg and oracle
Further work on caromeg
Fix nicotine and caromeg
Begin populating map
Designer cocaine effects
Weaken heroin, Joy now causes genetic damage
Added an artificial alternative to morphine, tramarine, that can be used in its place.
Nerf new opioids, fix tramaline recipe
Added special mentholated adhomian cigarettes, for NKA cigarettes
General fixes
Fix recipe pathing
Add coca leaves, cocaine recipes, and coca drinks
Update Chemistry-Reagents-Medicine.dm
Null name for abstract drug class
Remove abstract_class from reagents (shouldn't be used there)
* Oracle sprites by Wezzy
* .
* Begin resolving issues from code review
* Remove all per-player data from drug singletons
* Resolve Arrow's code review
* Apply suggestions from code review
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
Update code/modules/hydroponics/seed_datums/smokables.dm
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
* Removed coca plants from the standard garden and hydroponics vendors (they remain as contraband and in the xenobotany garden)
* Fix merge conflict errors caused by snack PR
---------
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
Co-authored-by: Cody Brittain <cbrittain10@live.com>
* i alone am the honoured one
* THROUGHOUT HEAVEN AND EARTH I ALONE AM THE HONOURED ONE
* hollow point
* nanana
* ssss
* tgsay final touches
* stuff
* tgui inputs
* help
* carpal tunnel syndrome
* ffff
* again and again and again and again
* hehehehe
* dsada
* readd sanitize
* whoops
* dsad
* nah fuck that
* sd
* fix
* ow
* remove prefs for testmerging
* oops
* oops 2
* fix that
* f
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
* init
* map work
* mappin
* map
* random/tool(box)/icon_state fix
* mappin
* a
* b
* aa
* trashbin filled
* boozeomat/abandoned
* foodheater/abandoned
* areas
* map
* areas etc
* a
* a
* a
* aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
* light
* a
* b
* a?
* aaaaaaaa
* changelog
* broken light, off lamp
* madness
* a
* aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
* a
* uhhh
* I am becoming insane
* hangars, how do they work?
* lattices
* light/spot/weak begone
* game note
---------
Co-authored-by: DreamySkrell <>
* Flashlight Fixes
* lantern small + grammar fix
also did other cases of missing \the or whatever whilst at it
* numbers
* cl
this sucked to write
* cl but better
* use SPAN_WHATEVER whilst we're here
* if i didnt link my github to employers i would write a bad word here
i missed a bracket
---------
Co-authored-by: Cody Brittain <cbrittain10@yahoo.com>
* part 1 abloobloobloo
* BY GOD IT WORKS
* Moghes and konyang plus fucking everything else
* jupiter and biesel woohoo
* tweaks and feedback. places CIC and scuttler
* changelog and fixes
* life is agony
* about done
* arrow's changes
* fixes some shit
* Made several improvements to flashlights, and added a sprite for device cells
* CL
* Added lathe recipes, and made eCigs use device power cells
* Add another entry to CL
* Fix nested cell
* Added `desc_info` to all flashlights, to teach the player about removing the cells and turning them on.
* Update code/game/objects/items/devices/lighting/lamp.dm
* More cleanup
* Allow Flashlights to use rechargers
* Apply suggestions from code review
Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
* Update flare.dm
* Update flashlight.dm
Fix broken code review suggestion
* Update flare.dm
Ditto
---------
Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>