## About The Pull Request
Just adds the NTNRC client to the pAI digital messenger software's
starting programs.
To avoid also giving this to the AI, creates a new silicon PDA subtype
for pAIs and applies it similarly to borgs.
## Why It's Good For The Game
It's already barely ever used, and I just think it'd be fun to let pAIs
talk to the never-checked department consoles or open chatrooms with
each other or their hosts.
Currently you can do this by being in your host's PDA, but this means
they couldn't use their PDA at the same time as you just... chatting.
Nor could you share a chatroom with them, due to sharing the same
account.
Also the pAI cabal using the bootleg IRC client to plot their next move
is just incredibly funny to me.
## Changelog
🆑
balance: The pAI digital messenger software now includes the NTNRC
client.
/🆑
## About The Pull Request
This pull request does a little bit of cleanup that I came across awhile
ago while looking at #85081, then forgot about, then came back up when I
was looking at some additional cleanup that needed to be done.
Reorganizes the handle_wave_conclusion function such that it can take a
force arg, to force a ore vent to be completed for debug purposes.
This also fixes a minor bug where vents, when successfully completed,
will still show a warning alert that the waves were failed, and that the
vent has closed up.
Grammar fix to the examine of boulder processing machines.
Moves the can-move behavior of boulders on conveyor belts and during
regular stacking to an early return over a late return (Thank you
Goofball for pointing that out).
Artifact boulders will now default to their artifact icon_state whenever
possible.
Finally, adds an additional sanity check to boulder processing to check
for custom material length, to attempt to avoid zero-content boulders
existing and running into the afforementioned #85081
## Why It's Good For The Game
Largely applies cleanup to several aspects of the boulder processing
system, and a handful of (hopefully) performance related rearrangements
to the existing layout of boulder processing code.
I can't for sure say that it'll fix the linked issue, due to the fact
that I could not for some reason re-create the issue in local testing,
but I'm hopeful that it's some kind of nebulous sanity-related issue.
Cleans up grammar in some spots, and provides a useful debug tool for
admin purposes when you just want a vent to flip. Might be a good
justification for a ore-manager admin panel later? 🤷
## Changelog
🆑
fix: Artifact boulders should keep their alien icon even after a first
round of processing.
fix: Boulders are less likely to exist with zero materials after
processing.
fix: Boulders should be slightly less laggy on conveyor belts.
fix: Grammar of refinery/smeltery examine is corrected.
/🆑
## About The Pull Request
The Infiltrator, in a vacuum of its map file, is facing _NORTH_, the
docking port thinks that the shuttle is facing _NORTH_, and the docking
port itself is pointed towards _EAST_ (`port_direction = 4`). In times
past, this was good and well, the navigation console would properly
center the shuttle preview as its offset values dictated. Then the nukie
base got a rework. That made it so the shuttle is docked facing _SOUTH_,
and since that moves the entire shuttle around, the docking port is now
actually facing _WEST_, while still thinking the shuttle is facing
_NORTH_, which in turn fucks up `CreateEye()` for the nav console, and
the preview is spawned completely off-center. This sucks, this blows,
this is awful, please scream at a coder, etc etc.
So here's the thing. The ideal solution here is probably actually
flipping the shuttle's map file so it's facing _SOUTH_, then adjusting
the docking port's vars to account for that and probably adjusting
something else in the viscinity. What's done in the first commit here is
instead a lazy removal of the offsets' `-` plus a comment. Go me.
Anyway, I want some input on those solutions, so here's the PR.
## Why It's Good For The Game
Actually centered nukie infiltrator shuttle preview, for once. Wow, that
didn't take long at all.
Surprisingly no issue opened for this one, but that's more likely
because the previews were missing for [a long-ass
while](https://github.com/tgstation/tgstation/issues/62203). Eh, if I
find one, I'll close one.
## Changelog
🆑
fix: A joint effort of Gorlex Marauders and MI13 tech support teams has
finally managed to center the Syndicate Infiltrator shuttle's preview on
the navigation console. Nuclear Ops teams sector-wide, rejoice!
/🆑
## About The Pull Request
Air alarms had temp/pressure that were hardcoded to be dangerous
temps/pressure for humans. This fixes it so that the temp/pressure is
based on the settings used in the air alarm. So if a air alarm is
ignoring pressure/temp then it doesn't give a warning message.
## Why It's Good For The Game
If you want to ignore atmos checks for air alarms in certain areas, then
it shouldn't be giving warning messages.
## Changelog
🆑
fix: Fix air alarms warning message to use pressure & temp settings
/🆑
## About The Pull Request
Fixes#72841
Air alarms only check the current gases in the environment. This means
that any gas with a minimum threshold will not trigger if it is
completely gone from the environment. (like oxygen)
## Why It's Good For The Game
Better consistency.
## Changelog
🆑
fix: Fix air alarm not checking missing gases
/🆑
## About The Pull Request
When pouring liquid out of a barrel or watertank, none of the pour
sounds would trigger. This is now fixed. Also added a missing signal and
returned `ITEM_INTERACT_SUCCESS` bitflag.
## Why It's Good For The Game
When I play bartender I want consistency.
## Changelog
🆑
code: Add missing signal to reagent dispenser RMB interactions.
sound: Fix missing pour sounds from reagent dispensers
/🆑
## About The Pull Request
Closes#60318
Need to make a unit test for these once I get some spare time
## Changelog
🆑
fix: Added missing venue prices for certain foods and reagents
/🆑
## About The Pull Request
This updates the air alarms whenever a power change is triggered. When
connecting a gas sensor using mapping link helpers air alarms would not
update their icons at roundstart. I'm sure this applies to other rare
situations where the icon wasn't updating when it should green/red/etc.
## Why It's Good For The Game
Better consistency.
## Changelog
🆑
fix: Fix air alarms being stuck and not updating their icons.
/🆑
## About The Pull Request
Certain air alarms were marked with no checks for the
pressure/temperature. This should also extend to ignore all gas checks
otherwise it triggers alarms.
## Why It's Good For The Game
No more air alarms crying wolf.
Certain air alarms on the station are meant to only be used to trigger
vents/scrubbers and not care about the gases inside. (ordance chambers,
burn chambers, SM, etc.)
## Changelog
🆑
fix: Fix air alarm helper to ignore gas when appropriate
/🆑
## About The Pull Request
Closes#86905 by adding an action flag to prevent usage of certain moves
from inside of pipes. Should be assigned to most of our actions to be
honest.
## Why It's Good For The Game
Mindswapping from inside of pipes is extremely cheesy and has quite
literally no counterplay, permanently forcing someone into being a mouse
without them being able to react, do anything or even know about your
presence is not fun at all.
## Changelog
🆑
fix: Mindswap can no longer be used inside of pipes
/🆑
## About The Pull Request
raptors werent meant to retaliate against each other or against their
owner. this was initially handled by their targeting strategy, however
some changes to it at some point broke this. raptors would now
over-escalate conflicts against troublemaker raptors, locking both into
a deathmatch. this fixes that
## Why It's Good For The Game
fixes raptor retaliate targetting
## Changelog
🆑
fix: fixes raptors retaliating against each other and their owners
/🆑
## About The Pull Request
- Fixes#86858
You can set the temperature of the reagents in the UI before adding them
so the ice does not melt instantly
## Changelog
🆑
fix: Debug chem synthesizer now has temperature control for adding
reagents
/🆑
## About The Pull Request
This rebalances the Laser Musket and Heroic Laser Musket
Replaces glasses with 2 drinking glasses in the crafting recipe
Removes 2-handed demand
Standard shot damage slightly increased and stamina damage greatly
decreased
Heroic shot made a 3-round scatter shot, very powerful, damage and
stamina damage decreased to compensate
Crank-charge weapons, except the thermal revolvers, can be charged while
moving
Muskets can also be worn on jackets
## Why It's Good For The Game
These things were severely underused, and I always kinda wanted them to
be crankable while you moved, I just didn't know how. This should also
help the Militiamen ERT be less of a joke. I would appreciate
balanceposters giving some advice on the numbers if you're seeing this.
The heroic musket is incredibly rare, and SHOULD be pretty powerful.
## Changelog
🆑
balance: laser muskets have been rebalanced
balance: crank weapons can be charged while moving
/🆑
## About The Pull Request
Does what it says in the title.
## Why It's Good For The Game
Right now I feel like this is an engineer nerf more than anything else,
since they have to interface with a lot of things that chunky fingers
blocks, like their tablets and computers. I think that gloves having
this trait is more to inconvenience certain players rather than add
something to the gameplay.
## Changelog
🆑 Tattle
balance: insulated gloves no longer have the chunky fingers trait
/🆑
Co-authored-by: tattle <article.disaster@gmail.com>
## About The Pull Request
Fixes touch spells on_hand hit signals
## Why It's Good For The Game
Mainly fixes the issues with mansus grasp not being able to attack
things properly, specifically unanchor the mawed crucible.
## About The Pull Request
123 changed files and multiple crashes after writing broken regex, I
replaced most remains of direct spans with macros. This cleans up the
code and makes it easier to work with in general, see justification for
the original PR. I also fixed a bunch of broken and/or unclosed spans
here too.
I intentionally avoided replacing spans with multiple classes (in most
cases) and spans in the middle of strings as it would impact readability
(in my opinion at least) and could be done later if required.
## Why It's Good For The Game
Cleaner code, actually using our macros, fixes borked HTML in some
places. See original PR.
## Changelog
Nothing player-facing
## About The Pull Request
This PR significantly enhances how zero-g movement works. Its no longer
locked to one of 8 directions, everything now has inertia and is
affected by weight. This means that throwing a piece of wire will no
longer completely reverse your movement direction, and that being thrown
out of mass driver no longer will slow you down to a halt at some point.
This leads to following gameplay changes:
* Guns now accelerate you. Ballistics have higher acceleration than
lasers, and higher calibers have higher acceleration than smaller ones.
This means that firing full-auto weapons in zero-g will make you drift
and accelerate significantly. While this can be a hilarious way to
travel in space, it makes using them trickier.
* Impacting a wall or an object while moving at high speeds will cause
you to violently crash into it as if you were thrown. Careful when
exploring!
* Jetpacks now have inertia. Changes introduced in #84712 have been
mostly reverted, although speed buff has been reduced to 0.3 instead of
0.5 (although this is compensated by new movement mechanics, so overall
speed should be roughly equal). All MODsuit jetpacks now possess the
speed boost. Advanced MODsuit jets (which has also been added back) and
captain's jetpack instead have higher acceleration and stabilization
power, providing much more precise control over your movement.
* Firing guns while moving on a jetpack will partially negate your
pack's acceleration, slowing you down. Non-advanced jetpacks'
stabilization is not enough to compensate for heavy caliber weaponry as
sniper rifles, shotguns or rocket launchers.
* You no longer instantly decelerate upon sliding along a wall. Instead,
it may take a few tiles if you are moving at extreme speeds. Passing
over lattices still allows you to grab onto them!
As space movement is angle-based instead of dir-based now, its much more
smooth than before due to using new movement logic.
Example of jetpack stabilization in action:
https://github.com/tgstation/tgstation/assets/44720187/6761a4fd-b7de-4523-97ea-38144b8aab41
And, of course, you can do this now.

**This pull request requires extensive gameplay testing before
merging**, as a large amount of numbers have been picked arbitrarily in
an attempt to keep consistency with previous behavior (guns and
normal-sized items applying 1 drift force, which is equal to what
everything applied before this PR). Jetpacks and impacts may also
require adjustments as to not be frustrating to use.
Closes#85165
## Why It's Good For The Game
Zero-G refactor - currently our zero-g movement is rather ugly and can
be uncomfortable to work with. A piece of cable being able to accelerate
you the same as a duffelbag full of items when thrown makes no sense,
and so does instantly changing directions. Inertia-based version is
smoother and more intuitive. This also makes being thrown into space
more of a hazard (possibly opening the door for explosive
decompressions?)
Jetpack inertia and gun changes - this is mostly a consequence of
inertia-based movement. However, zero-g combat being preferred during
modes like warops was an issue due to it negatively affecting everyone
without jetpacks which are in limited supply onboard. This reverts the
mobility changes which severely impacted space exploration, while making
zero-g combat more dangerous and having it require more skill to be a
viable option.
## What's left
- [x] Refactor moth wings to use jetpack code
- [x] Refactor functional wings to use jetpack code
- [x] Locate and fix a recursion runtime that sometimes occurs upon
splattering against a wall
- [x] Add craftable tethers and modify engineering MOD tethers to use
the same system
## Changelog
🆑
add: You can now craft tether anchors, which can be secured with a
wrench and attached to with right click. They won't let you drift into
space and you can adjust tether length/cut it via lmb/rmb/ctrl click on
the wire.
add: MOD tethers now remotely place and connect to tether anchors
instead of throwing you at where they landed.
balance: MOD tethers can now be used in gravity
balance: Jetpacks are now inertia-based.
balance: Guns can accelerate you significantly in zero-g.
balance: All jetpacks now give you equal speed buff, however advanced
MOD ion jets and captain's jetpack have higher acceleration/deceleration
values.
refactor: Refactored zero-g movement to be inertia-based and utilize
angles instead of directions.
/🆑
## About The Pull Request
After the external organ removal pr, cat ears stopped being as weirdly
specialcased, and instead just used a `/datum/bodypart_overlay/mutant`
subtype. However, this was set up in a way where the inner ears were put
on a different layer from the outer ears, leading to wonky layering.
In this pr, we revert their layers and instead apply the inner ears as
an overlay onto the base ears, fixing this.
Thank you Melbert for the idea. o7
### Addendum:
Additionally, as this pr tripped the screenshot tests, makes the
`getFlatIcon(...)` proc account for `RESET_COLOR` on under/overlays.
We do this by making it stop applying the colour after merging all the
under/overlays, and instead apply it and the parent color _before_
merging any under/overlays, while proxying the parent color as a new
parameter `parentcolor` to any new `getFlatIcon(...)` calls.
This coincidentally also fixes usage of `getFlatIcon(...)` on husked
bodies, as those also used `RESET_COLOR` for their blood overlay. The
screenshot tests had to be updated for this.
## Why It's Good For The Game
Fixes#86453.
## Changelog
🆑
fix: Fixed cat ears not layering properly.
fix: Husked bodies show their blood with the right colours in
photographs.
/🆑
## About The Pull Request
fix#85250
## Why It's Good For The Game
Kinda makes sense that lava proofed item wouldnt break from fire damage
## Changelog
🆑
fix: fixed lava proofed clothing from xenobio potion being damaged from
fire
/🆑
## About The Pull Request
Trying to cable heal as an Aug while not wearing a jumpsuit makes you
cable whip yourself. This fixes it so that you can cable heal even if
you're chrome-ass naked.
## Why It's Good For The Game
Bugfix
## Changelog
🆑 Bisar
fix: Fixes augs not being able to heal with cables if they're naked or
going commando.
/🆑
## About The Pull Request
Little oopsie since I've forgot that time is in deciseconds for a moment
there, therefore it should be multiplied by 0.13 and not 1.3
## Why It's Good For The Game
I made a mistake.
## Changelog
Too small to add to the CL.
## About The Pull Request
Title; instead of using 200 brute damage as a point of "victim has been
digested enough", it now uses death. Should be about the same
mechanically, though consuming alive humans with burn damage will puke
them out sooner now, since they won't be able to accumulate as much
brute damage as before. But I think it's ?fine?, it feels kinda cheesy
to let the cube eat an already almost fried human patty after it expires
anyway.
EDIT: Consume action isn't allowing for more than one mob to be consumed
at a time, and the cube didn't have a way to dispose of the mob it's
consuming, so per request I changed it so the action now changes to
_Eject Mob_ when you consume a mob, letting you do just that. Also fixes
visible message of an attempt at consuming a mob not showing the
victim's name.
## Why It's Good For The Game
Fixes#53512
QoL for getting rid of the consumed victim
No more devouring blank space (in the visible message)
## Changelog
🆑
fix: gelatinous cubes now puke out their consume victim when said victim
dies, not when it accumulates 200 brute damage (not all mobs can get
damaged to that point)
qol: gelatinous cube's Consume action can now be used to eject the
currently consumed mob
fix: fixed gelatinous cube's consume attempt not showing the victim's
name properly (You start attempting to devour !)
/🆑
## About The Pull Request
<details>
- renamed ai folder to announcer
-- announcer --
- moved vox_fem to announcer
- moved approachingTG to announcer
- separated the ambience folder into ambience and instrumental
-- ambience --
- created holy folder moved all related sounds there
- created engineering folder and moved all related sounds there
- created security folder and moved ambidet there
- created general folder and moved ambigen there
- created icemoon folder and moved all icebox-related ambience there
- created medical folder and moved all medbay-related ambi there
- created ruin folder and moves all ruins ambi there
- created beach folder and moved seag and shore there
- created lavaland folder and moved related ambi there
- created aurora_caelus folder and placed its ambi there
- created misc folder and moved the rest of the files that don't have a
specific category into it
-- instrumental --
- moved traitor folder here
- created lobby_music folder and placed our songs there (title0 not used
anywhere? - server-side modification?)
-- items --
- moved secdeath to hailer
- moved surgery to handling
-- effects --
- moved chemistry into effects
- moved hallucinations into effects
- moved health into effects
- moved magic into effects
-- vehicles --
- moved mecha into vehicles
created mobs folder
-- mobs --
- moved creatures folder into mobs
- moved voice into mobs
renamed creatures to non-humanoids
renamed voice to humanoids
-- non-humanoids--
created cyborg folder
created hiss folder
moved harmalarm.ogg to cyborg
-- humanoids --
-- misc --
moved ghostwhisper to misc
moved insane_low_laugh to misc
I give up trying to document this.
</details>
- [X] ambience
- [x] announcer
- [x] effects
- [X] instrumental
- [x] items
- [x] machines
- [x] misc
- [X] mobs
- [X] runtime
- [X] vehicles
- [ ] attributions
## Why It's Good For The Game
This folder is so disorganized that it's vomit inducing, will make it
easier to find and add new sounds, providng a minor structure to the
sound folder.
## Changelog
🆑 grungussuss
refactor: the sound folder in the source code has been reorganized,
please report any oddities with sounds playing or not playing
server: lobby music has been repathed to sound/music/lobby_music
/🆑
## About The Pull Request
This fixes and improves some stuff with the living heart ritual:
- If you don't have any heart at all - i.e, you're a species without a
heart, or have no heart due to vein muscle membrane surgery, you can
still use the ritual to *put* a living heart into your chest.
- Fixed a "qdeleted thing being thrown around" runtime from the ritual
unintentionally deleting your old heart while dramatically throwing it
out of your chest.
- The ritual, when its replacing/adding a new heart to your chest, will
now heal the heart to just below the "severe organ damage" threshold, if
needed. It's very easy for a heart to accidentally decay without you
realizing if you're butchering a monkey in maints to hastily replace
your heart, especially if you accidentally forget the poppy or something
and have to go sprint to get one.
Fixes https://github.com/tgstation/tgstation/issues/71451
## Why It's Good For The Game
Consistency for edge cases is good, as well as avoiding runtimes.
## Changelog
🆑
fix: Fixed the Living Heart ritual deleting your old heart when
replacing it instead of having it dramatically burst out of your chest
like it should.
qol: The Living Heart ritual will now work if you don't have one at all
for some reason, in the same way that'd you use an organic heart in the
ritual to replace a cybernetic heart.
qol: The Living Heart ritual, when putting a new heart into your chest,
will now heal the heart enough to be just under the "severe damage"
threshold, if needed.
/🆑
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
Void conduit has been given slightly less range and the pulse affects
only structures within LoS.
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
## Why It's Good For The Game
I tested this skill in game a couple of times, it's admittedly a bit
overtuned, the pulse ignoring LoS leads to a lot of cheesy scenarios,
like RCDing walls all around the portal while being able to space
multiple areas.
It's still a very good spell, just less insane.
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and its effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
balance: Void Conduit has less range and no longer ignores Line of
Sight.
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
## About The Pull Request
So, do you remember orbies, those cutesy virtual PDA pets from that PR
that Ben made roughly six months ago before moving on his next project,
leaving them to be probably forgotten in a near future/present/past?
Yeah, personally I never played around, however I recalled that they do
have customizable virtual hats, which can be selected from a dropdown in
the UI, and I thought that it would be a perfect target for some
achievement-related content, as they're totally cosmetic that provides
no gameplay advantage nor affects balance in no way whatsoever. I cannot
sit well with cheevos being purely an end to itself, that's the reason
this PR exists.
The new additions to orbies hats, and their respective required
achievements are:
- The fishing hat (Legendary Fisher)
- A huge-ass rollie (Unhealthy Snacks) (yeah, it isn't exactly a hat but
the code in no way assume that the item has to be a hat, beside vars
named like that for the sake of convenience)
- A tape wizard hat (Archmage)
- An energy cakehat (Very Important Piscis)
- A bounty hunter cowboy hat (Hot Damn!)
- A fancy crown (Outdebted)
The huge-ass rollie (called fat dart) in the game, is a new cigarette,
rarely found in hacked cigarette vending machines. It's obviously a
reference to that Ralsei meme from 3 years ago or so but I personally
don't care, I just wanted to give an excessively big cigarette to orbies
to symbolize the proposterous accomplishment of eating 500 cigarettes in
a single round without dying from nicotine OD less than halfway through,
but since orbie hats use actual items are references for their
appearance, I found myself obliged to add one to the code. Overall, the
fat dart comes from an old PR on Citadel, though I had to resprite it
myself.
Here's a lazy collage of the hats. For some reason unbeknownst to me,
the hats are horizontally squished. I need to ask Ben why he did them
this way when Orbies' heads are as wide as a rugby ball.

## Why It's Good For The Game
Simple, extra cosmetic stuff for a simple feature that's as relevant as
playing around with plushes.
## Changelog
🆑
add: Added more customizable options to PDA virtual pets, which can be
unlocked by completing achievements.
add: Added a fat dart that can be rarely found in hacked cigarette
vending machines.
/🆑
## About The Pull Request
I've been beating a drum for a little while that Heretic is just Better
Changeling, and one of the things that Heretic has that simply blows
changeling out of the water is a Get Out of Jail For A Crafted Item
card. I took inspiration from that and made the headslug explosion
ability for changeling innate. Now they can use it any time they have 20
chemicals. If you want to make sure you're gonna be able to get the ling
to the incinerator or a nearby shuttle parking, bait out their
abilities, kill them, then set them on fire. Fire stops ling chem regen.
Second: Lings aren't really fitting the niche of "Monster That Rapidly
Adapts By Consuming Humanoid DNA" very much by being able to readapt
once if they've recently killed someone. Instead, I changed it so their
readaption is a counter that increments up when they absorb someone.
This makes them more adaptable, but it doesn't really increase their
strength outside of giving them more ability variety... kinda like
Heretic having all their abilities available at all times if they have a
focus.
I hope this will bring ling more in-line with the other antagonists in
the department of Not Sucking in comparison when comparing inherent
abilities.
## Why It's Good For The Game
Changeling kinda sucks. People have been spamming blood spiders because
it is honestly the only viable strategy as a changeling to not get
horribly murdered by the valid salad cuisine team extraordinaire. If I'm
being totally honest, I'm hoping we can get ling into a place where we
can get rid of blood spiders, because I fucking hate how blood spiders
work right now, but that's outside the scope of this...
This also encourages people to light lings on fire. Fire doesn't prevent
headslugging, but if you've managed to outplay the ling into spending
all their chemicals before you light their ass up, I think you earned it
at that point. Currently, buying headslug is basically trading a power
and admitting to yourself "I'm probably gonna fuck up so I'll be less
powerful in exchange for this escape route". Instead, just let them
explode at their leisure. They already give up every single thing they
have on their person when they do this -- ID, weapons, tools, etc -- and
they still need to go through the process of finding a corpse to implant
in afterward.
## Changelog
🆑 Bisar
balance: Changelings are now able to respec multiple times if they have
absorbed multiple humanoids, instead of it being toggled on if it was
off during their most recent absorb.
balance: Last Resort is now an innate ability for changelings.
code: Added a little counter and a tgui function for displaying how many
absorbs lings have in their belly to spend for readaptions!
/🆑
## About The Pull Request
This PR introduces three new fish that can be caught from deep fryers.
That's right, deep fryers are also fishing spots now. Is it silly? Yeah,
but this is more or less the reason I made a whole PR to make fish
edible. They've two gimmicks: one is that they're already fried, and
neither raw nor gorey and can be cut into nuggets. The other is that
they can evolve into the next type just by growing, no need of pairing
them with each other, starting from the 'fryish', then the 'fritterish'
(and its two variants: 'bernard-fish' and 'matthew-fish', big pun on the
english food company) and finally the 'nessie-fish' which is very rare
and big and you'd probably get 20 nuggets by cutting it alone.
Other than that, this PR adds a simple growth mechanic to fish, where
they get a bit larger each time they're fed. The gained size and weight
depends on several factors like hunger, their current size and weight
and how much until they hit the maximum cap of twice the initial size
and weight. This means bigger fish grow slowier, and it's better to feed
them once in a while but not every other second. Obviously size and
weight influence a lot of fish mechanics, so it's good to have a way to
increase these values outside of breeding RNG (which is very shallow).
TL;DR: Feed the fish once their hunger reaches 50% circa for maximum
growth.
Included in the PR are a few tidbits, like fixing a little mistake
around the 'picky eater' fish trait, more readable code around the
fish_growth component (unrelated to the aforementioned growth mechanic)
and hunger or adding the fish evolution datum for armored pikes (normal
pikes plus stinger trait, which I basically forgot to), and adjusting
how weight and size of offsprings is calculated.
## Why It's Good For The Game
First and foremost, a brand new on-station fishing spot that is not the
fishing portal, toilets (or the rare moisture traps in maint). Second, a
fish growth mechanic through which weight and size can be increased.
Third, a few code things. Four, little bugs, now fixed.
Fifth, have a screenshot of me fucking around to find out how many bites
it takes to eat all of the deepfried gargantuan nessie (53, and I had to
spawn another 10 humans to finish it):

## Changelog
🆑
add: You can now fish new, tasty treats by the station deep fryers.
add: You can now grow fish inside an aquarium by feeding them regularly
(at 50% hunger for maximum growth).
add: Added the evolution for pikes to armored pikes.
/🆑
## About The Pull Request
The fishing skill now improves the casting range of the rod by 1 turf at
expert level and 2 at legendary level. It also reduces the delay for
reeling objects (not the fishing minigame), which by default is 0.8
seconds, up to 0.3 seconds. Reeling objects also provides a pitiable
amount of fishing experience.
Fishing on fishing spots with particularly low difficulty compared to
the overall skill level now reduces the experience gained. Keep in mind
fishing also provides a exp bonus based on difficulty regardless of
skill level. This just serves to mitigate the bonus from toilets & co at
high level.
## Why It's Good For The Game
A good angler should know how to spin the rod and cast the line farther
than the average person, and reel in objects faster.
## Changelog
🆑
balance: The fishing skill now positively affects fishing rod cast range
and reeling objects outside of the minigame. Reeling objects also
provides a pitiable amount of fishing experience.
balance: High fishing skill now reduces experience gained from low
difficulty fishing spots.
sound: Removed noise from reeling sounds.
/🆑
## About The Pull Request
#86291 added the option to link fishing spots to the fish portal
generator, however I did not sprite radial icons for any of them beside
a default undescriptive star just to not leave them icon-less.
This PR introduces radial icon states for linkable fishing spots and
overlays that show on the fish portal gen when selected. A few actually
reuse pre-existing icons, like for example chasms and the beach, but
most of them are new. To top it off, linked fishing spots show a little
star on the top-left of their radial icon to distinguish them from
normal portals.
## Why It's Good For The Game
Follow-up to my previous PR where I had gotten too lazy to sprite these
icon states. Here's how they look in the editor, which is not much
different than how they'd look in-game because the radial buttons are
more or less that dark too:

## Changelog
🆑
image: added icon states for linkable fishing spots in the fish portal
gen radial menu.
/🆑
## About The Pull Request
Rewrites a good chunk of express console code, removing one letter
variables, duplicate code and straightening all the staircases with
early returns. RIP cooldowns in ui_data()
Mapped-in consoles now actually work, as currently they initialize
before SSshuttles which results in them having a completely empty packs
menu. This is fixed by making them report themselves to SSshuttles which
will call package init on them once it itself initializes.
Emagging the console will update the prices in the UI, and emagged
consoles will try to send at least 1 package instead of requiring the
budget to have enough funds to send all 5 pods. Because when you press a
button with a price tag on it, you'd expect at least something to
happen.
Beacons now reset their offsets when anchored because thats been
triggering my OCD. Upgrade disks aren't deleted and instead drop when
the console is deconstructed.
## Why It's Good For The Game
Code is crunchy, stuff is broken, prices aren't displayed correctly when
the console is emagged and you'd expect at least something to arrive
when you press a button with a price that you can afford.
## Changelog
🆑
fix: Mapped in express supply consoles now work instead of displaying an
empty UI.
fix: Emagged express supply consoles now display updated prices.
refactor: Rewrote a large chunk of express supply console code
balance: Express supply consoles now drop their upgrade disk upon being
deconstructed, and emagged consoles now will try to send at least one
package to the station if cargo budget doesn't have enough funds for all
5.
/🆑
Removed the only instance of `only_forced_audio = TRUE` in /tg/,
replaced with `cooldown = (5 SECONDS)`.
The variable is still there in case someone needs it.
## About The Pull Request
The variable was introduced in
https://github.com/tgstation/tgstation/pull/42216
to prevent it from getting annoying.
I discussed this change on the forums, previously assuming it was server
config
https://tgstation13.org/phpBB/viewtopic.php?f=9&t=37131
and people seemed receptive to the idea, spam being the only concern.
## Why It's Good For The Game
There are better ways to prevent spam.
Extending the cooldown is more favorable than being blocked completely
(this is the treatment cyborg *deathgasp received, which is a longer,
more jarring sound).
Audible emotes help you grab the attention of others (for better or
worse).
I genuinely find them amusing at times & they remind me of the person on
the other side.
There is some limit to play-pretend. These emotes enabled some
interactions with players I would not have had otherwise.
As long as we stop the spam, it breathes some life into a game full of
clicking, pointing at people and typing indicators.
## Changelog
🆑
del: Intentional screaming has been unmuted. Now has a 5s cooldown
instead.
/🆑
## About The Pull Request
Title
## Why It's Good For The Game
it read good
## Changelog
🆑
spellcheck: fixed examine and balloon alert text for boulder refining
machinery
/🆑
## About The Pull Request
This swaps out the pirate spawner on the Meta Central VDOM with the
subtype specifically meant for virtual domains. That thing wasn't
actually a virtual domain spawner, it was just a regular one.
This applies the necessary restrictions/roles being applied to pirates
who spawn on that map. It will also make #86794 work on the Metastation
Central map, rather than only affect the Corsair Cove map (which used
the correct spawner type).
This also adds the Announce to Ghosts flag to Meta Central, as is
uniform for maps with ghost roles. Doing so also enables the VDOM
selector UI indicator that ghost roles can spawn on the map.
This whole thing started as an attempt to fix#86785 but I was too slow
and someone beat me too it. Darn.
## Why It's Good For The Game
Ensures #86785 will be closed properly.
## Changelog
🆑 Rhials
fix: The Meta Central Virtual Domain now uses the proper ghost role
spawner, meaning you can't eavesdrop on syndie comms using their
headset.
/🆑
## About The Pull Request
Adds `/datum/outfit/virtual_pirate` that's the pirate outfit minus the
headset
## Why It's Good For The Game
Virtual pirates shouldn't have syndicate headsets because that might
cause problems for if a bitrunner kills them and loots the headset,
gaining access to syndicate channels.
Fix: #86785
## Changelog
🆑 Goat
fix: Virtual pirates were yelled at by the virtual syndicate and no
longer have virtual syndicate headsets.
/🆑
## About The Pull Request
Closes https://github.com/tgstation/tgstation/issues/83853 providing
correct info about why your floodlight isn't working.
## Changelog
🆑 LT3
fix: Fixed incomplete floodlights calling all light tubes broken
/🆑
## About The Pull Request

For a long time borgs have only had two PDA programs: `filemanager` and
`robotact`, but there are other simple programs with useful information
for gameplay. This PR remedies this by including three other programs to
borgs by default: `borg_monitor`, `atmosscan`, and `crew_manifest`. In
the interest of transparency, I've included possible negatives in the
form of disclaimers below.
`borg_monitor`:

This is the "SiliConnect" program in-game, and allows showing a brief
overview to cyborg players who else is connected as a cyborg and what
their model is, which allows for informed decisions on which module to
choose for themselves, among other minor useful data.
**_Disclaimer: I'm pretty sure the "Send message" button on this program
is unusable for borgs due to how it's coded
[here](ab222330ef/code/modules/modular_computers/file_system/programs/borg_monitor.dm (L116)),
but I'm unable to test it with another player. Looks like it requires an
ID, which borgs don't have, so I'm assuming this is a non-issue._**
`atmosscan`:

The AtmoZsphere program, which shows local oxygen/nitrogen data to help
make informed decisions on protecting humans.
`crew_manifest`:

The Plexagon Crew List - A simple window that shows an updated list of
current crew members and their jobs.
**_Disclaimer: The "print" button on this program allows borgs to spam
printed crew manifests on the ground if they choose to do so, which may
have the potential to be overused, however they've also had the ability
to spam-print photos using the Robotact program and I don't know of any
issues this has caused (correct me if I'm mistaken)._**
## Why It's Good For The Game / Potential additional changes
Currently cyborg gameplay can become a walking simulator if they need
simple information that a crew manifest computer would have, or an air
alarm (which might've just been blown up, disabled, or out of power), or
if they just got borgified at a Roboticist and would like to know which
other cyborgs are currently in play but don't want to pick a model
already being used. All humans have this data and more on their handheld
PDAs. Cyborgs should at least have these three as a bare minimum.
There are other useful programs: `records/medical`, `records/security`,
`custodial_locator`, and `supermatter_monitor` (NT CIMS), which could go
into Mediborgs, Peacekeepers, Janiborgs, and Engiborgs respectively.
I've tested these and am unable to change these records as a borg, only
view them, so this is purely informational data that could be useful for
various RP reasons. It could be fun for a cyborg buddy to patrol with a
Sec officer (or Paramedic) and give them up-to-date info on a crew
member's status just by having the human ask about them. Or, Engiborgs
are given the ability to keep an eye on the Supermatter using NT CIMS
and can inform engineers out in the field of its status.
Just having this general information available only to humans feels a
bit silly when cyborgs are meant to be connected to the station in a way
that allows them to interact with doors from a distance but not
something simpler like viewing a crew manifest. This still keeps the
power in human's hands since this data cannot be manipulated by borgs,
only humans (ID required).
## Changelog
🆑
add: Added three programs to cyborg PDAs: SiliConnect, AtmoZphere, and
Crew Manifest
/🆑
## About The Pull Request
Durathread vests now fit botany items as well as armor items
Botany suits now all inherit the same list
## Why It's Good For The Game
Botanists can make these and it kinda smells that they can't put botany
things inside.
While we're at it I also made botany suits use :: for consistenciation.
## Changelog
🆑
qol: Durathread vests now fit botany items as well as armor items
code: Botany suits now all inherit the same list
/🆑