## About The Pull Request
Adds pixel perfect 4x and 4.5x scaling. I tested it and it seems to work
though 4.5 scaling causes very slightly distorted pixel sizes. There's
also a bit of letterboxing but I think that happens with all of the
pixel perfect settings.
## Why It's Good For The Game
better fits 4k monitors and isn't stretch to fit
## Changelog
🆑
qol: adds pixel perfect 4x, 4.5x, and 5x
/🆑
## About The Pull Request
Nuclear operatives now receive an alias for their first name, instead of
a default human name. This alias is randomly selected, or can be set in
your name preferences.

This does not affect Operative Leaders selecting the team's last name.
This means that **operative names are now "[Alias chosen by player]
[Team name chosen by leader]".**
There is a list of default aliases, in case no alias has been selected.
I randomly came up with a bunch of stuff from the top of my head and put
it in a text file. If you think of something better, choose it yourself!
**OH, ALSO:**
There's some hair dye in the Firebase dorms now. Useful if you want to
further differentiate between your Operative/Crew characters, or just
look pretty.
## Why It's Good For The Game
No longer shall nukies be "your character but with a different name".
Now you can give yourself a bit more identity instead of just a random
name.
More customization options means more opportunities for people doing
interesting stuff, and to branch away from the beaten path of boring
meta strats.
## Changelog
🆑 Rhials
add: Nuclear Operatives, in an attempt to appeal to the more "tacticool"
members of their cause, have begun using callsigns to designate
themselves. Check your preferences to set your Operative Alias!
qol: At the request of the more vain members of the cause, hair dye has
been added to the Operative Firebase dorms.
/🆑
## About The Pull Request
Reopened#78997
Larger patch for bitrunning that addresses a few issues.
- Two new antagonists: cyber tac and netguardian
- Quantum server emag opportunity
- Modular mob packs: Like random spawners, but for groups
- Antag spawning fixed: vdom antags now have up to a 10% chance to spawn
based on domains loaded
- Virtual domains are no longer all fullbright by default, only the
outdoorsy ones
- Actually deletes legion map file, since it was removed in #79424
<details>
<summary>images</summary>
The netguardian prime


The glitch effect - this mob is being mutated

Cyber tac (t2 antagonist)

