## About The Pull Request
Phased mobs are not turfs so the new check failed.
Fixes this and adds a unit test for it.
Also makes shadow walk VV-able to any level of lightness.
## Changelog
🆑 Melbert
fix: Fixes Shadow Walk
/🆑
## About The Pull Request
Fixes#77501
Spider egg ghost role spawners grant the spider antag datum, rather than
the act of being a spider.
This means that gold core, mapstart, polymorph belt, and other spiders
will not have an antagonist datum.
While doing this I also made a new abstract `mob/living/basic/spider`
type which all three kinds of spider life stage (`spiderling`, `young`,
`giant`) extend from, because there was a gross amount of copied code.
Now there isn't.
Also the Flesh Spider and Event Midwife eggs now simply hatch adult
spiders instead of child ones.
This is because there is no reason for either of these to have a two
minute wait time before they get going. Midwife spiders spawned by the
event should just start spidering immediately, and Flesh Spiders are
made by changelings and shouldn't be effected by measures introduced to
balance the spider gamemode.
Eggs which are laid during a round and _can_ hatch into midwife spiders
still hatch baby spiders.
Also I swapped some white pixels on the animation of the ambush
spiderling for a different colour because they looked bad.
## Why It's Good For The Game
While the policy is always "if you turn yourself into something, you're
not an antagonist" the presence of the antag datum still confuses
people. Plus that code was gross and I didn't like it.
## Changelog
🆑
fix: Giant Spiders only have an antag datum if created by the round
event.
balance: Flesh spider eggs hatch into adult spiders instead of baby
spiders.
balance: The eggs spawned by the start of the spider infestation event
hatch into adult Midwife spiders instead of baby ones.
/🆑
## About The Pull Request
Closes#77527
Due to a minor mistake in #77330, the nukie sniper rifle briefcase
doesn't currently override PopulateContents(), meaning it contains
nothing but a pen and some paper. This mistake has been fixed.
## Why It's Good For The Game
When you spend 18 TC on a sniper rifle, you should probably get a sniper
rifle.
## Changelog
🆑
fix: The Nuke Op/Lone Op sniper briefcase now properly contains a sniper
rifle.
/🆑
## About The Pull Request
Adds the material hauntium as a reagent, along with bringing some unique
effects with the reagent.
There are a few new ways to get it other than just the camera obscura as
before, such as grinding certain ghostly things.
Unique effects it brings:
- It works in metalgen (I believe the metalgen recipe is still broken as
of making this) to make hauntium infused metalgen.
https://github.com/tgstation/tgstation/assets/58376695/121ca6b2-00b7-4203-bc6a-48976b1af802
- Any object touched by the chem will temporarily have the haunted
effect, letting it teleport around randomly and even attack people.
https://github.com/tgstation/tgstation/assets/58376695/103aeee5-ed3e-4fdd-85e4-ac7338823c46
- If you put it in your body, it hurts your "soul" (soul being heart and
mood)

...unless you are morbid or undead, in which it gives a slight mood
boost and acts like an addiction-less drug
## Why It's Good For The Game
Hauntium previously was super niche and not very useful other than
making funny haunted toolboxes from it. This expands it's usage and
makes it a lot more interesting. I also know a good few people who have
also wished this was available to use in metalgen and now you can!
## Changelog
🆑
add: Lets you grind things into a hauntium reagent which works similarly
to the solid form but is versatile and has some unique effects.
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
Gives the rust heretic an early ritual to aoe rust an area. Entropic
pulse is a ritual that requires 20 iron and 2 garbage items to rust in
roughly a 3 tiles radius.
Demonstration vid ~~(old version, new version is smaller radius)~~
UPDATED
https://github.com/tgstation/tgstation/assets/92416224/16a8bf34-0ebb-4c8f-a926-c9dddcd2d107
## Why It's Good For The Game
Rust is a territorial path, they create bases around the station to
fight on. However they can only viably do this when they unlock
aggressive spread, which is quite far down the tree. This ritual allows
for rust heretic to establish a territority of which to fight on early
on while still not being better or equal to aggressive spread.
Also this fixes instances of detect_room not running correctly when
break_if_found is not passed in the arg
## Changelog
🆑
add: Added Pulse of Entropy, a new ritual for rust heretic unlocked
after leeching walk. This ritual can be completed with 20 iron sheets, 2
garbage items to rust in a 4 tiles radius round the rune. Useful for
establishing bases and fighting area.
fix: fixed detect_room not running correctly when break_if_found is not
passed
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
## About The Pull Request
"Behold, a navigation beacon" Plato says to the crowd of shocked
onlookers.

