## About The Pull Request
Allows changing the spritesheet for downstreams
## Why It's Good For The Game
Small code cleanup and lets downstreams do more butts for other species.
## About The Pull Request
bodytype is a bitflag, and can have multiple biotypes selected.
Shouldn't use equality comparisons for bitflags.
## Changelog
🆑
fix: limbs that are both robotic and something else can be repaired
properly
/🆑
## About The Pull Request
there is a very small chance vendrobes will have mothroaches inside.
this will become apparent as the clothes you buy will come out slightly
damaged and eaten. hitting the vendrobe with a weapon (or throwing the
weapon at it) will cause the mothroaches to come out and scatter
everywhere. mothroaches will now also seek out clothes to eat them
## Why It's Good For The Game
gives more character and depth to mothroach AI
## Changelog
🆑
add: vendrobes may have mothroaches inside them
add: mothroaches will now seek out clothes to eat them
/🆑
## About The Pull Request
The proc `can_perform_action()` now
- Accepts atoms & not just movables without runtiming. Fixes#83985
- It now uses `CanReach()` instead of `Adjacent()`. Allows you to
- Check if the target object is placed on top & not hidden
- Is the object inside another storage atom & such
- Properly checks for recursive locs. Before we were passing the direct
atom & not the type to `recursive_loc_check()` causing this proc to
always return true & giving us false positives. Now this proc has been
adjusted to accept both type paths & real atoms
- Removes `can_perform_turf_action()` since its now obsolete
## Changelog
🆑
fix: no more runtimes when dragging turfs onto other stuff
code: most actions now properly check for recursive locs & better
adjacency
/🆑
## About The Pull Request
Recently we allowed items held in your hands to catch fire if you catch
fire.
This makes sense but the code had a few oversights, then we reverted it.
This PR reintroduces the feature, but with a few refinements.
The basic feature is simple: If you are on fire then items you are
holding will also catch fire, in the same vein as items you are wearing
on your head or hands.
There are also a few caveats we forgot about the first time we added
this:
- If your gloves cannot catch fire, your held items will not catch fire
(because your hands aren't on fire).
- If you are extinguished, your held items will also be extinguished.
- Stopping, Dropping, and Rolling on top of any items will also
extinguish those items.
As part of this change, after an argument about whether or not this is
an oversight in coding-general, I've made the proc `get_equipped_items`
take a bitflag instead of a series of booleans as an argument and added
a new one for "include held items", so that we need no longer argue
about whether holding something counts as "equipping" it (in all other
parts of the game than this proc, it does). This is what gives the PR
most of its code footprint, don't be scared.
## Why It's Good For The Game
Items you are holding in your hands _should_ catch fire if everything
else on your person is on fire, and taking an item off of your body to
put it in your hands shouldn't protect it from fire, because those
things don't make intuitive sense.
If we want an item to be able to catch fire when worn, then it should do
so.
This might expose some issues where we were improperly setting the
flammability flags on items, but any weapon which will burn in your
hands now would also have burned if you were wearing it on your belt or
back, so making those issues more visible should be a bonus (we'll also
stop them from burning on your back or belt).
If you see someone holding a piece of paper that you really don't want
them to read you can now set them on fire to stop them from reading it,
whereas previously they would deftly hold the very flammable object out
of reach of their flaming body.
## Changelog
🆑
balance: Items held in your hands can catch fire.
balance: Items you are holding won't catch fire if your hands cannot
catch fire.
balance: When you stop being on fire so will items you are holding.
balance: If you roll around on your burning items they will stop being
on fire.
/🆑
## About The Pull Request
Refactors body markings (lizard and moths) into the bodypart overlays
system
I've also renamed the icon states for lizard bodymarkings (downstreams
with lots of lizard body markings might have problems with this)
## Why It's Good For The Game
Gives us better controle over /human appearances. I didn't add any means
of actually changing them on the person (aside from genetics. how would
that even work? with a waterproof marker?), but makes it easy for
when/if I do. Also unloads mutant_bodyparts more, moving is yet closer
to full species dedatumization
## Changelog
🆑
refactor: Lizard and moth markings now use the bodypart overlay system
/🆑
## About The Pull Request
Gives gorillas the big fingers trait
## Why It's Good For The Game
because gorillas have big fingers
this doesnt actually have a lot of effects because Gorillas already
can't use guns for unrelated reasons, but as gorillas have hands it
might come up some day as we expand the number of items which interact
with this trait
currently this stops gorillas from using stun batons, and laser pointers
gorillas dont need to use stun batons because they can just beat you to
death with their fists
## Changelog
🆑
balance: Gorillas have big fingers, which mostly just prevents them from
using laser pointers and stun batons
/🆑
## About The Pull Request
PR has been reworked a bunch! Changes in bold. Some of the **HATE** is
now outdated.
**Negative mutations now allow you to have more positive mutations, via
reducing your instability!**
**All mutations have been overall standardized via defines on their
instability values. Many mediocre positive mutations have had their cost
reduced significantly!**
```
/// Negatives that are virtually harmless and mostly just funny (language)
// Set to 0 because munchkinning via miscommunication = bad
#define NEGATIVE_STABILITY_MINI 0
/// Negatives that are slightly annoying (unused)
#define NEGATIVE_STABILITY_MINOR -20
/// Negatives that present an uncommon or weak, consistent hindrance to gameplay (cough, paranoia)
#define NEGATIVE_STABILITY_MODERATE -30
/// Negatives that present a major consistent hindrance to gameplay (deaf, mute, acid flesh)
#define NEGATIVE_STABILITY_MAJOR -40
/// Positives that provide basically no benefit (glowy)
#define POSITIVE_INSTABILITY_MINI 5
/// Positives that are niche in application or useful in rare circumstances (parlor tricks, geladikinesis, autotomy)
#define POSITIVE_INSTABILITY_MINOR 10
/// Positives that provide a new ability that's roughly par with station equipment (insulated, cryokinesis)
#define POSITIVE_INSTABILITY_MODERATE 25
/// Positives that are unique, very powerful, and noticeably change combat/gameplay (hulk, tk)
#define POSITIVE_INSTABILITY_MAJOR 35
```
Added a new height mutation: Acromegaly! It's the opposite of Dwarfism
and makes you uncannily tall. It also makes you hit your head 8% or 4%
(with synch) of the time you pass through airlocks. Wear a helmet!
**Injectors and activators' duration is now dependent on the
in/stability (absolute value) of the mutations to be injected! With a
minimum of 5-10-15 seconds for each type of injector. Also changed up a
bit how part upgrade cooldowns work, by making each tier reduce
cooldowns by 25-15-10% for each injector type.**
## Why It's Good For The Game
**> Negative mutations now allow you to have more positive mutations,
via reducing your instability!**
Genetics has been long in dire need of a rework. This isn't really one,
but it IS intended to increase genetics depth a bit and stave off its
stagnation, making it slightly more interesting than 'free shit', by
making it so **you can now gain more positive mutations, but you need to
figure out what you're going to take as a downgrade in turn.**
Genetic powers are heavily themed around comic book superheroes, and you
know what those had a lot? Debilitating drawbacks to their powers. Let's
replicate that.
**I intend to make a sister PR for this that adds more interesting
positive mutations (for the first time in decades) to genetics, so
there's an actual element of pick-and-choose involved**
> Added a new height mutation: Acromegaly! It's the opposite of Dwarfism
and makes you uncannily tall. It also makes you hit your head 8% or 4%
(with synch) of the time you pass through airlocks. Wear a helmet!
We have Super Tall. Let's add it to the game somewhere! With a fun
downside, of course.
**Gigantism is now a recipe mutation, mix Acromegaly with Strength to
get it.**
> **Injectors and activators' duration is now dependent on the
in/stability (absolute value) of the mutations to be injected! With a
minimum of 5-10-15 seconds for each type of injector. Also changed up a
bit how part upgrade cooldowns work, by making each tier reduce
cooldowns by 25-15-10% for each injector type.**
**Made no sense that a Glowy injector cost the same as a Hulk injector.
Just annoying. The cooldown is based on the absolute value, so a -30
instability injector would take ~30 seconds. This mostly so that
geneticists can't make a million modded syringe gun supersyringes**
## About The Pull Request
Mulebot was running over anyone who was on the same tile as it when it
moved without checking if they were actually lying down, which meant
they could run over people who were leaning against a wall.
## Why It's Good For The Game
Fixes#84015
## Changelog
🆑
fix: Fixed mulebots being able to run over people who are leaning
against a wall.
/🆑
## About The Pull Request
build mode and space dragons should stop harddeling on destroy
## Why It's Good For The Game
harddelete = bad
## Changelog
🆑
fix: build mode and space dragons dont harddel on destroy
/🆑
## About The Pull Request
We be addin' peg legs an' peg arms, makin' 'em craftable fer all ye
scurvy dogs. Ye can attach 'em yerselves, no need fer a surgeon's touch,
usin' the mighty ligament hook code. There be tons o' balance tweaks an'
special properties fer these limbs. Yarrrrr!
## Why It's Good For The Game
Arrr, this be givin' ye a ghetto alternative to headin' to medbay when
yer limbs be blown off. Plus, the potential fer pirate RP be fantastic!
Who doesn’t want peg limbs? If ye think otherwise, ye be lyin’ ,and
ye'll be walkin’ the plank! Yarrrrr!
## Changelog
🆑 Hacks-The-Doors (coding) & Septicchlorine (spriting)
add: craftable peg limbs (2 planks) which are attachable without surgery
bal: peg limbs take 1.5x burn and 1.3x brute, and do reduced damage
bal: peg limbs have chunky fingers (like insuls, but per limb)
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: septic <105231896+septoBismol@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@gmail.com>
## About The Pull Request

