## About The Pull Request
So I really wanted to do the stereotypical "really I'm just a
construction worker" break-in bit, but then quickly realized you can't
even place warning cones on the floor! You have to awkwardly drop them,
or put them on a table and move them off!
Thinking about that, I remembered my similar annoyance with candles for
rituals or wet floor signs when playing a janitor.
Initially this was intended to include the ability to stack warning
cones for easy storage and placement, but I realized that was taking a
_lot_ more time than making the other items placeable on the floor.
Because of this, I decided to atomize the much less complex part off
into this pr.
So here, in this pr, we add a simple element
`/datum/element/floor_placeable` and apply it to a list of items for
which I think "placing it on the floor" makes enough sense as an
interaction.
As a side to this, we add the plastic pickup/drop noises to wet floor
signs and warning cones, because they're made of plastic and it's
leagues better than being entirely inaudible.
We remove `var/cooldown = 0` from `/obj/item/toy/cattoy` because it
wasn't used.
## Why It's Good For The Game
Can't do the stereotypical hazard vest break-in in _style_ without the
ability to actually place the cones:

Oh man is it so much less of a pain to make fancy schmancy rituals when
you don't have to place candles on tables and drag them off for it to
work:

It's really funny to be able to play with toys on the floor:

## Changelog
🆑
add: Certain items can now be placed directly on the floor in the
clicked on location. This currently includes warning cones, wet floor
signs, candles, action figures, plushies, mech toys, and a list of other
toys.
sound: Warning cones now use plastic pickup/drop sounds.
sound: Wet floor signs now use plastic pickup/drop sounds.
/🆑
## About The Pull Request
This PR:
- Converts all of the blood types into their own datums, which can be
set up to have their own colors, descriptions, and other fun unique
properties. For example, the clown blood that is constantly randomizing
itself.
- Converts all the blood decals into greyscale, which in turn eliminates
the need for separate xeno sprites. They both use the same ones now.
- Audit of blood splatters/gibs/bodyparts/organs to make sure that they
are getting the correct forensic data applied to them.
- For the admins: Adds a clown blood smite.
My primary goal with was to make the appearance of the new sprites look
almost indistinguishable to the original ones.
I consider this a "first pass", as in there are still some further
refactors I would like to do on the backend side, but am satisfied with
it enough to push it forward as a first step towards a better blood
system! I didn't want to do too much at once because of A) fatigue and
B) easier to test things to make sure I'm not breaking something
important this way.
This has been test-merged on Nova for over a week now and has been going
great, so I finally got around to upstreaming the bones to TG. Although
I did test it a bit you may want to TM it just in case I missed some
things when copying it over.
## About The Pull Request
Fixes#90836Fixes#90841
In a recent merge some checks in `component/two_handed` were changed
from `if(!value)` to `if(isnull(value))`.
This change was in error because these values are never null, they
default to 0.
I have changed them to more sensible and appropriate numerical checks.
## Changelog
🆑
fix: Holding a two-handed weapon in both hands will now once again
appropriately modify its attack power.
/🆑
## About The Pull Request
- Closes#90704
The following changes were implemented for this
- Moved sending signals `COMSIG_MOVABLE_TELEPORTING` &
`COMSIG_ATOM_INTERCEPT_TELEPORTING` from `check_teleport_valid` into
`do_teleport`. These 2 signals were causing all the side effects
- Removed signals `COMSIG_ATOM_INTERCEPT_TELEPORTED` &
`COMSIG_MOVABLE_TELEPORTED` as the above 2 signals can do their jobs &
block the teleport if needed so these signals became obsolete
- Removed define `COMPONENT_BLOCK_TELEPORT` in favour of returning a
positive value if teleport was successfully blocked. Having 2 signals
located in 2 separate files use this same define doesn't look great.
## Changelog
🆑
code: cleans up teleportation code. `check_teleport_valid` is now a pure
function with no side effects
/🆑
## About The Pull Request
What it was doing was by and large fine, HOW it was doing it SUCKED
I've cleaned it up and the nearby code some, notable hits include:
- random if check in secrets ui that was totally unused
- proc called add that actually set
- lists not defined as such
- stupid var names
- proc args which did nothing
- code which did nothing
- oververbose code
- proc/var names with no spacing at all
Note: This might have changed behavior accidentally, I've done my best
to test but we'll need to look out for issue reports in coming days.
## Why It's Good For The Game
I was working on bitflag code and saw red, now it's 2 hours later.
## Changelog
🆑
code: Brought browser code up to standard with the rest of the codebase
admin: Hey lads, I cleaned up how non TGUI windows work on the backend,
please let me know if anything is broken! PING ME MOTHERFUCKER
/🆑
## About The Pull Request
Bubblegum trophy has attempted to modify its' *own* dual wielding, so if
you attached and detached it you were able to have a tiny 20 force two
handed weapon. Yeah. This PR implements a way for trophies to
consistently modify their damage, and fixes some oversights (values not
being assigned/updating) in two handed component code.
Closes#90731
## Changelog
🆑
fix: Fixed inconsistent proto-kinetic crusher descriptions
fix: Fixed Bubblegum and Wendigo crusher trophies sometimes not working.
/🆑
## About The Pull Request
Fixes#90637
Adds on remove effects for Farsight and Rock Absorber, because I forgot.
## Changelog
🆑 Melbert
fix: Losing Farsight or Rock Absorber mutations will properly drop their
effects as well
/🆑
## About The Pull Request
Since we now have deep water that makes people drown, it makes sense to
go the extra mile and incorporate the ability for boats to travel over
water. This should allow some cool mapping stuff where you can make
islands that are only reachable by boat.
## Why It's Good For The Game
Mapping benefits.
## Changelog
🆑
add: Allow boats to travel over water
/🆑
## About The Pull Request
Fixes#90790
Decreases the exp gain from swimming and only grants it while you
actually have stamina.
Even if it doesn't kill you this shouldn't make you stronger
## Changelog
🆑
fix: Floating motionless and face down in the water doesn't count as a
workout
/🆑
## About The Pull Request
People can now pet held mothroaches and pugs if they want to, or use
items on them, hopefully without causing many issues. After all, it only
took about a couple dozen lines of code to make...
...Oh, did the 527 files changed or the 850~ lines added/removed perhaps
catch your eye? Made you wonder if I accidentally pushed the wrong
branch? or skewed something up big time? Well, nuh uh. I just happen to
be fed up with the melee attack chain still using stringized params
instead of an array/list. It was frankly revolting to see how I'd have
had to otherwise call `list2params` for what I'm trying to accomplish
here, and make this PR another tessera to the immense stupidity of our
attack chain procs calling `params2list` over and over and over instead
of just using that one call instance from `ClickOn` as an argument. It's
2025, honey, wake up!
I also tried to replace some of those single letter vars/args but there
are just way too many of them.
## Why It's Good For The Game
Improving old code. And I want to be able to pet mobroaches while
holding them too.
## Changelog
🆑
qol: You can now interact with held mobs in more ways beside wearing
them.
/🆑
## About The Pull Request
Updating the code, fixing a couple issues steeming from fishing.
## Why It's Good For The Game
This should fix#90594 (I think?!), fix#90712 and fix#88514.
## Changelog
🆑
fix: Fixed moonfish eggs appearing like huge errors inside aquariums.
fix: Fixed starfish suicide sometimes not deleting you.
/🆑
## About The Pull Request
Brain traumas caused by head wounds are stored as a reference on the
wound, but certain brain traumas (like split personality) `qdel`
themselves in `on_gain()` if conditions aren't valid for them to exist,
`/obj/item/organ/brain/proc/brain_gain_trauma` returns a reference even
if this happens, leading to the ref being stored on the wound and
preventing the trauma from being fully deleted.
## Why It's Good For The Game
Fixes#87752
## Changelog
No player facing changes
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
## About The Pull Request
adds a single line (`override_allow_spacemove = TRUE`) to the megacarp
movement datum
## Why It's Good For The Game
it's a big ass fucking shark if the small carp can carry me through
space so can the megacarp. if i remember correctly it used to be able to
so why not. i want to ride my cool ass shark through space
## Changelog
🆑 Goat
fix: The megacarp (shark) will now be able to fly through space when
ridden like its smaller carp siblings.
/🆑
## About The Pull Request
This PR started with the idea of adding support for map feedback
threads, which I added to the roundend report, escape menu, and stat
panel. To do this though I had to make pretty annoying changes to the
stat panel and had to touch every single time something to the stat
panel was added, so since we now have a way to have links in the stat
panel I thought of taking full advantage of it and add some QOL.
AIs can now track their borgs by clicking their status on the stat panel
https://github.com/user-attachments/assets/1789dc46-5d12-48e9-bb8d-d3278aa19639
With Melbert's comment, I added another stat panel entry that directs
you to the Webmap page, which currently seems to be a little messed up
(https://github.com/AffectedArc07/SS13WebMap/issues/41 &
https://github.com/AffectedArc07/SS13WebMap/issues/42) but if they get
fixed this would be a swag asf feature
##### Code bounty for Ezel/Improvedname
## Why It's Good For The Game
Feedback threads was a suggestion from a player and is fully in control
of admins as an optional thing, and while we still have stat panel I
think it's nice to be able to take advantage of its features.
## Changelog
🆑
admin: Admins can now link a URL for maps, used to give feedback on said
maps. Accessible through the roundend report, escape menu, and stat
panel.
qol: AIs can track their borgs by clicking on them in the stat panel.
qol: You can now directly go to the webmap of maps from the stat panel
(assuming it's set in config).
/🆑
## About The Pull Request
- Tweaks partial understanding.
Paragraphs are now split into sentences first creating more natural
breaks between sentences.
- Adds "Common Second Language" quirk
This quirk changes your default understanding of common (up to) 90%
(your choice), meaning you drop the occasional word.


Additionally, when your sanity drops below a threshold, you become
forced to speak your native language, albeit with a partial
understanding applied for everyone else.
Incompatible with similar language quirks + can't be taken by humans
(yet?)
## Why It's Good For The Game
Just a fun way to play around with the new "partial understanding"
system.
## Changelog
🆑 Melbert
add: "Common Second Language" quirk
qol: Language translations chunk sentences together better, making
partial understanding a bit easier to parse.
/🆑
## About The Pull Request
If you have a human skin suit equipped, with its hood up, the health
analyzer will report you are a `"Human"`

## Why It's Good For The Game
It's the perfect disguise for alien species
## Changelog
🆑 Melbert
add: Human skin suit may trick the health analyzer... sort of
fix: Human skin suit no longer gives a useless action
/🆑
## About The Pull Request
Weather subsystem code mixed up defines and indexes resulting in broken
behavior when you only had mobs and thunder defined in a subsystem.
Solved this by converting currentpart from define to active task index
Closes#90677
## Changelog
🆑
fix: Ash storms do damage again
/🆑
## About The Pull Request
Modularises the scrapheap challenge shuttle. Adds support to allow
shuttles to load modularly.
TODO:
- [x] Make it work why does this not load any more I fixed this before
- [x] After above, check if weird airflow issues still persist
~Find a less unusual solution for holding the shuttle back until it
loads?~ Not unless I want to rewrite the entirety of shuttle loading or
something
## Why It's Good For The Game
Modular generation makes the scrapheap challenge feel more "scrappy",
with it being put together of different parts each time you see it.
Added modularisation support allows for more modular shuttle trickery in
future.
## Changelog
🆑
add: Added support for modularly loaded shuttles.
add: The Scrapheap Challenge emergency shuttle now comes in randomly
generated variants.
/🆑
## About The Pull Request
This PR removes the `basic_mob_attack_telegraph` component from all mobs
which were using it and instead implements an attack delay directly into
the basic melee AI behaviour.
This delay simulates "moving your mouse into position", human reaction
times, and the fact that the previous implentation of simple mobs would
only try to melee attack on a predictable timer you could "juke" around.
The way that this delay works is that it starts as soon as the mob
enters melee range and resets if you are ever out of the mob's reach, so
there will be no delay if you are foolish enough (or unfortunately
preventing from doing otherwise) to continue standing next to a mob but
there is enough of a one to duck in and out of melee range with a
goliath while using a crusher without getting hit, although trying to
run past one usually won't work.
This delay defaults to 0.3 seconds which in my testing experience was
roughly enough to dip in and out of range without getting hit but not
enough to run all the way past a mob without getting hit. It can be
overriden via the blackboard, although currently no mob does this.
I _was_ testing this locally with no latency though so I guess we'll
listen out to see if miners start yelling.
## Why It's Good For The Game
The visible attack broadcast is very cool but its visibility made melee
combat with any mob that had it significantly easier to such a degree
that any mob with it on could not really be expected to do melee damage
to any character that wasn't suffering some kind of immobilisation
effect which was never really the intention.
Removing it also removes any additional handicap that was applied to
sapient versions of these mobs, which was never really necessary or
intended in the first place.
I did not remove the component entirely from the game for two reasons:
- Out of the hope that there is some use for it somewhere, because I
think it's cool, but more importantly:
- Because it's still being used by simple mob megafauna as a workaround
for a bug we couldn't figure out.
## Changelog
🆑
balance: Most mobs will now hesitate for a moment before attacking
rather than instantly hitting anything that enters melee range, to
better simulate human behaviour. Please report if this delay seems too
short, or too long.
balance: Most mobs which telegraphed their basic attacks on you now will
not do that
/🆑
## About The Pull Request
Adds a new wizard event - Magical Rain
This selects a random reagent from a curtailed list that is rained down
on the station. The only safe spaces are in maintenance and containers
like lockers. Of course the wizard is not directly affected by the
reagent, although side effects may still apply. For example, if it is
raining lube, it will cause turfs to get slippery which can slip the
wizard. You can also collect the rain in containers, which might be
funny or useful depending on what it is. (Alcoholics love booze rain)
I did have to trim down the list of reagents since there are over +700
and most of them do nothing to mobs/turfs when they `TOUCH`. The list is
~50 reagents that are:
```dm
// most medicine do nothing when it comes into contact with turfs or mobs (via TOUCH) except for a few
var/list/allowed_medicine = list(
/datum/reagent/medicine/c2/synthflesh,
/datum/reagent/medicine/adminordrazine,
/datum/reagent/medicine/strange_reagent,
// include a random medicine
pick(subtypesof(/datum/reagent/medicine)),
)
GLOB.wizard_rain_reagents |= allowed_medicine
// One randomized type is allowed so the whitelist isn't spammed with subtypes
GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/glitter))
GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/carpet))
GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/mutationtoxin))
GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/plantnutriment))
GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/uranium))
GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/luminescent_fluid))
GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/impurity))
GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/drug))
GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/water))
GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/fuel))
GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/colorful_reagent))
GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/ants))
GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/lube))
GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/space_cleaner))
// lots of toxins do nothing so we need to be picky
var/list/allowed_toxins = list(
/datum/reagent/toxin/itching_powder,
/datum/reagent/toxin/polonium, // radiation
/datum/reagent/toxin/mutagen,
// all the acids
/datum/reagent/toxin/acid,
/datum/reagent/toxin/acid/fluacid,
/datum/reagent/toxin/acid/nitracid,
// include a random toxin
pick(subtypesof(/datum/reagent/toxin)),
)
GLOB.wizard_rain_reagents |= allowed_toxins
// too many food & drinks so blacklist most of them
var/list/allowed_food_drinks = list(
/datum/reagent/consumable/ethanol/wizz_fizz,
/datum/reagent/consumable/condensedcapsaicin,
/datum/reagent/consumable/frostoil,
// include a random food or drink
pick(subtypesof(/datum/reagent/consumable)),
// include a random regular drink (vodka, wine, beer, etc.)
pick(/obj/machinery/chem_dispenser/drinks/beer::beer_dispensable_reagents),
)
GLOB.wizard_rain_reagents |= allowed_food_drinks
var/list/allowed_exotic_reagents = list(
// fire
/datum/reagent/clf3,
/datum/reagent/phlogiston,
/datum/reagent/napalm,
// cosmetic
/datum/reagent/hair_dye,
/datum/reagent/barbers_aid,
/datum/reagent/baldium,
/datum/reagent/mulligan,
/datum/reagent/growthserum,
// op shit
/datum/reagent/romerol,
/datum/reagent/gondola_mutation_toxin,
/datum/reagent/metalgen,
/datum/reagent/flightpotion,
/datum/reagent/eigenstate,
/datum/reagent/magillitis,
/datum/reagent/pax,
/datum/reagent/gluttonytoxin,
/datum/reagent/aslimetoxin,
// misc
/datum/reagent/blood,
/datum/reagent/hauntium,
/datum/reagent/copper,
)
GLOB.wizard_rain_reagents |= allowed_exotic_reagents
// add a few randomized reagents not listed above so they at least have a chance
GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent))
GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent))
GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent))
```
## Why It's Good For The Game
More interesting effects for weather. The wizard events are always
supposed to be silly and wacky, so having stuff like raining ants or
booze is hilarious. Several OP chems are included like napalm, strange
reagent, and flight potion which can lead to some chaos.
## Changelog
🆑
add: Add wizard magical rain event. A random reagent is selected to rain
down across the station. The only places to escape are in maintenance
and inside containers such as lockers. The wizard is not directly
affected by the reagent, but the side effects might still apply. (ie.
raining lube, will make the floors slippery, which can slip the wizard)
/🆑
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
## About The Pull Request
adds a new visual effect for holograms ,such as holosigns and several
holoanimals, where they'll glitch out when walked through, attacked, or
when a thrown object passes through them
https://github.com/user-attachments/assets/5c18e48e-6ea5-4e57-a7d4-6a9323e317f5
## Why It's Good For The Game
i think its good for the sake of immersion. also, if pai players feel
like this might get annoying i have no problems excluding them from this
effect.
## Changelog
🆑
add: adds a new glitch-out effect for holograms when they're interacted
with
/🆑
## About The Pull Request
https://github.com/tgstation/tgstation/pull/90588 - but for martial
arts. Currently only 3 martial arts has a combo system, yet every single
hud for every living & human has an invisible martial art hud on them
24/7, "just in case".
The HUD in question

## Why It's Good For The Game
Removes having a HUD on every player 24/7 when in most cases it'll never
be used, and removes an unnecessary var on the base hud datum.
## Changelog
Nothing player-facing.
## About The Pull Request
Fixes#89445 (well, technically. It fixes the bug associated but these
`say`s should really be emotes.)
Three things:
1. Reworks how language translation works.
Rather than scrambling a sentence into a language entirely, sentences
are now scrambled on a per-word basis.
Additionally, the 1000 most common words of a language are *never*
re-scrambled across the duration of a round. Once it's set it's set in
stone.
Example: (Sample / Old / New)

This allows for a number of things:
- More consistent translations, making it (more) viable to actually
"teach" someone words for something
- Maintaining emphasis such as caps (but not `||`, `++`, or `__` - at
least not yet)
- The following:
2. Adds partial language understanding
Some languages can understand portions of other languages.

This pr adds the following:
- Those who understand Beachtongue can understand 50% of Common and 33%
of Uncommon words.
- Those who understand Common can understand 33% of Beachtongue and 20%
of Uncommon words.
- Those who understand Uncommon can understand 20% of Common and 20% of
Beachtongue words.
3. Bilingual quirk has been expanded to accomodate these changes.
There are now two more preferences:
- Language Speakable
- You can toggle this, so you only understand the language, rather than
understand AND speak.
- Language Skill
- If you choose to be unable to speak the language, you can set how much
of the language you can understand, down to 10%.
## Why It's Good For The Game
Playing around languages is fun, but due to the way our translation
works, ALL context is immediately lost for what the other person may be
saying.
If the other person is shouting in all caps? Output language is normal
chatting. This is lame!
Even if someone is unable to understand you, there's a LOT you can
convey just by how you speak, and getting that across in game is quite
difficult when all translations get mauled so badly.
So this changes that.
- Emphasis like caps lock is maintained, so you see someone shouting in
caps in a foreign language you can probably intuit something is wrong
(but not what is wrong!)
- Some languages can gleam bits of other languages, so you MIGHT be able
to pick out context if you pay close attention
- "Brother" languages will now feel more like "brothers" and not
completely divergent
- You can even "teach" someone words in your language - at least the
most common words! (Until next round)
## Changelog
🆑 Melbert
add: Languages can now have partial understanding of other languages.
More common English words are more likely to be mutually understood.
add: Those who understand Beachtongue can understand 50% of Common and
33% of Uncommon words.
add: Those who understand Common can understand 33% of Beachtongue and
20% of Uncommon words.
add: Those who understand Uncommon can understand 20% of Common and 20%
of Beachtongue words.
add: Bilingual quirk: You can now choose between being able to speak or
not speak the language
add: Bilingual quirk: You can now choose to have partial understanding
of your language, rather than full.
qol: If you speak in ALL CAPS in a foreign language, the translated
words will also be ALL CAPS.
qol: Many more forms of punctuation are now conveyed across
translations.
qol: The 1000 most common English words will now never be scrambled when
translating into other languages for the duration of the round. This
means you can actually "learn" some words if you are especially
attentive! (Until the next round at least)
refactor: Refactored language translations. Report if you see any super
odd looking translations.
fix: Force-says forcing you to speak common (such as cult invocations)
will now correctly force you to speak common (even if you don't know
common)
/🆑
in the colossus fight, adds 1 second of delay between the telegraph
"Perish." and the actual attack, because it's currently nearly
impossible to react in time if you're within melee range, specially in
high ping
## About The Pull Request
Metalgen imprinting is now logged, foam and smoke have better logging
and so do plasma metalgenned things, metalgen no longer causes a ton of
runtimes on almost everything and foam and smoke no longer affect
abstract objects.
Also ***hopefully*** solves the issue with infinite hotspot loops, but I
don't think anyone knows what exactly occured there.
## Why It's Good For The Game
If servers explode, admins need to know who did it and coders need to
know how they did it.
## Changelog
🆑
fix: Metalgen foam/smoke no longer cause an absurd amount of runtimes
fix: Foam and smoke no longer affect abstract objects like landmarks
admin: Metalgen imprinting is now logged
admin: Improved logging for foam and smoke, and plasma metalgenned
objects
/🆑
## About The Pull Request
- Hypermetabolic Blood
- You bleed 1.5x more, but regenerate blood 6x faster.
- For reference: A moderate slash wound is ~2 blood loss per tick, a
crit slash wound is ~4 blood loss per tick, and you regenerate ~0.25
blood per tick.
- For weak bleed wounds, you will net lose less blood per tick with the
mutation than without.
- However, for strong bleed wounds you will net lose more blood per tick
with the mutation.
- Ultimately, you will (obviously) recover much faster once closing the
wound.
- Affected by synchronizer and power
- Rock Eater
- You can eat materials like a golem.
- Rock Absorber
- You can eat materials like a golem, and you will also gain golem buffs
from them.
- Combination gene from "Rock Eater" and "Stoner"
- I didn't (deeply) vet if any of these effects would be OP combined
with other genes, but I'm chalking it up to emergent gameplay if I miss
something
- Farsight
- Gives you an action button which lets you expand your view range
- Affected by power
- Inexorable
- Disables soft crit, but entering the threshold for soft crit will
cause ticking brute/toxin damage and force you to whisper.
- No slimepeople can't cheese this
- Also is an innate "painkiller".
- Affected by synchronizer
## Why It's Good For The Game
Just some random mutation ideas I had, for more genetics shenanigans.
They're all relatively unobtrusive but have some niche potential
(Bleeding more for Blood Cult? Farsight + Thermals? Inexorable +
Martyrdom?)
## Changelog
🆑 Melbert
add: "Hypermetabolic Blood" Mutation
add: "Rock Eater" Mutation
add: "Rock Absorber" Combination Mutation
add: "Farsight" Mutation
add: "Inexorable" Mutation
/🆑
## About The Pull Request
yeah, fixes that thing
Also shuffles some of this redeem_voucher_async code into multiple
procs, no change in behavior there.
## Why It's Good For The Game
the economy will never recover from this
https://github.com/user-attachments/assets/83a0acef-4de0-42c3-8012-7f5d960de70d
## Changelog
🆑
fix: Mining vendors will no longer mistake non-voucher items as
authentic mining vouchers
/🆑
## About The Pull Request
Fixes#90510
I added the overlay when only smites that destroyed the body had the
divine smite flag, then I added the flag to a bunch more things. Oops
## Changelog
🆑 Melbert
fix: Fix divine smites making you glow forever
/🆑