What are you looking at here? Navigation beacons have been party
reworked for significantly improved ease of use, and for significantly
cooler functionality.
As it stands, in order to explore space with a ship of some sort, you
have to take the following steps:
Fly to target zlevel
Build a floor
Build a machine frame, then make the beacon out of it
Go back and park your ship
Now, while this doesn't eliminate this process, it makes it a step
shorter and a good bit less annoying to do. There are no gigabeacon
boards, instead a compact beacon can be printed. This can be used inhand
and, after a delay of three seconds, will create a brand new gigabeacon
in front of you with no extra hassle.
So, aside from the sprite (the old one is an alien power core, by the
way), what's new? Just a bit of flavor. Examining a gigabeacon will
mention a radio frequency. If you tune into this radio frequency, then
you might be able to catch the automatic messages the beacons put out
every five minutes. They detail a little bit about the beacon, namely
its coordinates, and if its activate or locked. While not critical info
my any means, it can be good information to have pop up every few
minutes, or for discovering that there are gigabeacons you didn't know
were there before.
## Why It's Good For The Game
Gigabeacons had two big problems, one was that they were pointlessly
annoying to set up, and two was that they didn't have their own sprite.
Yup, they just used a random alien tech structure and nobody said
anything about it. Hopefully this pr fixes both of those problems,
alongside adding a little neat bit of flavor to them in the form of the
automatic radio broadcasts they put every few minutes on a non-standard
channel.
## Changelog
🆑
qol: Gigabeacons no longer need to be constructed like standard
machines, instead being printed as items that can be deployed quickly
inhand without tools.
qol: Gigabeacons are no longer their own research node, instead being a
part of telecomms tech (due to the fact they're RADIO navigation
beacons)
image: Navigation gigabeacons now have their own unique sprites,
inspired by maritime EPIRB devices. If you find a yellow box with an
antenna on it, you probably found a nav beacon!
code: The deployable component now gives you an option to disable the
examine blurb it adds to its parent
/🆑
## About The Pull Request
Today I witnessed a minefield of mousetraps against a horde of mice. To
my surprise, they were able to tank multiple mousetraps without dying.
Mousetraps should insta kill any mice (or rats) caught in it otherwise
it defeats the purpose of setting the traps especially when there is a
horde of them. Cat's instakill any mice they touch. This should follow
the same formula. The only exception should be regal rats, which are
already excluded from mousetrap damage code.
## Why It's Good For The Game
When you arm a dozen mousetraps, there should be a dozen dead mice.
## Changelog
🆑
balance: Change mousetraps to kill mice instead of damaging them (except
regal rats)
/🆑
## About The Pull Request
They are hard deleting without actually dumping data.
This makes sense because I was forestalling the actual period of hard
deleting forever, in an attempt to save cpu in the worst case.
I no longer think this is worthwhile, so we'll now fully process the
queue during create and destroy.
There is ALSO a risk of the bar being created AFTER create and destroy
runs. If that's what happening I'm gonna go cry in the dirt. I'm adding
protection against it here just in case, alongside changing the timeout
to use real time rather then world.time, since that barely increments in
this case
## Why It's Good For The Game
More resilient tests, hopefully actually catches progress bars this time
## About The Pull Request
I prefer this to having people manually read the list, plus it seems
like reasonable information to expose, especially if we're gonna start
using it in this pattern.
## Why It's Good For The Game
Less futzing with internals
## About The Pull Request
Emergency shuttles now:
- Display occupancy limits and prerequisites
- Has their own folder that is split into several subfiles
- Have documentation for a few variables
## Why It's Good For The Game

