## About The Pull Request
AI now gains its malf points over time, based on the number of APCs
hacked. I also added a simple way to lock malf modules from being bought
if you haven't hacked enough APCs, to avoid cheese with delta or robot
factory.
## Why It's Good For The Game
APCs hacked are a constant risk of being found, and instantly targeted,
yet they give one time bonus, that is fairly small. This incentivises
not using antag powers, and using natural AI tools, which blurs the line
for the crew between malf and subverted AIs, and makes fighting it
easier and more boring. With constant gain from the APCs the risk of
being found is rewarded, and malf that hacks a big amount of APCs and
avoids being found can use its powers fairly liberally, at a cost of
having to manage the detection chance.
## About The Pull Request
This adds ~~3~~ 8 wrappers for SDQL2/Lua: `_floor(x)`, `_ceil(x)` (we
already had `_round(a, b = 1)`), and `_typesof(a, subtypes_only)`
`_typesof` has a second argument, `subtypes_only` (default false), which
makes it act like `subtypesof` instead, to save from having to manually
remove the base type (especially since removing by value is kind of
annoying in Lua)
the Lua SS13 library has had a `SS13.typesof` function added, which does
exactly what it says on the tin (also with the second `subtypes_only`
argument)
also added `_uppertext`, `_html_encode`, `_html_decode`, `_url_encode`,
and `_url_decode`. these should all be selfexplanatory
## Why It's Good For The Game
more utility for Lua and SDQL2
## Changelog
🆑
admin: Added some more Lua/SDQL2 wrappers: _floor(), _ceil(),
_typesof(), _uppertext(), _html_encode(), _html_decode(), _url_encode(),
and _url_decode()
/🆑
## About The Pull Request
Firstly, mech beacons are limited to one of each type.
Secondly, mechs, when EMP'd, may potentially delete the beacons
installed in itself. The probability is based on the severity of the
EMP. 20% chance if the EMP is light. 40% chance if the EMP is heavy.
## Why It's Good For The Game
> Type limitations
I don't think stacking 10 tracking beacons on the same mech to instacook
it is intended. The extra beacons do not do anything. It's just to make
it easier to EMP.
> Beacon Deletion
So what if I told you that there is code in control beacons that
suggests they are intended to be deleted when EMP'd, which wouldn't make
sense unless it could be EMP'd in the mech? What if I said this code has
been there for a really long time? What if I told you it never worked?
I'm not going to sit here and pretend like this is a fix. We've played
with this being the case for a really long time. But it is dead code and
I'm gonna implement it because I think it solves a really annoying
problem with beacons, which is that once they're in, you can't get them
out again. I do still think the beacon is a strong strategy, even if it
self deletes. And I do think you'll get your moneys worth if you manage
to stick one in the mech. It's not like they can eject it early. Even
just one EMP is going to fuck up that mech. Especially true if it has
both types of beacons (since its two EMPs).
## Changelog
🆑
balance: Mecha that are EMP'd properly delete their tracking beacons
after many years where they haven't. There is a probability for whether
or not the beacon is destroyed from an EMP.
fix: You cannot stack multiple of the same beacon onto a single mech.
/🆑
This PR makes a number of changes focusing on improving the blob
minions, spores, nauts, zombies and their associated component.
The blob spore, blob zombie and blobbernaut has been resprited.
The spore and zombie have been lightly touched to preserve the most of
the original characteristics while given a cleaner look.
The spore and zombie have a partially desaturated version used to let
more of the strain colour through instead of them all ending up dark
brown.
The blobbernaut has been reshaded and the side sprite has been made
coherent with the front state, I made decided how the front state was
shaded should be the "canon" one (this might be a bit controversial but
the wild inconsistency was bugging me.)
The blobbernaut is a bit less veiny, but the veins look more natural and
use the strain complementary colour. Many combinations are cool, some
are a bit lacking due to the weird choices of complementary colour.


