Skip to content

Darkpack Pull 3/19/2026#20

Merged
FalloutFalcon merged 470 commits into
ApocryphaXIII:masterfrom
FalloutFalcon:darkpack-pull-3-19-26
Mar 19, 2026
Merged

Darkpack Pull 3/19/2026#20
FalloutFalcon merged 470 commits into
ApocryphaXIII:masterfrom
FalloutFalcon:darkpack-pull-3-19-26

Conversation

@FalloutFalcon

Copy link
Copy Markdown
Member

No description provided.

MrMelbert and others added 30 commits February 24, 2026 21:06
…in (#95221)

## About The Pull Request

When you craft food, the food's base reagents are cleared and replaced
with all the produce's foods


https://github.com/tgstation/tgstation/blob/a2af8930399a73e2b668ff8689c7288e9cc28bc3/code/datums/components/food/edible.dm#L338-L350

Then we made crafting also transfer in reagents used in crafting for
full parity


tgstation/tgstation@74761fd

This caused a few bugs, but this commit in particular had a major effect
in that it made it so the "clear reagents" step was only invoked when a
reagent is used in crafting, which few food actually uses


tgstation/tgstation@5970b67

This PR moves the check back outside of the `holder` check

I don't think it'll cause any regressions for the second linked commit,
as the only recipes that have the `clear_reagents` flag is food

However I felt pretty certain the first commit would regress, so I made
sure the recipes mentioned in it would continue to work

## Changelog

:cl: Melbert
fix: Food items no longer "duplicate" their intended reagents when
crafted
/:cl:
## About The Pull Request

Putting the power pack from the laser rifle into the recharger causes
runtimes every process call because it's comparing a list to a number

## Why It's Good For The Game

Bug fix

## Changelog
:cl:
fix: fixed recharger not properly charging the laser rifle power pack
/:cl:
## About The Pull Request

`shock` was copy pasted across a bunch of base types
I needed the behavior unified and it was fairly trivial to do 
So now we have `/obj/proc/shock` which all the old implementations call 

## Changelog

:cl: Melbert
refactor: Made some minor changes to how things like airlocks, vendors,
and autolathes shock you. Report any wierdness with that
/:cl:
## About The Pull Request
Oh this aint ttrpg accruate. I dont know how but i landed on this while
looking at stuff and realized you do NOT get night vision and its also
is a roll.

<img width="423" height="286" alt="image"
src="https://github.com/user-attachments/assets/cdeeeed2-3701-4b27-bd6a-c862e7831dd4"
/>

## Why It's Good For The Game
Night vision for vampire is actually surprisingly hard to find. (Outside
COD mabye??) your are not necessarily meant to be adapted to the night
as its a curse. TTRPG accuracy.

## Changelog
:cl:
balance: Removed shroudsights night vision
balance: Shroud sight requires a perception + awareness roll
/:cl:
## About The Pull Request
Makes the chocolate bar take a random brand of chocolate bar from
bloodlines.
<img width="501" height="638" alt="image"
src="https://github.com/user-attachments/assets/8e73ead9-318f-4afa-9c7e-abcbcdf37db7"
/>
## Why It's Good For The Game
Sovl
## Changelog
:cl:
add: Chocolate bars now have random brand name.
/:cl:
## About The Pull Request

Adds the Automatic Fire component to most Full-Auto firearms.

Given our extremely asymmetrical balancing, this is going to need some
extensive in-round testing and adjustments to catch big oversights I'd
not found in my own testing.

## Why It's Good For The Game

My Unregistered Automatic Weapon Should Not Be Shooting In A 4 Round
Burst Each Click
## Changelog
:cl:
add: Most Automatic Guns have gotten Full-Auto Capacity, please make an
issue report for extremely unfair TTKs
/:cl:

---------

Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com>
## About The Pull Request

code bounty on TFN that didn't make the feature freeze, a crime long
overdue, will now be corrected...

also nagarajas 

fixes DarkPack13#647 
fixes DarkPack13#284 except not reallly because i made an unatomized issue
fixes DarkPack13#345 
fixes DarkPack13#196 
fixes DarkPack13#543 

this feature was originally coded by Silverrat for Dyzennon and I
promised long ago to port it to Darkpack so that's what I'm going to do

requires DarkPack13#542 

## Why It's Good For The Game

ye

## Changelog

:cl:
add: adds Nagaraja
add: adds Samedi and their discipline Thanatosis
add: adds Giovanni atavism quirk, the Cappadocian accelerated corpse
decay quirk, and the 'Monstrous' appearance 0 masquerade breaching face
quirk
add: adds Harbinger of Skulls
add: Cappadocian weakness is now limited to rotten1 and rotten2, with a
quirk designed to accelerate the corpse decay
fix: removes Giovanni from Camarilla roles besides Tower Employee
fix: removes Cappadocian from Giovanni Capo
fix: vampires, ghouls, and garou can now play dealer
code: included_clans for darkpack quirks so we don't have a massive
excluded_clans list for quirks that are available for all clans minus
one
/:cl:

---------

Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com>
…se is_custom_emote variable in living_say (#95082)

## About The Pull Request

During message hearing, mobs are displayed two versions of the message
they hear, determined by the languages they understand, their mob type
(AI's and ghosts get follow buttons, for example), and special handling
for runechat.

It's a bit of a deep drive, but this bug's been present since #62130.
This implements a check for the flag being sent down, so that when the
runechat is generated, we don't get the cleared placeholder string set
in `/mob/proc/check_for_custom_say_emote()` - set because the message is
never meant to be parsed as a chat message.

Before, the message string sent down `/mob/dead/observer/Hear()` did not
know the message was an emote, so the message passed to the function
that generates the runechat receives the placeholder string. With this
PR, that function now receives the correct string, the same as living
would handle it.

While searching for this bug, I found that a variable was set, but never
used more than once in `/mob/living/Hear()` - I changed the code that
accesses this variable to access the saved inline version instead
(hopefully saving some cpu!!).
## Why It's Good For The Game
## Changelog
:cl:
fix: fixed runechat's for radio emotes appearing incorrectly for
observers
code: reuse the emote check from living's hearing function
/:cl:
## About The Pull Request
makes the process acctually do anything and makes sure lattice over them
stop them from hurting you.
## Why It's Good For The Game
fix
## Changelog
:cl:
fix: Acid turfs wont hurt if under a catwalk
/:cl:

Co-authored-by: XeonMations <62395746+XeonMations@users.noreply.github.com>
## About The Pull Request

Noticed that gargoyle leg and tail checkbox and clan beastmark feature
was being displayed for all vampires, not just those with that relevant
feature, so I made sure the proc returns false if all conditions fail,
extra safety in garg legs and tail's apply_to_human aswell to avoid
ventrues with gargoyle legs

also removed a duplicate comment from garg legs and tail proc that was
copy pasted

## Why It's Good For The Game

bugfix

## Changelog
:cl:

fix: added safety checks for gargoyle tail and legs and beastmarks

/:cl:

---------

Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com>
## About The Pull Request
Some tweaks after feedback.
## Why It's Good For The Game
It was spammy and hitting the wrong balls despite a billion successes is
bad!
Its fine mostly at low stats but when you have high stats it can run out
of balls your actually aiming for plus random chance outside the roll.
## Changelog
:cl:
qol: Balls hit in billiards are now purely based on success rather
success being a modifier.
qol: Hit balls are all displayed on a single line to avoid spam.
qol: Moved striking ball to right click to allow you to place the cue
back onto the table
/:cl:
…k13#711)

## About The Pull Request
## Why It's Good For The Game
This was used as a stop gap because discs were annyoing to search for.
This is no longer the case.
## Changelog
:cl:
fix: Typhon's Brew actually shows up if you have Serpentis
refactor: Reworks DISCIPLINE_KNOWLEDGE traits into checks for the disc
code: Some type casts on `attack_self`s mostly have type safety to
prevent run-times if you use it while not a human
/:cl:

---------

Co-authored-by: XeonMations <62395746+XeonMations@users.noreply.github.com>
Co-authored-by: chazzyjazzy <33268885+chazzyjazzy@users.noreply.github.com>
## About The Pull Request

The tgui was using a deprecated type 'content' when now it needs to use
'children', inStock was working better as stock > 0 instead of checking
the 'available' boolean, and in the process i found out that upstream
added its own stock tracking system so I changed the stock tracking to
use that instead, the vars amount and max_amount

fixes DarkPack13#723 

## Why It's Good For The Game

bugfix

## Changelog

:cl:

fix: thaumaturgy archive now correctly handles stock

/:cl:
## About The Pull Request
See changelog.
## Why It's Good For The Game
More mostly accurate forms
## Changelog
:cl:
fix: Default protean fight form swapped from dog to wolf
fix: Animalism summon is a true wolf instead of renamed dog.
add: Gangrel protean has dog and corvid
/:cl:
XeonMations and others added 18 commits March 15, 2026 00:48
## About The Pull Request
## Why It's Good For The Game
## Changelog
:cl:
/:cl:
## About The Pull Request
## Why It's Good For The Game
## Changelog
:cl:
add: readds height
/:cl:

---------

Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Cursor <102828457+theselfish@users.noreply.github.com>
Co-authored-by: Leland Kemble <70413276+lelandkemble@users.noreply.github.com>
Co-authored-by: Aliceee2ch <160794176+Aliceee2ch@users.noreply.github.com>
Co-authored-by: Hatterhat <31829017+Hatterhat@users.noreply.github.com>
Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com>
Co-authored-by: loganuk <falseemail@aol.com>
Co-authored-by: Y0SH1M4S73R <y0sh1m4s73r@gmail.com>
Co-authored-by: Pink <sightld2@gmail.com>
Co-authored-by: Bridget (Yaki) <53800426+YakiAttaki@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Aylong <69762909+AyIong@users.noreply.github.com>
Co-authored-by: Nick <jughu1@hotmail.com>
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Lucy <lucy@absolucy.moe>
Co-authored-by: Yobrocharlie <Charliemiller5617@gmail.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: Gboster-0 <82319946+Gboster-0@users.noreply.github.com>
Co-authored-by: Gaxeer <44334376+Gaxeer@users.noreply.github.com>
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com>
Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com>
Co-authored-by: mcbalaam <104003807+mcbalaam@users.noreply.github.com>
Co-authored-by: RengaN02 <60517664+RengaN02@users.noreply.github.com>
Co-authored-by: Da Cool Boss <142358580+DaCoolBoss@users.noreply.github.com>
Co-authored-by: Cameron Lennox <killer65311@gmail.com>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>
Co-authored-by: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com>
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
Co-authored-by: paganiy <126676387+paganiy@users.noreply.github.com>
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: FeudeyTF <72273449+FeudeyTF@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Iajret <8430839+Iajret@users.noreply.github.com>
Co-authored-by: Nick <nick@nfreader.net>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: theOOZ <sheepwiththemask@gmail.com>
Co-authored-by: grungussuss <96586172+grungussuss@users.noreply.github.com>
Co-authored-by: Pik1ta <supernikitapetrov@gmail.com>
Co-authored-by: mskinner5278 <m.skinner5278@gmail.com>
Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
Co-authored-by: Pepsilawn <reisenrui@gmail.com>
## About The Pull Request

fixes DarkPack13#527

changes camarilla bouncers to be wearing a red turtleneck bulletproof
vest balaclava combo

<img width="506" height="101" alt="image"
src="https://github.com/user-attachments/assets/a2c822dd-5bac-4c42-afea-456a09f11841"
/>

little errors are from the MP5 not having a worn sprite, will work that
out later

## Why It's Good For The Game

bugfix and personal preference

## Changelog
:cl:
fix: endron bouncers now wear the correct uniforms, camarilla bouncers
now wear red turtlenecks and armoured vests
/:cl:
## About The Pull Request
Adds logic for getting the "most important" splat on a mob, functionally
right now, its the firs full splat you have.

Renames the issplat helpers to be more clear that they are getters
instead of returning truth
## Why It's Good For The Game
In theory should simplfy some logic if you need to decide a singular
splat to use. And some helpers for halfsplat checks if someone finds
that useful

issplat is a bit confusing.

## Changelog
:cl:
refactor: Cleans up some syntax on splat helpers
/:cl:
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

See: The-Final-Nights/The-Final-Nights#967
except it probably does break sheets but given this is rebase-repo I'm
not sure how one could modularly *not* break sheets.

## Why It's Good For The Game

See: The-Final-Nights/The-Final-Nights#967

## Changelog
:cl:
spellcheck: Renamed Metis to Crinos
/:cl:
## About The Pull Request
Makes indexes of stat holder lists a type rather then string
## Why It's Good For The Game
The only place a string was useful was tgui so we do text2path there
instead of EVERYWHERE else.

Allows for better handling, as you can access the type directly if you
need something like a name, and dont have to wrap all logic on strings
which is annoying.

Its a hanger-on from when we were direct saving the list for prefs. this
is no longer needed.
## Changelog
:cl:
code: List index for stats was made its type instead of a type as a
string
/:cl:
## About The Pull Request
Reimplements Melpominee.

### Caveats:
- ~~Dot 5 is not Virtuosa because I'm not skilled enough at this time to
make it work in a user-friendly way. It has been replaced with an
earlier edition's 5 dot, Death of the Drum, which is functionally
identical to the old implementation (Shattering Crescendo, which in V20
is a 6 dot.)~~
- ~~Siren's Beckoning does not include the odd cumulative success system
from the book, mainly because I'm not skilled enough to code it but also
because we do not have Derangements at this time.~~
- ~~Siren's Beckoning is meant to have a particle effect but it does not
work at this time.~~
- ~~The Missing Voice does not follow a moving target.~~ Not planned
- ~~Dot 5 is using placeholder audio pending suitable sound effects. I'm
not sure of the source of this audio and therefore it's license. It'll
be changed before this PR is ready for review.~~

<details>

### The Missing Voice
The character can “throw” her voice anywhere within her line of sight.
This enables the Daughter to carry on surreptitious conversations, sing
duets with herself, or cause any number of distractions. This power can
also be combined with other Melpominee powers to disguise their source
(and some Daughters use it to conceal the fact that Melpominee powers do
not function through recorded media).

*Click on a location to speak from that location. Allows talking to
people off-screen.*

### Phantom Speaker
The Daughter can project her voice to any individual she has personally
met. Distance is no object, but it must be night wherever the target
presently is. The vampire can sing, talk, or otherwise project her voice
in any way she sees fit (including other uses of Melpominee), but she
cannot hear what she is saying, and therefore suffers a +1 difficulty to
any rolls accompanying her utterance. For instance, the vampire could
project her voice to an enemy in an attempt to intimidate him, but would
suffer a +1 to the difficulty of the Charisma + Intimidation roll.

*Select a name from your saved guestbook and send a message to them from
any distance. Depending on successes, subsequent messages to not cost
additional bloodpoints.*

### Madrigal
Music has the power to sway the listener, engendering specific emotions
through artful lyrics, pounding crescendo, or haunting melody. The
Daughters of Cacophony can tap into music’s power, forcing listeners to
feel whatever they wish. The emotion becomes so powerful that the
listener must act, though what a listener does isn’t something the Siren
can directly control.

*Change the emotion of everyone in range who fails a Wits + Awareness
check to the emotion you select.*

### Siren's Beckoning
The Daughters of Cacophony don’t spread madness as surely (or as
visibly) as the Malkavians, but their songs are definitely detrimental
to one’s sanity. With this power, the Daughter can drive any listener to
madness. Most of the time, the victim is too fascinated to realize that
he should leave the area and block out the music from his mind.

*Select a target and stun them and yourself for 5 seconds, provided they
fail a Willpower check. Remain stationary to continue channeling the
stun for up to a total of 20 seconds. Using items will not cancel the
channeling.*

### Virtuosa
Most of the low-level Melpominee powers can only be used on one target
at a time. When the Daughter reaches this level of mastery in her
Discipline, she can "entertain” a wider audience. Each member of the
audience hears the same message.

*When activated, Phantom Speaker and Siren's Beckoning can be used on
multiple people. 1 additional bloodpoint cost per 5 people past the
first target.*

### Death of the Drum
The Daughter can sing powerfully enough to rend flesh, split skin, and
crack bone. While some Kindred unfortunate enough to witness this power
make reference to the fact that even mortal singers can shatter glass at
the right frequency, others note that volume and intensity don’t seem to
matter when a Daughter employs Death of the Drum. The Siren can sing a
soothing lullaby and still kill a target.

*Select a target and deal a tremendous amount of Aggravated damage and
ear damage.*

</details>

## Why It's Good For The Game
Daughters of Cacophony are once again fully featured!
## Changelog
:cl:
add: Melpominee
code: Moves Emotion to /mob
code: Proc to convert Emotion to a quality (i.e. Afraid -> fear)
/:cl:

---------

Co-authored-by: FalloutFalcon <falloutfalconplays@gmail.com>
Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com>
Co-authored-by: chazzyjazzy <33268885+chazzyjazzy@users.noreply.github.com>
Co-authored-by: buffyuwu <buffyvrc@gmail.com>
## About The Pull Request

adds stool variations [black, blue, and green]

<img width="398" height="451" alt="image"
src="https://github.com/user-attachments/assets/01f0f210-e1b5-49a2-be2a-2bfda7bb808e"
/>

<img width="206" height="356" alt="image"
src="https://github.com/user-attachments/assets/5ab87ca1-f4a8-42ee-a43c-4cb44333b848"
/>


## Why It's Good For The Game

we only had red stools but we had black blue and green variants of most
chairs

I just wanted blue stools in the downstream but figured it would be
better to do the rest and put it here

## Changelog
:cl:
add: black, blue, and green variants of barstools
/:cl:
@FalloutFalcon FalloutFalcon requested review from a team as code owners March 19, 2026 14:07
@FalloutFalcon FalloutFalcon added the Upstream Merge Copy and paste Darkpack code. If it compiles, it ships! label Mar 19, 2026
@FalloutFalcon FalloutFalcon merged commit 1dac433 into ApocryphaXIII:master Mar 19, 2026
37 of 43 checks passed
@FalloutFalcon FalloutFalcon deleted the darkpack-pull-3-19-26 branch March 19, 2026 16:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.