Commit Graph
16107 Commits
Author SHA1 Message Date
explosivekittyandGitHub 7caf78dd25 Lets you put nodrop items from uplink glue on and into evidence bags and use it on other people (#5400)
## About The Pull Request
Lets you equip items that you used glue on, that's how it worked before
tg made it such you cant equip nodrop items, put them into evidence bags
so you can pick them up without getting them attached to your hands and
also make stuff that other people have equipped nodrop for them to be
sprayed with acid if they want to get rid of that thing
## Why It's Good For The Game
You no longer have to drag nodrop items to sec, you can just put them in
the bags now(if you didn't pick it up in the process) and let's you
equip stuff if you applied nodrop before equipping it because that's how
it was before tg randomly fixed equipping nodrop items. also gluing
bombs and other stuff to people could be funny i think
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>
<img width="127" height="240" alt="screen1"
src="https://github.com/user-attachments/assets/7ee25f7b-5cbc-42b8-8244-5c17b736a9ee"
/>

the item selection menu
</details>

## Changelog
🆑
add: You can put superglued items into evidence bags
fix: You can equip superglued items again like you could before
add: You can apply superglue to other people stuff
/🆑
2026-04-22 13:20:13 +02:00
MrMelbertandGitHub c9bcef2197 Spacers get pos mood for achieving nograv on planets (#95818)
## About The Pull Request

Spacers who manage to get nograv on a planet are given a positive
moodlet, and are considered in space for their buffs/debuffs

## Why It's Good For The Game

I don't remember if I was opposed to this in the past or why I didn't
make it work this way in the first place.
It's sensible that, if you manage to disable your own gravity, all of
the negative effects (which are tied to you feeling heavy gravity) would
be lifted.

## Changelog

🆑 Melbert
add: Spacers who manage to get nograv while on a planet are given a
positive moodlet, and are considered in space for the purpose of their
buffs/debuffs
/🆑
2026-04-22 13:08:44 +02:00
BloopandGitHub ce6364b082 Fixes crafting runtime (#95822)
## About The Pull Request

<details><summary> big purple dinosaur clogging up the runtime logs
</summary>

<img width="600" height="400" alt="v7N2LciICX"
src="https://github.com/user-attachments/assets/e9955159-caa2-4e86-862a-43c295bd31be"
/>

</details>

The issue is, the `contents` of items checked by `get_surroundings()`
are assumed to be `/obj/item` which is a false assumption. So this just
adds typechecking so that we don't runtime here and break crafting in
the vicinity.

This is a bad spot to runtime because it will stop materials from being
picked up by the crafting menu, preventing crafting from being possible.

<details><summary> before </summary> 

<img width="1786" height="162" alt="tracy-profiler_Fk2WSoYG5t"
src="https://github.com/user-attachments/assets/dc8f04a5-0f68-41d3-9e90-20e075ef68b4"
/>

</details>

<details><summary> after </summary> 

<img width="1767" height="176" alt="tracy-profiler_gHRDdRMMqo"
src="https://github.com/user-attachments/assets/a50ad290-153f-4ab6-9c6b-74fc43efaa4f"
/>

</details>

I profiled this both before and after these changes in the same exact
spot, surrounded by 70 electrical toolboxes, and the impact is
negligible (actually appears to be ~7.5% faster, interestingly).

## Why It's Good For The Game

## Changelog

🆑
fix: fixes an issue where raptor chicks and other non-items appearing in
item contents would prevent any personal crafting in the vicinity
/🆑
2026-04-22 13:03:04 +02:00
FinancialGooseandGitHub e98cb75c57 Refactor gasmix mole change into a proc (#95327)
## About The Pull Request
Refactor the majority of the current gasmix mole change use cases into a
proc called adjust_gas which simply adds the designated mole count of
the species into the gas mix while also handling asserting the gas and
garbage_collect()
I also added adjust_multiple_gases and convert_gas() for modifying
multiple gases and within a gasmix

## Why It's Good For The Game
Lemon wanted this to be done as part of the air group refactor 

## Changelog

🆑
refactor: refactored majority of gas_mix mole change into adjust_gas()
proc
/🆑
2026-04-21 13:43:47 -07:00
Y0SH1M4S73RandGitHub a54141bed8 [I **NOT** ded] Heart Eater only works with sentient beings' hearts (+heart ripping). (#95677)
## About The Pull Request

You now only gain the benefits of the heart eater perk by eating a heart
taken from a mob with a mind. In order to make this not completely
useless for any wizard without the Smite spell, the heart eater perk now
grants the user the ability to tear the heart out of incapacitated or
dead carbons by targeting their chest with an empty hand in combat mode.
This can be done on one person at a time per hand, so subtle synergy
with the four arms perk.

## Why It's Good For The Game

Getting 80% damage resistance, stacking linearly with armor to
potentially grant total immunity to conventional sources of damage,
should require a lot of effort and putting yourself into significant
risk of getting killed.

## Changelog

🆑
balance: Wizards with the Heart Eater perk are only invigorated by the
hearts of sentient beings.
add: To facilitate the taking of hearts from sentient beings, the Heart
Eater perk lets you tear the heart out of the chest of an incapacitated
or dead being by targeting their chest with an empty hand in combat
mode.
/🆑
2026-04-20 18:20:59 +01:00
SmArtKarandGitHub 2680aafa3f [MDB IGNORE] Lavaland Mineral Rework: Yapmining 2026 (#95682) 2026-04-20 10:52:59 -04:00
SmArtKarandGitHub d68efbbf45 Fixes transforming items getting their force incorrectly modified when metalgenned multiple times (#95739)
## About The Pull Request

Transforming weapons could change their sharpness which would break
material force modification as materials modify the force differently
based on item sharpness. Also the force was hard reset every time you
switched it on or off, which would also break the math.
I've rewritten the transforming component to preserve force and
sharpness, and account for different sharpness of the item when switched
on/off. Additionally, I've updated the two-handed component to use the
new system to make it easier to work with/less prone to breaking.

## Why It's Good For The Game

<img width="557" height="218" alt="image"
src="https://github.com/user-attachments/assets/59cfb21a-e97e-4843-9c11-c87ed32384a9"
/>

## Changelog
🆑
fix: Transforming items like eswords should no longer get absurd stats
when metalgenned multiple times in a row
/🆑
2026-04-19 22:58:37 +01:00
SmArtKarandGitHub c5caa88335 Makes ship in a bottle smaller and allows it to be bottled back up (#95748)
## About The Pull Request

Makes the dragon boat dropped from lavaland tendrils capable of being
bottled back up by alt clicking after a 2 second delay. This should give
it a semblance of a purpose and make it not a completely dead drop.
They've also been reduced in size from normal to small, allowing them to
be placed in pockets and boxes.

Also, boats no longer refer to their oars as keys in examine tooltips.

## Why It's Good For The Game

Ship in a bottle is possibly the worst drop from tendrils on-par with
book of babel, as its effectively a one-time use crossing tool since you
rarely need to cross lava in the exact same place you've left your boat.
These two changes should make it at least a bit viable if you get nasty
river generation and need to cross them frequently, and don't want to
use a raptor or upgrade a MODsuit.

## Changelog
🆑
balance: Ship from a bottle can now be bottled back up by alt-clicking
it
balance: Ship in a bottle can now be deployed by throwing it, and are a
small item instead of normal-sized
spellcheck: Boats no longer refer to oars as keys
/🆑
2026-04-19 23:52:46 +02:00
MrMelbertandGitHub 72fe8e00cb Dismounting someone from a Pony (or Leapers) requires shoving and is not guaranteed (#95517)
## About The Pull Request

Ponies can no longer be one-click dismounted like typical mounts

Instead when you shove a pony (or its rider), there is a chance based on
multiple factors (is already staggered, has stamina damage, is wounded)
that you manage to remove the rider

Successfully disarming a rider this way will knock them down for a very
short duration

This save behavior was applied to the Leaper, though as Leapers cannot
be staggered and are significantly larger, the chance of a successful
dismount is far lower

## Why It's Good For The Game

Being able to be spam clicked to lose your mount is kind of unfortunate

However, being completely immune to dismount is also not ideal

So as a middle ground, a little stability minigame makes sense to me -
it gives both sides agency in avoiding or pursuing a dismount. The rider
can keep a distance to recover stability while the attackers can use
weapons (even batons or disablers) to make it easier to remove the
rider.

## Changelog

🆑 Melbert
balance: You can no longer dismount riders from ponies with a single
click. Instead, there is a chance to dismount the rider on shoving the
pony OR the rider, based on multiple factors (such as stamina + physical
damage and stagger)
balance: The Leaper mount also has this "disarm to dismount" mechanic,
though it is significantly more difficult as they are much sturdier
beasts
/🆑
2026-04-19 22:35:46 +01:00
JacquerelandGitHub 039a0a8180 Wizard Wand blind box & wand bandolier (#95563)
## About The Pull Request


![dreamseeker_vQmIqvqtUo](https://github.com/user-attachments/assets/462d95f8-7447-45e2-90a8-9111fa07fe11)

This PR adds 16 more wands to the game, try and guess what they all do!
I finished coding this PR 6 weeks ago but it turns out I had to sprite
16 wands after that before I could PR it.

<details>

**Wand of Animation**- It's like the Staff of Animation but doesn't
recharge itself, obviously.
**Rod of Babel**- Grants victims a new random spoken language and then
removes all of their other languages.
**Shearing Rod**- It renders you bald. If you are covering your hair
with a helmet, it pops the helmet off (possibly its most useful effect).
If you're already bald, your bald head will shine brightly and blind
nearby people.
**Party Wand**- Fires projectiles that are incredibly alcoholic. Two of
them will destroy the livers of most targets and kill them (although it
gives them a good leadup time to get that fixed before dying of alcohol
toxicity), so try one at a time if you're just there to have fun.
**Wand of Ice**- Freezes people temporarily, making them really cold and
unable to move. It also spawns slippery ice on impacted tiles.
**Wand of Chaos**- Forces targets to hallucinate from a curated list of
hallucinations. It looks and is named sort of like the Staff of Chaos
just in the hopes that people are more likely to believe that the wizard
did actually just instantly kill them, set them on fire, or turn them
into a demon. Even if it doesn't, a lot of these cause you to stop
moving or be temporarily knocked down or in some other way disoriented.
**Lifting Rod**- Removes gravity from a target for two minutes, which
funcionally immobilises them if they're in the middle of a room or you
can use on yourself to cross big pits.
**Rod of Compassion**- Heals you and your target a little bit, and also
gives you both Pacifism for 30 seconds. This gives you time to talk out
your problems, or deliver a monologue.
**Wand of Snacking**- Turns things into pizza. If fired at a mob, will
put some pizza in their hands and force them to start eating it.
Unlikely to be deadly, but it might spawn mouldy pizza, a food they are
allergic to, ethereal battery acid pizza, or pizza which dismembers you.
**Pestilent Wand**- Confers a transmissible plague which causes you to
periodically cough out vermin of various degrees of danger and hostility
depending on disease level, treated via traditional methods of exorcism.
**Wand of Pratfalls**- Slips and pies the target as well as creating
small amounts of lube foam.
**Wand of Rebellion**- Removes a limb from the target, then animates
that limb. Stop hitting yourself.
**Rod of Repulsion**- Throws things you shoot away from you.
**Switching Rod**- Swap places with the hit atom, as with the spell
Swap.
**Restraining Rod**- Summons a tentacle from the ground to grasp the
target, immobilising them for 20 seconds or until someone helps them.
**Wand of Zapping**- Briefly locks up the target's nerves with lightning
(it's secretly a classic ss13 taser).

</details>

They are available to wizards via the new option "Wand Assortment
(Bargain Bin)" which only costs a single spellbook point, but gives you
an assortment of 6 wands picked at random from this list of new wands
and some of the existing ones.

If you buy two or more sets of wands (and are wearing the wand belt from
the first one) then instead of spawning wands in a belt it will spawn
them in a bandolier, which fits into your backpack or can be worn on a
suit slot.
Wand bandoliers in a suit slot will automatically replace an empty wand
you try to fire with a wand that still has ammo in it.

Several of these wands' projectiles are now also possibilities from
firing the Staff of Chaos (making it more chaotic) and some of them also
have their own Magicarp types.

Also I made it so that if you animate an animating weapon then it
focuses on animating more things instead of shooting its animating bolts
at mobs that are already animate. I could do this for more specialty
wands too at some point (door wand projectiles don't exactly hurt
anyone) but if I do that it'll probably be in a different PR.

## Why It's Good For The Game

A good number of these wands come from a downstream antagonist that's
essentially a lower-threat wizard. I thought these were all fun or funny
effects to have in the game upstream but also not ones that people would
typically want to buy as a dedicated spell (or alternately, that would
be pretty good as a dedicated spell but quite boring), so instead
they're limited use spells that you get in bulk for cheap.
I didn't think we'd really want to bulk up the spellbook with several
different kinds of themed bundle though (and frankly, they don't share
themes), so it's a blind box instead.
The bandolier was added to compensate people for buying random wands
multiple times, so they can have more of a wand-based playstyle.
Now you can spend all of your points on 60 wands (maybe more if you take
the gambling trait...) and be a sort of wizard cowboy, or split them
among your apprentices, or just leave them everywhere like candy and see
whether the crew fuck things up for themselves with their new power I
guess.

## Changelog

🆑
add: Adds 16 more wizard wands to the game, which wizards can buy
cheaply but randomly, or are available via Summon Magic.
add: If a wizard buys more than one set of wands they will receive a
"Wand Bandolier" holster which fits in the backpack or, if worn in the
suit slot, will automatically exchange an expended wand for a full one.
balance: Staffs (and wands) of animation that are animated will try to
animate other objects instead of firing at living mobs, which are
already animated.
balance: Animating a wand of nothing will turn it into a wand of
animation (and animate it).
balance: The staff of chaos can now do more things.
balance: Magicarp now additionally come in Babbling, Frigid, Quantum,
and Weightless varieties. Collect them all!
/🆑
2026-04-20 09:31:55 +12:00
BloopandGitHub a0d3828498 De-hardcodes a couple of vars related to clothing sprite accessories (#95791) 2026-04-18 16:56:36 +02:00
MrMelbertandGitHub 05b7ce90ff Adds Lawyer/HoP/QM/Spy unique traitor item, the briefcase firearm mechanism (#95607)
## About The Pull Request

Lawyers, Quartermasters, and Heads of Personnels can now purchase a
`"Briefcase Embedded Firearm Trigger"` from the traitor uplink for 4 tc.

The briefcase looks like a normal, unassuming briefcase - But when any
weapon is placed inside, you gain the ability to "fire" the briefcase,
which *actually* fires the weapon.

Only the first weapon found is fired, even if it's empty.
So while you CAN put 5 pistols inside, you'd have to cycle them in and
out manually.

This works with *any* weapon that can fit inside the briefcase, which
essentially restricts it to pistols and some laser weapons.
*No*, sniper rifles won't work in the briefcase. (You can't use it to
bypass weapons that require two hands.)
*Yes*, you can also handcuff the briefcase to your wrist as normal. (Who
knows what this will allow.)

---

Also purchaseable is an 8tc `"Briefcase Embedded Firearm (Combo Deal)"`,
which comes pre-loaded with a Makarov and 0 magazines.

This variant is also available to all Spies as a medium difficulty
reward.

--- 

Additionally I changed the boot-dagger's examine tell to only show to
people holding the item.
When I was implementing the briefcase gun I made the examine tell only
show while held and I thought "well, the boot-dagger should follow the
same logic". They're meant to be stealth objects so being able to figure
it out from across the room feels weird.

## Why It's Good For The Game

This was a random idea someone threw out that I thought fit the vibe and
gameplay of traitors and spies really well.
It's a very espionage-y idea, very James Bond. 

It will definitely catch a lot of people off guard. It basically allows
the Lawyer to walk around with a pistol or revolver drawn at all times.
I'm a bit worried it'll be too potent combined with handcuffs (nodrop
revolver?), but the Lawyer doesn't get many Ws so maybe it's fine.

## Changelog

🆑 Melbert
add: Traitor Lawyers, Quartermasters, and Heads of Personnels can now
purchase a "Briefcase Embedded Firearm Trigger" from the uplink for 4tc
- a briefcase that allows any weapon stored within to be fired by
"firing" the briefcase itself. Weapon sizes are restricted to whatever
fits in a briefcase, meaning it practically only works with pistols and
some laser weapons. It has a subtle examine tell that only appears while
being held.
add: Also available for 8tc is a combo deal that comes pre-loaded with a
Makarov. This can also appear as a medium Spy reward.
balance: The Spy item "boot dagger"'s examine tell now only appears if
you're examining them WHILE holding them.
/🆑
2026-04-17 13:29:57 +10:00
SmArtKarandGitHub 3454171051 Visual and balance changes to style meters (#95631)
<!-- 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

Style HUD now renders the events top to bottom rather than bottom to
top, meaning that new events appear at the top which is more intuitive
than what we have now.
``ROCK MINED`` action has been removed as it filled pretty much the
entire list whenever you were digging, or even fighting with an AOE tool
(PKA/crusher with worm trophy) and was an extremely easy way to
constantly keep SPACED! rank up without doing anything.
A new 125/250/375 ``VENT TAPPED`` action has been added, given to all
surrounding miners upon vent completion and based on its richness (and
thus, difficulty)
Both megafauna kills and vent taps now give permanent point gain
multipliers, +10% for megafauna kills and +5/10/15% for vents of varying
sizes.

## Why It's Good For The Game

Bottom-to-top listing of events was extremely unintuitive and hard to
read.
``ROCK MINED`` kept anyone with mining AOE at constant SPACED! rank and
cleared all other actions from the queue as soon as the user fired their
PKA once, which isn't ideal
Vent taps are quite difficult and are worthy of being acknowledged by
style meter in my opinion, and both they and megafauna kills are
somewhat permanent achievements fitting of a bigger boon than an
extremely short-lived point boost (350 for megafauna takes about 50
seconds to completely decay if you don't have any other point gains,
otherwise relatively it decays even faster as the speed ramps up the
more points you have)

## 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. -->

🆑
add: Style meters now award you for clearing vents based on vent
richness and difficulty
balance: Megafauna kills and vent taps grant a permanent 10% / 5/10/15%
(based on difficulty) permanent style boost respectively
del: Style meters no longer grant points for mining empty rocks
qol: Style meter actions now list top-to-bottom rather than
bottom-to-top
/🆑

<!-- 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. -->
2026-04-16 16:05:27 +00:00
YobrocharlieandGitHub 26ae82d758 Snowdin and caves fluff and zoning removal (#95770)
## About The Pull Request

<img width="245" height="468" alt="image"
src="https://github.com/user-attachments/assets/e7924766-cf9a-4ca0-b3fb-a668d3d2cec0"
/>

## Why It's Good For The Game

shouldve been removed with the first pr

## Changelog

Removes everything for the caves and snowdin away missions except for
the original caves area because i used that in heretic, whoops.

not player facing there should be no CL
2026-04-16 03:44:02 +01:00
MrMelbertandGitHub bade006302 DNR'd / playerless bodies risen as zombies are ghost controllable (though mindless bodies are weaker) (#95544)
## About The Pull Request

- A body that revives as a zombie but has no player (IE never had a
player or the player DNR'd) becomes is ghost controllable: A poll is
immediately offered, and the body itself appears in the spawners menu.

- Zombies created from **mindless** mobs (such as monkeys or roundstart
morgue cadavers) are **Mindless Zombies**, a subtype of zombie which is
weaker (heal slower, move slower, not guaranteed to infect on hit)

## Why It's Good For The Game

- When zombies get rolling, there will no doubt be a few players that
DNR or a few DNR'd bodies that get infected, and it results in a lot of
zombies without players standing around, which is kinda lame. Giving
ghosts the options to take over seems like a no-brains-er to me, keeps
the horde a bit active even if some get decapitated.

- However, one big problem this allows for is that it provides a clear
vector for people spamming zombies out of hu-monkeys. Thus I changed
mindless bodies (bodies which never had a player, even a DNR'd one
(hu-monkeys)) to be easier to handle and far less deadly. That way
traitors are still encouraged to infect players over npcs.

## Changelog

🆑 Melbert
add: If a playerless body (DNR'd or otherwise) is raised as a zombie,
ghosts are given the ability to take control of it
add: If a body that never had a player control it is risen as a zombie,
they are risen as a weaker "mindless zombie" (moves and heals slower,
deals less damage, infection is not guaranteed on hit)
/🆑
2026-04-16 12:26:22 +10:00
John WillardandGitHub 569bf2fc55 You can lose it all (#95616)
## About The Pull Request

Replaces visible messages with the machine talking directly

<img width="448" height="31" alt="image"
src="https://github.com/user-attachments/assets/a0ea268e-67f8-4301-ae9d-1926be7d79ae"
/>

Winning the jackpot now gives +4 instead of +6, but is now a permanent
moodlet. The only way to lose it is if you lose at least 10k from a
CRAB-17 market crash, which will replace it with a 20m mood debuff of
-2.

<img width="639" height="523" alt="image"
src="https://github.com/user-attachments/assets/9227b931-8e72-40c9-914c-657fd50ed5d3"
/>


Also adds a memory for winning the jackpot.

<img width="641" height="147" alt="image"
src="https://github.com/user-attachments/assets/2d34dab0-9ee8-4d1a-a7af-1ad855a51abe"
/>

<img width="235" height="75" alt="image"
src="https://github.com/user-attachments/assets/e870ef6d-d4c8-4cd0-976b-316e8399669e"
/>


## Why It's Good For The Game

Winning the jackpot makes you feel great all day, not just for 30
minutes. You won life saving gamblings!
Also you aren't really glad when all your money is gone, either.
2026-04-15 13:48:49 -05:00
MrMelbertandGitHub 4eadf5caf7 The big tooltype_act de-cargo-cult-ing (#95408)
## About The Pull Request

Removes a lot of cargo cult copypasta with
`default_deconstruction_screwdriver`, `default_deconstruction_crowbar`,
and to a lesser extent `default_pry_open` and
`default_change_direction_wrench`

ALL you gotta do now if you want your machine to have an openable panel
or be deconstructible with a crowbar is this
```dm
/obj/machinery/dish_drive/screwdriver_act(mob/living/user, obj/item/tool)
	return default_deconstruction_screwdriver(user, tool)

/obj/machinery/dish_drive/crowbar_act(mob/living/user, obj/item/tool)
	return default_deconstruction_crowbar(user, tool)
```

`default_deconstruction_screwdriver` no longer directly sets
`icon_state`, requiring the user pass in the open and closed icon
states. Now, it just calls `update_appearance`, and everything that once
passed the icon state now uses `base_icon_state` and
`update_icon_state`.

## Why It's Good For The Game

Many of these procs were terribly overcomplicated and difficult to work
with for what should be a relatively simple action

Streamlining it makes it easier for coders to understand and work with

## Changelog

🆑 Melbert
refactor: A majority of machines had their screwdriver/crowbar/wrench
interactions rewritten, report any oddities like being unable to open a
machine's panel or deconstruct a machine
/🆑
2026-04-14 19:46:24 -04:00
John F. KennedyandGitHub d598448aad Sweater Vest (#95681)
## About The Pull Request
Adds the sweater vest as an accessory in the autodrobe and loadout menu.
## Why It's Good For The Game
An alternative to the waistcoat.
<img width="704" height="82" alt="Screenshot 2026-04-07 140058"
src="https://github.com/user-attachments/assets/3ca13953-3866-4f35-9cb6-87e8c75348a8"
/>

## Changelog
🆑 Macaroni
add: Added the sweater vest
/🆑
2026-04-15 10:39:51 +12:00
SmArtKarandGitHub 3103f9c413 Adds a Tactical IFF Visor and slightly refactors eye rendering (#95547)
## About The Pull Request

A new cybernetic eye implant, the tactical IFF visor, has been added to
the game, available in the combat implants research node. Its main
features are a cool LED display, dynamic color correction to make
distinguishing important objects easier, and inbuilt IFF systems capable
of distinguishing and highlighting allies and potential threats. They
also give flash/welding protection and mild night-vision capabilities.

However, this comes at a downside of making the user completely unable
to distinguish appearances or voices, or even examine others. Everyone
will simply show up as Unknown and be completely covered in static, bar
the threat assessment outline. Examining will only display their threat
status according to threat settings in the visor.

The parameters for threat assessment (both ID access and security
flag-based), as well as the visor display, can be configured by the user
at any time.

When emagged, the visor will instead completely hide and mute all mobs
except the user themselves, leaving them completely "alone" on the
station.

Deathsquads get an unmodifiable version, configured to treat anyone but
CentCom personnel as hostiles.
Settings can also be adjusted before installation with a multitool, and
locked using a screwdriver, preventing users from accessing them when
installed.

---

Eye rendering has been slightly refactored in order to support the
monovisor, as well as to get rid of duplicate code (and missing
features) on dismembered heads. Also moth eyes once again should block
emissives properly.

## Why It's Good For The Game

New content for both gameplay and roleplay, and fits deathsquad's
purpose very well.
2026-04-13 20:58:40 -05:00
John WillardandGitHub 774c07cd9b Basic mob stat panel gutting (#95543)
## About The Pull Request

Changes Guardian HUD to use action buttons instead of HUD elements,
which means their buttons
1. Can now be moved
2. Can be binded

Other Holoparasite HUD changes:

1- Moves some special buttons like explosive's explosion ability to be
where the "Toggle Mode" button typically is, to be consistent with some
other modes (assassin, gas) that also works like their unique ability.
2- Gives non-dextrous holoparasites the ability to move floors, since
they float.
3- Fixes dextrous holoparasites having 2 health HUDs
4- Moves "Check Guardian Type" verb to a new action button meant to
mimick the Antag UI Info button.

Gives Soulscythes a Combat mode indicator

Locks Revenant's combat mode indicator (cause it does nothing)

Adds another hoverable HUD element, basic mobs can now hover over their
healthdoll to see their Health %

<img width="85" height="123" alt="image"
src="https://github.com/user-attachments/assets/ad660ba4-296c-4699-9ec4-03a6e7b97880"
/>
<img width="95" height="101" alt="image"
src="https://github.com/user-attachments/assets/12d4d9d3-cf2c-4c52-81aa-17ce538b9d48"
/>


Adds a Unit Test to ensure all basic mobs have a HUD that shows some
form of health & combat mode (unless unnecessary like Revenants), to not
lose any information from basic mob conversion now that they lose the
stat panel.

## Why It's Good For The Game

This is yet another supplement of
https://github.com/tgstation/tgstation/pull/95383 - Removing stat panel
entries for all basic mobs is a great move towards lessening the
reliance of mobs on the stat panel.

This is also just good QoL for Holoparasites, especially since their
stat panel had 2 entries for "Master HP" and your "Own" HP, despite
Holoparasites not even having their own HP at all.

## Changelog

🆑
qol: Holoparasites' abilities are now action buttons, so you can rebind
or move them.
qol: Holoparasites now have floor change buttons.
fix: Holoparasites and Soulscythes now have a combat mode indicator.
fix: Dextrous holoparasites now have their inventory slot again while
non-dextrous had it taken away (not that they could use it).
/🆑
2026-04-13 17:05:57 -06:00
ArcaneMusicandGitHub 3503e9c565 Re-Implements the Bounty List for cargo, and various bounty improvements. (#95412)
## About The Pull Request

This PR readds a previously removed feature from cargo, that being a
global list of bounties that the whole station has access to, with some
tweaks and adjustments from the original system.

<img width="578" height="377" alt="image"
src="https://github.com/user-attachments/assets/c8e1cb8d-dda6-4983-8588-93dffffc2b4e"
/>

_Seen above: The new Global Bounty Interface._

The civilian bounty pad has a second tab added to it, which contains a
list of all the bounties that are available globally for all crew. You
can select one in order to view the contents of the bounty, as well as
have the option to send items on the pad to contribute to that global
bounty. You may also, as you could several years ago, print a sheet of
paper from the console that consists of all the global bounties on the
station, their their reward values. In addition to those bounties, some
bounties may be labeled has "High Priority", which means that they're
worth more to complete for both you and for cargo, and are denoted with
the different coloring and the star icon on the bounty list.

When a bounty is completed, it will create a bounty cube, the same as
personal bounties. However, for global bounties, multiple people may
contribute to their completion, and when the bounty cube is made and
sold, you will each get a cut of the profits proportional to your
individual contribution. So, if a bounty cube is sold worth 1000
credits, and Person A and Person B contribute 4 items and 6 items
respectively, the total "cut" of the profits crew would receive is 30%
of the total value, so 300 credits. Of those 300 credits, Person A would
receive 120 credits and 180 credits.
(In a real round, the value of the cube's 1000 credits may also increase
if the speedy delivery bonus is met by the cargo department.)

In addition, when a bounty goes from on the list to completed and cubed
up, the global bounty list will likewise automatically update, and
create a new bounty. The number of bounties available for the crew to
complete starts at 5 (Scaled to add one more for every 8 living players,
up to a maximum of 10 to begin with), and for every _3_ completed
bounties, that bounty maximum will go up by an additional 1 bounty. The
new bounty is random from all possible job categories. This may need to
be tweaked so that it pulls 1 bounty from each major department
category, but for now this is how it stands.

Most of the changes in this project fall under tweaks to the pricetag
component, UI work, and then a lot of file-cleanup and tweaking based on
testing.

## Why It's Good For The Game

There is something that was lost in the original shift from global
bounties to personal bounties. Cargo would reach out to crew in order to
get their assistance on projects that let them do their jobs better,
made forced them to have to work with the rest of the crew as opposed to
merely beating them to death when they break in to print their round
start multitools. One of the reasons that we justified that choice was
that bounties were very lopsided. You could be a a superstar helper and
complete a dozen bounties for cargo in a shift, but not only would you
run out of bounties to complete, but you would also receive nothing in
return. Switching to personal bounties did in fact let players generate
their own wealth, but now suddenly the impetus to complete bounties was
that cargo was more of a hang-up to the process than it actually being
part of their job responsibilities.

By re-implementing global bounties, we're giving crew the chance to not
only have that kind of soft community goal, but also we're incentivizing
people to contribute as much as they can to it's completion without
really requiring them to make it their whole shift as tends to be the
case with personal bounties.

There is more that could be done to this system, including using a
unique bounty pool, or at least unique "big" bounties that could be
rolled into the pool that would allow the crew to work on more varied
stuff, but for now this is at least a servable way to re-implement this
from both a longevity and nostalgia standpoint.

I also really, really like printing out sheets of paper and pinning them
to doors. Big mistake on my part by losing that.
2026-04-13 13:07:42 -05:00
_0StevenandGitHub cad14eab3a Logs explosive holoparasite boobytraps being set and exploding (#95724)
## About The Pull Request

This makes the `/datum/component/direct_explosive_trap` component used
by explosive holoparasites log its placement and when it explodes
something, parallel to full explosions and grenades, including the
signals it would go off on.
The placement only alerts all the admins if there was a bomber, so it
doesn't proc on VV component placements or somesuch, but the explosion
being triggered alerts admins regardless.
## Why It's Good For The Game

Imagine trawling logs after a complicated st- holoparasite situation and
someone used their st- holoparasite to explode the logs before you could
read them.
2026-04-13 13:04:36 -05:00
TimandGitHub d2e5e35d68 Keen Nose Quirk - The Smell of Discovery (#95697)
## About The Pull Request
This adds a new positive quirk called "**Keen Nose**" that costs 3
points.

It lets you examine any open container with reagents to smell them. It
generates the smell based on the taste description. Also added an effect
to pepper spray, where it causes you to lose your sense of smell
temporarily.

This quirk is blacklisted against the Anosmia quirk, which is the
opposite. (no sense of smell)

## Why It's Good For The Game
Since there is a serious lack of positive quirks, I figured this one
might be useful as a utility quirk. It's a niche thing that could come
in handy. Keep in mind, there are several ways to identify chemicals,
like using the bartender's beer goggles, the science goggles, a chem
machine, or just eyeballing the color. Also, many chems have overlapping
taste descriptions (several different things taste like "death") so it's
not foolproof.
2026-04-13 13:03:26 -05:00
TheRyeGuyWhoWillNowDieandGitHub 98bcf3103e Partially moves the iconoclast's repeater behind a knowledge book (#95580)
## About The Pull Request

I considered at first moving the siege weapon variant (the thing you use
to craft the repeater) behind the crafting book too, but the siege
weapon version isn't strong or problematic enough to need it, and that
would be basically a soft-removal since nobody would make it except to
make the iconoclast's repeater.

The iconoclast's repeater (specifically making the handheld version) now
requires use of a crafting book to learn how to make, which spawns in
maints in the same loot pool as the other "good" improvised weapons.
Without it, the welded-on version of the repeater may still be produced.

## Why It's Good For The Game

While they are fairly strong and the infinite ammo thing removes the
requirement to have weapon rechargers (trivializing antagonists like
blobs and xenomorphs) the main issue though is their mass availability.
Specifically, you can build autocrafters to make as many as them as you
want because of how trivially easy they are to produced. The current
"rule" with improvised weapons is if they are on par with cargo
ordered/armory stocked weapons, they have to be learned from a
maintenance book. This limits how freely they can be made and
distributed without nerfing them into the ground in order to make them
an occasional occurrence like the heroic laser musket, which I think is
probably the best way to handle it.
2026-04-13 12:44:30 -05:00
IamgoofballandGitHub 34ed560bb7 Restores keybindings to their original defaults, moves the new per-hand bind options to Unbound by default. (#95698)
## About The Pull Request

Restores keybindings to their original defaults, moves the new per-hand
bind options to Unbound by default. Partially reverts #92659

## Why It's Good For The Game

I've seen approximately zero players say the new binds are better, and
quite a lot of older players report the new bindings are confusing or
harder to use. I'm also not convinced that burning 2 buttons on hand
swapping is better than having one button to swap between hands.

I understand having roguetown bindings as an option given that it's
currently eating all of SS13's pop right now, which is why I've left in
the bindings set as Unbound for now, but we should really just add
buttons for players to pick binding defaults, so that we can go "coming
over from Goon/Roguetown/Whatever flavor of the month you're from? Click
here for those bindings" and sidestep this issue entirely.

If someone can provide some data proving this is actually better for new
players, I'll close this PR, but until I see some hard data or testimony
from newer players that they find this new control scheme easier to
understand, I'm not convinced.
2026-04-13 12:42:16 -05:00
LucyandGitHub 79e7aa569e fixes up some math defines to use byond builtins instead of workarounds (#95652)
## About The Pull Request

this translates some various
- `FLOOR(x, 1)` -> `floor(x)`
- `CEILING(x, 1)` -> `ceil(x)`
- `SIGN(x)` define is gone, just uses the native BYOND `sign()` now.

Also, the `MODULUS` define is just a wrapper for the [BYOND `%%`
operator](https://ref.harry.live/operator/modulomodulo) now.

would be nice if someone double checked to make sure there's no
potential subtle oddities resulting from this.

## Why It's Good For The Game

These procs presumably did not exist whenever the defines were written -
and they are BYOND builtins, meaning it will just be, say, one `sign`
instruction, instead of two comparisons and a subtraction.

## Changelog

no player-facing changes
2026-04-13 15:32:42 +12:00
SmArtKarandGitHub 2e6c136488 Fixes weather forcasts randomly backtracking on themselves, and falsely announcing safety right before a storm hits (#95629) 2026-04-12 03:16:27 +02:00
TwaticusandGitHub 16d7023da4 Hoodies (#95582)
## About The Pull Request

Adds 2 hoodie variants, the pullover and the zip-up.
Both recolorable via GAGs.
Both available in the clothesmate and in loadout.

(90% "vibe-coded" ((SORRY!!)) but thoroughly tested with no issues*)
*ok one little issue being recoloring a hoodie with a spraycan does not
recolor the hood and you need to also spray the hood itself to color it.
a problem that has already existed in the codebase and i was unable to
find a fix for.


###### Pullover hood-down / Pullover hood-up with random recolors
underneath.
<img width="192" height="192" alt="dreamseeker_3DwQU9FPb2"
src="https://github.com/user-attachments/assets/fce54ba7-138f-4961-ad87-de072fa1ab55"
/>

###### Zipup unzipped hood-down / Zipup unzipped hood-up / Zipup zipped
hood-down / Zipup zipped hood-up with random colors underneath.
<img width="320" height="192" alt="dreamseeker_COJPWnFa84"
src="https://github.com/user-attachments/assets/b91ba86f-36cc-4c89-99aa-c6848554ea1c"
/>

## Why It's Good For The Game

Hoodies are a staple to many and have been requested frequently over the
years.
## Changelog
🆑
image: Hoodies! Both pullover and zip-up hoodies are available in the
clothesmate and in loadouts!
/🆑
2026-04-11 13:49:02 -04:00
Alexander V.andGitHub e2324b9864 Fixes inconsistency with status_effect refresh() arguments (#95718)
## About The Pull Request
Currently some status effects use mob as first argument in
``refresh()``, others typepath.

By default ``effect`` typepatch argument is expected:

https://github.com/tgstation/tgstation/blob/b2d8ee3fccfda9244ca3d33890b0f0ae15c623ef/code/datums/status_effects/_status_effect.dm#L187

So i changed it for ``effect`` everywhere and fixed
``apply_status_effect()``.

There is probably no point in this argument anyway, maybe for some
cursed scenario with several status effects with the same ``id``. But
there is no point in the mob either - we already have it set as
``owner`` in the refreshing status_effect.

I have not tested it, but should not break anything.
2026-04-11 13:44:00 -04:00
NeocloudyandGitHub 6c680d18c3 DNA mob height doesn't instantly fall back to HUMAN_HEIGHT_MEDIUM (#95732)
## About The Pull Request
<img width="893" height="30" alt="image"
src="https://github.com/user-attachments/assets/03d4f53e-5304-4b8f-8487-3abea829b08b"
/>

This tries to `Find` with a string of a mob's base height, which
obviously doesn't work because this is a list of numbers and not strings
of numbers, so it falls back to `Find` with the `HUMAN_HEIGHT_MEDIUM`
define, a number, anyway. Why?

Might or might not be an achievable bug in game, but it being written
like this doesn't seem intended.
2026-04-11 11:42:04 -05:00
aKromatopziaandThe Sharkening 45b41ec946 reverts specifically the prosthetic organ part of the cyber brain update + 1 minor change (#5333)
## About The Pull Request
That part wasn't finished. It won't! The other change just makes it so
non-vox aug brains can die from emps.

## Proof Of Testing
it didn't work then, it's gone now

## Changelog

🆑
balance: vox get to keep their min brain health threshold from emps,
removed it from roundstart aug brains.
del: surplus cybernetic brain is gone again
/🆑
2026-04-11 08:53:22 -06:00
SmArtKarandGitHub 93ea8085cb Datumizes material effects, slots, and material spears (#95341) 2026-04-11 09:15:07 +10:00
Leland KembleandGitHub 1d8c7f1928 Fixes hardcoded pod storage safe security level lock & its initial icon setup (#95709)
## About The Pull Request

Pod wall storage tracks its own locked state and whatnot only to
hardblock based on security state, which is confusing especially to
those attempting to varedit.

Also, its initial icon is erroneously unlocked because it is updated by
the storage while the storage is being created, but as the storage is
still being created `atom_storage` hasn't been actually set yet.

## Why It's Good For The Game

Fixes it being locked when it shouldn't be(in varedits, but also in the
scenario someone launches the pod and later the security level is
lowered)

Fixes it appearing unlocked when it isn't.
2026-04-10 12:09:33 -05:00
MrMelbertandGitHub aba5e2d9fb Roundstart xeno egg alert is included in the roundstart report (#95608)
## About The Pull Request

Roundstart xeno egg no longer sends a second report if it rolls, now
instead adding an addendum to the roundstart report

<img width="409" height="111" alt="image"
src="https://github.com/user-attachments/assets/14a62737-4d01-4240-8d3f-975e409d1fc2"
/>

## Why It's Good For The Game

I never really liked how meta-game-able the second alert is, the moment
you hear `Secure command report created` 2 minutes into the round you
know it's an egg round. Combining the roundstart alerts give the command
staff the option of trying to hide it which could be fun.

## Changelog

🆑 Melbert
qol: Roundstart xeno egg is now mentioned in the roundstart report as an
addendum, rather than as a second report (usually) following the
roundstart report.
/🆑
2026-04-09 17:53:39 -07:00
SmArtKarandGitHub de6a6ac46e Fixes conditionally added actions not appearing on player HUDs (#95624)
## About The Pull Request

Fuckup from the refactor, this should give the action to the mob not the
owner of the action.
Fixes purple raptors, ninja katanas, etc

## Changelog
🆑
fix: Fixed conditionally added actions not appearing on player HUDs
/🆑
2026-04-09 15:50:41 -07:00
siliconOpossumandGitHub b562341756 Adds an admin verb/hotkey to jump to the position of your aghost (#95675)
## About The Pull Request

Adds an admin verb "jump-to-ghost" which brings your body to the current
loc of your aghost, and a hotkey for this action which defaults to F4


https://github.com/user-attachments/assets/ac28d982-452c-4bd3-b89f-d837bb5df5d9
## Why It's Good For The Game
This is something I've wanted for a while for debugging/localhost stuff,
and I imagine it'd also be pretty useful for admin hijinks, like event
running or fixing things during a round
It helps bridge the gap between the jump-to-turf context menu action and
the somewhat slow and clunky to use jump-to-area, allowing you to
teleport short off-screen distances without having to sort through a big
list of areas
## Changelog
🆑
admin: Adds the jump-to-ghost verb, which brings your body to your
aghost, it has a hotkey which defaults to F4.
/🆑
2026-04-09 16:17:35 +12:00
MrMelbertandGitHub 57c5701307 Pepperspray / Mask dirt tweaks (#95683)
## About The Pull Request

1. Pushing a dirty mask out of the way (such as adjusting a sec hailer
down) will no longer keep the screen tint, nor will they accrue dirt

2. Applied dirt is now rounded to `0.25` rather than `1`. Before, you'd
need a minimum of 2.5u to apply dirt and 2.5u-5u would all apply "1
dirt". Now, you need a minimum of 1.5u to apply dirt and it applies it
piecemeal, ie 1.5u applies "0.25 dirt".

3. Adds a passive message if you are wearing a dirty mask/helmet to
indicate you need to clean it.

4. A tint of 1.5 now applies tier 1 screen impairment, I don't think
this will affect any existing items as tints are all defined in 1/2/3.

5. Pepper spray can no longer stack blindness infinitely, much like how
it can't stack eye blur, knockdown, or confusion infinitely.

## Why It's Good For The Game

1. While it may be illogical that a sec hailer being dirty blocks your
vision, it's even MORE illogical that it blocks your vision when it's
not even protecting you from pepperspray.

(Yes, the sec hailer topic is for another PR) 

2. I noticed in testing that depending on how you spray the pepper spray
container, sometimes it would apply no dirt - because if you do a ranged
spray it only applies 1.67u . This isn't super consistent with how the
reagent works (any volume applies 100% of the downsides).

3. Aims to make it a bit more clear how the mechanic works by reminding
the player occasionally.

4. Allows for one tier of granularity between "No obscured vision" and
"Majorly obscured vision". So you know that you're approaching problem
territory rather than being thrust into it.

5. This feels like an oversight to me - all effects of pepperspray are
capped but the blindness, so multiple rapid exposures (which is not
entirely uncommon) could quickly stack up to minutes of blindness.

## Changelog

🆑 Melbert
fix: A dirty mask that CAN be pushed out of the way no longer obscures
vision if it IS pushed out of the way.
qol: If your mask is dirty from pepper spray, you get some passive chat
messages indicating that it can be cleaned off.
balance: Pepper spray clothing dirt is applied piecemeal - smaller
dosages, rather than doing nothing, now build up with repeat
applications.
balance: Pepper spray clothing dirt now has a tier between "very
obscured vision" and "no obscured vision", giving the wearer more of a
warning before being thrust into darkness.
balance: Pepper spray can no longer stack blindness infinitely - it is
now capped to 6 seconds. This brings it in line with its other effects
(confusion capped at 5 seconds, blur capped at 10 seconds, knockdown
capped at 3 seconds).
/🆑
2026-04-09 16:15:53 +12:00
cc0fc61d9e Fixes tape instantly falling off bleeding wounds & cleanmedical gauze (#95667)
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2026-04-08 16:45:08 +02:00
deltanedasandGitHub 152ca81014 fix maints station traits typos (#95662) 2026-04-07 20:57:06 -04:00
SmArtKarandGitHub 2615b439e4 Fixes boxing or successful blocking not preventing grabs (#95645)
## About The Pull Request

Since grabs that failed due to a comsig return or the grab being blocked
returned FALSE, they'd still result in the target being passively
grabbed from being pulled as that was called upon the grab failing. I've
added multiple return types to grabs to alleviate this.
Per anne's recommendation, hunter boxing is exempt from the grab
restriction (since it never functioned in the first place).

## Changelog
🆑
fix: Fixed boxing or successful blocking not preventing grabs
/🆑
2026-04-07 15:28:10 -04:00
Aliceee2chandGitHub d1dcef62ab Uncapitalized reagent name from scoopable element (#95650)
## About The Pull Request

uncapitalized reagent name from scoopable element because it looks ugly
<img width="330" height="38" alt="image"
src="https://github.com/user-attachments/assets/3d3e61c7-32bd-466e-8ef7-7c3d0fe73d02"
/>

## Changelog

N/A
2026-04-07 15:26:41 -04:00
John WillardandGitHub 736b6b4206 Medical LARP: Cause of Death field (#95655)
## About The Pull Request

This was sitting on my deathwatch branch, thought I might as well add
it. When pronounced dead, Medical Records will now ask for a cause of
death.

<img width="749" height="551" alt="image"
src="https://github.com/user-attachments/assets/a2733131-ca5a-4dd5-b768-4a82e0bccd2e"
/>


## Why It's Good For The Game


<img width="373" height="65" alt="image"
src="https://github.com/user-attachments/assets/1f2bfc21-78f0-4c0c-bf73-56854178a030"
/>


## Changelog

🆑
add: Medbay/Detectives can now add a Cause of Death to people's medical
records when set as deceased.
/🆑
2026-04-07 15:23:39 -04:00
Tsar-SalatandGitHub 0917d44cc8 Audits and cleans up Trigger() parent calls (#95548)
## About The Pull Request

``/datum/action/proc/Trigger(mob/clicker, trigger_flags)`` has a lot of
children, many of which use mixed ``. = ..()`` or no parent calls at
all.


https://github.com/tgstation/tgstation/blob/d65ee47f6ebd0384d463a1f2a044c321ff2d912f/code/datums/actions/action.dm#L163-L170

This PR attempts to standardize all the children procs to call parent in
a uniform way, or cements that they *shouldnt* call parent for whatever
reason.
## Why It's Good For The Game

Base proc calls are important, yanno?

The base proc has the action button signals and availability proc on it,
so its technically possible for children procs of trigger() to have
check_flags enabled, but never blocked (i.e AB_CHECK_CONSCIOUS,
AB_CHECK_HANDS_BLOCKED).

Some children procs have IsAvailable on them, but its possible they can
be skipped over if a coder is not paying attention. This reduces that
risk.
2026-04-07 14:23:25 -05:00
ed54499828 [MDB Ignore] Medical larp: Adds the IDC-27 as an analog to the SDSM-35 for viruses (#95465)
## About The Pull Request

Continues the work of #94761 by adding an analog for virus references

It contains a majority of viruses - including some that are
not-quite-viruses like parrot possession
Some are excluded, some are combined into others

It also contains all advanced virus symptoms

<img width="859" height="509" alt="image"
src="https://github.com/user-attachments/assets/c73f56c0-5a11-4643-9a97-1e2a06ade0c1"
/>

Other changes

- Refactored the SDSM to have use a generic "PaginatedBook" component
for reuse
- Adjusted flavor of all of the diseases
- Flu / Spanish Flu and Cold / Cold 9 now properly act as antibodies for
one another as implied by cure text

## Why It's Good For The Game

Refer to #94761 : De-wikification and larp. This one is a reference to
the IDC-11.

## Changelog

🆑 Melbert
refactor: Refactored the SDSM-35 to allow for new books of similar
styles, report any oddities with it.
fix: Fixes the broken image(s) in the SDSM-35. 
add: Adds the IDC-27 in Medbay, the CMO's office, Virology, and possibly
the Library. It's a reference book to all viruses you may experience,
similar to the SDSM-35.
add: Several diseases/viruses received minor flavor adjustments,
primarily to cure text, agent, description, and form.
add: Getting cured of the Flu provides immunity to Spanish Flu (and visa
versa) as implied in cure text.
add: Getting cured of a Cold provides immunity to Cold-9 (and visa
versa) as implied in cure text.
/🆑

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
2026-04-07 07:51:30 +02:00
SmArtKarandGitHub e58c6e6565 Fixes raptor shift-hover menu being offset, and other visual offset issues (#95630) 2026-04-05 18:47:26 -04:00
SmArtKarandGitHub 2c05fa63d9 Red and black raptors no longer retaliate against their tamer's accidental attacks (#95625) 2026-04-05 18:46:25 -04:00
MrMelbertandGitHub 024a276dcc Recovered crew/Thanatorenasia bodies are shown as "revivable" when orbited in a morgue tray (+makes it shake) (#95602)
## About The Pull Request

If you orbit a recovered crewmember or thanatorenasia body situated in a
morgue, the indicated will change from red to green, indicating the body
is revivable

Additionally, orbiting a recovered crewmember or thanatorenasia body
will cause morgues or bodybags to shake. This is an extension of the
existing behavior where orbiting the body causes it to twitch.

## Why It's Good For The Game

Allows doctors to store bodies in a safe place while they wait for a
ghost to occupy it, also means you don't have to repeatedly defib them.

## Changelog

🆑 Melbert
qol: Recovered crew/Thanatorenasia bodies in morgue trays change the
indicator to green when a ghost is orbiting them (to allow ghosts to
signal they want it to be revived)
qol: Recovered crew/Thanatorenasia bodies now cause morgue trays /
bodybags to shake when orbited, much like how the body itself shakes
when orbited (to allow ghosts to signal they want it to be revived)
/🆑
2026-04-03 22:56:37 +02:00
0f95e041e2 Disjointed eyes such as AI eyes, advanced camera consoles, & looking up properly show HUDs (#95526)
## About The Pull Request

Revival of #92846, without which I would have no idea how to do this

Adds a new proc within `/datum/atom_hud` that changes what Z level huds
an atom is seeing without changing what Z level that atom's own hud
exists on, and hooks it into the new `COMSIG_LIVING_LOOK_Z_CHANGE`, sent
by `/mob/living/on_look_z_level_change()`, which is called when a mob
looks up, stops looking up(not when it looks down, it doesn't need to),
or by any z level change done by an `/eye/` that's just the window for
an actual mob(camera consoles, AI eye).

## Why It's Good For The Game

fixes #92370
fixes #92622
fixes the same HUD issue with looking up a floor as any other mob

## Changelog
🆑

fix: HUDs are now visible when looking up a floor, as well as by AIS and
camera consoles on lower floors.

/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2026-04-03 15:16:17 +01:00
MrMelbertandGitHub 442ad835bc Reverts inertia based space movement (#95536)
## About The Pull Request

Reverts space movement being affected by inertia 

What is kept:

- Items have a varying force on your drift speed, ie heavier items will
move you faster through space, and smaller items, slower.
- Jetpacks can have varying force of impulse - the effect is applied
directly to the mob's `inertia_move_multiplier`
- Tethers are unreverted - they still stop you from drifting too far
from the tether point, however you can no longer 'swing' with them.

What is removed:

- Multiple impulses in the same angle/direction no longer speeds you up.
Only the fastest impulse in 1 direction is accounted for.
- An impulse in a different angle/direction will completely override any
existing impulses, even if they are faster.
- Jetpack stabilizers are once again perfectly capable of immediately
stopping any active impulses.

TL;DR

If you point yourself in a direction you will now go that direction

## Why It's Good For The Game

The concept was fun and had potential but the fight between impulses vs
tiles was very, very clunky and janky.
Multiple fixes were attempted to reduce the jank but it ultimately
nograv still acts very cumbersome and jetpacks are still very
unappealing to use.
Smartkar gave the go-ahead to revert this a while back so, o7. 

## Changelog

🆑 Melbert
del: Zero-gravity drifting is no longer affected by inertia, ie it has
been reverted to what it once was.
/🆑
2026-04-03 15:06:38 +01:00
SmArtKarandGitHub c35f1eeb61 [NO GBP] Fixes FOV blocker harddels (#95611)
## About The Pull Request

FOV manages itself and shouldn't be screen cleared

## Changelog
🆑
fix: FOV blockers no longer harddel
/🆑
2026-04-03 06:57:56 -04:00