Blob mobs can now have strains independently of an overmind.
The 15% mutation chance of vat grown creatures causes a spore or
blobbernaut to get a random strain.
When I first added the blob spore cell line, ghosts could click on cyto
blob spores to posses them, they would then presumably(?) but not
explicitly be free antags. This ability was lost when the blob spore
code was modernised.
Very few people knew about this, and no one grew blob spores anyway.
This feature is coming back in a big way, vat grown blob spores present
a new unique job hazard, they are automatically offered to ghost as an
extremely shitty, but free antag.
I have tested spawning like 15 antag pre-buff blob spores in a live
round and they failed completely to antagonise the crew effectively,
hopefully these buffed spores won't present too much of an issue to our
great administration team, if that ends up being the case, there are
many levers to pull to tone them down.
Blob spores prior to this PR were almost completely useless.
The main cause of this was the extremely dilute reagent smoke reaction;
10u divided over 20 seconds.
This resulted the smoke clouds dealing 0.15 - 0.6 DPS, a completely
negligible and useless amount.
The smoke reagent concentration has been massively increased(10u -> 40u)
and the smoke duration has been reduced(20s -> 8s).
The result of this is that blob spore clouds are something you want to
avoid standing in, but they provide less smoke cover for the blob and
nauts.
Blob spores have also gained the ability to vent crawl. Simple mobs that
can't either open doors or vent crawl feel super bad to play.
They also deal a little more melee damage, but this is still
pathetically low on account of their low attack speed.
I have adjusted their supplementary reagents and reduced the amounts of
spores produced per cycle(2 -> 1) to make them a bit harder to mass
produce.
I have not made this PR with the goal of buffing any particular strain,
but some changes have affected blob strain balance:
This was the only strain that was strongly mechanically tied to the
core.
In order to allow for independent debris devourer mobs, they can now eat
trash(or any item really), they are independent, they store these items
inside their mob, and use these for the debris devourer reactions.
If they have an overmind, the item gets sent to the core.
This should result in a nice buff to the strain, which I've been told is
one of the bad ones.
5 years back another contributor removed the ability of blobs and
blobbernauts to transfer reagents with their attacks(as their expose
method is vapour).
This was a completely undocumented change and possibly unintentional, so
I am reverting it by giving blob reagents penetrates_skin = VAPOR again.
This only really affects these two strains. It makes regenerative
materia much stronger, while barely having any effect on cryogenic
poison, because temperature normalisation changes has made it completely
ineffective even with much more reagent applied.
The spore reagent cloud buff might also give a boost to some strains
with good expose effects, like electromagnetic web.
Blob spores now drop spore sacks, they can be ground for spore toxin, or
cracked on a griddle to create an egg-like treat!
I also added a detoxification reaction to reduce the amount of toxin
when cooked, might not work yet because I think griddles may not
actually heat the food?
Blob spores bursting and blobbernauts dying have sound effects.
level 5 biohazard
🆑
image: blob mobs have been respectfully resprited.
add: vat grown blob mobs can sometimes get born with a blob strain.
add: blob spores drop spore sacks, crack them on the griddle.
add: debris devourer mobs can now eat trash, sending it to the core, if
there is one.
add: vat grown blob spores are now sentient and evil.
balance: blob spores now have much more concentrated smoke.
balance: blob spores can ventcrawl.
fix: regenerative materia and cryogenic poison strain blob tiles & nauts
now inject chems again.
sound: blob spores & blobbernaut now have death sound effects.
/🆑
## About The Pull Request
they are not attackable or clickable
fixes https://github.com/tgstation/tgstation/issues/90155
## Why It's Good For The Game
less likely to break things
## Changelog
🆑
fix: portable grav gen effects can't be moved by tram
code: portable grav gen effects are actually a subtype of effect now
/🆑
## About The Pull Request
1. The Energy Katana, when clicking on a mob, no longer refuses to
teleport. It will instead teleport you adjacent to the mob (to the tile
closest to your origin) and immediately perform an attack.
2. Energy Katana is now a bit more consistent about what you can and
cannot teleport to, now abiding by the same rules as the heirophant
staff - you can teleport onto tables, but you can't teleport into dense
objects by clicking on the tile instead of the object.
3. The Energy Katana now has `NEEDS_PERMIT` flag, like the Energy Sword,
meaning Beepsky will consider it a threat (but it won't hunt down Ninjas
over it)
Also added pass_flags_self bitfield and updated pass_flags bitfield.
## Why It's Good For The Game
I ran around with it for like 3 seconds and found it a little clunky. So
I just cleaned it up a bit to make it 1. easier to use 2. cooler to use
The permit thing was just making it consistent with other melee weapons
## Changelog
🆑 Melbert
qol: Energy Katana is now a bit more consistent about what you can and
cannot teleport to, now abiding by the same rules as the heirophant
staff. IE, you can now teleport onto tables.
add: Energy Katana now has a "teleport attack" - if you click on a mob,
you will teleport adjacent to them and immediately perform an attack!
add: Energy Katana is now considered a threatening weapon by secbots.
Ninjas will be unaffected, but if you loot one off a dead ninja and
don't have a weapons permit, it might chase after you.
/🆑
## About The Pull Request
Extends the hardstun duration to stop borgs from being able to act
before new laws show up.
## Why It's Good For The Game
Since silicon.log shows that borg gets emagged exactly when they get
clicked by emag, but from POV of the borg emag takes around 8 seconds,
there was a window where emagged cyborg being emagged again could blow
themselves up. Prolonging the hardstun stops that.
## Changelog
🆑
fix: Emag stun is long enough to not let a cyborg act before they see
their new laws
/🆑
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
## About The Pull Request
This PR reinforces the flavour and mechanical prowess of morbid people
like the coroner by giving them a 30% speed bonus for two additional
morbid activities: shearing off limbs and digging graves.
It also makes toolspeed modifers affect the time it takes to dig a
grave.
I have not rebalanced the shovels stats or toolspeed mods in this PR,
that will have to wait until my upcoming gravedigging expansion.
## Why It's Good For The Game
The amputation shears is a decent luxury chase item for coroner because
it synergizes nicely with his playstyle, but it currently doesn't take
any morbid or autopsy bonuses into account which makes not that great as
a time saver.
I think is a shame because the item has perfect flavour and base
mechanics for the role.
This change makes shelling out the 700 credits feel more worth it and
makes the choice regarding what to spend your credits on more
meaningful.
Digging graves, while a very niche interaction, is also a very
flavourful way of getting rid of rejected cadavers, so having a boost
there is also nice for encouraging players to try it out instead of just
leaving it on the floor to rot or throwing it in disposals.
The tool speed modifier change is something that makes the very marginal
upgraded shovels a little more special, and is in line with how other
advanced tools work.
I was touching that line anyway so I figured I might as well add it.
## Changelog
🆑
balance: Morbid people, like the coroner now amputate 30% faster using
the amputation shears.
balance: Morbid people dig graves 30% faster.
balance: Better shovels dig graves faster.
/🆑
## About The Pull Request
The three powers changed in this pr are as follows:
- Tentacle now tells you you can combo it with armblade to drag someone
to you and impale them on it.
- Resonant Shriek explains the fact the confusion is best used to hamper
victims from running away.
- Dissonant Shriek (Now Technophagic Shriek) says some of the uses of
EMPs outside borg-killing, like breaking headsets or laser weapons.
Renamed to be less confusing with the above resonant shriek, and more
clearly "THIS ONE BREAKS COMPUTERS, NOT JUST BORGS."
## Why It's Good For The Game
Ling is unable to refund its powers once it gets them, so the choice
lings make on what they buy is important. However, unlike traitor, where
a gun or sword acts how one would expect, a lot of ling powers aren't as
obvious for what they do at a glance. This pr hopefully explains some of
the abilities and their use cases better.
As for the rename, "Dissonant" and "Resonant" aren't very different, and
as such it's possible the shrieks could be confused by newer players.
Renaming Dissonant Shriek to Technophagic shriek explains its role
better and shows it works against a wide variety of enemies, not just
cyborgs.
## Changelog
🆑 Webcomicartist
qol: A handful of Changeling abilities have more detailed shop
descriptions.
qol: Changeling "Dissonant Shriek" renamed to "Technophagic Shriek" to
emphasize its use against all computers and avoid confusion with the
anti-human "Resonant Shriek"
fix: Changeling Tentacle now informs you it pierces armor and impale
works with armblade.
/🆑
## About The Pull Request
title
## Why It's Good For The Game
it inherits a lot of behavior from clothing which leads to lots of bugs
when it isn't actually clothes, for example: shredded overlays. this
should be better.
probably fixes a bunch of bugs
## Changelog
🆑
code: mob holders are no longer subtypes of clothes, report any issues
/🆑
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
Reworks the Voidwalker into a basic mob, including a lot of the balance
and mechanics!
Old (left), new (right)

