Moves all the dna block handling onto singleton datums initialized
inside global lists, to make the handling dna less of a copy-paste mess
and make adding new blocks significantly easier. There is still some
work to be done in the copypaste department but ultimately that falls
under its own PR scope after the core refactor goes through. (Ill
probably do those but it will also be easier for everyone else as the
code is now significantly less of an eyesore)
Both features and identities have been tested through and through, and
seem to be working fine.
Also removed the reliance on weird hardcoded lookup tables for length,
and other similar things that just didn't make sense when I was passing
through DNA code. There's a lot more that fall out of scope for this
exact PR's goal however
I've been told the maintainers will love me for doing this
🆑
code: feature keys are no longer magical strings floating around the
codebase and use proper defines
refactor: DNA blocks are now handled with singleton datums.
/🆑
## About The Pull Request
Extends the max range for integer scaling up to 9x, corrects some
misinfo in the visuals guide
## Why It's Good For The Game
This allows proper integer scaling up to 8k resolution, which not only
is generally the highest consumer-available resolution currently, but
also the next resolution that is able to perfectly display a 480p image
on it via integer scaling.
Also corrects misinfo because misinfo is bad.
## Changelog
🆑
qol: Increased the integer scaling range up to 9x
/🆑
## About The Pull Request
Fixes#92125
Very simple, when working without an instantiated datum we would read
from the config manually, but some places neglected to do that.
So I added a macro to help in the future.
## Changelog
🆑 Melbert
fix: Fixes some places where dynamic configs were not being read
correctly
/🆑
Savefile versioning is quite robust, but it relied a lot on comments to
explain why exactly it worked (such as needing to explain that
error/empty states were negative integers only because any valid
savefile version would be a positive integer). Anyways, let's spell it
out a lot more using `#define` values and dmdoccing said values in order
to make the whole system a bit more cohesive.
This also corrects an issue that has irked me for a while, which is that
we call and go through `update_preferences()` or `update_character()`
_every single time_. `SAVEFILE_VERSION_MAX` is essentially just a
placeholder, it's not checked against anything! Let's use that in one of
the new macros we created so we can slim down on the proc call overhead
(as well as whole branches of code) that we iterate through every single
time we load a savefile. Like we were generating a backup json every
single run without fail, let's trim that out when it's not necessary.
More clear for people operating on this code in the future as well as
does a lot less work. Win win.
Tested it and it migrated my savefile from 48 -> 49 without any ill
effect. Let me know if we want to have the redundancy behavior baked in
where we call these procs/enter code branches every single time though-
I would rather just bake the code in that way rather than live in a
world of confusion on why it operates that way.
🆑
server: Savefile migration has been tweaked a bit, though there
realistically shouldn't be any issues with this. Keep a wary eye out
though.
/🆑
## About The Pull Request
Borg me dogtag is a loadout item instead of a quirk
## Why It's Good For The Game
The quirk doesn't do anything
## Changelog
🆑 Melbert
del: "Cyborg Pre-screened dogtag" quirk. It's a loadout item now.
/🆑
## About The Pull Request
Ok there's a lot here, sorry bout that.
- Cleaned up the permissions panel backend pretty signficantly
- Added some extra security measures to said code, mostly proc call
checks
- Properly implemented filtering code jordie wrote years and years ago
for permissions logs
- Cleaned up the permissions ui generally, more bars, nicer lookin
stuff, etc
- Fixed the Management panel's relationship with combined roles, and
renamed it to Housekeeping. Its display is expanded too.
- Added tracking to rank datums on where exactly they came from
- Added a new tab to the permissions panel which allows the modification
and deletion of ranks
- Beefed up rank modification to try and avoid accidential temp rank
additions to the db
I'm doing my best to avoid perms escalation issues, tho they are always
possible right.
Also, got mad at some query cleanup handling, did a pass on it. this
isn't nearly all of em, but it's some.
## Why It's Good For The Game
I realized there is no way to, in game, cleanly edit/create ranks, and
that the way the existing system worked was quite opaque.
I'm trying to fix that here. It does mean potentially opening up DB rank
deletion/modification to bad actors, but frankly I am not overly worried
about that. Admin modification has always been a vulnerability so like.
Here's a video with my changes (mostly, it's lightly outdated)
https://file.house/XqME7KWKk0ULj4ZUkJ5reg==.mp4
## Changelog
🆑
refactor: Fucked with admin rank setup very slightly, please yell at me
if anything is wrong.
admin: Updated the permissions panel to be a good bit more user
friendly, added rank management support to it.
server: I've added code that gives the game modification/deletion perms
for the rank table, be made aware.
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
Implements https://hackmd.io/@tgstation/SkeUS7lSp , rewriting Dynamic
from the ground-up
- Dynamic configuration is now vastly streamlined, making it far far far
easier to understand and edit
- Threat is gone entirely; round chaos is now determined by dynamic
tiers
- There's 5 dynamic tiers, 0 to 4.
- 0 is a pure greenshift.
- Tiers are just picked via weight - "16% chance of getting a high chaos
round".
- Tiers have min pop ranges. "Tier 4 (high chaos) requires 25 pop to be
selected".
- Tier determines how much of every ruleset is picked. "Tier 4 (High
Chaos) will pick 3-4 roundstart[1], 1-2 light, 1-2 heavy, and 2-3
latejoins".
- The number of rulesets picked depends on how many people are in the
server - this is also configurable[2]. As an example, a tier that
demands "1-3" rulesets will not spawn 3 rulesets if population <= 40 and
will not spawn 2 rulesets if population <= 25.
- Tiers also determine time before light, heavy, and latejoin rulesets
are picked, as well as the cooldown range between spawns. More chaotic
tiers may send midrounds sooner or wait less time between sending them.
- On the ruleset side of things, "requirements", "scaling", and
"enemies" is gone.
- You can configure a ruleset's min pop and weight flat, or per tier.
- For example a ruleset like Obsession is weighted higher for tiers 1-2
and lower for tiers 3-4.
- Rather than scaling up, roundstart rulesets can just be selected
multiple times.
- Rulesets also have `min_antag_cap` and `max_antag_cap`.
`min_antag_cap` determines how many candidates are needed for it to run,
and `max_antag_cap` determines how many candidates are selected.
- Rulesets attempt to run every 2.5 minutes. [3]
- Light rulesets will ALWAYS be picked before heavy rulesets. [4]
- Light injection chance is no longer 100%, heavy injection chance
formula has been simplified.
- Chance simply scales based on number of dead players / total number
off players, with a flag 50% chance if no antags exist. [5]
[1] This does not guarantee you will actually GET 3-4 roundstart
rulesets. If a roundstart ruleset is picked, and it ends up being unable
to execute (such as "not enough candidates", that slot is effectively a
wash.) This might be revisited.
[2] Currently, this is a hard limit - below X pop, you WILL get a
quarter or a half of the rulesets. This might be revisited to just be
weighted - you are just MORE LIKELY to get a quarter or a half.
[3] Little worried about accidentally frontloading everything so we'll
see about this
[4] This may be revisited but in most contexts it seems sensible.
[5] This may also be revisited, I'm not 100% sure what the best / most
simple way to tackle midround chances is.
Other implementation details
- The process of making rulesets has been streamlined as well. Many
rulesets only amount to a definition and `assign_role`.
- Dynamic.json -> Dynamic.toml
- Dynamic event hijacked was ripped out entirely.
- Most midround antag random events are now dynamic rulesets. Fugitives,
Morphs, Slaughter Demons, etc.
- The 1 weight slaughter demon event is gone. RIP in peace.
- There is now a hidden midround event that simply adds +1 latejoin, +1
light, or +1 heavy ruleset.
- `mind.special_role` is dead. Minds have a lazylist of special roles
now but it's essentially only used for traitor panel.
- Revs refactored almost entirely. Revs can now exist without a dynamic
ruleset.
- Cult refactored a tiny bit.
- Antag datums cleaned up.
- Pre round setup is less centralized on Dynamic.
- Admins have a whole panel for interfacing with dynamic. It's pretty
slapdash I'm sure someone could make a nicer looking one.


- Maybe some other things.
See readme for more info.
Will you see a massive change in how rounds play out? My hunch says
rounds will spawn less rulesets on average, but it's ultimately to how
it's configured
🆑 Melbert
refactor: Dynamic rewritten entirely, report any strange rounds
config: Dynamic config reworked, it's now a TOML file
refactor: Refactored antag roles somewhat, report any oddities
refactor: Refactored Revolution entirely, report any oddities
del: Deleted most midround events that spawn antags - they use dynamic
rulesets now
add: Dynamic rulesets can now be false alarms
add: Adds a random event that gives dynamic the ability to run another
ruleset later
admin: Adds a panel for messing around with dynamic
admin: Adds a panel for chance for every dynamic ruleset to be selected
admin: You can spawn revs without using dynamic now
fix: Nuke team leaders get their fun title back
/🆑
(cherry picked from commit 4c277dc572)
## About The Pull Request
This is an atomized revival of #82419, with this part containing the
simplest of its features:
- Fixes AO pref refreshing the wrong plane, thus not updating until you
swap bodies
- Removes supermatter's copypasted warp effect
- Culls distortion effects when they're not in use because its a chonky
filter
- Hides the escape menu when its, well, hidden
- Fixes hide_highest_offset not working upon parent's creation (we're so
good at our jobs hell yeah)
- Replaces runechat's AO dropshadow with an outline, because its barely
visible due to low opacity.
## Why It's Good For The Game
Our rendering performance is shit and we need to improve it, and the
first step in this task is optimizing planecube's simplest parts. The
next step is conditional culling, better non-multiz handling and
parallax rework/removal, but all of those need to be atomized as to
prevent the PR from sharing the fate of the original.
## Changelog
🆑
fix: Ambient Occlusion pref should now update immediately upon being
changed, instead of having to swap bodies or waiting for server restart
to get it updated.
code: Slightly improved rendering code/performance just a tiny bit.
/🆑
## About The Pull Request
Upstream now has a system for this, removes all our override code and
changes the relevant quirks to use the upstream system instead
## Why It's Good For The Game
Fixes#3732
## Proof Of Testing
Tested it on a local with sol weakness, masquerade, and hydrophillic,
the latter wasn't selectable unless you were a slime, the former two
weren't selectable unless you were a hemophage. Sol weakness was still
removed as normal if you turned into a bloodsucker
## Changelog
🆑
fix: fixed species-locked quirks not actually working
/🆑
## About The Pull Request
It breaks by setting ``is-fullscreen`` to false so we need to basically
not call set_fullscreen ever as it will permanently remove it from the
client. I can't figure out why this happens, but setting
``is-fullscreen`` to any value permanently removes ``menu`` from
mainwindow, which is what this subtitle bar thing uses.
## Why It's Good For The Game
I don't like the title bar and i want it gone but this is a bug fix.
## Changelog
🆑
fix: The title bar is back for non-fullscreen users.
/🆑
Removes the blur of the escape menu so players can sorta see what's
going on in their game while going through, so they can react in case
something's happening while they're in menu.
Changes the font of the escape menu so it's no longer the LISA font
Makes the title only show up on the home menu, so being on the suicide
panel wont show you "another day on space station 13".
Moves the 'back' button on the suicide menu to the top left.