</details>
## Why It's Good For The Game
- Bitrunning antagonists are so incredibly rare that it's underwhelming
to play as one for the solid second they offer if you even get the role
- Bitrunners had basically no traitor route to follow, they became
assistants with black outfits
Fixes#79465
<details>
<summary>More info</summary>
Bitrunners don't have any type of traitor options. If they're made into
traitors, there's nothing bitrunner related they can do, and their
access is particularly bad so it's like they're a worse assistant. I've
coupled this with the bitrunning antagonist system, which is now
fixed.\. Bitrunners can now attempt to coax these entities to come onto
the station, however they are not given any form of allegiance for doing
so (and are quite counterable).
Previously, vdom antagonists relied on so many factors to spawn that it
basically wouldn't happen. Now, it runs on the server each time there is
a map loaded, with increasing probability as the round progresses. This
builds up the list of spawnable antagonists, of which two are new,
including an entirely new giant mech megafauna. This is the first
"megafauna-esque" basic mob in the game. Its AI is bad, it's really only
meant to be player controlled, but this does mean an admin can spawn
them. Being mech, they are very counterable with ion rifles and the
like.
Several refactors, rewrites, and overall bug fixes are included in this
PR.
Lastly, I added a framework for making bitrunner maps more random, the
modular mob spawning system, which works in conjunction with random
crate locations.
</details>
## Changelog
jlsnow301, infraredbaron
🆑
add: Bitrunning Patch 1 features a host of changes!
add: Added randomized mobs to virtual domains, which will be indicated
with a unique icon.
add: New emag interaction with the quantum server. Antags will spawn
more frequently, and they can hack themselves onto the station. You have
been warned.
add: Both living and dead players can now see which mob is going to
spawn an antagonist in the vdom.
add: Two new vdom antagonists: Cyber Tac and the NetGuardian. These
unlock at specific thresholds.
balance: You can no longer stack copies of the same ability with
bitrunning disks.
balance: Some of the disk items have been replaced with stronger
versions.
fix: You can no longer spy on crew using the advanced camera console on
syndicate assault.
fix: Fixed the spawning mechanism of virtual domain antagonists. You
should now have a chance of playing as one. This chance increases as
more domains are completed.
fix: Vdom antagonists shouldn't spawn at the end of the run any longer.
fix: The preference for vdom antagonists has been changed to factor in
the new types. Check your preferences!
fix: The quantum server will now show its balloon alerts to all
observers.
fix: Random domains should be fully random again.
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
## About The Pull Request
Title. Adds a little cog button that expands a popper with a preference
list of relevant preferences.
https://github.com/tgstation/tgstation/assets/59709059/5718ad5d-fadb-489f-9a31-9e7173c6f35a
## Why It's Good For The Game
Customizable quirks are cool. Having a proper framework for customizable
quirks is even cooler. Good UX is even COOLER.
## Changelog
🆑
code: Quirks are now customizable on the quirks page instead of on the
character prefs page
/🆑
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
## About The Pull Request
Title.
https://github.com/tgstation/tgstation/assets/59709059/c9fa7d41-6ca4-4b8b-97ec-fdfdd437ce25
## Why It's Good For The Game
The inability to use descriptions in character preferences really limits
the context you can give to readers, which becomes a big problem when
preferences become complicated or laden with policy that must be given
to the reader.
## Changelog
🆑
qol: Character preferences now have descriptions as tooltips - hover
over their names to see them
/🆑
## About The Pull Request
Same vein of #71170 (2d3e7f2383) / #69845
(61d49cb11a) in an attempt to lessen the
number of cruddy "system messages" that just print straight text to
chat.
This could be improved CSS wise but I think a standard examine block
helps a lot while maintaing clarity, see below:

I also heavily refactored adminwho code to not have so much copypasta
while using more `jointext()` and keeping everything a bit more readable
than what it previously was. User-facing stuff should all be the same
(with the addition of an examine block) except in two spots
* Custom header message when no admins are online. I think this is a far
clearer message than having `Current Admins:` and then the message about
adminhelps being relayed to Discord
* There's no tabs per each entry. This was replaced by a bullet point. I
think it's better to read.
## Why It's Good For The Game
As time goes on, I'm more and more peeved by these pretty critical
messages constantly blending in with output from the rest of the game.
This is why balloon_alerts and whatever became so popular to my eyes,
there's just constant junk. I figure that we may as well just keep the
systematic stuff that _must_ live in the chat box looking as neat as
possible.
## Changelog
🆑
qol: Adminwho messages are now in an examine block for heightened
clarity.
/🆑
## About The Pull Request
Adds food allergies as a counterpart to medicinal allergies.
This is about as you would expect. Eating food you are allergic to
causes Anaphylaxis, which can be cured with epinephrine. If you are not
cured rapidly, you will shortly fall into a coma and die.
There is a preference for choosing your character's allergy.
Not all food types are viable allergen types: Only `"Alcohol", "Bugs",
"Dairy", "Fruit", "Grain", "Meat", "Nuts", "Seafood", "Sugar",
"Vegetables"`.
You also get a dogtag like med allergies.
Minor implementation detail: I added a "dangerous" level of food quality
/ scale, so I gave it to the Death Sandwich.
## Why It's Good For The Game
This was a request, and I saw it fairly harmless, so I said why not.
Similar to Medicine Allergy, it adds a small mechanic to concern
yourself with when you visit the kitchen, encouraging you to get a bit
more familiar with food types before diving into food at the kitchen.
As it is not as impactful as Medicine Allergy, it is only a -2 quirk.
## Changelog
🆑 Melbert
add: Adds Food Allergies as a -2 quirk. You can select which food you're
allergic to or rock a random option.
/🆑
## About The Pull Request
Tells the preferences datum to reload the savefile when we associate to
an already existing one
## Why It's Good For The Game
This trolled me locally for a good hour wondering "why aren't my prefs
updating when I swap out the file"
## Changelog
## About The Pull Request
It's exactly 6 months from April 1st, so this is a date for very serious
PRs only.
We've all seen that one tip at the beginning of the round:

So the afro must be really big, right? Having one must be a very large
sacrifice in the realm of pixel-based combat, right?
WRONG.

This is the largest afro currently available. Absolutely pathetic. It's
not even the largest hairstyle in terms of pixel volume.
Here's a bigger one.


The sprite overlaps the tile above by 6 pixels, which is noticeable, but
not enough to interfere significantly with gameplay (apart from having a
sacrificially larger hitbox).

This could already be done by creating a new .dmi file with larger,
non-square pixel bounds, but that's a less than elegant solution.
Instead, added a y offset var to hair sprite accessory datums.
## Why It's Good For The Game
The self-expressive merits of having more hairstyles should be
self-evident, so I will make a mathematical argument here.
Everyone knows that the coolness of an afro is determined by its volume.
As a 2-D sprite, the closet equivalent we have is area. An afro is,
approximately, a circle, so the area can be calculated as πR^2, with R
being the maximum distance from the top of the head to the top of the
sprite bounding box.
The current largest afro has a height of 6 pixels. This new afro has a
height of 12 pixels. As a result, impressiveness increases by a factor
of 4:
```math
coolness_{new\ \ afro} \over coolness_{old\ \ afro}
```
```math
π12^2 \over π6^2
```
```math
12^2 \over 6^2
```
```math
144 \over 36
```
```math
4
```
This means that, for the intrusion of a mere 6 pixels into our northern
neighbor's bounding box, we get **quadruple** the coolness.
## Changelog
🆑
add: Added Afro (Huge) hairstyle
/🆑
---------
Co-authored-by: Cruix <discoveryian2@gmail.com>
## About The Pull Request
Let's see if these can be like 50% playable by Halloween
Fixes#70890 (mostly)
Also one half of #71020 but does not close it because they still cannot
hear audible messages
There was a list of issues in #70890 which are largely fixed by this,
but some of them were not _bugs_.
Anything which is simply an obvious consequence of "not having a head or
being able to wear anything on your head" isn't and cannot be fixed,
because this species doesn't have a head.
That means that all of these things are still true:
```
Dullahans have no radio
Can't get spaceproofed because without the helmet you still take pressure damage
Can't wear modsuits
Can't wear sunglasses or HUDs
Can't wear clown mask
```
The issue causing everything _else_ is that when we sever the head, we
remove the brain. Removing the brain removes the traits
`TRAIT_ADVANCEDTOOLUSER, TRAIT_LITERATE, TRAIT_CAN_STRIP`. Without these
three traits, Dullahans are blocked from several important actions.
Easy fix: Make these properties of the dullahan species independent of
whether they have a brain or not. Clearly they can do these things
without brains, on account of not having them.
Additionally I gave dullahans their own head subtype which preserves
internal organs, because their brains and eyes were decaying and giving
them brain trauma and blindness.
Finally, I changed a few things from checks in `spec_life` to signal
responses, because `spec_life` checks for "did I gain a head recently?"
are gross.
## Changelog
🆑
fix: Dullahans can read, strip people, and utilise tools.
fix: Dullahan brains and eyes will not decay while inside their living
severed head.
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
## About The Pull Request
Fixes#58401Fixes#58799Fixes#58800
Converts the manual heart-beating effect of the cursed heart into a
component.
Behavior has mostly been maintained, but polished a bit as compared to
the original cursed heart. Most notably, the action for beating your
heart is now a cooldown action - providing a visual indicator of when
you can beat it again, rather than leaving you guessing. Some better
checks have also been put in place for edge cases such as having your
species changed.
Implementation inspired by the existing "manual blinking" and "manual
breathing" components. Currently only used by the cursed heart and the
(now majorly simplified) effect of corazargh.
My first component, so hopefully I didn't miss anything.
## Why It's Good For The Game
The cursed heart was kind of unusably bad - which may have been part of
the intent, but having to count in your head or spam-click the button is
just annoying. With a visual indicator of when you should beat your
heart, hopefully it will be slightly less awful for the cursed.
The real motivation here was that corazargh's implementation was kind of
a travesty - summoning a cursed heart inside of your body while it was
in your system, then restoring your old heart afterward. This was
error-prone as well as just being ridiculous. Making this effect a
component gets rid of these problems, and leaves space open for new uses
of manual heart beating if anyone feels like being cruel.
## Changelog
🆑
fix: Your heart will no longer be deleted if an admin heals you while
you have corazargh in your system.
refactor: The cursed heart has been streamlined a bit, and now gives you
a visual cooldown for when you can beat your heart again.
/🆑
## About The Pull Request
The Prosthetic Limb quirk allows you to pick the limb you want. The
default is still random
## Why It's Good For The Game
Good for character customization, which is always nice. Statics who got
a specific limb replaced can now represent that properly in-game.
Also, this makes the quirk show up on the dummy on the character
customization again. This *does* cause a slight issue where when you
switch to another character, it keeps the previous' skin color, but it's
minor enough that i think the benefits are worth the drawback. If asked
i will make it not appear on the dummy though.
## Changelog
DATA_, with great help from Kapu🆑
add: You can now choose the prosthetic you want with the Prosthetic Limb
quirk.
/🆑
## About The Pull Request
Adds an option to the respawn config which forces you to pick another
character (slot) before you respawn.
## Why It's Good For The Game
Just an idea i'm throwing out there, not necessarily pushing for it to
be enabled on any servers.
Respawning as an alternative character can be a good way to make people
less frustrated at dying, particularly if paired with the cooldown
config that already exists:
"Oh shucks, I died and got my head cut off and got absorbed and got
spaced by some changeling. I won't be able to finish my project or
whatever. At least in 15 minutes I may be able to join as my botanist
character to try something else rather than having to wait an hour and a
half for the round to tick over."
Also nice for downstream support.
(Obviously you can just, *ban* people who respawn as the same character,
use an honor system, but codifying it seems better than not.)
## Changelog
🆑 Melbert
config: Adds a config option for player respawning that enables
respawns, but forces you pick a new character.
config: "NORESPAWN" has been replaced with "ALLOW_RESPAWN 0". Unlimited
respawns is "ALLOW_RESPAWN 1" and character limited respawns is
"ALLOW_RESPAWN 2".
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
## About The Pull Request