https://github.com/user-attachments/assets/22d6138f-11aa-4f7a-8600-2565e6578bcf
(little outdated)
https://youtu.be/cp1E3qPJGX4 (high res mirror)
**🟨Voidwalker mob changes🟨**
No longer a human species and no more void eater. Instead deals damage
by simple unarmed attacks.
Instead of dealing brute, the voidwalker does oxygen damage (4-5 hits to
knock out) with left-click, and slight brute on right click. Non-human
mobs automatically take brute damage instead of oxygen damage.
150 HP
33% burn armor
Yes it has hands, but it can only pick up and drop stuff
**🟨Window phase🟨**

Instead of needing to smash a window with the void eater, moving through
windows simply leaves them passable for 5 seconds. Makes kidnapping a
lot easier, but also makes it easier for people to chase you
People who used the voided skull also leave windows passable for a short
bit.
**🟩Cosmic Charge🟩**
Standard charge ability, but only lets you charge towards space and
works while dragging people
**🟩The Vomitwalker🟩**
People you kidnapped now occasionally do the nebula vomit, which
voidwalkers can use to dive from and into

Diving into it is very fast but also removes the nebula vomit. You can
also kidnap people into the vomit (this doesn't remove the vomit).
There is also a little UI for tracking this. Clicking it while in space
dive teleports you to the next nebula vomit, if there are any.

**🟨Voided people changes🟨**
Kidnapped people and people that used the cosmic skull are no longer
muted, but take 10% extra brute and occasionally leave behind glass
shards when taking a lot of damage.
Are no longer obliterated on a second encounter with voidwalkers.
Voidwalkers can't hurt people they've already voided (unless they really
want to), but instead just knock them out for 30s
Also the kidnapped do space vomit as I said earlier.
**🟩Sunwalker🟩**
Voidwalker variant made for pure murderbone. Has no camo and kindap
mechanics, but has a fiery charge, loads of damage and area igniting and
people ignition. It's admin, but I might change this later once I've had
some more time to think about it.

Other changes:
- Voidwindows no longer need to be space adjacent
- Unsettle works faster but can't be used in combat anymore
- Space camo now grants complete space invisibility
- Makes a lot of aspects easily moddable, so we can easily mod it into a
moistwalker in-game
- Taking a cosmic skull when you already used one gives you the old
voidwalker void eater arm. Additional uses just gives you more void
eater arms until you run out of hands
- I definitely forgot a lot more
- I made a cool voidwalker hud! It even has a unique space camo toggle
<details>
<summary>Lot of text</summary>
Voidwalker was basically a snowflaked toghether human species because I
didn't know how to sprite, but I was able to work with species and
visual effects. Then I realized I can just commission sprites!
This also let me just cut out a lot of the snowflake code, because it's
no longer a human so half the things I didn't want them to be able to
do, they just literally cannot do.
Voidwalkers were in a bit of strange spot with kidnapping? There was
essentially no incentive, other than "smash spaceman = funny". They also
had issues doing, anything? There's surprisingly little space on a space
station, especially maps such as tram. Making the voided victims have
nebula vomit gives the voidwalker a reason to WANT to kidnap, by giving
them a way to appear basically anywhere on the station. I don't think
it's too overpowered. Voided people don't vomit that much, it's easily
cleanable and diving into it removes them, so they're limited usability.
Replacing the brute damage with oxygen damage also kinda... just makes
sense? I seriously contemplated letting them do stamina damage for the
first iteration, but opted not to do it because stamina damage has so
many hooks attached. Oxygen damage doesn't! It's also just incredibly
thematic, let's them bypass most armor and makes them more suited to
non-letha kidnappings.
Space camo making them completely invisible was also long overdue. It
was literally just urging people to turn up their gamma and turn down
their parallax settings. I thought it was an interesting mechanic, but
it's just straight up unfair and doesn't belong in a multiplayer game.
They now more frequently leave behind little glass shards, leave
particles from nebula vomit they leave from and have more unique sound
effects, so attentive (and lucky) people can still deduce if an area is
safe-ish.
I removed being able to shatter voided people because the mechanic was
deeply misunderstood. It was intended to give them a means of removing
people if they kept incessently bothering the voidwalker, but people
went out of their way to use this to roundremove people they had already
voided. The 30s sleep conveys my intention a lot better, and fits better
now that the voidwalker benefits from having as many voided people
vomitting all over the place.
The cosmic charge gives them some much needed survivability. My
experiences (in observing voidwalkers, I can never get the roll ;_;) is
that they're constantly one mistake away from complete obliteration. The
cosmic charge let's them get out quick despite their slow movement speed
in gravity. It also makes them stronger when fighting in space.
They got 33% burn armor so it's a tiny bit harder to wipe them away in a
single laser salvo, while still giving people ample opportunity to fight
them off . Also they're like glass or something so it fits thematically.
I gave them hands because I thought it was cool, might be a mistake idk
</details>
🆑 Time-Green, INFRARED_BACON
add: Voidwalker has been throughly reworked! Now you are even less safe!
admin: Adds admin-only Sunwalker mob
fix: Unsettle doesnt work on yourself anymore
fix: Space camo doesnt stop bobbing anymore
fix: Voidwalker windows now recharge on kidnap
runtime: Fixes healthanalyzers runtiming when scanning mobs without
reagent holders
/🆑
## About The Pull Request
Resprites the maid uniform and maid headband using GAGs.
Combines maid neckpiece, gloves, and corset into the main outfit.
Removes standalone maid neckpiece, gloves, and corset.
Adds maid uniform and headband inhands.
stock option in black
custom colors as example

## Why It's Good For The Game
Updates the sprite to be more inline with our current clothes.
Makes the sprite in-game player customizable.
## Changelog
🆑
image: resprites the maid uniform and headband using GAGs
del: removes standalone maid neckpiece, gloves, and corset
/🆑
---------
Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
## About The Pull Request
closes https://github.com/tgstation/tgstation/issues/90904
if you have strafing on your dir doesn't actually change, making this
do_after abusable
## Changelog
🆑
fix: moving out of range of a target you are clamping while strafing
will halt the do_after of mechs
/🆑
## About The Pull Request
Quirks only send their on_gain text when given midround, such as by an
admin
## Why It's Good For The Game
Spams the hell out of you for no reason - in very few contexts are these
messages important (randomized allergies come to mind), but there are
other avenues to figure out (such as dogtags)

## Changelog
🆑 Melbert
qol: Quirks spam you less on roundstart or latejoin
/🆑
## About The Pull Request
Borg me dogtag is a loadout item instead of a quirk
## Why It's Good For The Game
The quirk doesn't do anything
## Changelog
🆑 Melbert
del: "Cyborg Pre-screened dogtag" quirk. It's a loadout item now.
/🆑
## About The Pull Request
Ok there's a lot here, sorry bout that.
- Cleaned up the permissions panel backend pretty signficantly
- Added some extra security measures to said code, mostly proc call
checks
- Properly implemented filtering code jordie wrote years and years ago
for permissions logs
- Cleaned up the permissions ui generally, more bars, nicer lookin
stuff, etc
- Fixed the Management panel's relationship with combined roles, and
renamed it to Housekeeping. Its display is expanded too.
- Added tracking to rank datums on where exactly they came from
- Added a new tab to the permissions panel which allows the modification
and deletion of ranks
- Beefed up rank modification to try and avoid accidential temp rank
additions to the db
I'm doing my best to avoid perms escalation issues, tho they are always
possible right.
Also, got mad at some query cleanup handling, did a pass on it. this
isn't nearly all of em, but it's some.
## Why It's Good For The Game
I realized there is no way to, in game, cleanly edit/create ranks, and
that the way the existing system worked was quite opaque.
I'm trying to fix that here. It does mean potentially opening up DB rank
deletion/modification to bad actors, but frankly I am not overly worried
about that. Admin modification has always been a vulnerability so like.
Here's a video with my changes (mostly, it's lightly outdated)
https://file.house/XqME7KWKk0ULj4ZUkJ5reg==.mp4
## Changelog
🆑
refactor: Fucked with admin rank setup very slightly, please yell at me
if anything is wrong.
admin: Updated the permissions panel to be a good bit more user
friendly, added rank management support to it.
server: I've added code that gives the game modification/deletion perms
for the rank table, be made aware.
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
## About The Pull Request
changes call path to be for real meatpizza
## Why It's Good For The Game
fixes#91857
## Changelog
🆑
fix: makes raw meatpizza appear correctly in cooking menu
/🆑
## About The Pull Request
Renames the schoolgirl costume to seifuku, the japanese name for sailor
style uniforms.
Resprites the uniform using GAGs.
Adds an 'adjust' style for the uniforms(rolled sleeves).
Tweaks the stock uniform colors from blue, red, green, and orange to
blue, red, teal, and tan.
stock options
blue, red, teal, tan. long sleeve/short sleeve