Adds Misha the bear to icebox HoS office, a snow bear with the same
health stats as Sgt. Araneus.
## Why It's Good For The Game
With how easy it is to break into the HoS office on icebox (you don't
need any space protection) it never made sense to keep a slow pet in the
office. The bear is fast and deals 15 damage, while also resistant to
cold.
I think it adds more depth that the HoS tamed a bear on icebox and
trained it. Also the bear fits the map.
## Changelog
🆑 grungussuss
add: Added Misha the bear to the HoS office on icebox.
/🆑
## About The Pull Request
As I turned this into a trait the other day I thought I might as well go
all the way.
This PR allows basic mobs to perform wound handling steps if not in
combat mode.
This chiefly means that:
- cats and dogs can lick your wounds clean (they have the "wound licker"
trait)
- gorillas can set a dislocated limb (they have hands)
- dextrous holoparasites can pluck the eyeballs out of someone's crushed
head (they also have hands)
Wolves have the wound licker trait but can't lick your wounds because
for some reason they can't drag humans and I couldn't be bothered to
figure out why that was set up that way. Also it would look stupid
because it would still do the attack forecast animation.
In order to facilitate being able to set bones, gorillas need to be able
to aggressively grab you.
While I was there I set it to allow them to strangle people to death
because... well they're gorillas. It's probably slower than they could
punch you to death, so I don't see the harm.
## Why It's Good For The Game
If felinids can lick your wounds to heal them why can't an ordinary cat?
An ordinary cat won't _often_ do this and I have not placed any such
behaviour into their AI tree, but a sapient Ian or Runtime might provide
extremely minor assistance in medbay.
Also Cargorilla setting your dislocated limbs seems very funny and like
something it should be allowed to do.
## Changelog
🆑
add: Cats and Dogs can lick slashing wounds clean.
add: Basic Mobs with hands can relocate dislocated bones, and pluck
eyeballs out of pulped skulls.
balance: Gorillas can strangle people.
/🆑
Yes, I know preventing the nuke disk teleporting to the icebox syndicate
base (or possibly the wendigo arena) is removing soul. Please don't kill
me :(
## About The Pull Request
Adds some missing variables to instances of get_safe_turf() so they will
only teleport to the given z-level.
Replaces some instances of get_safe_turf() with
get_safe_random_station_turf().
## Why It's Good For The Game
First, the differences between get_safe_turf() and
get_safe_random_station_turf():
### get_safe_turf()
- gets a random safe turf on a z-level (usually any of the staiton
z-levels), not accounting for the /area/
- should be used if you don't care if it spawns on the station or not,
or if you need to specifically teleport to a z-level
- not very expensive performance wise
### get_safe_random_station_turf()
- gets a random safe turf that will always be a station area, ignoring
z-level.
- should be used if you NEED the turf to be on a station's area
- slightly more expensive performance wise than get_safe_turf, but still
very cheap
Some code was using get_safe_turf() when it should've been using
get_safe_random_station_turf(), and some code that should be using
get_safe_turf() were incorrectly using the zlevels arg instead of zlevel
arg (Yes, there is a difference), or didn't include it at all.
All the changes were made to my best judgement. If you're curious about
a change, please ask and I will explain why I did it.
## Changelog
🆑 BurgerBB
fix: Tweaks some instances of get_safe_turf so things like the nuclear
disk doesn't accidentally teleport to the Icebox Syndicate Base
/🆑
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
## About The Pull Request
1. We don't have a reason to make a separate emote for livings and
humans, `get_sound` can filter humans out for us
2. All sounds abide by physique, rather than only half the sounds
abiding by physique and the other half abiding by gender. If this is
problematic let me know.
3. Removes a copied `/datum/emote/living/carbon/human/glasses/run_emote`
4. Gasp now makes the same sound as gaspshock
5. I let any mob with hands clap, this is notably xenos but anyone who
gets adminbussed hands will also be able to. I think.
## Changelog
🆑 Melbert
fix: Humans can't cough on menthol again
fix: Moth and lizard emotes decide what sound to play based on body
type, not gender.
sound: *gasp now makes a sound, it's the same as *gaspshock.
sound: Xenos (or anything with hands) can clap
/🆑
## About The Pull Request
I was looking at sounds (as you do) and I noticed this

These sounds don't exist
We have `portal_open_1`, not `portal_open1`.
This wasn't caught on compile because they used `""` and not `''`.
So I went through and audited a bunch of playsound uses that don't use
`''`. Only one error, fortunately
Likewise there was a ton of places running `get_sfx` pointlessly
(because `playsound` does it for you) so I clened that up.
However while auditing the portal stuff I noticed a few oddities, so I
cleaned it up a bit.
Also also I added the portal sounds to the wormholes event and gave it a
free ™️ optimization because it was an in-world loop
## Changelog
🆑 Melbert
sound: Portals made by portal guns now make sounds as expected
sound: Wormholes from the wormhole event now make sounds when formed
/🆑
## About The Pull Request
Makes the random frog in the icemoon plasma facility more
atmospherically resistant so that it survives in its environment.
## Why It's Good For The Game
Please stop failing my PRs by dying in the cold, Peter.
## Changelog
🆑
fix: Peter Jr. is capable of surviving in the environment they spawn in.
/🆑
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
## About The Pull Request
Same idea as #82656 but for ctrl click & ctrl shift click cause why not
- Does your signal & `can_perform_action()` checks using
`interaction_flags_click` flags before delegating the event down to
`ctrl_click()` proc.
- The one new change now is that `ctrl_click()` proc is now blocking,
meaning returning `CLICK_ACTION_SUCCESS` or `CLICK_ACTION_BLOCKING` will
stop the object from getting grabbed/pulled. So remember to return these
values if you want to stop the grab action or return `NONE` if you want
to process the click but still want the object to get grabbed as well
## Changelog
🆑
refactor: Ctrl click & Ctrl shift click has been refactored. Please
report bugs on GitHub
/🆑
## About The Pull Request
Mouse drag & drop has been refactored into its own attack chain. The
flowchart below summarizes it

Brief summary of each proc is as follows
**1. `atom/MouseDrop()`**
- It is now non overridable. No subtype should ever touch this proc
because it performs 2 basic checks
a) Measures the time between mouse down & mouse release. If its less
than `LENIENCY_TIME`(0.1 seconds) then the operation is not considered a
drag but a simple click
b) Measures the distance squared between the drag start & end point. If
its less than `LENIENCY_DISTANCE`(16 pixels screen space) then the drag
is considered too small and is discarded
- These 2 sanity checks for drag & drop are applied across all
operations without fail
**2. `atom/base_mouse_drop_handler()`**
- This is where atoms handle mouse drag & drop inside the world. Ideally
it is non overridable in most cases because it also performs 2 checks
- Is the dragged object & the drop target adjacent to the player?.
Screen elements always return true for this case
- Additional checks can be enforced by `can_perform_action()` done only
on the dragged object. It uses the combined flags of
`interaction_flags_mouse_drop` for both the dragged object & drop target
to determine if the operation is feasible.
We do this only on the dragged object because if both the dragged object
& drop target are adjacent to the player then `can_perform_action()`
will return the same results when done on either object so it makes no
difference.
Checks can be bypassed via the `IGNORE_MOUSE_DROP_CHECKS` which is used
by huds & screen elements or in case you want to implement your own
unique checks
**3. `atom/mouse_drop_dragged()`**
- Called on the object that is being dragged, drop target passed here as
well, subtypes do their stuff here
- `COMSIG_MOUSEDROP_ONTO` is sent afterwards. It does not require
subtypes to call their parent proc
**4. `atom/mouse_drop_receive()`**
- Called on the drop target that is receiving the dragged object,
subtypes do their stuff here
- `COMSIG_MOUSEDROPPED_ONTO` is sent afterwards. It does not require
subtypes to call their parent proc
## Why It's Good For The Game
Implements basic sanity checks across all drag & drop operations. Allows
us to reduce code like this
https://github.com/tgstation/tgstation/blob/8c8311e624271a6f6decba8cd643b33b9904534a/code/game/machinery/dna_scanner.dm#L144-L145
Into this
```
if(!iscarbon(target))
return
```
I'm tired of seeing this code pattern `!Adjacent(user) ||
!user.Adjacent(target)` copy pasted all over the place. Let's just write
that at the atom level & be done with it
## Changelog
🆑
refactor: Mouse drag & drop attack chain has been refactored. Report any
bugs on GitHub
fix: You cannot close the cryo tube on yourself with Alt click like
before
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
## About The Pull Request
Changed how tail regaining works.
* If it's your tail, an infinite debuff is replaced with a timed one
(new, on live there is no debuff)
* If it's not your tail but of same species, I guess it works, but we
are more sad (new)
* If it's not your tail AND of different species, we are horrified
(live)
Also a little clearing up of unused mood datums
## Why It's Good For The Game
Refactors good? Having your tail back good?
<!-- 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
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
As the title says. Upgrades the menu and allows you to create action
button shortcuts.



Additionally, bots can now select the radio channel if they have one.
Lowers the cooldown for voice lines.
## Why It's Good For The Game
<!-- 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. -->
Being able to more conveniently send a voice line by pressing a button
without needing to open up an interface and navigate to the correct line
will make using these a lot easier in relevant situations.
Voice line cooldowns are lowered a bit just to make voice lines easier
to use in relevant situations.
I.e. 'Extinguishing fire' -> 5 seconds later -> 'Fire extinguished'
Abuse should generally just be punished by the admins, the cooldown
doesn't need to be too lengthy.
## 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 it's 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. -->
🆑
qol: Bots can now bind voice lines to an action slot. Lowers cooldown
for all bot voicelines to 5 seconds.
/🆑
<!-- 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. -->
---------
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
## About The Pull Request
The organ refactor 6 months ago changed up organs, making them be
actually inside bodyparts and the mob. This introduced the bug of all
emp effects being called twice on everything thanks to how /mob/living
handles it (Fixed in this PR), but also some new stuff:
Made bodyparts handle organ EMPs. This also means we can now have
support for bodyparts with EMP_PROTECT_CONTENTS protecting the organs
inside.
Made a new proc for bodyparts once they are successfully hit by an emp.
Makes it much easier to add overrides for the behaviour.
Fixed emps hitting bodyparts twice
## Why It's Good For The Game
It lays a groundwork for some interesting limb concepts, and makes organ
emps make a bit more sense.
Fixes a bug that laid unnoticed for 6 months.
## Changelog
🆑
fix: EMPs on carbons no longer happen twice
code: Moves organ emps under bodyparts, changes how bodyparts handle emp
effects
/🆑
---------
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
## About The Pull Request
Currently, stamina healing is a niche side effect on many drugs, besides
a few effects (mostly heretic powers, an obscure side effect of some
drinks) that actually contribute to a significant shift in gameplay
style when you use them. In this PR I significantly increased the
stamina recovery on almost every drug and some effects that provide it.
Points of interest (not completely inclusive):
Syndicate stimulants heal 12 instead of 5 stamina damage. This will
bring you out of stam crit in two cycles, and let you heal out of the
slowdown from the stamina damage from a baton strike. The current rate
of 5 takes 5 seconds to heal out of stam crit, and the stamina reset
takes place before you heal out of stamina damage slowdown.
Bath salts heal stamina at the rate stimulants used to. Meth heals
stamina slightly slower.
Changeling adrenaline will instantly bring you out of stam crit if
you're in it; otherwise, it will heal 10 stamina damage.
Ephedrine heals 4 stamina per life, instead of 1.
Being so drunk that you black out and give up your body to ghost control
will make you heal stamina more quickly than an ascended rust heretic.
You will also likely be dying of liver damage.
## Why It's Good For The Game
At the levels they are set, most of these stamina healing effects have
almost no effect on gameplay whatsoever except in the case of tanking a
couple of extra disabler shots (only in the case of the high end drugs),
or being able to do stamina consuming tasks slightly longer (breaking
boulders, grinding with pestle and mortar, working out, ???).
Adjusting these numbers would make these drugs an actual factor in
combat situations that rely on stamina crit (stun batons, ebows, stamina
damaging poisons and diseases). Most of the drugs already have side
effects such as brain and organ damage, which in the current state
hugely outweighs any reason to use most of them besides a few that give
a movespeed buff or prevent baton knockdown (ephedrine, stimulants).
This only affects stamina healing. There has been no change to any other
interactions with things that knock down or cause any other kind of
stun.
These changes are in consideration of the fact that taking stamina
damage puts you in a cooldown before you can recover your stamina
naturally. Effects that cause steady stamina damage will bottom out your
stamina the way they do now, unless you use something to heal it.
## Changelog
🆑
balance: Stamina healing has been significantly increased for most
reagents and passive effects.
/🆑
## About The Pull Request
After being put in stamcrit, future incoming stamina damage has
"diminishing returns" applied*.
The formula looks like `ceil(sqrt(amount of stamina damage) / 2) - times
you have taken stamina damage in stamcrit`.
This means eventually stamina based damage will do less than zero
damage, and thus, not contribute to keeping stamcrit active.
Very, very low amounts of stamina damage (such as from chems) contribute
to DR 1/20th the amount.
*_Note, this is not real diminishing returns because making it real
diminishing returns would be pointless, you are capped to 120 stamina
damage so 99.99% of the time you take stam damage while in stam crit
you're already capped. This is just faking the effect._
In its current stat this means that a stun baton will stop being able to
keep someone in stamcrit after the 5th hit, and a stock disabler will
stop being able to keep someone in stamcrit after the 4th hit.
## Why It's Good For The Game
Mostly just an experiment. I don't imagine it will shake up much about
the baton situation in its current state.
There's also no grace period after getting UP - so like you can just be
stamcritted right after anyways. Maybe there should be one? Food for
thought.
And yes of course you can just space out your hits, you're not clever
for thinking about that
## Changelog
🆑 Melbert
balance: Taking stamina damage in stamcrit has diminishing returns
associated, meaning you cannot be infinitely stamcrit.
/🆑
## About The Pull Request
- Afterattack is a very simple proc now: All it does is this, and all
it's used for is for having a convenient place to put effects an item
does after a successful attack (IE, the attack was not blocked)

- An overwhelming majority of afterattack implementations have been
moved to `interact_with_atom` or the new `ranged_interact_with_atom`
I have manually tested many of the refactored procs but there was 200+
so it's kinda hard
## Why It's Good For The Game
Afterattack is one of the worst parts of the attack chain, as it
simultaneously serves as a way of doing random interactions NOT AT ALL
related to attacks (despite the name) while ALSO serving as the defacto
way to do a ranged interaction with an item
This means careless coders (most of them) may throw stuff in afterattack
without realizing how wide reaching it is, which causes bugs. By making
two well defined, separate procs for handing adjacent vs ranged
interactions, it becomes WAY WAY WAY more easy to develop for.
If you want to do something when you click on something else and you're
adjacent, use `interact_with_atom`
If you want to do something when you click on something else and you're
not adjacent, use 'ranged_interact_with_atom`
This does result in some instances of boilerplate as shown here:

But I think it's acceptable, feel free to oppose if you don't I'm sure
we can think of another solution
~~Additionally it makes it easier to implement swing combat. That's a
bonus I guess~~
## Changelog
🆑 Melbert
refactor: Over 200 item interactions have been refactored to use a
newer, easier-to-use system. Report any oddities with using items on
other objects you may see (such as surgery, reagent containers like cups
and spray bottles, or construction devices), especially using something
at range (such as guns or chisels)
refactor: Item-On-Modsuit interactions have changed slightly. While on
combat mode, you will attempt to "use" the item on the suit instead of
inserting it into the suit's storage. This means being on combat mode
while the suit's panel is open will block you from inserting items
entirely via click (but other methods such as hotkey, clicking on the
storage boxes, and mousedrop will still work).
refactor: The detective's scanner will now be inserted into storage
items if clicked normally, and will scan the storage item if on combat
mode
/🆑
## About The Pull Request
Removes `islava(newloc)` from BDM's move atom.
## Why It's Good For The Game
Megafauna have lava immunity and so won't take any damage from pathing
over lava. BDM would get stuck on his lava tile spawn due to this as
well.
fix#83615
## Changelog
🆑 Goat
fix: blood drunk miner can now path over lava
/🆑
## About The Pull Request
https://github.com/tgstation/tgstation/assets/4081722/684da396-fb28-4022-9f46-0fc4feb34b7a
Changelings now do not like fire, as is tradition.
If they are on fire, they no longer generate chemicals until they put
the fire out.
If they are on fire, they no longer can use any changeling powers until
they put the fire out.
All changeling equippable items like armblades, shields, armor,
spacesuits, etc. are now flammable and super-duper vulnerable to flames.
The Armblade now costs 30 chemicals to equip, and has a DNA cost of 3,
compared to the previous 20 chemicals and 2 DNA cost.
The Armblade now shatters after enough uses in exactly the same way as
the Shield; extract genomes with Absorb to maximize your Armblade's
efficiency. for its' chemical cost.
Fixes items you're holding not catching on fire alongside the rest of
you when you light on fire.
Fixes the Changeling Shield having one more hit than it was supposed to.
## Why It's Good For The Game
Changeling has been in a relatively incredibly rough state ever since
someone walked up to this predominatly stealth and intrigue based
antagonist and went "lets turn it into a carbon copy of an early 2000s
action game I just played".