## Changelog
🆑
qol: Emergency shuttle now gracefully display occupancy limits and
prerequisites in the communication console.
/🆑
## About The Pull Request
Lepton Violet (wabbajack) shuttle must be unlocked by having some form
of polymorph happen in-game first (Pride Mirror or the cursed springs
are the most accessible sources)
Scrapheap shuttle can only be bought if the Cargo budget is below 600
credits, and the shuttle has just less than half of its usual refueling
time left. However, it gives the cargo budget an influx of 3000 credits!
Uncle Pete's Rollerdome has had its price increased, and the disco
machine is no longer unbreakable.
## Why It's Good For The Game
First off, here is my reasoning for why these need altering at all.
Players will always naturally gravitate to the wackiest and
most-out-there options, in this case this applies to shuttles. It's why
the Monastery or the Asteroid or Daniel are reasonably common sights,
more common than some of the 'boring' shuttle options that don't need
unlock with an emag.
The problem here, as I see it, is that there is no incentive
what-so-ever to NOT purchase these 'wacky' shuttles. Some of the
shuttles in the code are just way too stupid to be seen on most or even
some rounds (Arena, Disco Inferno?), so they require rare unlocks to
occur. Wacky shuttles being spammed round after round are bad due to
several reasons:
1. Players will run every joke to the ground. Wacky conditionless
shuttles take up a large amount of space in the shuttle memeplex, so
they are disproportionately seen in comparison to any of the
less-extravagant but more grounded and actually interesting options.
(Medisim? Monkeys anyone?). This ends up making the wacky shuttles
actually *less* wacky and just the stale and boring options.
2. Wacky shuttles affect the end-round quite a lot. This is fine, of
course, but not when these wacky shuttles can be seen every round.
3. These wacky shuttles don't have proper facilities. None of them have
a good medical section, or emergency supplies, or enough room. This gets
pretty annoying pretty fast.
4. One Funny Guy (the quintessential example being the clown with a dead
captain's ID) is all but guaranteed to try to buy the funniest and most
annoying shuttle to piss off the rest of the crew. With how Funny and
Annoying these shuttles are, not to mention how dirt-cheap they are (or
literally give you money!), they're easily the most seen alternate
shuttles, which isn't good when they alter how the round-end plays so
heavily.
> Lepton Violet (wabbajack) shuttle must be unlocked by having some form
of polymorph happen in-game first (Pride Mirror is the most accessible
source)
The Wabbajack has a endless source of voluntary Polymorphs with a
comically low price, which means it is purchased endlessly by crew, not
to mention being literally a source of free syndiborgs and xenos. While
I'm not a balanceposter, this does come with some annoyances especially
for antagonists who just randomly get blown up by an assault borg. This
is fine and fun every so often, but not as a common occurrence, not as a
guaranteed every-round option. I think it's an excellent candidate for
an unlock condition.
> Scrapheap shuttle can only be bought if the Cargo budget is below 600
credits, and the emergency shuttle is more than halfway refueled.
However, it gives the cargo budget an influx of 3000 credits!
This is LITERALLY 'haha grief shuttle', I have no idea how it even got
in as a condition-less shuttle. You see the captain buy it For No Raisin
Lul 2 minutes in, sigh to yourself, and secure an EVA suit when the
shuttle lands to try to survive in the unbelievably cramped space.
(Someone always blows it up.)
Instead of being JUST Grief Shuttle, now it has some interesting reasons
to exist. Revs and you're dirt-poor? Nukies just declared war after the
Clown bought ten crates of creampie dufflebags? Buy this shuttle and get
an influx of money.
> Uncle Pete's Rollerdome has had its price increased, and the disco
machine is no longer unbreakable.
This one isn't as egregious as the above, but I believe my personal
dislike of it extends to a game design level, to an extent. One person
can buy this shuttle and the crew as a whole are left to groan as they
prepare for a noisy, confusing shuttle in which everyone is ten tiles
shifted to their left as their sprite does the most ridiculous dance
seen in SS13 history. 'Just turn the music off!': I'm glad this is an
option, but it doesn't change how much this shuttle alters things. It's
fine as a sendoff to a nice, chill greenshift, but as a constant sight
in red shifts it's just... frustrating. And purchased BECAUSE it's
frustrating, to the short-lived schadenfreude of one person and the
frustration of others.
And then the unbreakable disco machine. Why is it unbreakable. If the
crew doesn't want to listen to the thing, let them break it? Buy Disco
Inferno if you want an unbreakable disco.
Some of these changes are probably over-the-top, but remember that these
will still be seen in-game, just a bit rarer. Worst case scenario the
shuttle replacement event will let them have their time in the
limelight.
## Changelog
🆑
balance: Lepton Violet (wabbajack) shuttle must be unlocked by having
some form of polymorph happen in-game first (Pride Mirror or the cursed
springs are the most accessible sources)
balance: Scrapheap shuttle can only be bought if the Cargo budget is
below 600 credits, and the shuttle has just less than half of its usual
refueling time left. However, it gives the cargo budget an influx of
3000 credits!
qol: Uncle Pete's Rollerdome has had its price increased, and the disco
machine is no longer unbreakable.
/🆑
Closes#77433
When the rare "shuttle doesn't leave" bug happens, shuttle events can
still run at the shuttles location. I have no idea why the shuttle
sometimes doesn't leave, but this at least fixes shuttle events running
when it doesnt
Also adds some logging to hopefully find out why this happens
/🆑
fix: Fixes shuttle events running when the shuttle breaks
/🆑
## About The Pull Request
I think I forgot how the numbers worked here, seems that way at least
given how the DMM stuff looks
Closes#77482
Thanks to itsmeow for pointing this out
Oh also fixes tgm using maxx for the y comp. it should never actually
matter but yaknow just in case
## About The Pull Request
FUCK
## Why It's Good For The Game
shit
## Changelog
🆑
fix: fixes kinesis not actually immobilizing or blocking hands of
grabbed mobs
/🆑
## About The Pull Request
Adds a selection of new foods and drinks based around Mars.
More information on Mars can be found here:
https://github.com/tgstation/common_core/blob/master/Interesting%20Planets/Human%20Space/The%20Sol%20System.md
To summarise for the general audience, Mars is a vital colony of the
Terran Federation, having been primarily settled (at least originally)
by Cybersun Industries to harvest its lucrative supplies of plasma, the
second largest in human space behind Lavaland. This has given Mars a
diverse culture evolving from the mostly East Asian colonists, and their
food reflects this.
Thanks to Melbert for their work on the soup portion of this PR.
The food:
Martian cuisine draws upon the culinary traditions of East Asia, and
adds in fusion cuisine from the later colonists. Expect classics such as
ramen, curry, noodles and donburi, as well as new takes on the formula
like the Croque-Martienne, Peanut Butter Ice Cream Mochi, and the
Kitzushi- chilli cheese and rice inside a fried tofu casing. Oh, and
lots of pineapple. The Martians love pineapple:

Also included are some foods for Ethereals, which may or may not be
hinting at something I've got planned...
The drinks:
Four new base drinks make their way to the game, bringing with them a
host of new cocktails: enjoy new ventures in bartending with Coconut
Rum, Shochu/Soju, Yuyake (our favourite legally-distinct melon liqueur),
and Mars' favourite alcoholic beverage, rice beer. Each is available in
the dispenser, as well as bottles in the booze-o-mat:

The recipes:
To make your (and the wiki editors) lives easier, please find below the
recipes for both foods and drinks:
Food: https://hackmd.io/@EOBGames/BkVFU0w9Y
Drinks: https://hackmd.io/@EOBGames/rJ1OhnsJ2
## Why It's Good For The Game
Another lot of variety for the chef and bartender, as well as continuing
the work started with lizard and moth food in getting Common Core into
the game in a tangible and fun way.
## Changelog
🆑 EOBGames, MrMelbert
add: Mars celebrates the 250th anniversary of the Martian Concession
this year, and this has brought Martian cuisine to new heights of
popularity. Find a new selection of Martian foods and drinks available
in your crafting menu today!
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
## About The Pull Request
fixes a typo in the improvised fire extinguisher....
where the fuck do you even get one and has anyone even used it in the
history of TGstation? probably not, but who cares typo bad
## Why It's Good For The Game
typo bad
## Changelog
🆑
spellcheck: improvised fire extinguishers aren't full of typoes now
/🆑
Seems this should be associated with the ukraine holiday not indigenous
## About The Pull Request
Looks like the indigenous people's holiday was cloned for the Ukraine
independence day holiday but the station naming proc wasn't properly
renamed, causing it to trigger today (9th aug) for the Ukraine themed
station prefixes rather than on the 24th.
## Why It's Good For The Game
Correct behaviour good, incorrect behaviour bad.
## Changelog
:cl:iain0
fix: A small clerical error fixed which will cause the Ukrainian station
naming prefix to be properly applied to the Independence Day of Ukraine
holiday on 24th August, rather than overwriting the Indigenous People's
Day station prefixes.
/🆑
## About The Pull Request
So, when I made the `caseless` and `projectile_drop` elements, I failed
to take into account that bullets have an embedding variable sets, which
led to a few projectiles being embeddable when they shouldn't.
Beyond that, I wanted arrows and harpoons to be reusable yet embeddable,
which lead me to change a couple lines on the `embed` element, since
whoever made the element thought it was a good idea to add the
unnecessary step of attaching a copy of it to the `payload_type` of a
fired projectile before trying to embed it. Like, why? All that's going
to do is cause the resulting item to become embeddable, which may be an
issue for anything other than drop-deletable shrapnels. So yea, arrows
and harpoons, and emagged lollipops will now embed properly.
I've also deleted an unused, problematic subtype of quiver and arrow
casing, and made the quiver storage use
## Why It's Good For The Game
This will fix#77187. Perhaps buff harpoons and arrows a little but meh.
## Changelog
🆑
fix: Fixed fired foam darts, gumballs and (harmless) lollipops being
embeddable.
fix: Projectiles that should embed while being reusable will now do so
correctly, actually embedding the reusable casing instead of a shrapnel.
balance: Arrows are generally more likely to embed now, except for
blazing ones, that kind of just blaze.
qol: the quiver storage now uses numerical stacking (like botany and ore
bags, or the RPED, for example).
/🆑
## About The Pull Request
the ninja energy net uses a projectile instead of being an instant
click, it also has a cooldown of 5 seconds, up from 1.5 seconds
improves some of the energy net code
the net also deletes itself when the suit turns off
## Why It's Good For The Game
This module is not that fun for either of the sides
For people fighting the ninja, getting instantly stuck with no
counterplay isn't that fun.
For the ninja, the cooldown on a missed use is pretty debilitating and
it's annoying to try and snipe someone.
Being a projectile means people can run away from it, and the ninja can
just shoot it, he doesn't have to try clicking 50 times.
## Changelog
🆑
balance: Space Ninja's energy net uses a projectile to catch people now.
/🆑
## About The Pull Request
I was thoroughfully worried this would had been a cursed issue until I
figured it out. Mirror reflections now use render targets to copy the
appearance of the reflected movable, not vis overlays, with a couple
caveats.
## Why It's Good For The Game
This will fix#77431.
## Changelog
🆑
fix: Mirror reflections no longer display progress bars or runechat.
/🆑
## About The Pull Request
This will save us a couple unneeded get_gradient_overlay() calls for
most player human mobs.
## Why It's Good For The Game
Player characters have plenty empty overlays.
## Changelog
N/A
## About The Pull Request
Exactly what it reads on the title. I shouldn't be bothered
thoroughfully explaining this with several paragraphs when it's only 3
lines of code affected.
## Why It's Good For The Game
I've sadly the dramatic timing of noticing my own slips minutes after
one of my PRs (#77420 in this case) get merged.
## Changelog
Barely any impact to the game beside perhaps ironically more generous
probability weights for fish without a bait.
## About The Pull Request
Look, appears_alive() checks the health variable rather than the state
of the mob, and that's probably reason why it's only used in two places,
because dead mobs do not necessarily have their health at or below zero.
## Why It's Good For The Game
This will fix#77332.
## Changelog
🆑
fix: Fixed an oddity with morgue corpses being shakeable like they're
just unconscious.
/🆑
## About The Pull Request
This PR changes the recipe to use 10 fluorosulfuric acid instead of 5
sulfuric and 5 fluorosulfuric. This doesn't function as a balance change
as sulfuric acid is actually required to craft fluorosulfuric acid, so
this shouldn't impact the difficulty of crafting it, just make it more
consistent.
This also fixes a minor grammar issue with the name of the crafting
recipe that bugged me. Just me being pedantic.
## Why It's Good For The Game
Fixes#77338.
There's probably something deeper going on with how crafting handles
materials that turn into other materials in crafts, but this is a simple
fix that makes sense in the short term to make them actually craft as
expected instead of leaving byproducts.
## Changelog
🆑 Vekter
fix: FRAG-12 shells no longer require sulfuric acid, instead needing 10
fluorosulfuric acid. This should prevent them from leaving byproducts if
crafted in a specific way.
/🆑
## About The Pull Request
I was working on some basic mob stuff and noticed this is a little
messy, so I made these changes separately.
I removed ``dextrous_hud_type`` because ``hud_type`` exists and can just
be used instead.
I also removed the ``healable`` var, because it was incorrectly used
(with the expectation that basic mobs had it too). Instead it will rely
on the mob being Organic, the check right under it, and I gave mob
biotypes to mobs that were not healable and had no biotype already.
I made a new biotype for slimes because I didn't find any other ones
that fit it (and gave it to slimepeople), but it is not used anywhere
other than to prevent them from healing from sutures, as I didn't want
to just set it to NONE. Thought this may be useful for the future.
## Why It's Good For The Game
``healable`` is checked on simple animals and basic mobs, despite basic
mobs not having this var. I do not want to add this var to basic mobs
either, I think checking for them being organic makes much more sense
and avoids having to make basic mobs less basic.
## Changelog
Nothing player-facing.
## About The Pull Request
I added this override because I saw some runtimes related to trying to
randomize into a challenge and that was not good, but I forgot this proc
is determines if it even shows up in the spellbook UI. I blame Arm
## Why It's Good For The Game
Flavor returns
## Changelog
🆑 Melbert
fix: Fix some missing wizard spellbook flavor
/🆑
## About The Pull Request
Drill module automatically disables if it's about to drill into
gibtonite.
## Why It's Good For The Game
> Drill module automatically disables if it's about to drill into
gibtonite
There's not enough time to react, the mining scanner is surprisingly
slow sometimes and it means you drill straight into gibtonite, which
primes it the first drill and blows it up the second, which is a lot
more of a pain than it sounds because drilling is night-instant. These
explosions are usually enough to crit you, and if they don't, the stun
and area clear means any fauna can wander in and finish you off.
The auto-disable still makes it an annoyance to stumble upon gibtonite,
but it won't round end you for using modsuits.
## Changelog
🆑
qol: Drill module automatically disables if it's about to drill into
gibtonite
/🆑
## About The Pull Request
Gives the changeling armblade an armour penetration of 35%. Sets their
bare_wound_bonus to 10 (from 20), and a wound_bonus of 10 (from -20).
## Why It's Good For The Game
The wound bonuses basically gave massive punishment if they attacked
anything but the skin. It honestly felt kinda lame. The better wounding
potential will help bring a bloodier and more exciting atmosphere when a
changeling whips out the blade.
The armour penetration will help reduce dragged out fights that get a
little silly, while keeping the wounding more consistent.
## Changelog
🆑
balance: Changeling arm blade has an armour penetration of 35%.
balance: Changeling arm blade has a wound bonus of 10, from -20.
balance: Changeling has a bare wound bonus of 10, from 20.
/🆑
## About The Pull Request
As Vekter pointed out, the lights can look like they aren't actually on
in certain situations now that they longer have that awful active
overlay with a million invisible pixels. This fixes that problem by
making the bulbs emissive when they're on.
## Why It's Good For The Game
Light looking like they're on when they're on is important for a lot of
things.

## Changelog
🆑
fix: The bulbs of lights will now have an emissive glow when on, making
it so they appear active no matter how dark the area surrounding them
happens to be.
/🆑
## About The Pull Request
Defines a name for Korta milk custom ice creams because it was
overriding the default custom ice cream recipe instead of adding it
alongside as intended
## Why It's Good For The Game
bug fix
## Changelog
I don't think anybody actually noticed this enough to justify a new
changelog lol
## About The Pull Request
Exactly what it reads on the title. Also, I've stored the value of atoms
to create in a variable.
## Why It's Good For The Game
This will fix#77378.
## Changelog
🆑
fix: Fixed an oversight with processable items that lead to the same
chat message being sent multiple times.
/🆑
## About The Pull Request
What it says on the tin. The code comment accompanying the "name" var
suggests this was already the case, but it was only true for the
crafting UI.
Adjusted some other code that gets recipe names to account for this
change.
## Why It's Good For The Game
Convenient, both as a fallback and for the sake of avoiding repetition
where it isn't necessary. That said, I haven't gone out of my way to
remove pre-existing names that match the result, in case that practice
is still considered desirable.
It also fixes#77379 and similar issues.
## Changelog
🆑
fix: crafting recipes without a name, such as the mothic pizzas, will
inherit the name of the item they make
/🆑
## About The Pull Request
See title. Callbacks were getting deleted in SS13.lua which is
non-ideal. They should be automatically collected by the garbage
collector.
Also adds some utility lua functions like SS13.is_valid,
SS13.stop_tracking, SS13.new_untracked, SS13.type and SS13.qdel
## Why It's Good For The Game
Fixes some harddel issues, as well as callbacks clogging up the garbage
subsystem.
## Changelog
🆑
admin: Added new lua functions: SS13.is_valid, SS13.stop_tracking,
SS13.new_untracked, SS13.type and SS13.qdel
/🆑
---------
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Hi! Some time last year I was responsible for breaking up the original
`space_station_13_areas.dm` ~~and responsible for breaking a few things
in the process~~. Anyway- I was looking at one of Ghommies PRs and was
snooping around the area files again.
This PR does two things:
1. Nukes `space_station_13_areas.dm` since it was an empty file, just
containing a comment that was outdated.
2. Rips apart `areas/station.dm` into `areas/station/*`.
First and foremost, `station.dm` was a whopping `1,771` lines long, and
that's just for areas used among our many maps of now and then.
I also deleted `/area/misc/asteroid` because it seemed unused after
doing a search.
The old `station.dm` was converted into `areas/station/misc.dm` since
not every single area is going to be created with organization in mind.
I also updated comments here and there to be a little more.. obvious?
Also and lists I saw were expanded out. They look so much better now!!
## About The Pull Request
I saw this pop up on a port of one of my PRs and realized "damn that is
an issue"
`COMSIG_GLOB_CREWMEMBER_JOINED` was sent twice for latejoins, once in
`transfer_character` and once at the end of `AttemptLateSpawn`
This caused latejoiners to get the signal twice, so in the case of
Summon Guns, they'd get two guns
## About The Pull Request
This adds a new **Black Hole** admin shuttle event while the escape
shuttle is in transit. The regular version spawns a small 1x1
singularity that falls through the ship. There is also a special
adminbus Kobayashi Maru version that spawns multiple black holes
rapidly.
## Why It's Good For The Game

Tell me this doesn't look fun?
## Changelog
🆑
add: Add admin blackhole shuttle event with a normal version and
suicidal version.
fix: Fix several shuttle event runtimes
/🆑
---------
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
## About The Pull Request
Adds the storage implanter to the spy kit to make it decent.
## Why It's Good For The Game
This PR hopes to bring Spy at least a little more in-line with the rest
of the syndie-kit specials, so it doesn’t feel like a complete dud to
get.
Spy absolutely sucks as a syndie-kit and getting it is basically
throwing away 20 TC. Not all of them should be equally powerful but all
of them should be at least more satisfying to get. Spy is so bad that
it’s listed in the official wiki as ‘honestly not that good’. It’s also
_barely_ even above 25 telecrystals as the switchblade is a black market
uplink item, not a syndicate uplink item, and not even that good of an
item at that! And the chameleon kit inside isn’t even a full chameleon
kit! Pitiful. Compare it to stealth right below it which totals to _36_
telecrystals.
Adding a storage implant adds a relatively useful item to the kit that
still fits with the entire theme of ‘stealth and deception’, as you can
be searched without having anything on you. To be stealthy, and deceive
people. Like you should. Given the fact that searches are quite common.
It doesn’t make it TOO overpowered as the rest of the gear is still ‘not
that great’.
## Changelog
🆑
balance: added the storage implanter to the syndie-kit tactical 'spy'
kit to make it decent.
/🆑
Co-authored-by: oilysnake <63020759+oilysnake@users.noreply.github.com>
## About The Pull Request
This pr adds a young spiders that appear between spiderlings and adult
spiders. Now spiders have a stage where they are squishy but can also
spin webs and do some other things early depending on the spider type.
Spiderling stage takes 40 seconds and young spider stage take 1 minute,
ealier for spiderling this was 1 minute. Also adds a new wizard spider
sprite and makes the spider form usable.
Gives Wizard Spider version has better immunity against fire since it
can kill a wizard very fast it they are not paying attention.
Makes tangle spider get more health but makes the self-healing worse.
This is done because spider is a team antag except for the flesh
(changeling spider), making it so solo-playing as tangle is less
encouraged.
Scout spiderling gets thermal vision also. It cannot communicate, but it
can already start scouting now.
Viper deals bonus damage when an enemy is on low health. Toxins don't
kill humans anymore, and since the viper spider only deals 5 damage now
it deals more so it can actually take down enemies at low health. They
also have a little more health since they always die very fast. Viper
can also change between a defensive/slow mode with more armor or a
offensive/speed mode with less armor.
Nurse spider heals for 25 instead of 20, since 25 is one laser shot, it
makes more sense for the nurse spider to be able to heal that amount.
Flesh spider grows faster since they are a solo antag and spawn killing
isn't cool.
Tarantula spider can now tear down walls by clicking them instead of
needing to use their charge attack. They can also build wall webs and
passage webs. Their damage coeffs also got the regular burn factor for
spider so their health also increased a bit.


## Why It's Good For The Game
Now there is a smooth transition between the tiny spiderling and the
bigger spider stage. This will promote people to help the hive at an
earlier stage while not being too powerful yet. It is also realistic and
adds extra flavor to the spider antag. The other balance changes are
improvements to the game.
## Changelog
🆑
add: Young Spiders that appear between spiderlings and adult spiders.
balance: Wizard Spider version has better immunity against temp damage
and can lay webs faster.
balance: Tangle Spider sucks more with self-healing but has more health.
balance: Scout spiderling gets thermal vision.
balance: Viper deals bonus damage when an enemy is below 20% health.
/🆑
## About The Pull Request
Biogenerators can be unwrenched
## Why It's Good For The Game
If significantly more round impacting things like smoke machines and
hydro trays that drop plants that turn into meth bath salts krokodil
smoke can be unwrenched i dont see why this cant
## Changelog
🆑
qol: Biogenerators can be unwrenched
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
Adds Summon Simians, a spell that summons four monkeys or lesser
gorillas, with the amount increasing per upgrade. The monkeys have
various fun gear depending on how lucky you get and how leveled the
spell is. If the spell is maximum level, it only summons normal
gorillas.
Added further support for nonhuman robed casting: Monkeys, cyborgs, and
drones can all now cast robed spells as long as they're wearing a
wizardly hat as well.
Made monkeys able to wield things again.
Wizard Mutate spell works on non-human races. It also gives you
Gigantism now (funny). If the Race can't support tinted bodyparts, your
whole sprite is temporarily turned green.
Made Laser eyes projectiles a subtype of actual lasers, which has
various properties such as on-hit effects and upping the damage to 30.
Improved some monkey AI code.
## Why It's Good For The Game
> Adds Summon Simians, a spell that summons four monkeys or lesser
gorillas, with the amount increasing per upgrade. The monkeys have
various fun gear depending on how lucky you get and how leveled the
spell is. If the spell is maximum level, it only summons normal
gorillas.
It's criminal we don't have a monky spell, and this is a really fun spin
on it. Total chaos, but total monky chaos. It's surprisingly strong,
but! it can very well backfire if you stay near the angry monkeys too
long and your protection fades away. Unless you become a monkey
yourself!!
> Wizard Mutate spell works on non-human races.
This spell is great but it's hampered by the mutation's human
requirement, which is reasonable in normal gameplay. Wizards don't need
to care about that, and the human restriction hinders a lot of possible
gimmicks, so off it goes. Also, wizard hulk does't cause chunky fingers
for similar reasons
> Made Laser eyes projectiles a subtype of actual lasers, which has
various properties such as on-hit effects and upping the damage to 30.
Don't really caer about the damage so much, this is more so that it has
effects such as on-hit visuals. Can lower the damage if required, but
honestly anything that competes against troll mjolnir is good.
> Added further support for nonhuman robed casting: Monkeys, cyborgs,
and drones can all now cast robed spells as long as they're wearing a
wizardly hat as well.
SS13 is known for 'The Dev Team Thinks of Everything' and I believe this
is a sorely lacking part of this or something. It's funny.
I want to see a monkey wizard.
> Made monkeys able to wield things again.
I really don't know why this was a thing and it was breaking my axe and
spear wielding primal monkeys. Like, why?
## Changelog
🆑
add: Adds Summon Simians, a spell that summons four monkeys or lesser
gorillas, with the amount increasing per upgrade. The monkeys have
various fun gear depending on how lucky you get and how leveled the
spell is. If the spell is maximum level, it only summons normal
gorillas.
balance: Wizard Mutate spell works on non-human races. It also gives you
Gigantism now (funny). If the Race can't support tinted bodyparts, your
whole sprite is temporarily turned green.
balance: Made Laser eyes projectiles a subtype of actual lasers, which
has various properties such as on-hit effects and upping the damage to
30.
add: Added further support for nonhuman robed casting: Monkeys, cyborgs,
and drones can all now cast robed spells as long as they're wearing a
wizardly hat as well.
balance: Made monkeys able to wield two-handed things again.
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
## About The Pull Request
Fixes an oversight in containers with the service cyborg's apparatus, by
allowing it to pick up coffee pots and syrup bottles.
## Why It's Good For The Game
Coffee pots alongside syrup bottles are generally used and made within
the service department, and it would only make sense if the service
cyborg could also pick up and move these drink related containers around
too.
## About The Pull Request
This PR makes it so that when a gas mask of any type (normal, explorer,
mime, etc) has isn't holding any filters, and isn't covering the mouth,
you can jam a cigarette in there and smoke it like normal. Cigs placed
in a mask can be lit by using the lighting implement on the mask as you
would a normal cig. The gas mask can't be adjusted while holding a cig
(if the gas mask can be adjusted at all). Whether or not internals can
be used depends on the mask and its adjusted state.

A mime enjoying their favourite robusto cigars
## Why It's Good For The Game
First off, I just find the idea of replacing an air filter in a gas
mask, something meant to protect you from harmful gasses and fumes, with
a cancer-inducing burning stick of chemicals, to be really funny.
Secondly, and the reason that was the initial inspiration for this PR,
is it allows mimes and clowns to smoke without removing their masks.
This opens the door for mimes and clowns to use smoking as part of their
character gimmick, without losing a pretty big part of their identity.
## Changelog
🆑
add: Cigarettes can now be placed in and smoked through gas masks, so
long as the mask has no filters installed and is not covering the mouth.
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
## About The Pull Request
So, I've been recently told that Skyrat uses the greyscale modify menu
for loadouts, and the new ui state kinda borked it. I honestly haven't
taken the possibility that the target could be anything but a subtype of
`/atom` (and still work) into account because much of the code assumes
the target is an atom. It's kinda crappy. Also I hadn't noticed we've an
`unlocked` variable, which makes `vv_mode` var superflous, so i'm going
to remove the latter.