custom colors as example
+anyone sad about the sailor moon reference being replaced with more
basic colors dont worry you can still make them :)

## Why It's Good For The Game
Updates the sprite to be more inline with our current clothes.
Makes the sprite in-game player customizable.
## Changelog
🆑
image: resprites the schoolgirl outfit using GAGs
/🆑
## About The Pull Request
Healium bolts now heal you for 5 of each damage per second for 6 seconds
before falling out, while applying 2 seconds of drowsiness. If you have
at least 5 seconds of drowsiness (after 4 seconds of processing, because
we add 2 and it gets deducted by 1 afterwards) you get knocked out for 3
seconds (similarly to how it worked before, but with 1 additional second
left of processing if you were only shot by one bolt, you end up knocked
out for 4 seconds). It takes 1.5 seconds to rip one out, so you should
be able to react to being shot by one unless the attacker follows it up
with a melee distruption. Bolts that fall out restore their charges, but
only one bolt at a time can be putting the target to sleep.
https://github.com/user-attachments/assets/7936895e-f4dc-4bd6-847f-495c7f1202db
Video is a bit outdated, delay before knockout been bumped by a second.
###### This is a commission for Ezel/Improvedname
## Why It's Good For The Game
Healium bolts are an instant knockout that could be mass-produced to
either instantly win fights, or thrown at medbay to quickly hit corpses
by poking them over and over again as bolts didn't even embed, so
players can instantly reload and shoot them again. It was either making
them harder to produce, or reducing the effects, and former wouldn't
solve the knockout issue.
They also didn't care about block values, so even if you blocked or
reflected one you'd still get knocked out. lol
## Changelog
🆑
balance: Healium bolts now heal and knock out overtime while being
embedded instead of being instant.
balance: Healium bolts dissolve after being embedded for 6 seconds and
don't work on corpses
fix: Healium bolts no longer ignore being blocked/parried/reflected
/🆑
## About The Pull Request
https://github.com/Bubberstation/Bubberstation/pull/3534 missed adding
two modular comments and didn't change a `RegisterSignal` to
`RegisterSignals` when passing a list of multiple signals
## Why It's Good For The Game
Runtime fix + documented non-modular changes
## Proof Of Testing
If it compiles it works
## Changelog
No player facing changes
## About The Pull Request
Updates the role selection menu for when a borg is hacked by a ninja to
use the tgui input instead.
Shells now get reset when hacked by a ninja instead of getting a free
ninja shell.
Borgs now Scramble codes and get set to an emagged status when hacked by
ninja.
## Why It's Good For The Game
Turns out the role selection code is not TG it's was a skyrat feature
meaning it never got updated to a tgui selection menu
Shells should not be a free ninja shell otherwise I'd suppose emags
should be allowed to emag an AI shell.
This also fixes some scenarios of when an AI shell was hacked and then
turned around and just killed the ninja right then and there with the
now ninja shell.
Borgs not being scrambled and not having an emagged status when hacked
by a ninja always confused me, since game play wise you could just see
they got hacked go strait to the robotics console lock them down (I may
be wrong about that) or kill them and slap a law board in them and send
them to just kill the ninja.
## Proof Of Testing
Tested locally selection menu functions along with the other two
mentioned things
<details>
<summary>Screenshots/Videos</summary>
</details>
## Changelog
🆑
balance: AI shells can no longer get a free ninja shell from a ninja.
balance: Cyborgs hacked by a ninja now set scrambled codes and are
emagged.
fix: When a ninja hacks a cyborg it now uses Tgui instead of the byond
selection.
/🆑
---------
Co-authored-by: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>
## About The Pull Request
1. Mail is now shipped every 2 SSeconomy ticks, rather than every
SSeconomy ticks. The amount of mail per round will not change.
2. Mail is not shipped during Red or Delta alert. Mail will still
continue to pile up for if the station returns to blue alert.
## Why It's Good For The Game
1. The time between cargo shipments is like five minutes. This means you
get mail practically every cargo shipment, if only a few pieces. I think
it's a bit spammy, so doubling time between shipments means you actually
get substantial shipments of mail and you don't have to pay attention to
mail constantly.
2. In the event of an emergency and the cargo shuttle has to fly back
and forth for emergency supplies (like guns for a blob), being blocked
because of mail is annoying. It's also reasonable from an in character
perspective that they would hold your mail until the emergency is
resolved.
## Changelog
🆑 Melbert
qol: Mail is now shipped every 10 minutes rather than every 5 minutes.
The amount of mail remains unchanged (so you get 1 crate with 6 mail
instead of 2 crates with 3 mail each).
qol: Mail is no longer shipped while the station is on red alert - mail
held will be sent if the station returns to blue alert.
/🆑
(cherry picked from commit 0675ddf6cb)
## About The Pull Request
If you use the mech clamp offensively, it actually performs an attack
animation and sound, and properly checks armor and block. It only deals
brute damage.
As a consequence of these changes, it actually logs attacks made against
mobs that die when gibbed.
Also, xenos take x3 damage from the clamp.
## Why It's Good For The Game
This is a pretty sinister kind of attack, as it is completely silent
except for throwing a warning into chat, and can be done even in a large
crowd of people. Someone who isn't aware that the clamp can be used this
way may not even understand what is happening before it is too late.
> block check
While mech melee doesn't normally check block, this is an improvised
attack on a non-combat mech. I think it should stay a bit weak compared
to a proper mech melee in most ways and have some additional
limitations.
> Xenos
I thought this was already a thing. It's thematically on point, no?
## Changelog
🆑
balance: Mech hydraulic clamps perform an attack animation and sound
when attacking mobs.
balance: Mech hydraulic clamps can be blocked and respect armor.
balance: Mech hydraulic clamps do triple damage to xenomorphs.
/🆑
(cherry picked from commit fb9824a401)
## About The Pull Request
- Fixes airlock's run_animation from having a duplicate open in the
switch case instead of an open/closed.
- Completes the implementation of [Variable Door
Delay](https://github.com/tgstation/tgstation/pull/84631) on airlocks.
(The procs were made but never called in the airlock code.
- Implements a set_airlock_state that sets the airlock state as well as
managing operating status and animations instead of calling it
individually.
## Why It's Good For The Game
Fixes, less code duplication, airlocks use the new animation procs.
## Changelog
🆑 LT3
fix: Fixed incorrect opening case in variable door delay
code: Airlocks can have variable animation delay same as doors
/🆑
(cherry picked from commit c4877abb6f)
<!-- 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. -->
I was planning on doing this a few years ago but didn't to let other
people do it; no one did it so I just did it since it's still on the
docket. Even easier in a post #90578 world
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
Lot more lightweight as it were. This mob also doesn't really need to
"live" either, so we can bypass the whole life chain as well to
alleviate any struggles. The item does 95% of the work anyways lol.
also damn you guys laxed up on the alphabetization requirements. touched
all that up while in the areas i was fixing. soulscythes are in their
own file now too instead of the bubblegum one or whatever
<!-- 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. -->
<!-- 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. -->
🆑
refactor: Soulscythes have undergone a mild refactor, but everything
should work as it should. Report any issues.
/🆑
<!-- 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. -->
(cherry picked from commit f74c9d7aac)
## About The Pull Request
closes https://github.com/tgstation/tgstation/issues/91819
## Why It's Good For The Game
Ghosts are dead people. Like, come on.
## Changelog
🆑
fix: Some undead spirit mobs are actually undead.
/🆑
(cherry picked from commit 83913b81bb)
## About The Pull Request
https://github.com/SpaceManiac/SpacemanDMM/pull/435 added a new
dreamchecker lint, for SDMM `set` statements not at the top of the proc.
While this lint isn't in the current SDMM _release_, I was testing it
out earlier and saw these issues, so might as well fix them before they
even become an issue.
i also fixed a useless variable in moon heretic code that was right next
to the incorrectly placed `SIGNAL_HANDLER`
## Why It's Good For The Game
https://github.com/user-attachments/assets/5b063f41-32f3-490a-b0a3-199ca8147ec3
## Changelog
No player-facing changes.
(cherry picked from commit a2a43e2851)
## About The Pull Request
I have added the ability to create and edit station radio channels
through the existing telecommunications system.
You can change the name of the radio channel and its color.
The channel settings are changed and created through the servers
(Frequencies Settings)

Here i created my own channel:
1) Add frequency at Receiver (you will not see channel name):

2) Add frequency at Bus (you will not see channel name):