This hopes to make the escape menu a little more easy to go through,
removing some obstruction of your game's screen so you can see what's
happening around you, and give a little generic part of submenus in case
we add more (which I do have at least one planned).
🆑
qol: The escape menu no longer blurs the game in the background.
qol: The escape menu now has a more readable font, and the escape menu's
back button is now smaller and in the corner.
/🆑
Prettier (an auto formatter) is set to only run within the tgui folder
currently. This removes that limitation, allowing it to automatically
format all supported files in the repo (.js, .html, .yml
[etc](https://prettier.io/docs/))
I made a few exceptions for bundled and generated files
I'm of the opinion that code should look uniform and am lazy enough to
want CTRL-S to format files without having to think beyond that
This is my second contribution to the move towards removing the stat
panel (first one being https://github.com/tgstation/tgstation/pull/90572
)
This moves the info buttons at the top right of the game's screen
(Changelog, Rules, Wiki, etc) to the Escape menu, except for Fullscreen
which is now a pref instead. This means you can set Fullscreen to be on
permanently and every launch will automatically fullscreen you (the
viewport will be a little off because it only fixes it once
initialization is complete). This follows through rounds and auto
updates if you set your game to fullscreen with the OOC button or F11,
so players will learn about the pref after playing a round with
fullscreen enabled.
What the game now looks like
be a newscaster
https://github.com/user-attachments/assets/7871a226-1e0b-410d-a690-88f3616bebb0
This is something I wanted to do since the Esc menu was added but just
never got around to it, but here it is.
These buttons don't warrant being in the player's face 24/7 and since
we've want to remove the stat panel and this has to be somewhere, I
thought it would be a better fit in the Escape menu. It helps make the
Esc menu the tool players use to access their OOC tools and overall I
think improves the appearance of the game's screen to something more
like an actual game would look like, especially when our comparison is
SS14.
🆑
qol: Info buttons previously at the top right of your screen (Changelog,
wiki, forums) is now in the Escape menu.
qol: Fullscreen is now a preferences and will follow you through rounds.
/🆑
## About The Pull Request
Add watermark to unvetted clients, add warning to unvetted clients when
attempting to join the game, eventually locking out access on September
1st. Add warning text to examine for unvetted clients
## Why It's Good For The Game
The time has come
## Proof Of Testing
Tested it extensively last night
## Changelog
🆑 Bubberstation Staff
add: The clock is ticking.
/🆑
## About The Pull Request
Adds a new HUD element that only shows up when you're resting that
flicks when you click it once, and puts you to sleep for 40 seconds if
you double click it (so you don't accidentally sleep yourself for 40
seconds), which is meant to replace the verb in the stat panel.
Doesn't show up if you're sleep immune.
I also fixed alien huds a bit, putting rest on the right side where it
is for every other mob, and brought the floor change buttons down to
compensate.
New Larva HUD (other xenos have Throw between rest and sleep)

Demonstration
https://github.com/user-attachments/assets/11f7574d-dd6d-4da5-ab39-6fcf6d6694b9
Rest can be seen in IDB
### New accessibility setting
As a compromise to putting a tgui confirmation menu in your face or
requiring a double click, I added a new setting in accessibility tab
that allows you to disable "double click" features. So far all it does
is give a tgui menu instead of require double click for sleeping, and
allow you to further examine things with a linked button in base
examine.
## Why It's Good For The Game
Sleep is currently only a verb available in the stat panel, this
provides an alternative so it doesn't become a chatbar-only verb when
the stat panel is removed. It's also just good feedback to the player
that this action exists.
This is part of my ongoing project to remove the Stat panel which you
can read/contribute to here: https://hackmd.io/443_dE5lRWeEAp9bjGcKYw
Replaces the pAI button at the bottom of Ghost's HUD with a new button
for Ghost settings
Default look

With fun verbs (admin only, the 2 buttons at the top right), No body,
and lag switches on (disables T-Ray and Zooming)

The ghost icon next to "re-enter body" is the DNR button, which requires
double click.
Extra view is now easier to understand, 0 is "default", anything more is
extra vision you get. Goes to 3 for regular users, 7 for BYOND members.
Removes the "Ghost" tab from the stat panel entirely, this replaces it.
The Ghost tab of the stat panel is filled with barely functional stuff,
like "Jump to Mob" which allows you to jump to "oranges ear" which
teleports you to nullspace, or the 4 different jump to verbs for
different things which is irrelevant from the Orbit menu and the many
improvements it got over the years, and even the Notifications panel,
which seems pretty useful, but because it's delegated to a small button
filled with the rest of these it gets entirely drowned out.
This puts all the important things in front of the user at the click of
a button, meant to be easy to navigate and giving important information
first.
🆑
add: Added a 'Ghost settings' button, taking the spot of the pAI
candidate button and replacing the "Ghost" tab of the Stat panel. This
button contains buttons pertinent to your time as an Observer.
/🆑
Being colorblind now makes you see all wires in tones of grey.
Also fixes the eyechart not taking the monochromacy quirk into account
when checking for colorblindness
Makes the quirk/trauma a bit more immersive and can lead to funny
situations when you know which color to cut but can't find it.
## About The Pull Request
Currently the button to open a map in webmap is tied to a config entry,
which would then take the name of the map being played and get the link
to that, however for cases like new/tested/admin uploaded maps where
there is no webmap available, this would still have a link to a url that
doesn't exist.
Instead, we'll make the webmap link be in ``maps.txt``, same as
feedbacklink.
## Why It's Good For The Game
Explained in the about section, this prevents webmaps appearing for maps
that aren't supposed to have a webmap link available.
## Changelog
Nothing player-facing, webmaps aren't currently used (afaik) currently
cause they're broken for tg codebases.
This PR adds a secondary character preference which allows you to pick
gender for silicon characters, and have the option of matching or
separating that with their character's main gender. Silicon gender is
displayed in their examine text as expected.
People will have a way to identify the gender of their characters when
playing as a cyborg and AI!
🆑 A.C.M.O.
add: Adds an option for picking silicon gender to secondary character
preferences. Matches the main gender preference by default.
add: Adds gender pronouns in cyborg/AI examine text.
/🆑
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
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.
🆑
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
Opinions aren't too strong about taking it out of the settings page, I
only did it cause settings doesn't auto update with the pref updating,
so I can put it back if wanted.
Adds a volume slider in radios which you can use to edit your own blip
volume, which then plays a blip back at you so you know what it sounds
like.
## Why It's Good For The Game
You now change the volume using the in-game item instead of having to
scroll through a bunch of settings and find it, and you get instant
feedback so you know exactly what it's gonna sound like.
https://github.com/user-attachments/assets/fe936ed8-9620-4e81-8782-e6fa99de100a
## Changelog
🆑
qol: Radios/headsets now have a slider to change the volume from radio
noises.
/🆑
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%.
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)
🆑 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)
/🆑
## About The Pull Request
left over debug line that someone ...? forgot about
## Why It's Good For The Game
scalies:
## Changelog
🆑
fix: removes an excess debug line
/🆑
## About The Pull Request
various uis (tgui-say, vv, player panel, anything using
`/datum/browser`) would not correct for dpi. they now do
we also have a preference to allow you to have smaller windows that are
zoomed out, instead of larger windows that are not zoomed
#### of note, this does require a small change to the usage of css
viewport units, like `vh` and `vw`. they need to be fed through the
`vp(100vw)` function first. there was only one such unit in the codebase
on 4k monitor with 200% scaling:
fixed (pref on default)

pref disabled

