## About The Pull Request
Moves the deep lore proc to the parent for guns.
Adds deep lore to some of the pistols.
Rewrites the deep lore for the stun baton and contractor baton.
Repaths the Liberator pistol to a more sensible path name.
Rechambers the Regal Condor to .45, because I was today years old when I
learned that the Tiger Cooperative are _[radical Christian
extremists](https://github.com/tgstation/common_core/blob/cf1edb9f770e7d3c38ca894e951ab5ac50395a47/Governments%20and%20Organisations/Corporations/The%20Syndicate/The%20Syndicate.md?plain=1#L73)_.
I just thought they were nutso about changelings, I didn't know they
also think they're God's ubermensch. Anyway, that freak who started the
cult would chamber their relic pistol in .45 and you know it.
## Why It's Good For The Game
I love dumping large amounts of text into the code base that will
rarely, if ever, be noticed by the player. It's also the means by which
I can summon forth my good friend Hatterhat to contribute to this
codebase. Like a carrot on a stick.
If I post enough, one day he'll PR flashforge mines like he promised me.
## About The Pull Request
Refactors teleporter interference into an item flag, refactors
teleporter interference checks to check your contents for items with
this flag rather than doing a hard check for a bag of holding. Currently
this flag is only used by BOH and SMOH, replicating current (intended)
behavior
Closes#96170
## About The Pull Request
A few tweaks regarding diamonds and bluespace crystals with regards to
ore vents.
With the quantity of bluespace crystals and diamonds that have been
reintroduced to the game, in an attempt to maintain their status as the
rarest tier of material to obtain for the station, both materials have
been removed from the standard pools of ores that can spawn into
boulders. What this **means** is that it can't roll as a primary
material for a boulder, providing 25-10 sheets worth of material.
**However,** diamonds and BS crystals are now available from all tapped
vents as an artifact boulder spawn. These artifact boulders will spawn
at a flat 7% chance, previously set as a random range of 0-10% randomly
per vent. Because this chance was never communicated to players, I think
it's fine at this point to split the difference, lock it in at 7%
(Considering that we're adding more things onto the artifact boulder
outcomes as is, I've elected to throw it to a slightly higher chance,
based purely on vibes). For clarity, these two artifact boulders add a
flat 1-5 sheets of their respective material to the boulder on spawn,
the same as mining a single tile of their respective ore from a wall.
Additionally, the overlays when scanning an ore vent will now show a
flashing icon to represent the rare chance that these two materials may
spawn. Text has been added to the examine for ore vents to explain this
behavior.
Boss vents may still spawn diamond and bluespace crystals, but at a
lower weighting than all other materials.
Due to diamonds and BS crystals being removed from the standard ore vent
weightings, their distributions within the ore vent mineral distribution
used on roundstart has been shifted, while otherwise keeping a similar
distribution of minerals across vents, according to the rough intent of
what minerals should show up at what rarities.
As previously stated, these two artifact material boulders add their ore
to the boulder itself, meaning that you may also want to pick out
artifact boulders in order to do limited chemical boosting for up to 50%
more materials.
## Why It's Good For The Game
Diamonds and bluespace crystals are intended to be rare, valuable, and
desirable enough to go out of your way to obtain. Ore vents ideally
should have had some sort of built-in scaling that tweaked the amount of
that specific material they produced, but I never got around to
implementing that and as a result they've been really, REALLY common for
the last while. One of the design goals of the new mining PRs that have
been released recently as to try and reintroduce some rarity and
desirability into these high tier minerals by adjusting their
availability while not completely locking them off from the rest of the
game.
This was a compromise to also still provide some utility to doing ore
vents with the reintroduction of ores being more common from
wall-mining. Wall diamonds and bluespace crystals will still exist, but
this way completing a small collection of ore vents will help to supply
the station with materials, where it's the quantity, not the quality of
vents that provides the best value, while noting you're still going to
be recieving these drops somewhat rarely unless optimizing your factory
output.
## Changelog
🆑
balance: Non-boss ore vents may no longer contain bluespace crystals and
diamonds.
balance: All ore vents now have a flat 7% chance to spawn an artifact
boulder.
balance: There are now 2 new artifact boulder types, which may contain
1-5 sheets worth of bluespace crystals or diamonds respectively. These
boulders may have their rare ore boosted via chemical boosting.
balance: ore distribution in vents have been adjusted to accommodate for
bluespace and diamonds being removed from vents accordingly.
spellcheck: Ore vents now explain the artifact boulder mechanic on
examine.
/🆑
## About The Pull Request
Whenever you take damage from an attack while metabolizing synthpax, you
become immune to specifically synthpax's pacification for a number of
seconds equal to the damage taken (max. 5 seconds). Additional instances
of damage add to the immunity timer.
## Why It's Good For The Game
Peacekeeper borgs have largely used synthpax as a way to make sure an
antagonist can't fight back as security arrests them, or, when their
laws permit, as they kill said antag themselves. This seems like a
severe abuse from the cyborgs, and/or any security that ordered the borg
to take this course of action. Synthpax should be used either to
de-escalate conflict between individuals the borg's laws require them to
protect, or to ensure that a threat cannot harm individuals they are
bound to protect until appropriate responders arrive, while leaving
minimal room to weaponize the pacification effect.
## About The Pull Request
This ports changes from
https://github.com/NovaSector/NovaSector/pull/6016 and
https://github.com/NovaSector/NovaSector/pull/6398.
- The quirk no longer automatically applies the Genetics power to the
quirk user. Prior to this PR, communication was mostly anonymized and
only _not_ so when one possessed the gene. This presented a clear
downgrade for individuals who had the genetic variant over the quirk
variant. With this PR, communication through the quirk is not anonymous,
but adding the gene on top of the quirk will allow a user to upgrade it
into being anonymous.
- Every time someone uses the quirk everyone else (in sight) will see
where their attention is sent. This does not add a visual cue besides
the warning in the chat, so it's still somewhat discrete.
- Added a new quirk, Psionic Dampener. This blocks most forms of
telepathic communication.
- Telepathy was made multiline for readability.
## Why It's Good For The Game
Currently, Telepathy as a quirk has a discrepancy where non-synths
receive the mutation Telepathy, while synths receive a different
version. The mechanical differences of these created a problem where,
depending on who was using it, this either did or did not anonymize the
identity of the caster. Additionally, these changes allow the quirk
holder who seeks the genetic variant in-round to properly receive the
benefits of such.
Other changes allow people to opt-out of receiving telepathic messages,
in order to avoid negative interactions from those who abuse it.
Multiline telepathy is a desirable feature for the sake of proof
reading.
## Proof Of Testing
<img width="654" height="279" alt="image"
src="https://github.com/user-attachments/assets/056f4d52-5365-4b5f-a422-40791c5e568d"
/>
## Changelog
🆑
add: Added a new quirk Psionic Dampener, affecting telepathy from
quirks, genetics, slimes, xenomorphs, revenants and so on.
balance: Telepathy (Quirk) no longer automatically gives the gene.
qol: The telepathic communication power granted by the quirk or the
genetic power is only anonymous if the caster has the mutation, not the
target.
qol: Telepathy (Quirk) now shows when the user uses the power and on
whom, but not the contents of the message.
qol: Telepathy is now multiline.
/🆑
## About The Pull Request
Goliaths no longer instantly stun the mobs they hit with their tentacle
for full 10 seconds, instead leashing them to the spot they were grabbed
at or dragging them towards themselves. The ranged tetris-piece attack
has been changed to a full cross which tethers the target preventing
them from moving away more than 1 tile, while the line and the ring
attacks tether the mob directly to the goliath itself and drag them in.
https://github.com/user-attachments/assets/0b566a12-17ae-4a8a-97ac-5734c89c83d4
The tentacles can be manually removed after standing for 6 seconds, or
by hitting them for 75 damage total (3 PKC swings, or 5 bayonet hits).
They also naturally retract after 10/15 (cross/line and ring) seconds
like before.
Goliaths themselves have received a massive speed boost, going from 3
second movement delay to 1.2 seconds (150% buff) and no longer can
friendly fire with their tentacles (and ancient goliaths have their
trophy drop guaranteed)
Brimdemons, lobstrocities, watchers and legions also received some
changes:
- Brimdemons no longer can wound with their beams (they were basically
guaranteed to land a nasty burn wound with the initial blast), but are
now affected by laser armor and their beam DOT (not the initial 25 burn
damage upon firing) has been increased from 5 to 7. Their blasts can now
be interrupted by hitting them from their side or from their back
- Lobstrocities have had their retreat distance decreased from 8 to 6,
making them much less likely to randomly lose aggro on the miner (their
aggro range is 9 tiles, meaning that even a single tile of movement on
miner's part will result in lobsters losing interest in them when on CD)
- Watchers now try to stick to 3-5 (previously 4-6) tiles of distance
between themselves and their target, and legions try to maintain 4-6
tiles of distance as opposed to running away completely. This should
make fighting both of them more interesting and engaging, and make
dealing with them during vents less cancerous.
Sprites for the tentacle item and mob overlay are by thgvr from
https://github.com/shiptest-ss13/Shiptest/pull/2432
## Why It's Good For The Game
Goliaths are extremely outdated in their attack design, 10 second
hardstuns are basically a guaranteed death if there are any other mobs
around and aren't very engaging to fight on their own as they are very
easy to evade with 3 second movement delays.
Change to lobstrocities should just make their AI less jank, and
watcher/legion range changes should make them less slippery when
fighting with PKC or zero range PKA, or during vent defense.
## Changelog
🆑 SmArtKar, thgvr
balance: Goliaths no longer hardstun, but instead bind and drag their
targets in with their tentacles. They are, however, much faster now.
balance: Brimdemon beams can no longer wound, but deal a bit more DOT
damage. Their beams can also be interrupted by hitting them from the
side or back in melee.
balance: Watchers and legions now try to maintain a few tiles of
distance from their targets instead of retreating.
fix: Lobstrocity AI should no longer sometimes flee out of their aggro
range when retreating.
/🆑
## About The Pull Request
There's a few of these that conflict, mostly relating to timing. This
conflicting won't actually break anything but it does muddy "what is
this doing" somewhat and it's good to be clear so here we go
## Why It's Good For The Game
Makes the MC very slightly harder to confuse yourself with
## About The Pull Request
Replaces the space vine check in solar `/process` with a turf trait
## Why It's Good For The Game
Just cleans up this random bespoke interaction for something more
reusable
## Changelog
🆑 Melbert
code: Solar arrays don't check for the pressence of space vines every
process tick
/🆑
## About The Pull Request
Adds a new chaplain sect, the sect of the Dream God
This sect gains favor from dreaming and blessing dreamers.
Their blessing only works on sleeping mobs - hitting a sleeping mob with
your bible will cause it to start dreaming, and if it's already
dreaming, grant favor. Either way, the mob is healed.
For 0 favor, you can **Banish Nightmare** - offering a Nightmare's
corpse rewards favor for banishing bad dreams. If the Nightmare has a
heart, you are rewarded with a special **Sacred Heart** which heals you
while dreaming and sleeping. You can also offer a Nightmare's heart on
its own without the body attached.
For 0 favor, you can **Deaconize Dreamers** - you can deaconize up to 3
dreamers.
For 50 favor, you can have a **Dream Portent** - This rite immediately
makes you fall asleep, and grants you a dream related to something going
on in the round. It may provide insight into something you otherwise
don't know about. If you take damage, the effect ends early.
<img width="374" height="126" alt="image"
src="https://github.com/user-attachments/assets/7c4e12fe-8456-411c-9d39-691e4ac2312d"
/>
For 100 favor, you can **Dream Projection** - this rite allows you to
pick one of your deacons, and forces you to become an imaginary friend
of that deacon. For the duration of the effect you are asleep. If you
are woken up or take damage, the effect ends. If the deacon dies, the
effect ends early.
<img width="492" height="294" alt="image"
src="https://github.com/user-attachments/assets/4e2f6810-15cd-41af-a69f-daa6ddca671a"
/>
For 200 favor, you can give you and your followers **Dream Protection**
- While sleeping and dreaming all damage taken is reduced.
For 200 favor, you can start a **Slumber Party** - All nearby mobs (who
can't block magic and some other asterisks) fall asleep and share a
dream. This form of sleep heals the mob rapidly (also heals holy people
even more).
## Why It's Good For The Game
A new sect for chaplains to sink their teeth into. This one brings a
unique niche, focused around sleeping and fortune telling.
## Changelog
🆑 Melbert
add: Adds the Sect of the Dream God, a new option for chaplains.
/🆑
## About The Pull Request
Removes Station-Time entirely
Server Time is now NST (Nanotrasen Standard Time). SS13 takes place
exactly 540 years in the future of the current day, so every second is 1
second in-game.
Round Time is now PT (Pay-Time), how Nanotrasen keeps track of how long
the current rotation of Employees has been working for.
Telecomms uses NST due to its importance of being the communication to
the blackbox.
Autopsy report, clocks, scientific reports and requisitions use both
timestamps due to them being more official documents that NT may need to
know beyond just the current round (just for flavortext).
Pretty much everything else (Det scanner, PDA, IC logs, Time-of-Death,
AI law changes, Cyborg file downloading) uses PT
PT
<img width="305" height="217" alt="image"
src="https://github.com/user-attachments/assets/cef73025-6292-4f9c-8565-197397bda2ca"
/>
<img width="168" height="59" alt="image"
src="https://github.com/user-attachments/assets/a99db568-045d-45fc-8206-0d9a7b13c7d2"
/>
<img width="308" height="122" alt="image"
src="https://github.com/user-attachments/assets/37ca6f17-8916-4af2-9c91-0f0707038ca5"
/>
https://github.com/user-attachments/assets/29445051-c98b-4af3-a657-812083aab91a
Clock (Literate)
<img width="748" height="292" alt="image"
src="https://github.com/user-attachments/assets/c824e812-91b5-4737-858d-768336e9a7c4"
/>
Clock (Illiterate)
<img width="446" height="94" alt="image"
src="https://github.com/user-attachments/assets/90d5ea0d-eaff-4ced-aa31-ffdf0b4832a5"
/>
New paperwork time working properly
<img width="311" height="190" alt="image"
src="https://github.com/user-attachments/assets/6d048926-db61-4c91-893b-ce93e1ea7775"
/>
NST
<img width="800" height="115" alt="image"
src="https://github.com/user-attachments/assets/35ffde49-13c1-4ce7-ab24-858e48b608bd"
/>
<img width="1288" height="142" alt="image"
src="https://github.com/user-attachments/assets/40c30d16-e0de-4efc-b460-9486eeb901d6"
/>
# Other changes
1. Circuit time checker will now get the value of the given input (Hour,
Minute, Second) rather than the full dedisecond time converted into
hour/minutes/seconds
<img width="270" height="67" alt="image"
src="https://github.com/user-attachments/assets/097440cc-1c45-447f-9976-18de7f9c722c"
/>
2. Turns nightshift into a round event that'll last approximately 22
minutes
3. 12-hour pref (doesn't apply to the stat panel because it's global
info) & removal of "TCT" time
<img width="569" height="440" alt="image"
src="https://github.com/user-attachments/assets/d39083b1-d248-41c0-9a1c-b2398ca203a7"
/>
4. The chocolate pudding negative moodlet is now based on the server's
IRL time.
5. Admins can now use ``class``, ``style`` and ``background`` (they were
already given perms to use ``img`` so hiding background, which was
removed to prevent image embedding, is pointless)
6. Also fixes ``year`` being off on localhost.
## Why It's Good For The Game
Server Time is approximately 1s = 12s converted, not including it
desyncing from lag (I believe?).
This makes it pretty much impossible for people to actually use this as
a unit of measurement for in-game actions.
Different things also uses different timestamps which is a bit more
confusing.
The main change here is for accessibility and, hopefully, using time as
a source of immersion. "20 minutes ago" is no longer OOC, they're just
speaking in PT. There's no timezones in space, Nanotrasen Standard Time
is the closest there is, but Pay Time is how NT considers when you get
your paychecks, so it's what is more commonly used.
It also fixes major inconsistencies between "IC time" and "Station
time", things like breakfast moodlet was the first 15mins of the round
despite the round starting like 7 hours in? Nukies with an L6 SAW firing
down the halls was shooting like 1 bullet every 3 seconds (assuming 4
bullets per second), overall there was just a disconnect between how
long time actually is in the universe.
The secondary reason for this change (though it is what pushed me to
actually get around to making this change) is the greater stat-panel
removal. This hopes to lessen the dependence on the stat panel for
station-time by making it easier to understand, and the end-goal I have
is for this information to be limited to Admins & the AI (AI will get
the IC version with the accurate year), so until that happens I would
like to improve the use of station-time by making it consistent (for
example, you should only care for PT for IC, which is also what your PDA
displays), so that when it gets removed it won't leave players timeless.
If you haven't already, and is interested in helping remove the stat
panel, every entry that needs to be removed can be found here -
https://hackmd.io/443_dE5lRWeEAp9bjGcKYw?view
Closes https://github.com/tgstation/tgstation/issues/94988
## Changelog
🆑
del: Removed Station Time, now we use NST (Nanotrasen Standard Time),
which is IRL server time +540 years, and PT (Pay Time), the amount of
time since the round has started.
del: Station nightshift is now a Station event rather than being based
on Server time.
balance: Time circuit's Unit of Measure now tells the amount of time in
hour/minute/seconds rather than giving the whole time translated to
hours/minutes/seconds.
qol: Added a 12-hour clock pref for people who prefer it.
qol: Hovering over NST timestamps on official documents will now
translate how much it is in PT/Shift Time.
admin: Admins can now use style/class/background in their papercode.
/🆑
---------
Co-authored-by: Isratosh <Isratosh@hotmail.com>
## About The Pull Request
Removes broken option from prosthetic organ quirk and add it to organs
tab
## Why It's Good For The Game
The prosthetic brain was bugged and didnt work with the prosthetic organ
option, now you can select surplus brain in organs tab
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>
</details>
## Changelog
🆑
fix: prosthetic organ no longer includes option for brain, you can
choose it from organs tab
add: surplus brain now uses more mechanized sprite to match the
description
/🆑
---------
Co-authored-by: Copilot <copilot@github.com>
## About The Pull Request
this PR refactors beepskies and ED209s into basic mobs. ive also added a
few features for the ed209 because i cant keep my hands to myself:
ED bots can now wear hats! a few hats give them some new unique
dialogue. Putting a cowboy's hat on an ED will have it acting like a
town Sherrif
EDs are now rideable when emagged. theyll still be shooting people while
ridden. youll also have the ability to charge at people full throttle
running them over
ive also added a new Nukie variant, purchasable from the uplink. These
versions come fitted with an LMG and will patrol the station and shoot
all walks of life. If emagged, theyll blow up people with (weaker)
rockets (im still working on balancing this). they are rideable but i
highly suggest against it; youll be caught in the crossfire. (i
understand if ud prefer i atomize this feature)
## Why It's Good For The Game
gives some personality to EDs, as well as updating all these bots to the
cool new ai system
## Changelog
🆑
refactor: beepskies, and ed209s have been refactored. please report any
bugs
add: ed209s can now wear hats! some hats give them new dialogue
add: emagged ed209s are now rideable!
add: added evil versions of the ed209s to the syndie uplink
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
## 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.
/🆑
## About The Pull Request

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!
/🆑
## 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.
## 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.
## About The Pull Request
- Fixes#95651. Catalysts no longer get consumed
- Removed `REACTION_CLEAR_IMPURE` flag as it is now redundant with
`REACTION_CLEAR_INVERSE`
- Removed `REACTION_CLEAR_INSTANT` flag as it was never used
- Other minor nitpicks
## About The Pull Request
- Removes `previous_reaction_list` & `failed_but_capable_reactions` from
reaction holder. Gives considerable memory savings because reagent
holder is used in a lot of places
- Removes proc `has_state_changed()`. This proc didn't do much in saving
reaction code from executing and was inaccurate in most cases anyway.
Removing it actually speeds up stuff
- Refactored `handle_reactions()` to be as fast & efficient as possible.
Removed the use of proc `has_reagent()` and re-arranged other code where
possible
## Changelog
🆑
refactor: reagent reaction code has been refactored for better cpu &
memory performance. Report broken reactions on github
/🆑
## About The Pull Request
- Adds an `EGG` foodtype
- All food recipes are `CAT_FOOD`
Foods now have three sub categories to sort from
Cuisines - correspond to Lizard, Martian, Mexican, etc.
Dishes - correspond to pizza, bread, pastry, etc.
Meals - correspond to breakfast, main, dessert, etc.
In the crafting menu, you can select any number or combination of
cuisine, dish, and meal.
<img width="557" height="559" alt="image"
src="https://github.com/user-attachments/assets/e4265c51-992c-415a-bfc6-cbf44255b3cc"
/>
You can even click two dishes or two cuisines to see results from those
two dish categories or cuisine categories specifically.
- De-capitalized (or \improper'd) several foods for proper formatting
## Why It's Good For The Game
- `EGG` foodtype was added solely to replace the old `CAT_EGG`. Now you
can filter by egg foodtype in the `types` subtab.
- I was playing chef recently and I was a little frustrated at the food
grouping. If you want to find all available pizzas, it's split between
moth and pizza. If you want to find all available soups, that's split
between soup, lizard, moth, and martian. Adding more granularity allows
for chefs to find exactly what they're looking a lot faster.
- Formatting
## Changelog
🆑 Melbert
qol: "Egg" foodtype now exists for better food sorting, though no
species in particular likes or dislikes it at the moment.
qol: Food crafting recipes now have three sub categories - Cuisine type,
Dish type, and Meal type. You can now filter between "Moth Pizzas" or
"Lizard Soups" rather than needing to guess if the recipe is in "Pizza"
or "Mothic".
spellcheck: de-capitalized several foods
/🆑
## About The Pull Request
<img width="444" height="318" alt="image"
src="https://github.com/user-attachments/assets/d2b21460-0b11-499a-b05e-33d3a9768e71"
/>
Walking through snow or sand leaves behind a trail of prints similar to
that of bloody footprints (they use the old sprites, in fact). Like
bloody footprints, you can examine them to get a hint at what left the
prints (shoe type or leg type if barefoot).
When weather comes through (snow storm or sand storm), all prints will
be cleared off. During a raging snow or sand storm, you won't leave
prints at all.
Snowprints can be filled with snow to remove them as well.
Some equipment or effects will stop you from leaving snowprints (ski
shoes, ice shoes*, heretic's cloak of shadows). Also you obviously don't
leave prints if you're flying or crawling or riding something.
**We don't have snow shoes*
## Why It's Good For The Game
Initially I made this as a cute little detail, but I realized it has far
reaching implications for play on Icebox (and many, many sandbox
applications)
On Icebox, any average joe can run into the wastes and become
untraceable, which makes it almost impossible to track down antagonists.
Snowprints... are a method for tracking people who run off into the
snow.
But you can play around it - You can make fake trails and retrace your
steps. You can wait for a snowstorm to clear your tracks. You can even
fill in your tracks with snow if you're patient. Alternatively,
acquiring snow shoes means you leave no trail... or you could learn to
fly, crawl through the snow, use a vehicle, so on.
If you're assigned to assassinate a miner, you can follow their
snowprint trail as they head into the wastes. However, this may only
works early in the round, as the caverns have no snowstorm to clear
prints - as miners come and go, it will become harder to follow trails.
Speaking of miners, they can follow their co-workers trail if they get
injured, or look for prints to see if a ruin has been looted. Similarly
if a crew member falls down to the mining layers, they could find a
miner's trail to follow it back to the station.
And If you're a paramedic and someone was wounded out in the wastes, you
might be able to find their trail to track them down. But you can't
dilly-dally, as the storm will wipe away any chance of that.
Ultimately I think a small detail like this has some big potential for
emergent gameplay which could be cool. My intent is not to affect
antagonists too negatively, so more tools to avoid leaving prints (snow
shoes) could be added.
## Changelog
🆑 Melbert
add: Walking in snow or sand leaves behind prints. You can examine the
turf to see what left the prints, like with bloodprints.
add: Snowstorms or sandstorms clear away any footprints left behind in
the snow or sand.
add: Some equipment or effects, like skis or snowshoes, prevent you from
leaving prints in the snow.
add: You can fill in snowprints with snow.
/🆑
## About The Pull Request
- `/datum/chemical_reaction/randomized` is now created along with the
main chemical reaction list and not loaded separately inside the
persistent subsystem. This ensures slightly faster init time and less
snowflake code for adding those chemical reactions later on
- Removed vars that are unused inside
`/datum/chemical_reaction/randomized` but keep those that could be
potentially changed for future recipes
- Merged procs and moves loading recipe data into `New()` making the
code clean and slightly faster
- Random reactions now retry 5 times to be re-added when collisions
happen before giving up
- Removed global lists `GLOB.food_reagents` and
`GLOB.medicine_reagents`. This significantly saves memory for global
lists and makes init faster because we no longer create and delete food
items to init the former list
- `/obj/item/paper/secretrecipe` now picks from all valid random recipes
by default making it robust
## Changelog
🆑
refactor: random recipes like metalgen & secret sause have been
refactored. Please report bugs on github
/🆑
## About The Pull Request
There's no lint for these missing so they go largely unnoticed until
someone trying to procrastinate cleaning the house adds them all
manually
## About The Pull Request
TL;DR: "What do you mean we didn't have a negroni in the game before?"
This adds three new very commonly used liqueurs to the game: A bitter
red aperitivo, an herbal liqueur, and maraschino liqueur. Additionally,
it adds 15 new classic cocktails that use these new liqueurs.
Mechanically relevant drinks include:
- The Poet's Dream, which can grant non-heretics the ability to dream
like them
- The Garibaldi, which grants revolutionaries the determination to shrug
off their wounds
- The Jungle Bird, which soothes the supermatter when ingested by those
around it
- The Thermonuclear Daiquiri, which causes you to glow (and very rarely
emit high-energy nuclear particles)
- and more!
Full list here: https://hackmd.io/@0lHAWBNkSXixU4v6xxYS_w/SkYjyDofbg

On the non-player facing side of things, this also refactors the heretic
dream code a bit and adds a trait that enables non-heretics to have
heretic dreams, which could easily be used by other things (ie if anyone
wanted to make a perk or something that does this)
Also, special thanks to MrMelbert and ChipPotato for helping me out with
coding stuff in the discord!
## Why It's Good For The Game
This is good for the game for more or less the same reasons as my first
classic cocktail PR #92955 is good for the game: More variety gives
bartenders more to do and a greater range of drinks to base gimmicks off
of, and adding more cocktails to the game which are commonly served in
IRL bars decreases awkward, RP breaking moments where someone orders a
cocktail that's a staple you can find just about anywhere but which
isn't in the game. Additionally, the new liqueurs are commonly used in
many other classic and modern cocktails, which people can use to make
cocktails in future projects.
## Changelog
🆑
add: Added three new liqueurs, with bottles available in the
booze-o-mat.
add: Added 15 new cocktails that use the aforementioned liqueurs.
/🆑
## About The Pull Request
Adds `Thanatorenasia`, a 0 point neutral quirk
Those with `Thanatorenasia`, upon DNRing, their body will be made into a
"recovered crewmember" - meaning when the body is revived, ghosts will
be polled and allowed to take control over it
The body will retain `Thanatorenasia` after the fact, so the new
controller can DNR as well, continuing the cycle
## Why It's Good For The Game
A random idea I had based on a recent interaction that I thought could
be cool character gimmick. Every time someone dies, they get revived
with a different player, so they act differently, think differently, and
don't remember the rest of the round.
## Changelog
🆑 Melbert
add: Adds Thanatorenasia, a 0 point neutral quirk that turns your body
into a "recovered crewmember" if you choose to DNR - meaning if revived,
any ghost could take control of it
refactor: Refactored "ghostrol on revive" behavior a fair bit, report
any oddities with it / the spawners menu
/🆑
## About The Pull Request
I want to do stuff with parallax (like placing stuff in the backdrop and
moving it around), but I'm in my not doing 100 things in one pr arc so
we're doing this piecemeal.
To start, I wanted to try adding oldspace back as a parallax layer. This
is something I was considering when it was first removed but never got
around to, so here we are.
I started by [writing a rust
program](https://github.com/LemonInTheDark/old_space_gen) to fabricate
the required icon state, then realized that all the different parts of
space have their own animation delays. There's no way I could make one
icon state with all them looping, so instead I split them up into
multiple components and then overlayed them together.
This works, but is infeasible (my gpu died) at the scale required for
parallax (17 480x480 sets, 15 unique delays per 1 set) so I used render
targets to render one copy, then mirror it to the rest of the overlays.
This works wonderfully, and gets us down to (on my machine) a gpu cost
comprable with about medium parallax intensity.
I'm open to making these tile bound but I thought making them look "far
away" feels better.
In the process of all this I got very mad at the existing parallax code,
soooooooo
Parallax layers are no longer stored on the client, they are stored on
and managed by the parallax home atom that holds them for display. Said
atom also tracks all the information about how they are selected.
Parallax layers no longer take a hud as input, instead expecting a
client. (we were just swapping them back and forth and I thought it was
dumb).
Parallax no longer tries to support passing in a mob that does not
actually own the hud it is displayed on. This feature wasn't even being
used anymore because it was fully broken, so all it was doing was making
the code worse.
Parallax no longer has to do a full refresh anytime something about WHAT
layers are displayed might have changed. We cache based off the
variables we care about, and use the change in state to determine what
should happen (this is improved by moving "rendering the layers" fully
to the control of the home datum).
Parallax no longer directly modifies the hud's plane masters, instead
relying on trait based signals to manipulate them (this avoids wasted
time in the common event of a needless parallax prefs check).
Parallax no longer has 2 procs that are only called together to
"remove/readd/update" the layers, instead doing both in a new check()
proc.
Cleans up some plane master cruft to do with tracking/managing huds
(might break, tested, think it's fine).
## Why It's Good For The Game
https://github.com/user-attachments/assets/79138a0f-9f6d-447d-843e-0d237db13276
## Changelog
🆑
add: Added an option for rendering space parallax with old space sprites
(the ones from before we invented parallax), they're animated and I feel
quite pretty.
fix: Space parallax should hopefully behave a little more consistently
now
refactor: Rewrote a lot of how space parallax handled itself, please
yell at me if any bugs make themselves known
/🆑
## About The Pull Request
Ports some bags for roundstart selection from Nova Sector. Same amount
of space as any other bag ever.
## Why It's Good For The Game
Cool bags. Different aesthetics, if desired.
## Proof Of Testing
works on my machine or something. Screenshot below.
<details>
<summary>Screenshots/Videos</summary>
<img width="1287" height="735" alt="image"
src="https://github.com/user-attachments/assets/d7ecf201-1442-4f80-99cd-a116ea04de51"
/>
</details>
## Changelog
🆑
add: Front pack, waist pack and belt pack for selection in character
preferences, found under the regular bag selection. Despite the names,
still equipped on your back.
image: Supporting sprites for the new roundstart bags
/🆑
---------
Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
## About The Pull Request
This lets people ride and tame spiders by feeding them mouse, lizard,
moth, fly, and worm meat. You can only do this when a spider is a
spiderling or young; once it's fully grown, it's no longer possible.
This also refactors some tameable code to use `TRAIT_TAMED` instead of
setting variables on mobs individually.
## Why It's Good For The Game
It looks cool.
<img width="1920" height="1080" alt="dreamseeker_97k7fgzdhv"
src="https://github.com/user-attachments/assets/87d53102-468d-4dd7-b0a7-004f9a98df17"
/>
## Changelog
🆑
add: Spiders can now be tamed and ridden. They eat mouse, lizard, moth,
fly, and worm meat and can only be tamed when they are spiderlings or
young.
code: Refactored tameable code to use TRAIT_TAMED instead of setting
individual variables on each mob.
/🆑
## About The Pull Request
Cybernetic/Cortical brain touch-up. Discuss.
Also because vox use cortical brains, we touched their code a little.
Tangent: I wish there was a way to make the brain restore surgery
capable of taking a multitool without being a separate op :\
# But why?
It's been noticed that people are using cortical brains to shoot up some
meth without consequences. This was a) not originally intended b)
genuine power creep, as previously the only way to be able to process
chems without the brain damage was to be a vox, who do start with
robotic-only brains. So, this PR is to address it. Sure you get an EMP
weakness, but this server has a soft-stigmatization against using EMPs
so that's leery on the social contract.
Fret not! You'll still have the option of a roundstart brain which
doesn't take meth damage. It just also takes slightly more EMP damage,
has less health than an ordinary brain, and if it ever gets removed, it
explodes as the other prosthetics do (but doesn't qdel). So really,
there's not much of a consequence.
## Proof Of Testing
https://github.com/user-attachments/assets/f48efc8b-9f4b-4fd1-b71f-145a1d4b63c5
<img width="255" height="167" alt="Screenshot_10"
src="https://github.com/user-attachments/assets/0334b931-0593-4721-9de2-a02211253e28"
/>
yeah i flipped it on the below one. it's correct now though
<img width="661" height="171" alt="Screenshot_11"
src="https://github.com/user-attachments/assets/554eaf09-8ee4-4a1a-a95b-c7332a078610"
/>
## Changelog
🆑
add: Previously-unobtainable surplus-cybernetic brain added to
Prosthetic Organ quirk
add: Cybernetic brains given the ORGAN_PROMINENT trait, following normal
brains.
add: Vox Primalis unique cybernetic brain has been finally added to
their species descriptions. (Bet you didn't know they had one)
balance: (Roundstart) Cortical brains given ORGAN_ORGANIC, so they can
be fixed with both mannitol and a multitool. Vox brains are excluded
balance: Brain options in character prefs have been given a 1
quirkiness-point cost.
fix: Cybernetic/Cortical brains have their repair hints updated to
reflect what they can actually be repaired by
code: Prosthetic Organ quirk moved to modular_zubbers
code: 'Vox Primalis' now considered a collective noun
code: dangerous_organ_removal has a new variable to toggle between organ
qdel or having its damage set to max health.
/🆑
## About The Pull Request
- Removed global list `fake_reagent_blacklist` in favour of
`abstract_type`. Saved memory
- Removed proc `get_chemical_reaction()` in favor of
`GLOB.chemical_reaction_list`. No proc overhead and faster access
- Remove unused proc `remove_chemical_reaction()`
- Removed proc `find_reagent()` in favour of
`GLOB.chemical_reagents_list`. No proc overhead and faster access
- Directly access name of reagents via `::` operator from typepaths
instead of looking up the datum in global chemical reagents list for
some operations. Faster variable access
- Removed unit test `reagent_id_typos`. The typepaths will error at
compile time because they aren't strings so there's no need for this
test
## Changelog
🆑
code: cleaned up code pertaining to reagent & reaction lookup
/🆑
## About The Pull Request
Adds the ability to use a pen or crayon or spraycan to draw a face or
eyes onto certain bots
This allows people who miss the pareidolia of the old medkit sprite to
fix it themselves
You can clean it off again using most cleaning products, if you disagree
<img width="649" height="220" alt="image"
src="https://github.com/user-attachments/assets/de4869b8-9ac1-4c79-8890-bd95fd4fcaa1"
/>
I think from looking at this screenshot apparently I haven't enabled
pixel perfect 2x on my laptop for which i should be executed, sorry
I didn't add any for ones not pictured here because I couldn't think of
a good way to draw them but it's simple enough to expand.
The face will be coloured with whatever ink you used to draw it, I was
just lazy and only used a regular pen in this picture
How are all of the non-white drawing implements adding that white
circle? Don't worry about it
This comes in the form of a component so if you want to make other
things easily graffitable then you can do that
I ironically called it the defaceable component even though it's used to
add faces
## Why It's Good For The Game
It seems like something people have been wanting and it seemed like a
cute idea
## Changelog
🆑
add: You can draw faces onto some bots using a pen, crayon, or spraycan
/🆑