3) Add frequency at Server
4) Add settings for your frequency

5) See the result:

Important Notes:
1) Headsets, radios, and intercoms will not see a change in
telecommunications, but will use standard names (Common, Security etc.).
2) There are still reserved names that cannot be used: CentComm,
Syndicate, Uplink, CTFs channels
3) Servers must filter frequency for applying settings on them
## Why It's Good For The Game
Now telecommunication channels names and colors depends on the settings
of the network servers, which makes it more flexible and logical. It is
also useful for foreign language servers, as you can translate channel
names.
## Changelog
🆑
add: Added ability to change existing radio channels and create new
qol: Added color for some buttons in Telecomms UI
/🆑
(cherry picked from commit 35494b93bb)
## About The Pull Request
All these guard checks, layers and layers of protection, built from the
ground to the outer firmament, and you fucking got the negation wrong.
(cherry picked from commit afdd88c717)
## About The Pull Request
Added check to paintings finalize action to make sure that user is not
ghost.
Added check which requires silicon to be adjacent. That way cyborgs
still can finalize paintings, but not from distance and AI can finalize
paintings only near it's core.
If there any better options to check for silicon than `istype(user,
/mob/living/silicon` - make me know.
## Why It's Good For The Game
Reducing potential for bad people ruining paintings.
## Proof Of Testing
tested
<details>
<summary>Screenshots/Videos</summary>
</details>
## Changelog