## Why It's Good For The Game
516 fucked with uis again and this unfucks them a bit
## Changelog
🆑
qol: there's a new UI preference called UI scale which allows people
that use windows scaling to have their UIs original size with the
contents zoomed out, instead of the default, which is the UIs being
larger with the contents "normal" size
fix: various UIs did not respect windows scaling, they now do
/🆑
---------
Co-authored-by: harryob <55142896+harryob@users.noreply.github.com>
Quirks can now define if they're "species appropriate," where the base
proc's behavior is simply "does this species already have the quirk's
main trait"
I am unsure if that on its own imposes any new restrictions, currently.
Additionally, blood deficiency cannot be picked on any species without
blood or that doesn't breathe.
I'm sure there's more that might make sense, I'm open to suggestions
Alternative to #90238
Currently, reduces the possibility of taking something like blood
deficiency on a race which suffers no downside from it in order to get
free positive quirks.
Future-ly, potentially allows quirks exclusive to only a select few
species as offered by #90238🆑
fix: Species without blood can no longer be blood deficient
/🆑
commit cb550ab79badae3ffd493dcee24d96f7ad146ed6
Merge: 732416f01d8 2fac5d45a6
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Mon Apr 14 14:40:04 2025 -0400
Merge branch 'master' into upstream-25-04a
commit 2fac5d45a6
Author: Arturlang <24881678+Arturlang@users.noreply.github.com>
Date: Mon Apr 14 01:11:47 2025 +0100
bring back heretic mute ghoul maxhp to 135 HP (#3464)
## About The Pull Request
bring back heretic mute ghoul maxhp to 135 HP, these are the changes
made in
https://github.com/Bubberstation/Bubberstation/pull/2972
## Why It's Good For The Game
otherwise flesh heretic is really sad
## Proof Of Testing
numbers change, no need
## Changelog
no cl
---------
Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
commit e9c4522c27
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Mon Apr 14 01:59:19 2025 +0200
Automatic changelog for PR #3453 [ci skip]
commit 2d595eba4f
Author: shellspeed1 <46614774+shellspeed1@users.noreply.github.com>
Date: Sun Apr 13 16:58:54 2025 -0700
Fixes bitrunning sim having cybersun comms and also makes sure persistence borgs have correct key (#3453)
## About The Pull Request
What it says on the tin
## Why It's Good For The Game
Its best to not let bitrunners ghost spawns talk on comms
## Proof Of Testing
I just did my last cpa today, I'll test this later. Besides its 3 lines
with just an item swaped.
<details>
<summary>Screenshots/Videos</summary>
</details>
## Changelog
🆑
fix: Bitrunning sims no longer have comms access
fix: Borgs given the persistence access upgrade no longer default to
interdyne and get cybersun comms instead
/🆑
Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
commit 394e8d64d4
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sun Apr 13 23:24:50 2025 +0000
Bubberstation automatic changelog compile [ci skip]
commit 49141446bf
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Mon Apr 14 00:18:15 2025 +0200
Automatic changelog for PR #3497 [ci skip]
commit 0332c060a8
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Sun Apr 13 18:17:52 2025 -0400
Xenoarch Machine QOL (#3497)
<!-- 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
A little treat for xenoarch
- The xenoarch bag can now hold broken items and useless relics in
addition to strange rocks
- You can use the bag on both the researcher and the recoverer to dump
the contents in
- The digger and the researcher make a sound now
## Why It's Good For The Game
A bag that holds only one type of item is annoying, you get a lot of the
other two items too
## Proof Of Testing
<!-- Compile and run your code locally. Make sure it works. This is the
place to show off your changes! We are not responsible for testing your
features. -->
<details>
<summary>Screenshots/Videos</summary>

</details>
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and its effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
qol: the xenoarch bag can now hold broken items and useless relics
qol: you can use the bag on the researcher and the recoverer to dump
items in
sound: the digger and researcher now make a sound when they complete a
cycle
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
<!-- By opening a pull request. You have read and understood the
repository rules located on the main README.md on this project. -->
commit 2b8c074406
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sun Apr 13 19:47:30 2025 +0200
Automatic changelog for PR #3498 [ci skip]
commit e613940ada
Author: nevimer <77420409+nevimer@users.noreply.github.com>
Date: Sun Apr 13 13:47:04 2025 -0400
restores RCD vending, moves RCD's to lockers (#3498)
## About The Pull Request
moves RCD's from engineers backpacks to their lockers roundstart - to
accommodate the stowaway change aswell as keep a tab on infinite station
resources.
## Why It's Good For The Game
Above point
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>
</details>
## Changelog
🆑
balance: reenabled the RCD vendors and moved RCD's from spawning in
backpacks to lockers.
/🆑
commit 732416f01d8ccc6e082cbdbeb60b30c461d8e965
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Sun Apr 13 03:03:20 2025 -0400
these use GMM prices and thus fluctuate
commit 99f097d67faf17569711d670d5891103d96932b1
Merge: 790b64602cd 945479a622
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Sun Apr 13 02:12:01 2025 -0400
Merge branch 'master' into upstream-25-04a
commit 945479a622
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Sun Apr 13 00:59:23 2025 -0400
Fix hot spring runtime related to duplicate elements (#90555)
If something is mapped to spawn in on a hot spring tile, the tile will
add the immerse element in `/turf/open/water/Entered` before
`Initialize` runs, and when it does there's no check if the element has
already been added, unlike other spots where the immerse element is
added. This fixes that by adding a check on the call in `Initialize`.
commit 3472fddc11
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date: Sun Apr 13 04:16:19 2025 +0000
Automatic TGS DMAPI Update (#2743)
This pull request updates the TGS DMAPI to the latest version. Please
note any changes that may be breaking or unimplemented in your codebase
by checking what changes are in the definitions file:
code/__DEFINES/tgs.dm before merging.
Full changelog can be found
[here](https://raw.githubusercontent.com/tgstation/tgstation-server/gh-pages/changelog.yml).
- Added compatibility with SpacemanDMM's `redefined_proc` lint. (#2058
Cyberboss)
#tgs-dmapi-release
Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
commit e5630753ae
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sun Apr 13 05:53:13 2025 +0200
Automatic changelog for PR #3481 [ci skip]
commit ac3fea9660
Author: chestlet <98193039+chestlet@users.noreply.github.com>
Date: Sat Apr 12 20:52:34 2025 -0700
Nova Port: RB-MK2 GUI Rework (#5136) (#3481)
## About The Pull Request
A significant [rework of the RB-MK2
GUI](https://github.com/NovaSector/NovaSector/pull/5136) that I did over
on Nova. The one you guys have now is painful to use in comparison so
let's get it up to snuff.
## Why It's Good For The Game
More information makes the RB-MK2 easier to use and teach in character.
With how the GUI is currently, it gives no intuitive explanation for
what it's doing. You can't tell what's going on with it.
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>
https://github.com/user-attachments/assets/7a178ac2-df8e-40d3-a6f3-b6aa617b69fd
</details>
## Changelog
🆑 Chestlet
admin: Improved RB-MK2 logging so admins have a full trace of exactly
what happened with it.
fix: Corrected 'tritium usage' math in the RB-MK2.
code: We've noticed that the Radioscopical Bluespace Reactor Mark Two
blueprints provided to our stations came with antiquated firmware. This
issue has been rectified. (Significant rework of the RB-MK2 GUI)
/🆑
commit 071fcd84a8
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sun Apr 13 05:48:58 2025 +0200
Automatic changelog for PR #3495 [ci skip]
commit 0a5f60a36c
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Sat Apr 12 23:48:24 2025 -0400
Xenoarch machines cleanup (#3495)
## About The Pull Request
Clean up the code for xenoarch machines some because it made me sad.
- Changes `attackby`'s to `item_interaction`
- Keep a list of xenoarch items in contents instead of storing them in
**an instance of `/obj/item` (yes the abstract concept of an item)**
- Add context tips for all item interactions and removes that info from
examine text
- Switched a list to `static`
- Add assoc list of `broken_item` types to reward pools instead of
having a nightmare ladder of `istype` checks
## Why It's Good For The Game
Fixes#3442
## Proof Of Testing
Scout's honor
## Changelog
🆑
qol: xenoarch machines have context tooltips now
fix: fixed xenoarch diggers not working
/🆑
commit 16f02c756b
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sun Apr 13 05:34:54 2025 +0200
Automatic changelog for PR #3441 [ci skip]
commit ede9fc1646
Author: Bombermansam <Bombermansam@yahoo.com>
Date: Sat Apr 12 23:34:09 2025 -0400
[Modular] Adds crowbars to standard borg models that do not have them (#3441)
## About The Pull Request
Adds crowbars to standard borg models that do not have them.
## Why It's Good For The Game
This is a QOL addition, it should not affect balance.
Half the borg models in the game do not have crowbars and can get stuck
behind doors if the power fails which is no fun for anyone. This fixes
it.
## Proof Of Testing
It compiles and was tested locally.
<details>
<summary> Screenshots </summary>




</details>
## Changelog
🆑
add: Adds Crowbars to Service, Medical, Clown, Sec and Peacekeeper borgs
/🆑
commit 8e4d6f7052
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sun Apr 13 05:32:18 2025 +0200
Automatic changelog for PR #3491 [ci skip]
commit 0cdf875cec
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sun Apr 13 03:32:09 2025 +0000
Bubberstation automatic changelog compile [ci skip]
commit c6f88a026e
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Sat Apr 12 23:31:16 2025 -0400
Fix HEV armor not fully initializing (#3491)
## About The Pull Request
`ADD_TRAIT`/`REMOVE_TRAIT` don't take lists you need to use a proc for
that
## Why It's Good For The Game
Fixes#3484
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>

</details>
## Changelog
🆑
fix: fixed HEV suit not turning on properly
/🆑
commit f93466e6ab
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sun Apr 13 05:18:39 2025 +0200
Automatic changelog for PR #3486 [ci skip]
commit 952a110077
Author: ariaworld <143797359+ariaworld@users.noreply.github.com>
Date: Sun Apr 13 05:18:04 2025 +0200
[FIX?] - Brings robotic brain surgery in line with organic brain sugery/lobotomy after the recent update (#3486)
## About The Pull Request
As title!
## Why It's Good For The Game
I originally opened this as an issue because I wasn't sure if this was
intended, it's why I labeled it as [FIX?]
Currently organic brain surgery heals the previous tiers of traumas as
well which makes sure there's no leftover traumas left and also removes
the RNG re-roll, applying a status effect instead. This PR brings the
robotic surgery/lobotomy in line with the organic one in a few ways:
1. Robotic blessed lobotomy now requires holy water as well (just like
organic)
2. Fix posibrain surgery now cures TRAUMA_RESILIENCE_SURGERY traumas as
well
3. Reticulate splines surgery now cures TRAUMA_RESILIENCE_SURGERY and
TRAUMA_RESILIENCE_LOBOTOMY traumas as well
4. Replaced RNG prob(75) roll with the 15-minute status effect that was
added to organic brain surgery.
This should balance/fix the robotic brain surgery to the recent change
that was done to the organic brain surgery. Only issue is the fact how
the original surgery was coded: there was no RNG roll for fix posibrain
surgery, while the normal organic surgery did.
Please feel free to close this PR if this was an intended feature/there
are issues with potential balance arguments.
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>
(It compiles, very simple code just handles surgery steps)
</details>
## Changelog
🆑 Goku
balance: Robotic blessed lobotomy now also requires holy water (just
like the organic surgery)
balance: Robotic blessed lobotomy requires liquid solder instead of
Palladium Synthate Catalyst
fix: Fix posibrain surgery now also cures surgery-tier brain traumas
balance: Reticulate splines surgery now also cures lower tier brain
traumas (surgery and lobotomy)
balance: Replaced advanced robotic brain surgery RNG roll with the
15-minute vulnerability status effect that was added to organic brain
surgery
/🆑
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
commit 790b64602cd2e59b8397c4fe2451d2c14bddb546
Merge: 7d39bddbcb2 5e1b40cf89
Author: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Date: Sat Apr 12 20:13:11 2025 -0700
Merge branch 'master' into upstream-25-04a
commit 5e1b40cf89
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sun Apr 13 05:08:22 2025 +0200
Automatic changelog for PR #3492 [ci skip]
commit 5e94554873
Author: ariaworld <143797359+ariaworld@users.noreply.github.com>
Date: Sun Apr 13 05:07:55 2025 +0200
[FIX] Fixes Wooden shelves turning into metal racks when broken. (#3492)
## About The Pull Request
Title!
## Why It's Good For The Game
Bugfix, my immersion was ruined
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>

</details>
## Changelog
:cl:Goku
fix: Fix wooden shelves turning into metal rack parts when broken.
/🆑
commit 7fed3cb7e4
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sun Apr 13 05:07:00 2025 +0200
Automatic changelog for PR #3493 [ci skip]
commit 2d38b200a0
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date: Sat Apr 12 20:06:37 2025 -0700
Allow hypospray in medical pouch (#3493)
## About The Pull Request
Adds hypospray and cable to the allowed list of items in the medical
pouch
## Why It's Good For The Game
Commonly held items, other reagent containers are accepted but hypo is
missing.
## Changelog
🆑 LT3
qol: The medical pouch can now hold hyposprays and cable coil
/🆑
commit 7d39bddbcb2e775207a4a3e72a3940f9fbf3b0f1
Merge: fde55e27444 bb642474217
Author: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Date: Sat Apr 12 17:25:22 2025 -0700
Merge branch 'upstream-25-04a' of https://github.com/Bubberstation/Bubberstation into upstream-25-04a
commit fde55e2744421b10f115724f70f3db8339b13df0
Author: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Date: Sat Apr 12 17:25:20 2025 -0700
screenshots
commit cfa0c20656
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sun Apr 13 01:39:06 2025 +0200
Automatic changelog for PR #3478 [ci skip]
commit 0397536620
Author: CatoChristopherMrow <johnmaddentickeledmyrear@gmail.com>
Date: Sat Apr 12 19:38:42 2025 -0400
Makes tackle gloves reskinnable (#3478)
## About The Pull Request
Makes tackle gloves reskinnable to their blue, red, and black variants.
## Why It's Good For The Game
Stops basic sec gear forcing you to either wear clashing colors or not
get the benefit of standard equipment. Viva la matching colors.
## Proof Of Testing
Works on my machine
<details>
<summary>Screenshots/Videos</summary>
</details>
## Changelog
🆑 UvvU
add: Tackle gloves are now reskinnable.
/🆑
---------
Co-authored-by: Ian Yanik <Iwantpornspam@gmail.com>
commit 42b725836a
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sat Apr 12 23:24:45 2025 +0000
Bubberstation automatic changelog compile [ci skip]
commit bb642474217244fd233372d9c68cb4bab5f871f7
Merge: 72beef087ea c872e81588
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date: Sat Apr 12 16:10:29 2025 -0700
Merge branch 'master' into upstream-25-04a
commit 72beef087ea8a1b291e286b09a0eb5a6713ba255
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Sat Apr 12 15:26:15 2025 -0400
this now returns an icon path not an icon object
commit 4e85c985ee77a37b44dcef393b815a04421463b7
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Sat Apr 12 15:08:12 2025 -0400
broken dmi
commit c872e81588
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sat Apr 12 07:45:40 2025 +0200
Automatic changelog for PR #3490 [ci skip]
commit 27801b991c
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Sat Apr 12 01:45:17 2025 -0400
Fix admin chat buttons to cancel/refund storyteller events not working (#3490)
## About The Pull Request
The chat messages that get sent when a storyteller event is about to run
try to call `Topic` on the scheduled event datum but there isn't
actually a `Topic` proc defined for them
## Why It's Good For The Game
It's mean to trick admins with fake buttons
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>

</details>
## Changelog
🆑
admin: the cancel and refund buttons in storyteller event notifications
will actually do something now
/🆑
commit bb14605128db2b1b5390d60b28665ed0ceae154a
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Sat Apr 12 01:06:39 2025 -0400
im tired
commit 1245d5145e4f41d63dbe983355ef4619b6441655
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Sat Apr 12 00:40:09 2025 -0400
what if the world was made of pudding
commit 7011b910d3bfaa0dba4a3d118721ad1d42a7625c
Merge: b8c00cbd266 e9ede320c9
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Sat Apr 12 00:31:56 2025 -0400
Merge branch 'master' into upstream-25-04a
commit b8c00cbd2660017d578f07ce20c3732dcfcdb60f
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Sat Apr 12 00:31:01 2025 -0400
silence linters
commit 3a3ea510ed12812fba0d97f545bf87749c16831a
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Sat Apr 12 00:00:12 2025 -0400
the economy is in shambles
commit 0a3e17e897b270dc19a63038b8e99e15ff9242ce
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Fri Apr 11 23:43:06 2025 -0400
missing icons
commit fefc1348f722cf26bb407e6f7a5ba98184867fba
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Fri Apr 11 23:24:46 2025 -0400
no override for this
commit 952f2a7502d972093e1f86bd9fa20bf3ea9788bf
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Fri Apr 11 23:16:07 2025 -0400
shotgun icon states
commit 8e256d21c2bdfd2136f60705a3b5f7600ca6c9e7
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Fri Apr 11 23:02:28 2025 -0400
no icon
commit 60164e1a4c038661d41bbb25a1e0e536147455a2
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Fri Apr 11 22:39:35 2025 -0400
fucking capital letters?
commit 1e395535db671e61ce6514c35928a900d61a3570
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Fri Apr 11 22:28:06 2025 -0400
GRRRRRR
commit 68e35b0068388eb94d1c9ec5b865787b1cdc300a
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Fri Apr 11 21:19:15 2025 -0400
wrong
commit 9f8c9499f2890fad3c479d42c12888b1e0c55a3a
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Fri Apr 11 20:59:17 2025 -0400
just put your icons anywhere who gives a shit
commit f6bc1091867a3b234f2634e8cb120eae5b0053d9
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Fri Apr 11 19:58:40 2025 -0400
buh
commit edc876bff750ddce0593e917f5a68de02383c55e
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Fri Apr 11 19:49:32 2025 -0400
added our GAGS configs to deploy
commit e9ede320c9
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Fri Apr 11 23:23:21 2025 +0000
Bubberstation automatic changelog compile [ci skip]
commit c726e4ee2d231d48334d43b8ce42d8b4e70b52b0
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Fri Apr 11 18:50:04 2025 -0400
fixed recipe foodtypes
commit 9e23291b14371e4703a38ae1711b1fe5b75cbf37
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Fri Apr 11 18:24:53 2025 -0400
Fix changelogs
commit bb8477826614c6e81285c5586de07ee26686c6b1
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Fri Apr 11 17:59:23 2025 -0400
number of args changed for inject
commit f00ed38c1d
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Fri Apr 11 11:03:02 2025 +0200
Automatic changelog for PR #3456 [ci skip]
commit 29b3c8daba
Author: aKromatopzia <94389683+aKromatopzia@users.noreply.github.com>
Date: Fri Apr 11 17:02:38 2025 +0800
Smolraptor Updates (#3456)
## About The Pull Request
Adds blue and red sec smolraptors, makes janitor an alt of service

## Proof Of Testing
it works
## Changelog
🆑
add: sec smolraptors
image: fixes some errors in smolraptors
/🆑
commit 7c0978a47f
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Fri Apr 11 08:21:22 2025 +0200
Automatic changelog for PR #3463 [ci skip]
commit 04fd2b0a8a
Author: ArrisFairburne <arrisfairburne@gmail.com>
Date: Fri Apr 11 02:20:59 2025 -0400
Synth brain PDAs now have departmental PDA apps pre-installed (#3463)
## About The Pull Request
Synth brains now start with your department's apps pre-installed. For
example, Scientist synths now start with NT Science Hub. They also now
have double the storage space compared to the basic PDA.
## Why It's Good For The Game
Convenience.
Also, synth PDAs have sort of existed in a weird limbo where (at least,
from my point of view having talked to some others) most synth players
just don't actually use one of the defining features of their race
because normal PDAs are largely better and more convenient, hopefully
this change emphasizes their abilities.
The doubled brain storage space is just so that synth brain PDAs can
comfortably house whatever programs come with being a dept. head.
Balance wise, I doubt it will affect anything (what could you even do
with the extra storage space, short of the dept. head apps? basic crew
apps fit comfortably on the basic PDA limit, synths can't be emagged for
expensive syndie apps, and synths can't store files on their brain via
disks).
## Proof Of Testing
(image taken after I spawned as RD; this is the synth brain PDA)

## Changelog
🆑
qol: Synthetic crew now spawn in with PDA apps relevant to their work
station.
bal: Synthetic crew brain PDAs now have 128 max capacity points (was
previously 64)
/🆑
commit eaa6352aff
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Fri Apr 11 08:20:28 2025 +0200
Automatic changelog for PR #3471 [ci skip]
commit 02f3cfdb00
Author: ariaworld <143797359+ariaworld@users.noreply.github.com>
Date: Fri Apr 11 08:20:05 2025 +0200
[MAPPING]: Change Kilo Station dorms area type from Locker to Dorms. (#3471)
## About The Pull Request
Makes sure Kilo Station's dorms area actually is a Dorms area.
## Why It's Good For The Game
Other stations' dorms are inside actual Dorms areas, effectively
granting protection from events like sudden brain trauma/heart attack,
but Kilo Station didn't have this, they were classified as lockers
instead.
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>

</details>
## Changelog
:cl:Goku
map: Kilo Station's Dormitories area type is now classified as
dormitories, not as a Locker room.
/🆑
commit 5266275bc4
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Fri Apr 11 07:03:33 2025 +0200
Automatic changelog for PR #3485 [ci skip]
commit 0a38cf2824
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Fri Apr 11 01:03:07 2025 -0400
Fix examine menu character preview being tiny (#3485)
## About The Pull Request
Upstream fixed the tiny character preview but it requires a little tweak
on implementations
## Why It's Good For The Game
I can't see the blorbo
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>

</details>
## Changelog
🆑
fix: fixed character preview in the examine window being tiny
/🆑
commit 3fc7296b82
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Fri Apr 11 06:23:15 2025 +0200
Automatic changelog for PR #3483 [ci skip]
commit 1d52e91fd0
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Fri Apr 11 00:22:51 2025 -0400
Fix double box on vote results chat message (#3483)
## About The Pull Request
There's a redundant override in `vote.dm` to enclose the vote results in
a purple examine box, this is the default way votes are displayed now so
it's making vote results appear as a box within a box
## Why It's Good For The Game
Looks wrong
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>
Before:

After:

</details>
## Changelog
🆑
fix: fixed vote results in chat having an extra box around them
/🆑
commit ab74044fc6
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Fri Apr 11 06:20:31 2025 +0200
Automatic changelog for PR #3363 [ci skip]
commit cb06f207d3
Author: Kepteyn <94123167+Kepteyn@users.noreply.github.com>
Date: Fri Apr 11 05:20:07 2025 +0100
Just a couple more hotel rooms (#3363)
## About The Pull Request
This adds four (and a half) new infinidorm hotel rooms -- A bar themed
one, for when you want bar RP that's less public; a nightclub themed
one; an space themed one for the spaceophilliacs who want to bang in
space (or an airlock), and finally an oasis themed one, with a day and a
night version.
It also fixes the lights in the Library room, given we're no longer
downstreaming from Skyrat, and it adds a template dmm that should make
it easier for people to add new rooms should they wish - the plaque on
the floor represents the spawn point.
## Why It's Good For The Game
This adds even more variety to the infinidorm room options for people to
roleplay in as a ghost. Or to _roleplay_ in. The bar one in particular
provides an option for people who want to do a bar RP with some friends
without getting pesky interruptions from their fellow human beings who
feel the need to start a gunfight in the bar.
## Proof Of Testing
All the new hotel rooms and the library have been tested in game, and
are working quite nicely! The template map does not show up as an option
in-game, as it exists to help mappers.
## Screenshots
<details>
<summary>Foxbar</summary>

</details>
<details>
<summary>Nightclub</summary>

</details>
<details>
<summary>EVA</summary>

_The floor is, infact, fake space, and is surrounded by a fake-space
wall. You will survive nude in space here. Spacesuits still provided._
</details>
<details>
<summary>Oasis</summary>

_Only one is shown for brevity's sake, as the only difference between
day and night versions is the strength of the external lighting_
</details>
<details>
<summary>Template</summary>

_The template room. The bluespace border must be indestructible solid in
some form, while the dark grey flooring represents the wall's location
on the defautl Hilbert room. The door is located where the default door
is on it, and the plaque on the ground shows where the player will
spawn_
</details>
## Changelog
🆑
add: Added infinidorms: Fox Bar; The Nightclub; EVA; and Oasis (day and
night versions)
add: Added a mapping template for creating new infinidorms at
modular_skyrat\modules\hotel_rooms
fix: modified the lights of the Library infinidorm so it's not so damn
dark.
/🆑
commit 700856e3c5
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Thu Apr 10 23:25:40 2025 +0000
Bubberstation automatic changelog compile [ci skip]
commit 02353b9ec2
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Fri Apr 11 01:05:38 2025 +0200
Automatic changelog for PR #3475 [ci skip]
commit f1722bb1c6
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date: Thu Apr 10 16:05:12 2025 -0700
Disable lean reset on direction change (#3475)
## About The Pull Request
Edits TG's lean component to perform the same as the pixel shift
component
## Why It's Good For The Game
Consistent shifting movement
## Changelog
🆑 LT3
qol: Leaning no longer resets with directional change
/🆑
commit 4a5c80e1813ecaf7d26ddeabf2593d2b44c86dcb
Merge: b908b32d387 ada9345244
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date: Thu Apr 10 10:46:20 2025 -0700
Merge branch 'master' of https://github.com/Bubberstation/Bubberstation into upstream-25-04a
commit ada9345244
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Thu Apr 10 19:16:21 2025 +0200
Automatic changelog for PR #2896 [ci skip]
commit 472893ae5e
Author: Manatee <74586965+MajManatee@users.noreply.github.com>
Date: Thu Apr 10 12:15:56 2025 -0500
Tarkon Tweaks and Xeno Changes (#2896)
## About The Pull Request
Update as of 01/26
So that was a lie
Anyways I completely remade tarkon, which is what I ORIGNIALLY wanted to
do, but used a lot of the pre-existing tarkon assets to do so, to
maintain the same feel.
Some NEW NEW features (as the project grew in scope) include:
Med/RND/Engineering are now separate "Islands" like charlie (tarkon was
always meant to be like that anyhow
Each one has a few xenos, and a new "Emergency power generator"
Scanning this with the new (not a ripoff) Hack-C tool will call in a
repair drone (Original content) to repair it, and it needs to be
defended from the xenos it alerts.
Sucsesfully completing a defence will reward sickass weapons and gear
you wouldn't normally ever get to see, making further areas easier, and
a key for the final area.
Once all 3 keys are obtained, and the areas are re-secured, you can go
to the boss area and clear out the AI sat / command zone.
A bitrunning server to allow them to make their own bitden (it's the
first prototype, and the rest must be researched so it's not
shift-start)
more floor safes with various things like some ore thumpers and two
bluespace beakers
Crates! Someone misfiled a crate of goodies and it got sent here! These
orders should be delivered to their owners! I'm sure they would
appreciate it! Probably...
A Recycler (Amazing)
A produce order console! Now you can actually cook whatever you want!
And it gives you a reason to sell stuff for money!
more stuff, lots more stuff. things keep getting added the longer it
takes for this to be looked at.
Also adds three new variants of xenobio, and two new variants of the
cargo bay. One cult (we miss you cult), one carp, and a monkey themed
xenobio.
## Why It's Good For The Game
Part 1 of my attempt to make tarkon feel better to play. The overall
gameplay was very "Meta" and didn't really give you any reason to clear
out xenos or the threats. Who knows what might come next.
Tarkon was pretty stale. A bit of new stuff might be nice. plus a reason
to use their shuttle is good.
Furthermore, tarkon WILL run on solar, so if you REALLY don't want to,
you don't HAVE to go and clear everything out.
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>










I did test it, and run the wave defense, it DOES work.
</details>
## Changelog
🆑
add: BUNCH of new tarkon things!
map: Tarkon QOL changes
/🆑
---------
Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com>
commit b908b32d387ffe9a2b40d2d25a03cd04c2e62868
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date: Thu Apr 10 08:35:37 2025 -0700
Compiletimes done
commit a9601004a82714a72f62e9b5db07d2adde27c0c3
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date: Thu Apr 10 08:35:26 2025 -0700
We are so comically stupid
commit 0f8d37991f
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Thu Apr 10 00:05:02 2025 +0000
Bubberstation automatic changelog compile [ci skip]
commit 31897a95e9
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Thu Apr 10 01:54:47 2025 +0200
Automatic changelog for PR #3468 [ci skip]
commit 385b734424
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Thu Apr 10 01:54:32 2025 +0200
Automatic changelog for PR #3470 [ci skip]
commit 0903ee683e
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Wed Apr 9 19:54:20 2025 -0400
Fix shuttles no longer making sounds or (un)bolting doors (#3468)
## About The Pull Request
The code for these things got lost in an upstream because shuttle code
got split into multiple files
## Why It's Good For The Game
Fixes#3251
## Proof Of Testing
I tested it and the shuttle went bwwwwrrmmmmm pshewww and the door bolts
went chk
## Changelog
🆑
fix: fixed shuttles missing landing/take off engine sounds
fix: fixed shuttles not bolting/unbolting their doors when moving
/🆑
commit e5b57bc08c
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date: Wed Apr 9 16:54:09 2025 -0700
Fix meow emote for cat tongues (#3470)
## About The Pull Request
Fixes the meow emote to use the correct emote if you have a cat tongue
## Why It's Good For The Game
MEOW.
## Changelog
🆑 LT3
fix: Mobs with cat tongue get their alternate meow sound back
/🆑
commit 204ea57363
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Wed Apr 9 23:23:16 2025 +0000
Bubberstation automatic changelog compile [ci skip]
commit ce5944e0733f4c5985e2e48878a02c0c35463d0a
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date: Wed Apr 9 08:19:09 2025 -0700
6 compiletime errors left
commit d1905c44f5
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Wed Apr 9 14:03:13 2025 +0200
Automatic changelog for PR #3461 [ci skip]
commit 6c3bc53604
Author: Odairu <39929315+Odairu@users.noreply.github.com>
Date: Wed Apr 9 08:02:51 2025 -0400
Deathmatch now stores and reapplies your respawn timer prior to being spawned (#3461)
## About The Pull Request
Title
## Why It's Good For The Game
item number TWO on the list
## Proof Of Testing

<details>
<summary>Screenshots/Videos</summary>
</details>
## Changelog
🆑
code: deathmatch doesn't reset your respawn timer
/🆑
commit f890cb36b9265f011a187b4f332812590838292c
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date: Wed Apr 9 01:45:20 2025 -0700
some color stuff
commit fb849a2a8ebc2166915cfbec1e850510678b2f22
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date: Wed Apr 9 01:38:18 2025 -0700
Fixes
commit 381d77fa68707cc5315b698474df026c2103166c
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date: Wed Apr 9 01:20:20 2025 -0700
We love guncode and refactors!!!!
commit f30bb6ca01319218795e4004219938aa3d976eb3
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date: Wed Apr 9 01:00:40 2025 -0700
I love cherry picking!!!
commit 6677a4c7bbe3c7536276178c841290a489d0a4a9
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date: Wed Apr 9 01:00:27 2025 -0700
so apparently some dumbass on nova reused the turret flag bitfield and it only now runtimes
commit 7acc721baadbdea3d3795a45b9837cfeb4fd4fd0
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date: Wed Apr 9 00:58:48 2025 -0700
Martials and arcade rework updates
commit bf9f393204fe7d40d5e57e76db870eb1a32aed25
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date: Wed Apr 9 00:47:58 2025 -0700
This might break taur icons, remember to test once we compile
commit 3bc256cb16ca2e85b78830345bba0a487f49fc17
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date: Wed Apr 9 00:41:03 2025 -0700
Several varchanges from tg
commit 76f5dc1b5f
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Tue Apr 8 23:23:40 2025 +0000
Bubberstation automatic changelog compile [ci skip]
commit 538049c4cd4960d2c81c43f2e387896049fb02c7
Author: Waterpig <wtryoutube@seznam.cz>
Date: Tue Apr 8 20:00:59 2025 +0200
reagent applicators fixes
commit df43e50d68419d2f24bd62eef0432bda8394cc7d
Author: Waterpig <wtryoutube@seznam.cz>
Date: Tue Apr 8 19:56:27 2025 +0200
Some missed merge fixes
commit 0f0838bb35
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Tue Apr 8 09:27:36 2025 +0200
Automatic changelog for PR #3399 [ci skip]
commit 234a410586
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Tue Apr 8 09:27:29 2025 +0200
Automatic changelog for PR #3397 [ci skip]
commit 722b51eb07
Author: Iamgoofball <iamgoofball@gmail.com>
Date: Tue Apr 8 02:27:12 2025 -0500
[MODULAR] Removes the 60 round Sol drum from being printable in Security (#3399)
## About The Pull Request
Removes the 60 round Sol drum from being printable in Security
## Why It's Good For The Game
After discussing magazine size standardization, this came up and to be
100% honest, the crew does not need LMG ammo capacity on any of their
guns. Even though it's illegal contraband to use(yes, Illegal Tech is
still fuckin' Illegal lol), it's still a lot of ammo capacity that we
don't really want the crew to have.
## Proof Of Testing
Just deleting a research design.
## Changelog
🆑
del: Removes the 60 round Sol drum from being printable in Security
/🆑
---------
Co-authored-by: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>
commit 3e7223b959
Author: Iamgoofball <iamgoofball@gmail.com>
Date: Tue Apr 8 02:27:06 2025 -0500
[MODULAR] Puts the Sol/Carwo/Romulus/Szot/Trappiste gun magazine sizes in line with /tg/ standards (tiny for everything but rifles which are normal) (#3397)
## About The Pull Request
Puts the Sol/Carwo/Romulus/Szot/Trappiste gun magazine sizes in line
with /tg/ standards (tiny for everything but rifles which are normal)
## Why It's Good For The Game
Size inconsistencies between items results in confused players; it's
good to keep this sort of thing synced up so that we're not having
players ask why one pistol magazine fits in a box while another pistol
magazine doesn't fit in a box when the air tank that's bigger than both
of them does fit in the box.
If I find other guns with weird weight classes I'll fix those too.
## Proof Of Testing
Single-line changes, weight classes is a proven working system already.
## Changelog
🆑
qol: Puts the Sol/Carwo/Romulus/Szot/Trappiste gun magazine weight
classes in line with /tg/ standards for magazine weight classes (tiny
for everything but rifles or larger which are normal)
/🆑
commit 7b420bb680
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Mon Apr 7 22:16:23 2025 +0000
Bubberstation automatic changelog compile [ci skip]
commit f30b0d5df0
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Tue Apr 8 00:12:44 2025 +0200
Automatic changelog for PR #3452 [ci skip]
commit aa4901b571
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date: Mon Apr 7 15:11:59 2025 -0700
Map vote is called automatically on blob/nukies/etc. round end (#3452)
## About The Pull Request
Triggers the automatic map vote when the round is about to end due to a
station threat, if it hasn't happened.
## Why It's Good For The Game
Saves it delaying the next round if no admin catches it in time, causing
a delay as the vote and another restart needs to occur.
## Changelog
🆑 LT3
admin: Map vote is automatically triggered near the conclusion of
station ending threats
fix: Only a single announcement is sent when the shuttle is called,
fixing the overlapping sounds
/🆑
commit a6845577bd
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Mon Apr 7 21:55:15 2025 +0000
Bubberstation automatic changelog compile [ci skip]
commit bf8c0ef85f
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Mon Apr 7 23:49:40 2025 +0200
Automatic changelog for PR #3459 [ci skip]
commit 28e4e2cd42
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Mon Apr 7 17:49:12 2025 -0400
Refactor changelog handling to separate files (#3459)
## About The Pull Request
This rewrites how our actions handle changelogs, and rewrites a bunch of
the changelog TGUI (in a separate file cause I don't feel like
massacring the upstream one). The gist of it is that our actions will
now create autochangelog files with bubber in the name, our changelog
compile will only compile those autochangelogs (not upstream ones if
they happen to be in there), and the compile will be done into separate
bubber changelog files in `html/changelogs/bubber_archive`. In game, the
UI will pull both archive files (upstream and ours) and combine them in
the changelog list, putting the codebase logo next to each change to
distinguish which one it's from.
~~NOTE: I'm opening this as a draft because I'm going to try and reset
our tg changelogs and then reapply all our historical changelogs into
the new bubber archive files, I'm just putting this up now so the code
can be reviewed and shit~~ done
## Why It's Good For The Game
For players this makes it easier to distinguish where a change came
from, and for developers this means we don't need to worry about
breaking the changelog when we do an upstream pull, we can completely
ignore it and just pull everything, and our tg archive files will be 1:1
with upstream with no shit from us added in.
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>

</details>
## Changelog
🆑 TealSeer, LT3
refactor: refactored how changelogs are generated and displayed
/🆑
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
commit 7de99181db
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Mon Apr 7 17:44:07 2025 -0400
Rename Autochangelog (#3462)
the refactor is about to merge this isnt gonna be included otherwise
commit 0ed680f2aa
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Mon Apr 7 23:36:02 2025 +0200
Automatic changelog for PR #3457 [ci skip]
commit 0f13b89457
Author: Odairu <39929315+Odairu@users.noreply.github.com>
Date: Mon Apr 7 17:35:25 2025 -0400
30 minute grace period to respawn (world time, not round time) (#3457)
## About The Pull Request
from when the server starts to 30 minutes after, respawning is free of
charge
## Why It's Good For The Game
item #1 on the list
## Proof Of Testing
it works dude trust me
<details>
<summary>Screenshots/Videos</summary>
</details>
## Changelog
🆑
code: respawn enabled until 30 min (world time)
/🆑
commit 99cb23f3c5
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Mon Apr 7 18:30:45 2025 +0200
Automatic changelog for PR #3434 [ci skip]
commit 697d89abf3
Author: pixelkitty286 <78038207+pixelkitty286@users.noreply.github.com>
Date: Mon Apr 7 11:30:19 2025 -0500
Cleans up and reorganizes some of the borg code (#3434)
## About The Pull Request
This PR reorganizes and cleans up some of the borg code and separates
sprite defines and borg defines once more but this time correctly.
Also fixes some small bugs with foot steps with chameleon module.
Moved some borg model specific trait procs into their own file.
## Why It's Good For The Game
Makes it more organized so we don't have one HUGE file containing all
the sprite defines and borg model code
## Proof Of Testing
It's all back end. Compile test was last done late march.
<details>
<summary>Screenshots/Videos</summary>
</details>
## Changelog
🆑
fix: chameleon model foot steps
code: moved many of the borg defines to their correct _defines file and
folder
/🆑
commit 74985f40fc
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Mon Apr 7 10:28:15 2025 +0200
Automatic changelog for PR #3447 [ci skip]
commit d58cf909af
Author: Jinshee <96621959+Jinshee@users.noreply.github.com>
Date: Mon Apr 7 01:27:49 2025 -0700
Change podperson eye color (Again (Thanks Upstream)) (#3447)
commit cb3052e6ea
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Mon Apr 7 02:04:52 2025 +0200
Automatic changelog for PR #3448 [ci skip]
commit c29d36ada5
Author: sippykot <sippythekot@outlook.com>
Date: Mon Apr 7 02:04:27 2025 +0200
Fish Ass: ports over large shark tails from CHOMP (#3448)
## About The Pull Request
see title
if you want to see who made the sprites, follow the accreditation chain:
https://github.com/CHOMPStation2/CHOMPStation2/pull/9926
it doesn't fully use all the sprites, because our system here is so much
clunkier to use - if someone wants they can probably bash out several
more tail variants by copying and rearranging the existing sprites
## Why It's Good For The Game
people wanted them, gushed over them in #suggestions, and then no one
did anything, so...
also, 🦈
## Proof Of Testing
yeah i compiled it, they finally showed up in game, thanks #coder-longue
## Changelog
🆑
add: 4 new tail options
image: new tail sprites
/🆑
---------
Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
commit fa6845f9e6
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sun Apr 6 23:22:10 2025 +0000
Bubberstation automatic changelog compile [ci skip]
commit 55fd8dd1f7
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Mon Apr 7 01:01:20 2025 +0200
Automatic changelog for PR #3426 [ci skip]
commit 16f6d07548
Author: Odairu <39929315+Odairu@users.noreply.github.com>
Date: Sun Apr 6 19:00:55 2025 -0400
Shadekin NV and movespeed rebalance (#3426)
## About The Pull Request
title + nerf movespeed in the light
## Why It's Good For The Game
still can't see shit (nv trait is 4.5, bumping it up to 15)
## Proof Of Testing
it werks
<details>
<summary>Screenshots/Videos</summary>
</details>
## Changelog
🆑
balance: shadekin nv buffed from 4.5/100 to 15/100
balance: shadekin move a bit slower in the light
/🆑
commit d2f96730ba
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sun Apr 6 22:16:10 2025 +0000
Bubberstation automatic changelog compile [ci skip]
commit c7def946b6
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sun Apr 6 17:39:00 2025 +0200
Automatic changelog for PR #3450 [ci skip]
commit f833f3edc4
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Sun Apr 6 11:38:26 2025 -0400
Fix persistence medbots speaking on syndicate frequency (#3450)
## About The Pull Request
Make them speak on cybersun frequency
## Why It's Good For The Game
Fixes#3446
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>

</details>
## Changelog
🆑
fix: fixed persistence medbots speaking on wrong radio frequency
/🆑
commit 17b620b48e
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sun Apr 6 10:19:15 2025 +0200
Automatic changelog for PR #3438 [ci skip]
commit bfb9c9e2b5
Author: pixelkitty286 <78038207+pixelkitty286@users.noreply.github.com>
Date: Sun Apr 6 03:18:52 2025 -0500
Nerfs super syndicat and makes it no longer a freedom implant. (#3438)
## About The Pull Request
- This PR makes the new syndicat ears item have a 1 minute cool down
when used and the normal ears have the same thing.
- This also ports a fix that was done on monkey station:
https://github.com/Monkestation/Monkestation2.0/pull/6017
## Why It's Good For The Game
- After watching a round on here and getting complaints about this from
SPLURT I understand now why 20 seconds is too short for such a item like
this if your gonna be a cat your gonna be a cat for a long while.
- Also to quote monkey station:
"It will make the cat not able to bypass any security non-lethal means,
which in turns mean security won't be forced to lethal them everytime
they see it."
## Proof Of Testing
Should work only changed the time values.
Edit: Compiled and tested locally
<details>
<summary>Screenshots/Videos</summary>
</details>
## Changelog
🆑
balance: Super cat ear cool downs are longer and removed the freedom
implant function.
/🆑
commit 4ed70fa4c7
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sun Apr 6 10:18:17 2025 +0200
Automatic changelog for PR #3451 [ci skip]
commit 65331b085f
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Sun Apr 6 04:17:45 2025 -0400
Fix invisible sprites on security HUD nightvision goggles (#3451)
## About The Pull Request
Upstream changed NV goggles to have different icon states for on and off
and we dont have that so I reverted it to the tg sprite
## Why It's Good For The Game
Fixes#3383
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>

</details>
## Changelog
🆑
fix: fixed sechud nv goggles being invisible when off
/🆑
commit 8aad924f76
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sun Apr 6 10:16:18 2025 +0200
Automatic changelog for PR #3443 [ci skip]
commit 3bd5803844
Author: Swift <jackwars4@gmail.com>
Date: Sun Apr 6 03:15:53 2025 -0500
Removes tackle buff for having cat ears (#3443)
## About The Pull Request
Title, manual revert of #1513
## Why It's Good For The Game
Tackle chance could be brought to 100% and people have reportedly been
exploiting this fact.
## Proof Of Testing
I think it will complie
## Changelog
:cl:Swiftfeather
balance: Cat ears no longer provide a tackle bonus
/🆑
commit 89594c8547
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sun Apr 6 00:56:59 2025 +0000
Bubberstation automatic changelog compile [ci skip]
commit b4af64b182
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sun Apr 6 02:25:40 2025 +0200
Automatic changelog for PR #3370 [ci skip]
commit 0e684db68a
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date: Sat Apr 5 17:24:44 2025 -0700
Update various sound prefs for 516 compatibility (#3370)
## About The Pull Request
Updates our various sound prefs to be functional post upstream/516.
## Why It's Good For The Game
We can control sound as expected again.
## To-Do
- [x] Conditional preference sounds
- [x] Jukebox sound toggle
- [x] Jukebox volume override
## Changelog
🆑 LT3
fix: Sound prefs that went missing post-516 are restored
add: Jukebox volume slider in game preferences
/🆑
---------
Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
commit 60e73702c6
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sat Apr 5 07:14:09 2025 +0000
Bubberstation automatic changelog compile [ci skip]
commit 9a36823173
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sat Apr 5 09:02:26 2025 +0200
Automatic changelog for PR #3425 [ci skip]
commit 1ab85fd206
Author: Odairu <39929315+Odairu@users.noreply.github.com>
Date: Sat Apr 5 03:02:02 2025 -0400
Spices up vulpkanin [bounty] (#3425)
## About The Pull Request
Changes vulpkanin in several ways:
- Peanutbutter gives a mood buff
- Chocolate deals toxin damage while inside you
- innate hardened soles
- innate night vision
- hunger will drain twice as fast
- higher sensitivity to flashes
## Why It's Good For The Game
vulpkanin are literally human but fluffy, they don't even have lore in
the species selector (lol) also I'm being paid
## Proof Of Testing



<details>
<summary>Screenshots/Videos</summary>
</details>
## Changelog
🆑
add: several vulpkanin species buffs/debuffs
/🆑
---------
Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
commit 4da0397b16
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sat Apr 5 08:54:22 2025 +0200
Automatic changelog for PR #3396 [ci skip]
commit 1ed1187fca
Author: Jinshee <96621959+Jinshee@users.noreply.github.com>
Date: Fri Apr 4 23:53:57 2025 -0700
Slug Scream! (#3396)
## About The Pull Request
Adds a new scream, "Slug". Sound file ripped from Splurt
## Why It's Good For The Game
Expression is the best thing that this video game medium can offer.
## Proof Of Testing
https://github.com/user-attachments/assets/147be9dc-98c2-4ee4-bc76-762331710143
## Changelog
🆑
sound: Slug Scream sound added to *scream choices
/🆑
commit 66e28121d4
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sat Apr 5 08:53:15 2025 +0200
Automatic changelog for PR #3431 [ci skip]
commit 88a238b93c
Author: Bombermansam <Bombermansam@yahoo.com>
Date: Sat Apr 5 02:52:48 2025 -0400
Allows players to be sad like raptors (#3431)
## About The Pull Request
Adds a Sad Kweh emote from the two unused raptor sound files.
## Why It's Good For The Game
You can now sad birdly.
## Proof Of Testing
It compiles and was tested locally.
https://github.com/user-attachments/assets/bc5f31fb-ad12-4026-be94-d28d2db542df
## Changelog
🆑
add: *skweh emote to be sad
/🆑
commit 4a93b42977
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sat Apr 5 08:51:43 2025 +0200
Automatic changelog for PR #3432 [ci skip]
commit f51c4d7942
Author: Bombermansam <Bombermansam@yahoo.com>
Date: Sat Apr 5 02:51:18 2025 -0400
Silicons can now Yip (#3432)
## About The Pull Request
Silicons can now emit a singular yip so they can express their inner
kobold but not too much.
## Why It's Good For The Game
Silicons can yipyip but not yip. This fixes it.
## Proof Of Testing
It compiles and was tested locally.
</details>
## Changelog
🆑
fix: Silicons can now yip.
/🆑
commit 14ec8a0440
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sat Apr 5 08:43:03 2025 +0200
Automatic changelog for PR #3437 [ci skip]
commit e05fe31faa
Author: Odairu <39929315+Odairu@users.noreply.github.com>
Date: Sat Apr 5 02:42:41 2025 -0400
Adds more flavor to shadekin empathy (#3437)
## About The Pull Request
BASED ON SANITY SHADEKIN EMPATHY WILL:
-Take more or less time to send
-At lowest levels of sanity the message starts to break down some
-Be a different color in chat
## Why It's Good For The Game
Shadekin empathy is communication through FEELINGS so it being
better/worse based on how you're FEELING makes sense (to me)
## Proof Of Testing

<details>
<summary>Screenshots/Videos</summary>
</details>
## Changelog
🆑
balance: shadekin empathy is better/worse based on mood
/🆑
---------
Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
commit 457754c461
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Sat Apr 5 06:38:05 2025 +0000
Bubberstation automatic changelog compile [ci skip]
commit c3fe3d31ba
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date: Fri Apr 4 23:16:53 2025 -0700
You can cuff people to the tram rails #90293 (#3445)
## About The Pull Request
https://github.com/tgstation/tgstation/pull/90293

Handcuffed people can be buckled to the tram rails.
If the tram hits them then they will die badly.
If they're not shockproof and are buckled to a powered rail, it will zap
them repeatedly for a little bit of damage (but not a lot because you
probably want them to die from something else).
Unbuckling someone from a powered rail is also pretty dangerous.
While doing this I fucked around a bit with how the "is the tram deadly"
calculation worked because I didn't like how a deadly tram cuts your
head off but does literally no other damage. Now it pulverises and
beheads you.
## Why It's Good For The Game

---------
Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
commit 3c1c05052f
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Fri Apr 4 23:23:13 2025 +0000
Bubberstation automatic changelog compile [ci skip]
commit 0287fe4d0b
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Fri Apr 4 21:54:53 2025 +0200
Automatic changelog for PR #3440 [ci skip]
commit 6d081fe0da
Author: Bombermansam <Bombermansam@yahoo.com>
Date: Fri Apr 4 15:54:30 2025 -0400
[Modularized] Nugget Boxes and Foodpacks can now be placed into paper sacks. (#3440)
## About The Pull Request
Nugget Boxes and Foodpacks can now be placed into paper sacks.
## Why It's Good For The Game
You can now live out your minimum wage dreams as a fast food worker a
Chick'fil'a. To quote someone that wanted this "I can now fastfoodmax as
a chef".
Food packs can also be placed into paper sacks because it makes sense.
## Proof Of Testing
It compiles and was tested locally.

I would like to praise [lessthnthree](https://github.com/lessthnthree)
for their remarkable patience in teaching me how to properly modularize
code. Really, thank you so much!
</details>
## Changelog
🆑
add: Makes Nugget Boxes and Food packs small
/🆑
---------
Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
commit 0824cb07ba
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Thu Apr 3 20:19:08 2025 +0000
Bubberstation automatic changelog compile [ci skip]
commit 9d8a54be49
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Thu Apr 3 22:14:42 2025 +0200
Automatic changelog for PR #3433 [ci skip]
commit 45477353d2
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Thu Apr 3 22:14:33 2025 +0200
Automatic changelog for PR #3403 [ci skip]
commit b6b6fbfba4
Author: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>
Date: Thu Apr 3 14:14:17 2025 -0600
Job Spawn borgs prioritize linking to the malf AI (#3433)
## About The Pull Request
So there's this little quirk where late join cyborgs will auto link to
whatever AI has the least cyborgs. This changes that.
This adds a priority: Malf AI > AI cores
Also this deletes an unused file I noticed.
## Why It's Good For The Game
Every cyborg that spawns in the game during an active malf round should
always connect to the malf AI if it's available.
## Proof Of Testing
It works
## Changelog
🆑
balance: Cyborgs now auto link in a priority system. Malf > AI cores >
Suit AIs / Cards
/🆑
commit 1f3aedc6c1
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date: Thu Apr 3 13:14:07 2025 -0700
Fix brain trauma surgery (#3403)
## About The Pull Request
Fixes the highest level of trauma surgery leaving leftover traumas.
Applies a status effect instead of the random roll of a new trauma.
## Why It's Good For The Game
Having to do lobotomy surgery over and over until you hit the 25% RNG to
make it successfully go away isn't a good gameplay experience. Better to
just apply a status effect for a while instead.
## Changelog
🆑 LT3
fix: Lobotomy/blessed lobotomy should correctly remove all surgery based
traumas
balance: Lobotomy/blessed lobotomy now provides a predictable status
effect instead of a trauma RNG roll
/🆑
commit 95d97cf4a2
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Thu Apr 3 18:50:51 2025 +0200
Automatic changelog for PR #3429 [ci skip]
commit 3c30dfbaff
Author: Jinshee <96621959+Jinshee@users.noreply.github.com>
Date: Thu Apr 3 09:50:24 2025 -0700
Shadekin Ear Gradient (#3429)
## About The Pull Request
Adds a new ear type: Shadekin Gradient
## Why It's Good For The Game
Makes Healer happy
## Proof Of Testing


## Changelog
🆑
add: Added new ear type: Shadekin Gradient
/🆑
---------
Co-authored-by: Jinshee <manastra2536@gmail.com>
commit 3dd8af584e
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Thu Apr 3 06:33:08 2025 +0200
Automatic changelog for PR #3415 [ci skip]
commit c83b14b15d
Author: Jinshee <96621959+Jinshee@users.noreply.github.com>
Date: Wed Apr 2 21:32:45 2025 -0700
Porting New Bug Customization + IPC Screens (#3415)
commit d9d40def4c
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Thu Apr 3 02:35:34 2025 +0200
Automatic changelog for PR #3387 [ci skip]
commit a154dd9d97
Author: Jinshee <96621959+Jinshee@users.noreply.github.com>
Date: Wed Apr 2 17:35:10 2025 -0700
Fixes Waggingtail Sprite for Shadekin tails + Ringtail (#3387)
## About The Pull Request
All of the shadekin tails, ringtail included, had incorrectly assigned
dmi files for their wagging state, causing them to go invisible. This,
simply, fixes that.
## Why It's Good For The Game
I love fixing sprites!
## Proof Of Testing
https://github.com/user-attachments/assets/186f7dc6-4b78-4e9e-968e-fcbdae40bf2f
## Changelog
🆑
fix: fixed wagging state for all shadekin tails and ring tail (long)
/🆑
commit ba3fa0684c
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Wed Apr 2 21:56:26 2025 +0000
Bubberstation automatic changelog compile [ci skip]
commit 70143cdadb
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Wed Apr 2 23:52:41 2025 +0200
Automatic changelog for PR #3419 [ci skip]
commit ad62db6f9b
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date: Wed Apr 2 14:52:18 2025 -0700
Adds pipe carp (#3419)
## About The Pull Request
A Ferocious, highly aggressive fish that thrives in the depths of shoddy
engineering work. Drawn to poorly sealed pipes, mismatched connectors,
and hastily patched atmospherics, these creatures feast on structural
incompetence with alarming efficiency.
## Changelog
🆑 LT3
add: Added new carp variant: carpmospheric technician
/🆑
commit dab0ff6a09
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Wed Apr 2 11:40:26 2025 +0200
Automatic changelog for PR #3423 [ci skip]
commit 27027d5ceb
Author: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>
Date: Wed Apr 2 03:40:00 2025 -0600
take two: Reverts the disaboot apirl fools (#3423)
## About The Pull Request
Apirl fools code cleanup. Was a funny meme, but I don't think they
should happen next year.
## Changelog
🆑
del: Disaboots have been removed from apirl fools.
/🆑
commit 1c08269f2a
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Wed Apr 2 03:08:41 2025 +0000
Bubberstation automatic changelog compile [ci skip]
commit c43c9d01ed
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date: Tue Apr 1 19:38:12 2025 -0700
[TM ONLY] let me send long ass subtler messages to my heart's content (TGUI payload chunking) (#3406)
## About The Pull Request
(https://github.com/tgstation/tgstation/pull/90295)
## Changelog
🆑 Y0SH1M4S73R
code: Any tgui message that would be too big to send to the server is
now split into chunks and sent in sequence. This fixes several issues,
such as...
fix: It is once again possible to save large amounts of text on paper at
once.
/🆑
---------
Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
Co-authored-by: Y0SH1M4S73R <y0sh1m4s73r@gmail.com>
Co-authored-by: Lucy <lucy@absolucy.moe>
commit c96d028562
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Wed Apr 2 04:35:29 2025 +0200
Automatic changelog for PR #3420 [ci skip]
commit e22c174b35
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Wed Apr 2 04:35:09 2025 +0200
Automatic changelog for PR #3407 [ci skip]
commit 43a4b964b1
Author: plsleavemealon <106043510+plsleavemealon@users.noreply.github.com>
Date: Tue Apr 1 21:35:04 2025 -0500
Ethereal Powercell Bugfix (#3420)
## About The Pull Request
Fixes ethereal powercells from 20kj back to 220kj which is what they
used to be.
## Why It's Good For The Game
It is what it used to be, and with the present vanilla values you have
to recharge yourself once every ~5 minutes or so or suffer a huge mood
debuff. And if you are entombed, you will suffer death after ~10 minutes
if you do not recharge.
## Proof Of Testing
## Changelog
🆑
fix: fixed ethereals powercell back to bubbers values
/🆑
commit 3068303ae3
Author: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>
Date: Tue Apr 1 20:34:46 2025 -0600
Reverts "Adds crew monitors to Advanced biotech and lathes" (#3407)
## About The Pull Request
This removes the handheld crew monitor from the medical lathe.
## Why It's Good For The Game
Alright, I just want to start out with all sources of the handheld crew
monitor after this PR
- Paramedics spawn with them
- Blueshield (command only)
- The medical vendor premium section.
- Borg upgrades
Overall while there's been a lot of QOL to the crew monitor which I
enjoy, it's all gradually made it so deaths are very noticable and often
times with someone in medical 1 second later running towards an active
fight to drag corpses away.
- I think overall we have a sort of medical omnipresence issue,
especially with an easy research destroying a level of scarcity with the
hand held crew monitor.
Anyone can print it if they have the materials and access to the lathe
versus only a few existing outside of the paramedic starting with them.
This PR of course is not going to fully tackle it. It's not going to
stop a paramedic constantly staring at sensors or the medical console
beeping when someone's in crit. But this aims to get less eyes on
sensors, mostly the ability for everyone in medical to have a little
screen to pull out and see the live feed without actively moving to a
console.
Overall I think we have this issue (a lot of it being administrative)
where every single death must be immedietly found and the person revived
in 10 minutes. This won't fully tackle that, but if the solution is we
must bloat a ton of antag abilities and items to combat sensors then I
think we have too many eyes on sensors.
## Proof Of Testing

## Changelog
🆑
del: Removes the handheld crew monitor from the medical lathes.
/🆑
commit c9cca3fbef
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date: Tue Apr 1 23:24:18 2025 +0000
Bubberstation automatic changelog compile [ci skip]
commit de81adcb6d
Author: Waterpig <49160555+Majkl-J@users.noreply.github.com>
Date: Wed Apr 2 00:55:25 2025 +0200
Makes the roundend mapvote not rerun after it gets called the first time (#3418)
## About The Pull Request
See name
## Why It's Good For The Game
Fixes#3395
## Proof Of Testing
It worked I did test it
## Changelog
Nothing player facing, basically allows us to cancel the vote once it
initializes
commit b36c477460
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date: Tue Apr 1 18:35:54 2025 -0400
Fix every fucking piece of maint loot being skub (#3412)
## About The Pull Request
the override should append to the global maint loot list not replace it
## Why It's Good For The Game
I'm anti-skub
## Proof Of Testing
I did this PR from my phone in bed because there's no power
## About The Pull Request
This PR should fix the problem of small previews in TGUI once and for
all (I hope).
What was causing it? Because TGUI takes a long time to open, that's why
previews were generated broken (small).
On Byond 515 this problem was not so noticeable as the interfaces opened
faster, but with the release of 516 it became much worse.
Previews were generated inside a window that was not yet open, so the
scale was broken, sometimes the window would open before the preview was
done and sent, usually with small interfaces, or when reopening.
I'm not very good at working with signals, and to tell the truth this is
my second experience with them, so I hope I did it right.
## Why It's Good For The Game
No more small map previews
<details> <summary> Video </summary>
https://github.com/user-attachments/assets/834f3820-cc6a-4f65-90e5-d6bb2a118bcf
</details>
## Changelog
🆑
fix: Fixed small character preview, color matrix preview, mech preview,
and other previews with uses ByondUI map
/🆑
---------
Co-authored-by: Gaxeer <44334376+Gaxeer@users.noreply.github.com>
## About The Pull Request
This PR should fix the problem of small previews in TGUI once and for
all (I hope).
What was causing it? Because TGUI takes a long time to open, that's why
previews were generated broken (small).
On Byond 515 this problem was not so noticeable as the interfaces opened
faster, but with the release of 516 it became much worse.
Previews were generated inside a window that was not yet open, so the
scale was broken, sometimes the window would open before the preview was
done and sent, usually with small interfaces, or when reopening.
I'm not very good at working with signals, and to tell the truth this is
my second experience with them, so I hope I did it right.
## Why It's Good For The Game
No more small map previews
<details> <summary> Video </summary>
https://github.com/user-attachments/assets/834f3820-cc6a-4f65-90e5-d6bb2a118bcf
</details>
## Changelog
🆑
fix: Fixed small character preview, color matrix preview, mech preview,
and other previews with uses ByondUI map
/🆑
---------
Co-authored-by: Gaxeer <44334376+Gaxeer@users.noreply.github.com>
## About The Pull Request
Sorry for my incompetence with TGUI.
This comes from a comment I made here
https://github.com/tgstation/tgstation/pull/89137#issuecomment-2601185587
&
https://github.com/tgstation/tgstation/pull/89160#pullrequestreview-2566047191
Instead of having to go to your game settings, find the option of layout
style you want your vending/fridge machines to be, and change it without
having a UI to show you the difference, now the preference is tied to
the in-game UI; Clicking to swap to the other layout mode will
automatically update your prefs and stay until you change it again.
I also separated smartfridges and vending machines as 2 separate prefs
so players can have grid on one and list on the other.
I couldn't figure out a way to implement this without adding a new var
on base ``/datum``, if you got other possible solutions I'd be happy to
try. I thought of making 'layouts' limited to smartfridge/vending
machines, taking it out of backend for all UIs, but thought I should
avoid that if possible in case future UIs want to make use of it. If
it's better than a var on datum I'm fine taking that path instead.
https://github.com/user-attachments/assets/921586fa-1ec1-49c0-87ca-ec4bbb6aaa98
## Why It's Good For The Game
The settings list having these small options that you can't even see the
effects of until you find the machine in-game is a little lame, now
players don't even have to think about it, they simply set it to the
mode they want as they use the machine and it'll update itself for the
player.
Currently using the button to swap to list/grid mode instantly reverts
itself as soon as you close the UI, which is a little lame.
## Changelog
🆑
qol: Smartfridges and Vending machines no longer have a setting to
change the list/grid mode, it instead updates automatically as you swap
the mode in-game.
/🆑
## About The Pull Request
1. Hallucination effects are now tiered
Hallucinations now all have tiers, ranging from common to special.
If you are just hallucinating a teeny bit, you will not experience the
more extreme hallucinations, like bubblegum or your mom.
But if you're hallucinating off your butt, you will be a bit more likely
to experience them.
2. Hallucination rate has been tweaked
Default hallucination cooldown is now 20-80 seconds, up from 10-60
seconds.
However the cooldown will *also* vary depending on just how much you're
hallucinating, going down to 10-40 seconds.
3. RDS is now capped a bit lower (meaning you don't see the higher tiers
like bubblegum).
But I added a preference to uncap it. For the people who actually like
bubblegum visits.
4. If a hallucination fails to trigger, the cooldown will partially
reset. (by 75%)
5. "Fake chat" hallucination will pick more viable subjects.
Fake chat will try to find someone who can actually speak your language,
rather than make a monkey speak mothic or something.
(I may revisit this so if you're super-hallucinating it reverts to old
behavior though.)
6. Adds a hallucination: Fake blood
You hallucinate that you start bleeding, very simple.
7. Adds a hallucination: Fake telepathy
You hallucinate a random telepathic message, similar to fake chat.
8. Adds a hallucination: Eyes in the Dark
A nearby dark turf will have a set of glowing red eyes shine through the
dark. A classic.
9. Adds some new sub-hallucination: PDA ringtone (fake sound), summon
guns/magic (fake item)
Funny prank.
10. Makes mindbreaker a bit more effective at combating RDS.
Pretty much does nothing right now unless you gulp like 50u.
## Why It's Good For The Game
Hallucinations are pretty one note if you experience them for longer
than 10 minutes.
This is due to two fold:
- Many hallucinations are goofy, and not subtle
- Hallucinations trigger very rapidly
You will never fall for a hallucination because in between "You see John
Greytide put the blueprints away", you get your mom yelling at you,
everyone looking like syndies (again), and bubblegum
This pr addresses it by
- Limiting the wacky hallucinations for when you're really off your
gourd
- Reducing the period between triggers
- Adding a few hallucinations
If the wackier hallucinations are reserved for when you're really off
your rocker, this lets the more subtle ones sink in over time, leaves
more room for second guessing
## Changelog
🆑 Melbert
add: Adds 4-5 new hallucinations. Collect them all.
balance: If you are only hallucinating a little bit, the game will
prefer to pick more subtle hallucinations. If you are hallucinating a
ton, it will prefer the more wacky hallucinations.
balance: If you are only hallucinating a little bit, the cooldown
between hallucinations is longer. If you are hallucinating a ton, it
will be shorter.
balance: If a hallucination fails to trigger (such as a deaf person
getting a sound hallucination) the next one will be a lot sooner.
balance: RDS hallucination amount is capped at mid tier hallucinations.
This means bubblegum and co. will be a lot rarer, or will even never
show. HOWEVER, there is now a preference allowing you to uncap your RDS
hallucinations.
balance: Mindbreaker toxin is more effective at suppressing RDS.
balance: Some hallucinations effects have been tweaked up or down
according to the new thresholds. Madness mask as an example.
fix: "Fake Fire" Hallucination works again, and now has a unique message
for if you stop-drop-roll that other people see.
/🆑
<!-- 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
_**SPECIAL THANKS TO ARTUR**_
TL;DR read the title. But I ported the ability to change the background
of the character creator [from
Virgo](https://github.com/VOREStation/VOREStation/pull/2341). They are
able to be changed in the character creation menu. Also character
resizing works now, so you can properly see your oversized characters.
All of the possible backgrounds are:
- 000 (Pure Black)
- Midgrey (Grey)
- FFF (Pure White)
- White (White Tiles)
- Plasteel (Normal Tiles)
- Dark (Dark Tiles)
- Plating (Maints Plating)
- Reinforced (Reinforced Floor)
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
<!-- Please make sure to actually test your PRs. If you have not tested
your PR mention it. -->
## Why It's Good For The Game
Some people play characters that have pure black parts or are really
dark, so the ability to change the background helps them better preview
their character.
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## Proof Of Testing
It worked and I was able to update the background in game and change it
to other ones.
<!-- Compile and run your code locally. Make sure it works. This is the
place to show off your changes! We are not responsible for testing your
features. -->
<details>
<summary>Screenshots/Videos</summary>

</details>
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and its effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑 xPokee, RimiNosha
add: Added the ability to change the character creator background via
the character visuals tab.
fix: Fixed oversized characters and larger characters not being fully
visible in the character creator
image: Added additional background icons for the character creator.
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
<!-- By opening a pull request. You have read and understood the
repository rules located on the main README.md on this project. -->
---------
Co-authored-by: RimiNosha <riminosha@gmail.com>
## About The Pull Request
Completely refactored how client colors are handled. Now they're similar
to traits, having a source associated with them. Instead of adding and
removing by strict type (which makes client colors prone to getting
duplicated and not cleaned up) you remove a filter associated with a
specific source. Adding another client color with the same source as an
already existing one will replace the existing one if its of a different
type, or do nothing if they're the same (unless force is set to TRUE).
Client colors can also force filter splitting, putting all colors that
come before them, themselves, and all colors after them into separate
filters - this is useful to prevent mixing in filters which are supposed
to remove a certain color.
<details>
<summary>Example of how Perceptomatrix and nightmare vision goggles
combined before this PR:</summary>

And this is after, as you can see nightmare vision effect's red is only
slightly tinted by perceptomatix instead of being literally halved.

</details>
Additionally, added support for custom filters (and not just colors) to
client color code to allow us to work with more colorspaces.
Also fixed weird blindness behavior, so this also
Closes#89787
## Why It's Good For The Game
Makes code less ass to work with, fixes weird color mixing, etc.
## Changelog
🆑
fix: Fixed perceptomatix helmet allowing you to see even when
unconscious
refactor: Refactored how client colors are handled, ensuring that
certain effects like nightmare goggles don't disappear when another
vision-affecting piece of clothing is worn.
/🆑

Fixes#89768Fixes#89769
- Fixes the prefs menu not updating mobs
Organs are imprinted on insert, and SSwardrobe didn't reset this
imprinting status when taking out items.
Weirdly in the past (testing old commits) items withdrawn DID reset
imprinting status - or maybe they never set it in the first place?
- Lots of prefs now respect features
`is_accessible` is used when checking many features rather than the
prefs menu checking itself in the UI
- Bald quirk QOL
Just handy stuff like showing the wig in the prefs preview, pre-starting
with your hat attached
🆑 Melbert
fix: Preference dummy now properly updates when changing some species
features
qol: If you have the bald quirk selected, the wig shows up on the
preference dummy
qol: If you have the bald quirk selected, and your role starts with a
hat, the hat will start attached to your wig
/🆑
## About The Pull Request
Winget returns 0x0 size when the window is minimized, and it can be set
to 0x0 via external tools as well. In this case we should just abort
fit_viewport to prevent runtimes.
## Changelog
Not player facing
Ports the helpers from
https://github.com/BeeStation/BeeStation-Hornet/pull/12240
This should fix some more of the 516 issues that I've seen while giving
a quick check through the code
The remaining browse should work now.
Also fixing another sass warning while being on it.
## About The Pull Request
## Why It's Good For The Game
## Changelog
🆑
fix: tgui say 516 will no longer change channels when the button is used
to drag it
fix: tgui say 516 will no longer leak radio messages into the wrong
channel
fix: runechat flickering when faded up messages fade out
/🆑
Replaces the asset subsystem's spritesheet generator with a rust-based
implementation (https://github.com/tgstation/rust-g/pull/160).
This is a rough port of
https://github.com/BeeStation/BeeStation-Hornet/pull/10404, but it
includes fixes for some cases I didn't catch that apply on TG.
(FWIW we've been using this system on prod for over a year and
encountered no major issues.)

`/datum/asset/spritesheet_batched`: A version of the spritesheet system
that collects a list of `/datum/universal_icon`s and sends them off to
rustg asynchronously, and the generation also runs on another thread, so
the game doesn't block during realize_spritesheet. The rust generation
is about 10x faster when it comes to actual icon generation, but the
biggest perk of the batched spritesheets is the caching system.
This PR notably does not convert a few things to the new spritesheet
generator.
- Species and antagonist icons in the preferences view because they use
getFlatIcon ~~which can't be converted to universal icons~~.
- Yes, this is still a *massive* cost to init, unfortunately. On Bee, I
actually enabled the 'legacy' cache on prod and development, which you
can see in my PR. That's why I added the 'clear cache' verb and the
`unregister()` procs, because it can force a regeneration at runtime. I
decided not to port this, since I think it would be detrimental to the
large amount of contributors here.
- It is *technically* possible to port parts of this to the uni_icon
system by making a uni_icon version of getFlatIcon. However, some
overlays use runtime-generated icons which are ~~completely unparseable
to IconForge, since they're stored in the RSC and don't exist as files
anywhere~~. This is most noticeable with things like hair (which blend
additively with the hair mask on the server, thus making them invisible
to `get_flat_uni_icon`). It also doesn't help that species and antag
icons will still need to generate a bunch of dummies and delete them to
even verify cache validity.
- It is actually possible to write the RSC icons to the filesystem
(using fcopy) and reference them in IconForge. However, I'm going to
wait on doing this until I port my GAGS implementation because it
requires GAGS to exist on the filesystem as well.
IconForge generates a cache based on the set of icons used, all
transform operations applied, and the source DMIs of each icon used
within the spritesheet. It can compare the hashes and invalidate the
cache automatically if any of these change. This means we can enable
caching on development, and have absolutely no downsides, because if
anything changes, the cache invalidates itself.
The caching has a mean cost of ~5ms and saves a lot of time compared to
generating the spritesheet, even with rust's faster generation. The main
downside is that the cache still requires building the list of icons and
their transforms, then json encoding it to send to rustg.
Here's an abbreviated example of a cache JSON. All of these need to
match for the cache to be valid. `input_hash` contains the transform
definitions for all the sprites in the spritesheet, so if the input to
iconforge changes, that hash catches it. The `sizes` and `sprites` are
loaded into DM.
```json
{
"input_hash": "99f1bc67d590e000",
"dmi_hashes": {
"icons/ui/achievements/achievements.dmi": "771200c75da11c62"
},
"sizes": [
"76x76"
],
"sprites": {
"achievement-rustascend": {
"size_id": "76x76",
"position": 1
}
},
"rustg_version": "3.6.0",
"dm_version": 1
}
```
Universal icons are just a collection of DMI, Icon State, and any icon
transformation procs you apply (blends, crops, scales). They can be
convered to DM icons via `to_icon()`. I've included an implementation of
GAGS that produces universal icons, allowing GAGS items to be converted
into them. IconForge can read universal icons and add them to
spritesheets. It's basically just a wrapper that reimplements BYOND icon
procs.
Converts some uses of md5asfile within legacy spritesheets to use
rustg_hash_file instead, improving the performance of their generation.
Fixes lizard body markings not showing in previews, and re-adds eyes to
the ethereal color preview. This is a side effect of IconForge having
*much* better error handling than DM icon procs. Invalid stuff that gets
passed around will error instead of silently doing nothing.
Changes the CSS used in legacy spritesheet generation to split
`background: url(...) no-repeat` into separate props. This is necessary
for WebView2, as IE treats these properties differently - adding
`background-color` to an icon object (as seen in the R&D console) won't
work if you don't split these out.
Deletes unused spritesheets and their associated icons (condiments
spritesheet, old PDA spritesheet)
If you press "Character Setup", the 10-13sec of lag is now approximately
0.5-2 seconds.
Tracy profile showing the time spent on get_asset_datum. I pressed the
preferences button during init on both branches. Do note that this was
ran with a smart cache HIT, so no generation occurred.

Much lower worst-case for /datum/asset/New (which includes
`create_spritesheets()` and `register()`)

Here's a look at the internal costs from rustg - as you can see
`generate_spritesheet()` is very fast:

**Before**

**After**

🆑
fix: Fixed lizard body markings and ethereal feature previews in the
preference menu missing some overlays.
refactor: Optimized spritesheet asset generation greatly using rustg
IconForge, greatly reducing post-initialization lag as well as reducing
init times and saving server computation.
config: Added 'smart' asset caching, for batched rustg IconForge
spritesheets. It is persistent and suitable for use on local, with
automatic invalidation.
add: Added admin verbs - Debug -> Clear Smart/Legacy Asset Cache for
spritesheets.
fix: Fixed R&D console icons breaking on WebView2/516
/🆑
Converts `/datum/player_details` into `/datum/persistent_client`.
Persistent Clients persist across connections. The only time a mob's
persistent client will change is if the ckey it's bound to logs into a
different mob, or the mob is deleted (duh).
Also adds PossessByPlayer() so that transfering mob control is cleaner
and makes more immediate sense if you don't know byond-fu.
Clients are an abstract representation of a connection that can be
dropped at almost any moment so putting things that should be stable to
access at any time onto an undying object is ideal. This allows for
future expansions like abstracting away client.screen and managing
everything cleanly.