When #16075 was created in the ancient year of 2016, it was a stopgap
solution to plasmamen spawning in with a regular nukie outfits and
burning to death. As a result, nukies have been human-only for the past
seven years. I come to you today to remove the stopgap, and once again
enable non-human nukies.
This was approved in the past (#59590), and I'm assuming that approval
is still valid. Let's take a look at how things work:
Spawning in as a Nuclear Operative (leader included), Lone Operative,
Clown Operative, or Reinforcement will now set your species to the one
if your prefs. That means lizard, cat, plasma, and ethereal nukies are
all on the table now.
Plasmamen now have their own syndicate envirohelm/suit combo. It doesn't
look fantastic (it's just a palette swapped roboticists envirosuit) but
I think it's serviceable at least. When the operative antag datum is
given, and the owner is a plasmamen, they will instead be given an
alternate outfit with these equipped. Loneop plasmamen will instead be
given a MODsuit with the plasma stabilizer MODule installed. These
MODules also spawn in the firebase lockers in case they're needed.
**But what about the AI?** Fortunately for the balancebrains in the
crowd, there is a preference (enabled by default!) to always roll human
as an operative. The AI still has to reasonably assume that nukies are
human until proven otherwise so please don't think this will affect the
rules of engagement for anyone not _directly opting into it._

(This pref will only appear if you have a nukie job enabled in the antag
menu!)
Huge thanks to Melbert who let me peek at his code on a branch trying to
do the same thing. My approach ended up being entirely on the antag
datum, with nothing on the job datum.
## Why It's Good For The Game
Rectifies a curious change made long long ago. Expands customization to
nukies while not affecting balance for those who care.
## Changelog
🆑 Rhials
add: Nuclear operatives have expanded the scope of their hiring
practices. Members of all species can now roll nukie!
qol: The preferences menu now has an option to always be human when
being selected for a nuclear operative role. Check it out!
image: Plasmaman operative envirosuits.
/🆑
## About The Pull Request
Unlocking an achievement now plays a sound. Which sound is played
depends on the associated preference of the player, found in the Sound
category of the game preferences UI.
The current options are a [glockenspiel
ping](https://freesound.org/people/FunWithSound/sounds/456965/), a
[beeps jingle](https://freesound.org/people/Eponn/sounds/619838/) and a
["tada!"
fanfare](https://freesound.org/people/plasterbrain/sounds/397355/), with
the obvious fourth option to not play a sound at all.
All sounds are from Freesound and are public domain. As such,
attributions are not required. The sounds have been also converted to
.OGG mono 44.1 Khz in accordance to the standards.
## Why It's Good For The Game
Enhancing the player feedback for unlocking an achievement with
choosable sounds.
## Changelog
🆑
sound: Unlocking an achievement now plays a sound by default. You can
change it in the Sound category of the game preferences.
/🆑
Current implementation uses isobserver for checking if we should send to
the player but dead players (who are still in their body) are not
observers and will fail that check.
## About The Pull Request
`init_possible_values()` now only ever returns a list of values instead
of both values and icons. The responsibility of icon generation has
moved from this proc to a new `icon_for(value)` proc, which returns the
icon/typepath of an atom. A runtime is thrown if any value does not have
an icon.
This boosts production initialization times by 3+ seconds, but is
primarily done to allow for further optimizations of this process. As an
example, it is a mapping of value -> icon so that in the code that
executes this we can have more fine grained control over tick overrun.
As a bonus, fixes#67092.
## About The Pull Request
The string list is awful for maintainability and is the reason the
filter_invalid_quirks() proc wouldn't work properly.
randomise_quirks() is still broken though.
## Why It's Good For The Game
## Changelog
🆑
fix: Incompatible quirks in existing savefiles shouldn't be possible
anymore.
/🆑
## About The Pull Request
Makes client upload limit a config. Increases max file size admins can
upload to 5mb, up from 2.5mb.
## Why It's Good For The Game
Makes it easier to do custom maps for events. Some of our in-game maps
are already larger than 2.5mb (delta is almost 3mb).
## Changelog
🆑
admin: admins can now upload files to the server up to 5mb (used to be
2.5mb)
config: file upload restriction is now config
/🆑
## About The Pull Request
this pr made me learn to webedit
## Why It's Good For The Game
turns out headmins have interesting functionality, probably good to have
them around
## Changelog
🆑
balance: Re-escalates terry powergaming by increasing the strength of
sec
/🆑
## About The Pull Request
- Adds the ability to force your TTS voice to always be blips, default
is still normal speech
- Probably fixes a bug with silicon voices not transferring properly?
There was an entire argument missing from tts_request/New
- Fixes problems I got from the Docker build not working at all. Only
thing interesting is `--no-cache-dir` which was to fix the container
running out of RAM even though I literally just got 64GB of RAM today
Got permission from @optimumtact as alternative to being able to disable
your voice, CC @Iamgoofball
## Why It's Good For The Game
I spent two hours trying to find a voice that didn't make me
uncomfortable to use and that was even in the realm of being the voice I
would actually want people to hear. Characters still have distinct
"voices" because the blips are chopped together from the voice itself
## Changelog
🆑
add: You can now set your voice to just blips.
/🆑
## About The Pull Request
This PR adds a bunch of sanity checking to the `prefs.chat_toggles` var
accesses.
Prefs can be null when client is creating/deleting and this causes a
runtime where you might not be able to use emotes.

EDIT: as per suggestion I stopped masking the issue and added stack
traces instead. And made them into helper procs to avoid code
duplication.
For some of these procs it is important that we are able to continue
running to get to the end. **A ghost having null prefs should not stop
everyone else from hearing/seeing the emote.**
So now they will put the stack trace and keep on trucking if that issue
occurs. This is the main 'point' of the PR, which has seemingly gotten
bogged down in the creation of the two helper procs--apologies.
See https://github.com/tgstation/tgstation/pull/70404 for essentially
the same issue but applied to chat messages. I have gone back and
replaced the duplicated code from that to use the new helper procs
instead.
## Why It's Good For The Game
Anything chat related is a bad place to runtime. Some messages can take
a while to type out and to have it not display is frustrating at worst,
possibly detrimental if you have to communicate something urgently.
## Changelog
🆑
fix: fixes a bug that can cause emotes to stop working if a client is
being created or deleted
/🆑
## About The Pull Request
I'm adding a unit test for the sanity of client colours, ancient datums
which I had refactored a long time ago. This also affects the
`color_to_full_rgba_matrix()` proc, which I had also worked on.
## Why It's Good For The Game
Ever since that aforementioned years old refactor, there have always
been a few issues with client colours.
The most annoying one being the monochromacy client color lingering even
after the blindness status effect is ok.
It's unlikely this will fix that. However, this should clear a few other
runtimes with the feature.
## Changelog
N/A.
## About Why It's Good For The Game The Pull Request
What it says on the tin. A requested feature for people who like to keep
an eye on swaths of new players. A config that is off by default, but a
Discord role ID can be added to have TGS ping that role.
Also sends alerts to Discord if a player with sketchy telemetry joins.
## Changelog
🆑 Tattle
admin: Pings an admin role on discord when a new player joins (when
enabled by config)
/🆑
---------
Co-authored-by: tattle <article.disaster@gmail.com>
## About The Pull Request
Adds some nice little mouse button indicators (optional), this is a port
of my version at
[Citadel-Station-13/15973](https://github.com/Citadel-Station-13/Citadel-Station-13/pull/15973).
**There is no more intent coloring**
## Why It's Good For The Game
Quick identification of what to do. Eh, i dunno if it's getting
accepted, mothblocks asked me to port it over.
## Changelog
🆑
image: Changed screentips icons to something a lot fancier unified with
the LMB / RMB text.
qol: There are accessibility preferences to disable this! Look for
"Screentip context with images" beside the other screentip preferences.
/🆑
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
instead of mob/species/human the icon folders are now mob/human/species,
this makes much more sense imo than having human stuff like hair or
bodyparts (which are a GENERAL thing, not human species only) be behind
a folder while you see shit like podperson hair and golem in the main
folder
the icon for human is replaced by the new sprites instead of the old
yellow guy with green eyes
Hey! its 515 time, so i thought we should close up the last compability
change from 514 that slipped thru the cracks.
under 514 the LEFT/RIGHT/MIDDLE mouse button keys to the mouse param
list are set if they are pressed at all, while the `button` param says
which mouse button being clicked triggered that action.
More mouse code likely needs to be changed to account for this, but this
is the most critical path that cared about the distinction between which
buttons are being held and which button triggered the current mouse
action.
Fixes#76836 maybe?
## About The Pull Request

I actually do not know how to test this locally as I don't know how to
set TTS up, hope it works.
## Why It's Good For The Game
It's 2 buttons, one only works depending on the other, I don't think it
makes sense.
## Changelog
🆑
qol: The TTS and TTS Blips option is now one choiced preference.
/🆑
## About The Pull Request
#76305 removed the knowledge of every language from silicons, but this
had a couple of oversights.
This language set was not only used by cyborgs but also bots and vending
machines.
A couple of effects relied on them knowing all of those languages,
specifically their emp_act and also the station trait which rerolled
their languages.
Now they actually _learn_ a random language and start speaking it
instead.
Also I fixed a related runtime which I noticed in testing where a bot
would die as a result of being EMPed, delete itself, and then try and do
a bunch more shit after it stopped existing. Annoying.
Why was I looking at bot languages? Haha don't worry about it 😇
## Why It's Good For The Game
Restores function of a funny feature.
## Changelog
🆑
fix: Station traits can once again allow vending machines and bots to
speak a random language
fix: EMPed bots and vending machines once again speak a random language
/🆑
## About The Pull Request
Further continous organizing and cleaning the Icons folder. There are
still some minior nitpicks left to do, but I reached my daily sanity
expenses limit again, and the faster these get in the less issues for
both me and others later. Also cleans some mess I caused by my blindness
last PR.
## Why It's Good For The Game
Saner spriters = better sprites
## About The Pull Request
Code ported from https://github.com/lizardqueenlexi/orbstation/pull/461.
What this specifically does is adds the option for it/its pronouns to
character creation like how we added they/them a year or two ago. This
also allows human NPCs to generate with it/its pronouns and adds support
for it to Genetics.
This was requested by a member of the community and I saw no reason to
deny their request.
I've also changed the gender selector in character creation to basically
a pronoun selector - he/him instead of male, etc. Instead of using the
doll FontAwesome icons I switched it over to using gender symbols
because I couldn't find a better icon for neuter.

## Why It's Good For The Game
Inclusivity good, also this took me like ten minutes so why not
## Changelog
🆑 Vekter
add: Adds support for it/its pronouns. You can select these in character
preferences.
/🆑
## About The Pull Request
This was one of the tradeoffs for removing other, more consistent
sources of languages, and was requested by Melbert among many others.
This does go against my wanted goal of decreasing the risk of
eavesdropping by other players through just magically knowing a
language, but it is an expensive quirk and it is in their medical
records, which makes it better than language encryption keys or silicon
just innately knowing them.
This also limits Bilingual to only roundstart languages (+Uncommon),
rather than being randomly selected from a list (that had very useless
ones like monkey, podpeople, and beachbum). This is mostly just for
modularity, I didn't want to make it look terrible code-wise and thought
this may be the optimal way to handle it.
This is also me going back on
https://github.com/tgstation/tgstation/pull/71773 - which I had closed
myself.
## Why It's Good For The Game
If we're gonna keep the Bilingual quirk, it might as well be something
players can choose the language of, it's their character and they should
be allowed to decide how their character is, and it is my fault that
this stupid compromise of "getting a random language" was made in the
first place. It never should've happened.
It now actually limits it to roundstart-only languages, so there's no
way you can spy on people who prepare in advance through becoming
podpeople, or monkeys, etc.
## Changelog
🆑
balance: Bilingual quirk now lets you choose your language between ones
given to roundstart species.
balance: Foreigner and Bilingual are now mutually exclusive languages.
/🆑
## About The Pull Request
Removes the TTS voice disable option, which was already unavailable on
TG as it was set to off by default. The reason this was added was so
that downstreams could toggle the config on or off.
## Why It's Good For The Game
I think this option fundamentally undermines the TTS system because it
allows individual players to disable their voice globally, meaning that
players who have TTS enabled will not be able to hear them.
This worsens the experience for players who have TTS enabled and it's
not something I want to include as an option. If players don't like
their voice, they can turn TTS off for themselves so that they don't
hear the voices. If players don't want to customize their voice, they
can quickly choose a random voice, and we can take directions in the
future to make voice randomization consistent with gender so that a male
does not get randomly assigned a female voice and vice versa.
This option is already unavailable on TG servers because it was
primarily added for downstreams, but I don't think giving downstreams
the option to undermine the TTS system is the right direction to take.
Downstreams are still completely free to code this option on their own
codebase.
---------
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
## About The Pull Request
What the title says.
The brain trauma makes the whole screen monochrome until cured.

## Why It's Good For The Game
I feel like the current pool for mild brain traumas is quite lame, this
helps spice it up a bit with something that is quite annoying and
distracting but not game breaking (as mild brain traumas should
generally be).
## Changelog
🆑
add: Added colorblindness as a mild brain trauma.
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
## About The Pull Request
Adds Jaywalking as a prisoner crime
Also moved Mass Murder so it's alphabetically ordered.
## Why It's Good For The Game
I was pretty surprised such a serious crime was somehow overlooked.
But more seriously, I feel it fits the tone of this game to have
something a little silly there. Hopefully the warden and sec won't be
too hard on people put away for this crime.
## Changelog
🆑
add: Prisoners can now be jaywalkers
qol: reordered a crime so it appears on the choice list alphabetically.
/🆑
## About The Pull Request
very similar to https://github.com/tgstation/tgstation/pull/76297, much
simpler though
removes the uses_skintones variable for similar reasons
## Why It's Good For The Game
Species variables are less useful and modular than traits.
If for some reason we ever add a mechanic that for some reason makes
your character use skin tones instead of whatever their original color
is, it will be much simpler to be handled.
## Changelog
not player facing
## About The Pull Request
This check is redundant because 512 fixed the exploit it was designed to
check. Randomizers still exist, but this code doesn't apply to them
since they use a different method.
Someone else tried this before but got his shit slapped for it being his
first PR and there being a possibility he was removing it so he could
bypass it. I'm not banned and have no possible ulterior motives; I just
want to get rid of dead code.
## Why It's Good For The Game
I'd make an Old Yeller joke, but the code's already dead, so.
Fixes#43227
## Changelog
This is not a player-facing change.
## About The Pull Request
- In PR https://github.com/tgstation/tgstation/pull/76356 missed a few
bits of maptext around, such as shuttle signs and the supermatter. Small
text adjustments/fixes here.
- Large amount of feedback about the context tooltips. Increases size,
lightens default color as to not be too imposing.
🆑 LT3
qol: Context tooltip size increased
fix: Fixed remnants of old maptext code on various things
/🆑
## About The Pull Request
Continues the work I started on
https://github.com/tgstation/tgstation/pull/76074
Fixes https://github.com/tgstation/tgstation/issues/73782
Implements a bunch of wrapper procs for hair style, facial hair style,
etc etc the whole nine yards.
Fixes many issues, especially with gradients because I did sloppy tired
code that didn't work there.
Makes head/get_limb_icon() not a disgusting mess (well, at least makes
it less of a disgusting mess).
## Why It's Good For The Game
Actually makes hair and lips depend entirely on the bodypart.
## Changelog
🆑
refactor: Head rendering code has been updated significantly... Again.
Please report any issues with hair, facial hair, lipstick and such.
/🆑
## About The Pull Request
IT'S OVER.
## Why It's Good For The Game
Species traits are a relic of a time before the trait system was added
to generalize this kind of behavior.
They are clunky and overall less useful than inherent_traits -
Converting these makes it easier to make these behaviors modular and
usable not only by species.
## Changelog
🆑
refactor: A significant species refactor happened, report any issues on
the github.
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>