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>
Makes the Solarian submachine gun have no extended description, rather
than inheriting the extended description of the submachine gun, which it
is a subtype of.
The extended description of the submachine gun is about the CA-25E, and
does not apply to the Solarian submachine gun, because it is not the
CA-25E.
---------
Signed-off-by: Tag103 <194812614+Tag103@users.noreply.github.com>
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.
Buffs most commonly seen energy weapons by anywhere from 2-6 shots.
Laser pistols get closer to 2-3, laser carbines and rifles see buffs of
3-5 more shots, and blasters get the most love at 2-6 more shots,
depending on model. Anything with a scope, disruptors, anything that
autorecharges, or otherwise unique/odd have been left alone.
These changes are being made to hopefully bring energy weapons more in
line with ballistics. I've noticed that energy weapons are very rarely
used by anyone but security or someone doing a very specific gimmick.
Any time its rev or there otherwise is a crew militia started, I'll
order both laser and ballistics, and the ballistics are always taken
first. Ballistics overall are very strong, dealing far more enduring
damage than energy weapons tend to. And, most ballistics blow energy
weapons out of the water for just raw DPS. For example, both the laser
rifle and burst rifle have a damage of 30, with an ap of 20 for the
laser and 28 for the ballistic. This is fairly comparable, but
critically, the burst rifle is a burst rifle. So per trigger pull,
you're potentially doing up to 60 damage with ap 28. This of course
assumes you're using lethal for both, polymer rounds for the burst rifle
do 25 damage at ap 34. Which would be up to 50 damage per trigger pull.
I just don't think that the rechargeable plus beams going through
windows makes up for it.
Energy weapons also just suffer from critically small ammo counts. Which
is fine in a ship environment like the horizon (to a degree), but they
tend to perform very poorly in expedition settings. To the point that
they're arguably not worth taking for most away sites. This is mostly
because the average encounter will spend half or 1/3rd your ammo.
I still want ballistics and energy weapons to have their respective
rolls of expendable ammo vs rechargeable, and projectile vs beams (going
through windows without having to break them first being a very nice
advantage). But, I'd like to see people at least consider energy weapons
over ballistic for mechanical reasons rather than just flavor. Like I
tend to do with their current stats.
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.
Fixes#20571Fixes#17105
- bugfix: "Fixes invisible thermal lance inhands."
- bugfix: "Fixes bulwark chat bubbles."
Also moved the bulwark sprites in dmis to the left one pixel to match
all the other sprites. It annoyed me that it was 9 pixels adjusted
instead of 8 like everyone else. Alignment unchanged.
Fixes#19603Fixes#20558
- bugfix: "Fixes plant bags - now uses storage_slot system, along with
other bag subtypes."
- bugfix: "Borgs can interact with tables again."
- refactor: "Refactors make_exact_fit to be a binary variable."
- refactor: "Refactors storage items to use make_exact_fit instead of
arbitrary max_storage_space values."
- refactor: "Refactors storage items to use defines for storage space."
- bugfix: "Fixes monkey cube boxes having superfluous overlay."
- rscadd: "Updates the progress bar toggle message."
- qol: "Objects that rotated 90 degrees in storage no longer rotate in
storage slots."
<img width="732" alt="dreamseeker_qRVkIlYN78"
src="https://github.com/user-attachments/assets/1226ed22-52c1-4965-a1b4-2290e56a2ab3"
/>
Added armor defines
Converted raw strings use to defines
Added UT test to ensure people set the armor var correctly (to a list)
No player facing changes
I had to unironically bust out my pen and paper for this bullshit and
magnifying tool to actually check if things were pixel perfect.
- bugfix: "Fixes storage box alignment and storage space UI to use
better maths."
- qol: "Tweaks IDs, IDs and firing pins now rotate 90 degrees when in
storage for easier clickability."
- bugfix: "Fixes Item Tooltip toggle message."
- bugfix: "Fixes roundstart items in storage not showing item outlines."
Fixes#20529
---------
Signed-off-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com>
Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
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.
Title. 'nuff seid.
Also fixes the fucked up material insertion animations to use
flick_overlay_view so it isn't laggy as fuck.
And adds emissives to machines that have lights so they glow in the dark
epically.
<img width="138" alt="dreamseeker_N6egRW6Yz3"
src="https://github.com/user-attachments/assets/a17f12ba-b768-4ad6-a35f-baf33aaae658"
/>
* All the ballistic weapons in the armory now start unloaded. Magazines
and rounds that would've spawned in the weapon now spawns in the ammo
lockers. In effect, two beanbags shells have been added to the armory.
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.
This PR is mostly about fixing body/cryo bag layering issues.
Currently live and annoying to try and treat around:

Currently, bags are are below roller beds when first deployed. If
buckled and unbuckled, they are then above, because of the + 0.1 on
buckling.
If buckled on a roller bed, dragged, and then unbuckled, they are then
above player mobs, because of the `layer + 1` on roller bed `Move()`
proc, which also doesn't get reset. I removed this +1 on Move() because
it was older than the +0.1 and seems to serve the same purpose.
The +0.1 did not have a method of reverting to the original buckled
atom's layer, so I added a var and check to handle that.
I also changed bullet casing's layer to `BELOW_TABLE_LAYER` with the
intent of not having them on top of stasis bags and roller beds, because
it causes issues as someone trying to treat wounded after a firefight.
Changing bullet casing's layer does have a consequence of putting
bullets underneath, for example, the soil in the public garden. Putting
the soil on `BELOW_TABLE_LAYER` would fix this, but with the consequence
of having the bushes be on top, making clicking the soil difficult for
farming purposes. Adding bushes to that layer causes consequences with
side window layering (like on deck three outside the public lounge.)
For this PR I only adjusted the bullet casing layer. I'm sure it has
other unintended layering interactions. Let me know if it would be
better to leave them where they are or on some other layer.
Current changes in PR: Bullets under soil/roller beds/stasis bags.