Since then, just about every changeling has been a loud changeling. The
stats speak for themselves; Changelings are no longer a stealth antag
and they're defined by having an undroppable e-sword, armor, and HP
regen they can use mid-fight. They're just loud beatsticks now instead
of the scary stealth antagonist they were years ago.
I'm expecting a lot of pushback from the adrenaline addicts who dislike
the concept of stealth, to which I say: too bad.
Giving Changelings a weak point in the form of fire is not only
thematically appropriate for the original inspiration for Changeling,
but also provides the crew a way to actually scare off changelings back
into hiding, and encourages more usage of fire-causing weapons. This is
going to shake up changelings, and
Nerfing the hell out of the Armblade is going to encourage changelings
to take stealthier approaches to combat, and utilize the rest of their
power assortment that isn't just focused around being a gigantic
unstoppable beatstick.
## Changelog
🆑
balance: Changelings now do not like fire, as is tradition.
balance: If they are on fire, they no longer generate chemicals until
they put the fire out.
balance: If they are on fire, they no longer can use any changeling
powers until they put the fire out.
balance: All changeling equippable items like armblades, shields, armor,
spacesuits, etc. are now flammable and super-duper vulnerable to flames.
balance: The Armblade now costs 30 chemicals to equip, and has a DNA
cost of 3, compared to the previous 20 chemicals and 2 DNA cost.
add: The Armblade now shatters after enough uses in exactly the same way
as the Shield; extract genomes with Absorb to maximize your Armblade's
efficiency. for its' chemical cost.
fix: Fixes items you're holding not catching on fire alongside the rest
of you when you light on fire.
fix: Fixes the Changeling Shield having one more hit than it was
supposed to.
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
## About The Pull Request
Adds a new positronic brain variant to bepis tech
To save materials we took the corners off but now they can roll
It can roll around, knock items over and push other posibrains away
You can also kick it across the room and it's a lot cheaper because you
cut the corners off
https://github.com/tgstation/tgstation/assets/7501474/e4f913e8-cf2f-455a-b2eb-1654468df708
## Why It's Good For The Game
A chorus of whining posibrains is like heroine to the ears, now they can
aggresively shit around the robotics lab while whining for their DURAND
or cyborg shell, but the robo can also punt them into the disposal bin
## Changelog
🆑
add: Adds a positronic sphere to bepis tech and roboticist mail goodies.
It can now wreack havoc across the robotics lab while whining for a
DURAND body, but you can also punt it!
/🆑
---------
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@gmail.com>
turret faction got removed by accident.
fixes#83747🆑 ShizCalev
fix: Basic bots are now in the proper faction and will no longer be
targeted by turrets.
/🆑
## About The Pull Request
A simple fix to meat drops on lobstrosities, so that they aren't
pre-cooked.
## Why It's Good For The Game
Chefs have a limited access to crab meat unless miners are generous
enough to bring it back, but because it is cooked it can't be used in
crab rangoon or other recipes that call for the meat raw.. miners on the
other hand usually aren't pressured for food anyways, due to how
lavaland and icebox are. Furthermore, this is a sanity check of sorts:
Why are lobstrosities, especially Arctic lobstrosities, dropping cooked
meat? If they're able to survive in lava, it should probably come out
raw.
## Changelog
🆑
fix: Lobstrosities are no longer pre-cooked through bluespace
shenanigans.
/🆑
## About The Pull Request
Corrects some grammar in the raptor code. (This time it should be
correct!)
## Why It's Good For The Game
Good grammar is best grammar
## Changelog
🆑
spellcheck: fixes bad raptor grammar
/🆑
## About The Pull Request
So crew records weren't actually showing the right quirks for
latejoiners, and in at least one instance (heterochromatic eyes) even
the fingerprint was wrong. The latter seemed to be caused by a recent
fix pr making the quirk actually update your dna, for the sake of
paradox clones/changelings.
Looking into it, this seemed to be because we assign quirks to
latejoiners _after_ injecting them into the manifest:
https://github.com/tgstation/tgstation/blob/b7225d8486476fc4971ef32ed3c83fd778e7e46d/code/modules/mob/dead/new_player/new_player.dm#L218-L244
See line 219 and 244.
So we move manifest injection to be _after_ quirk assignment:
```dm
(line 242-246)
if((job.job_flags & JOB_ASSIGN_QUIRKS) && humanc && CONFIG_GET(flag/roundstart_traits))
SSquirks.AssignQuirks(humanc, humanc.client)
if(humanc) // Quirks may change manifest datapoints, so inject only after assigning quirks
GLOB.manifest.inject(humanc)
```
This fixes it.
## Why It's Good For The Game
Makes quirks actually show in the medical records for latejoiners.
Makes latejoiners with heterochromatic eyes not have the wrong
fingerprint in the security records.
_Probably_ fixes#83681.
Fixes#56469.
## Changelog
🆑
fix: Latejoiners with heterochromatic eyes no longer have the wrong
fingerprint in the security records.
fix: Latejoiners actually have their quirks visible in the medical
records.
/🆑
## About The Pull Request
- Adds in checks for the borg consumables resupplying to stop drawing
power once supplies are full. Specifically, the `respawn_consumables()`
proc will run attempting to stock everything it can, and will return
TRUE if any item required stocking.
## Why It's Good For The Game
Certain borg tools are still supplied by the borg chargers directly at a
power cost because material costs just don't make sense. These did not
have a check in place for if the various resources were full, meaning
every process cycle a bit of the borg's cell would be used attempting to
restock things. Since it's a percentage of the cell's current charge, a
filled bluespace cell could have a surprising power leak.
Now that borg chargers pull directly from the SMES units, borgs don't
recharge if the powernet is empty (regardless of local APC charge). But
borg consumables restocking carries on, which causes borgs to slowly
drain. So I have added some checks to stop the drain if nothing was
actually done.
## Changelog
🆑
fix: Fixed borg chargers (especially unpowered ones) constantly draining
a borg's cell.
/🆑
## About The Pull Request
Reworks sneezing. Instead of a range check that checks if you're facing
someone, it is now a skill check
https://github.com/tgstation/tgstation/assets/7501474/c11ffa16-9bd2-4ed1-8022-2094360657bc
All sneezes shoot projectiles, but depends on the virus if they're
infectious. Using the sneeze emote is the only method that doesn't shoot
a sneeze
## Why It's Good For The Game
I think the invisible infection mechanics are unfun. A lot of station
dangers challenge your knowledge and mechanical skill, while viruses are
gotten by being around people in a roleplay game. You can get a round
seriously ruined if you walk past someone with a sneezing virus and
don't immediately rush spaceillin or chemistry, which I don't think is
mechanically interesting.
Now if you get infected, it's a skill issue. Get good and dodge the
sneeze
Note that this is just one method of infection. I didn't touch coughing
and airborne viruses, which do constant area checks and infect everyone
around. I plan to, but not now. I'll probably make coughing do a cone or
something, and ignore the airborne viruses since they can't be modified
and are generally less broken
## Changelog
🆑
balance: You can now dodge sneezes
balance: Infectious simple diseases that use sneezes now infect with
sneezes and have lowered airborn transmission
balance: Damageless attacks, projectiles, hugs etc no longer drain
shields
/🆑
- [x] Make sneezes shoot to your cursor so you can either intentionally
sneeze on people or sneeze away from people if you react fast
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
## About The Pull Request
Checks that held modules exist in new module list after rebuilding
modules before putting them back in held modules.
Fixes emag modules stuck in inventory/screen after losing emag status
Also fixes jank fail to install piercing hypospray upgrade
## Why It's Good For The Game
Fixes buges
## Changelog
🆑
fix: Borg emag module jank when no longer emagged
fix: Borg piercing hypospray fail message
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
## About The Pull Request
I have no idea if this works because I didn't setup TTS to test, but
it's simple. Makes paradox clones use the victim's voice.
## Why It's Good For The Game
Closes#81450
Because it doesn't make sense for a clone to have a different voice.
## Changelog
🆑
fix: Fixes paradox clones using a different voice from the owner.
/🆑
## About The Pull Request
Before PR:
Giving mutadone to a monkey turns it into a human
Giving mutadone to a human does nothing about its human status
After PR:
Giving mutadone to a monkey created from a monkey cube does nothing
about its monkey status
Giving mutadone to a monkey which was originally a human restores it to
being a human
Giving mutadone to a human who has never been a monkey does nothing
about its human status
Giving mutadone to a human who was originally a monkey returns it to
being a monkey
I couldn't think of any better way to achieve this than putting a trait
on the monkey typepath but if anyone has one, I'd love to hear it
(actually, maybe I could just typecheck the mob... but that seems
equally gross)
## Why It's Good For The Game
Treating "being a monkey" as a mutation makes sense from the perspective
of the DNA console but not from the perspective of certain other game
mechanics.
A chemical which "removes all mutations" should _intuitively_ restore
people to the state they were in at the start of the round (so monkeys
turned into humans should return to monkey, and vice versa) rather than
unilaterally enact rapid evolution upon monkeys.
At least, I don't _think_ it's meant to be a lore implication that all
test apes on the station are transformed humans...
This has a couple of side effects, both of which I think are desirable.
Firstly- some mechanics work on humans but not monkeys (see #83698), and
can be circumvented by spraying mutadone gas into a monkey pen. This
will now only be achievable by individually mutating each monkey, which
requires more effort for whatever your desired result is.
Secondly- this adds a downside to the common "cure-all" surgical method
of turning a monkey into a human and transplanting a brain into it. This
new body will still genetically remember being a monkey, adding some
element of risk to this otherwise undramatic means of curing basically
any ailment in the game.
Thirdly- Some people have admitted to using mutadoned monkeys to create
a large number of humans to kill for Heretic and Changeling progression,
which I also don't want them to do, so making this take longer is a
positive.
## Changelog
🆑
balance: Mutadone restores your originally monkey status, rather than
always turning monkeys into humans
/🆑
## About The Pull Request
this refactors honkbots into basic mobs. its mostly a faithful 1:1
refactor but i couldnt keep my hands to myselves so i gave them some new
behaviors.
honkbots now love playing with clowns, they will go seek out for clowns
and celebrate around them. also, if the honkbot finds a banana peel or a
slippery item near it, it will actively drag people onto them
honkbots will now go out of theirway to mess with secbots and annoy them
## Why It's Good For The Game
refactors hinkbots into basic bots and also undoes some of the silliness
i did in the previous basic bot prs. i also added lazylist support to
remove_thing_from_list.
## Changelog
🆑
refactor: honkbots are now basic mobs, please report any bugs
add: honkbots will try to slip people on banana peels
/🆑
## About The Pull Request
Closes#82746
PR #77569 replaced the clone damage inflicted by slimes with a lingering
damage over time effect which can be removed with water.
This is all well and good for humans who can spray themselves with fire
extinguishers, showers, or sinks... but most other mobs are not actually
capable of opearating any form of equipment which can make them wet.
This PR allows you to click on the debuff icon to shake the slime off
slowly over time (15 seconds to fully remove the debuff).
This is slower than the recovery time when wet.
Dogs, Cats, and by extension, Felinids are better at removing slime
because of their self-cleaning prowess (they're always licking weird
stuff off themselves). This is rarely helpful if you're not a Felinid,
because almost all cats and dogs have so little health that they will
hit the minimum health threshold and lose the debuff anyway by the time
they would be done.
In the very niche circumstance that a sentient wolf is attacked by a
slime they will appreciate this bonus.
## Why It's Good For The Game
This was a replacement for slimes inflicting clone damage (I am not sure
this even did anything for most simple mobs?) but essentially turned
slimes into an automatic death sentence for most forms of mob without
hands.
Technically the slime debuff cannot kill you and stops if you are under
10 HP, but this is small consolation for most of these mobs which cannot
heal themselves either.
You are still probably going to take between 30-60 damage during the 15
seconds of removing slime from your body.
## Changelog
🆑
balance: Corrosive slime left behind after a slime fails to eat you can
be scraped off with your hands, or shaken off in some other way, by
clicking on the debuff. This is slower and less effective than washing
it off using water.
/🆑
## About The Pull Request

A Monkey infested by a Legion will spawn a "Rabble" instead of a
"Legion".
This is a somewhat slow 40 HP mob which tries to melee attack nearby
people.
Its only real claim to excitement is that it can and will ventcrawl if
it has nobody to attack.
## Why It's Good For The Game
Apparently people are creating large amounts of monkeys using monkey
cubes and then using the Legion's infestation mechanic to transform them
into large groups of much more dangerous mobs.
This is funny and creative but probably shouldn't be as effective as it
is.
Replacing Legion Monkeys with this mob will still create a mob of...
mobs, but they won't self-perpetuate in the same way.
## Changelog
🆑
add: A unique kind of mob is created when a Monkey is infested by a
Legion.
/🆑
## About The Pull Request
Breacher and Viper player-controlled Spiders have swapped castes; Vipers
now come from Abnormal Eggs, while Breachers will now come from Enriched
Eggs. This means that Vipers may be seen more, while Breachers require
the Nest to acquire at least a single kill to wrap and create an
Enriched Egg from. Nurse Spiders also perform their heal action much
faster, at the cost of a bit less healing. It was very difficult to heal
others due to the long do_after and thus we saw very few Nurse Spiders.
Breacher Spiders also are now NOT immune to cold, and will die if they
try to space a room or go into space.
## Why It's Good For The Game
Breacher Spiders are in kind of a difficult spot, both in theming and
balance; their space resistance made them able to vent the station in
multiple places by breaking key walls, and they had no need to commit to
their sieges because they could escape into space at all times. It also
broke part of the dynamic of Spiders wanting to keep the atmosphere in
the station, and disincentivizing Breachers from venting the station
also makes them more coherently a part of the Nest because they won't
reduce the Nest's habitable area.
Viper Spiders were seen quite little instead of the other options in the
Enriched Egg; now, hopefully we'll see more. Likewise, the Breacher is
quite powerful for being an Abnormal Egg, so perhaps now we'll see more
focus on cocooning to unlock the powerful Breachers, or just overall
less of them, which will help even the odds.
Nurse Spiders were VERY underutilized despite their power— the do_after
for their healing just felt obnoxiously long, and especially in tense
situations, you'd have shuffle and Spiders yelling at one another
because two of them have to Space Hulk the hallway for a semi-extended
period of time. Now, Nurses will be able to heal and move on a bit
faster. I don't believe this will create too many issues, balance-wise,
as the time-to-kill on Spiders is still quite low for all but the
tankiest against lasers and even welders.
## Changelog
🆑 Jane
balance: Spider Breachers and Vipers have swapped castes. Breachers come
from Enriched Eggs while Vipers come from Abnormals! Breachers can no
longer survive in spaced rooms/temperatures. The Nurse wraps wounds
faster, but with less damage healed per wrap.
/🆑
## About The Pull Request
Currently, if you handcuff someone and they only have sign language
available to speak in (mute, no tongue, nearby people are deaf, you have
bronchitis(?)), they are rendered totally unable to communicate with
anything but emotes. This is stifling to trying to roleplay with nearby
people who want to keep you cuffed for whatever reason (security,
antagonists, weirdos who keep hugging you, etc).
So instead, I've made it so that if you use sign language while
handcuffed, you are still able to sign, but to a much more limited
degree (3 - 5 words per message).
If you're put in a straightjacket, you're still totally unable to use
sign language.
Additionally, I spruced up the messages that sign language uses to
signify tone (?, !) and added one for EXCLAIMED QUESTIONS?! I also made
the emotes work as emotes, rather than the small (easily missable)
messages in the chat box. These emotes will not fire if you sign with
tone while cuffed, to avoid you becoming a spam machine.
## Why It's Good For The Game
It lets cuffed sign language users communicate, which is usually a
pretty good thing when it comes to improving a scene for both them and
the people they're playing with.
It improves the descriptiveness of the inquisitive and exclamatory tone
messaging for sign language users, and also adds one for a combination
of the two tones.
## Changelog
🆑
qol: Sign language users can now sign in cuffs, but to a very limited
degree. They also have more descriptive emotes for questions,
exclamations, and a combination of the two.
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>