(Example of why making bullets on top of soil is difficult) Screenshot
shows both bullets and the soil being `BELOW_TABLE_LAYER` with bushes on
top, as a reference. PR Currently has bullets underneath soil.

Frag grenades projectiles now apply some agony and eyeblur.
Frag grenades projectiles have damage augmented by 3 points (~10%).
Frag grenades projectiles have an augmented chance of leaving a shrapnel
(+30%).
Frag grenades projectiles have a chance to ricochet up to 2 times.
Some code cleanup and removed some procs that were no longer used
(nothing called them anymore) from the projectile refactor.
Reverts Aurorastation/Aurora.3#20102
The aforementioned PR essentially broke the proc, since the parent proc
doesn't set any return value; this in turn breaks the offhand item from
being deleted when you move a gun from the hand to eg. the backpack,
leaving you with the offhand item occupying the other hand despite you
not holding the gun
Since the fix is essentially a reversion, and since the parent proc
doesn't set any return value so it doesn't make sense to check it, I'm
opening a reversion directly.
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.
This resolves every issue I could eyeball with Vaurca Attendants.
Added to every ghostrole where they're appropriate, mostly wherever
warriors are. Included as non-combatants in the TCAF ghostspawn.
Added to every list for species-specific loadout items and augments, so
they should be able to select them now.
Added to every job blacklist warriors were already on, most notably so
you can't join as a consular officer or corporate representative.
Accounts for attendants with a lot of admin outfits and ERT spawns.
Resolves https://github.com/Aurorastation/Aurora.3/issues/19974
Fixes the wield sprites of a few guns so they appear ingame. The
item_state definition seemed to cause the odd behaviour with the
Dominian rifles, and the Xanan rifles had a few mistyped icon names.
There seems to also be an issue in which inhand sprites for guns without
magazines don't appear, instead using the versions with magazines, which
is probably why the Dominian guns messed with the item_state in the
first place. Not tackling that here.
Refactored the projectile code, mostly in line with TG's now.
Refactored various procs that are used or depends on it.
Projectiles can now ricochet if enabled to.
Damage falloffs with distance.
Homing projectiles can now have accuracy falloff with distance.
Projectiles have a maximum range.
Muzzle flash is configurable per projectile.
Impact effect of the projectile is configurable per projectile.
Accuracy decreases with distance.
Projectiles work with signals and emits them, for easy hooking up from
other parts of the code.
Meatshielding is now less effective .
Impact sound is now configurable per projectile.
High risk.
Refactored all the builtin text procs to use string interpolation
instead.
Added a linting for the above.
This is based on, and should only be merged after, #19847
* Certain autolathe items can now be printed at Code Red without needing
to be hacked. (though hacking allows you to access them without the
level)
* Certain autolathe items have had their hacking restrictions removed,
such as the industrial welder. They are now printable by default.
* Reorganized the autolathe, drastically reduced the size of the General
tab, and introduced new tabs, such as Dinnerware and Armaments.
* Shotgun shells now print in piles, instead of one shell at a time. The
resource cost has been increased to compensate.
https://github.com/Aurorastation/Aurora.3/assets/22774890/b17b567b-e1a8-429c-a823-14ff4f47fb00
Removes the tranquilizer rifle from the HoS's office, and places it in
the RD's office. Along with removing the box of shells from the HoS
locker, placing them in the RD's locker.
Changes the description of the rifle to move it away from being a 50 cal
sniper. Changed the shells to reflect this as well.
Expands the RD's office and reshuffles it slightly to make space for the
tranquilizer cabinet.
Part 2 will be a resprite of the rifle, to be added at a later date.
PR will need loremaster approval due to description involving corporate
lore.
Tranq rifle projectiles now weakens animals for a bit, the larger the
animal, the longer it takes for this to happen.
Refactored the tranq rifle projectile code.
Fixed all datum[index] accesses, they are considered undocumented
behavior and fail from 515.1641.
Flipped the OpenDream pragma for the above to emit an error instead of a
warning.
God help me.
PR does the following:
- Adds the Apollo event shuttle we've been using, along with 2 variants
of it, and several other copy/paste-able event shuttles to use as start
points. Also, fluff writing regarding it that's subject to change.
- Adds a pipes guideline to give some guidance on preferred ways of
doing scrubber/supply pipes. Also copy paste ready atmos stuff.
- Adds a ton of industrial flooring decal color presets.
- Refactors /obj/effect/floor_decal/industrial/outline/engineering into
outline/engineering and outline/operations. Replaces all instances of
outline/engineering with outline/operations. This was done because
outline/engineering was using brown as its color, which isn't really an
engineering color.
Adjusts descriptions of some energy weapons to scrub Heph and replace
with NanoTrasen
Due to effecting corporate lore, I'll be passing this by the loremaster.
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.
Fixes Bug #19648
The Hegemony Energy Rifle has the E-Gun as a parent, instead of the
laser rifle, so it doesn't inherit all the single-fire-mode stuff that
the laser rifle has. I gave it all those attributes to make sure you
can't accidentally change the fire mode.
Edit: To clarify, this fixes the bug where you can change the fire mode
and it causes the gun to vanish.
---------
Signed-off-by: Crosarius <30341877+Crosarius@users.noreply.github.com>
Removed the gelf logging infrastructure.
Refactored the various logging procs to be a direct call in light of the
above.
Removed ancilliary UDP related things.