## About The Pull Request
Tested on a private server with edited odds that the pulse rifle doesn't
spawn when won and only the message pops.
After code edit it spawned accordingly but the low odds remain.
## Why It's Good For The Game
Beating one in a million odds and not getting a pulse rifle is
disappointing, it should spawn now.
## Changelog
🆑
fix: fixed the pulse rifle not spawning when won
code: added get_turf to the pulserifle when the odds are beat.
🆑
## About The Pull Request
* A generic /mob/eye/camera type has been made, containing everything
needed to interface with a cameranet
* /mob/eye/ai_eye has been refactored into a generic /mob/eye/camera
instance
* Advanced cameras no longer inherit from AI eyes, splitting off
behaviour
* Camera code has been somewhat cleaned up
* Probably some more stuff I'm forgetting right now
## Big man Southport:

## Changelog
🆑
code: made /proc/getviewsize() pure
refactor: mob/eye/ai_eye has been restructured, now inheriting from a
generic mob/eye/camera type
refactor: advanced cameras and their subtypes are now
mob/eye/camera/remote subtypes
code: the cameranet no longer expects the user to be an AI eye
code: remote camera eyes have had their initialization streamlined
code: remote cameras handle assigning and unassigning users by
themselves now
code: remote cameras now use weakrefs instead of hard referencing owners
and origins
code: also the sentient disease is_define was removed (we don't have
those anymore)
fix: AI eyes no longer assign real names to themselves, fixing their
orbit name
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
This allows you to use a fishing rod during the "manipulate organs" step
of the aforementioned surgery to snatch organs from a target.
Unlike other fish sources, this one has a negative fishing difficulty of
-20, which when summed with the default minigame difficulty should still
result in a negative difficulty. In layman terms, this means the
minigame is skipped here (unless you're wearing some clunky stuff like
insulated or boxing gloves). It also has a wait time of 8 to 13 seconds
versus the more random standard 3 to 25 seconds.
A small side-effect of this is that explosions during the "manipulate
organs" step will basically disembowel you, but it kinda fits anyway.
By the by, because of this, there is a tiny chance bluespace fishing
rods can yield you random organs. Worry not, they're newly generated, so
you won't be snatching it from another player by accident (at least for
now).
## Why It's Good For The Game
It adds more possible weird and rare shenanigans involving surgery.
## Changelog
🆑
Add: You can use a fishing rod to snatch organs during organ
manipulation surgery
/🆑
## About The Pull Request
Fixes issues with var typing and proc arguments, discovered using
OpenDream's WIP TypeMaker feature (using improvements I haven't PR'd
upstream yet).
## Why It's Good For The Game
Codebase maintenance.
## About The Pull Request
**READY-DONK'S BACK!!**

Gives a (sorely needed) new lick of paint to Ready-Donk. The sprites are
based off of the import vendor trays from Skyrat
(https://github.com/Skyrat-SS13/Skyrat-tg/pull/16215), originally by
Paxilmaniac, and I think they really help nail the microplastic-laden
ready meal aesthetic that Ready-Donk was always meant to embody.
As a fun extra, I also threw together some sprites for some TV dinner
classics, Salisbury Steak and Country-Fried Chicken, and figured I might
as well go the extra mile and actually add them in.
## Why It's Good For The Game
More Ready-Donks means more sodium for the crew, and more sodium equals
more gooder.
Also, if I'm being honest with myself and with everyone else, the
current crop of sprites for Ready-Donk never really captured the feel I
was aiming for with them; this new set is both generally better (I
think, anyway) and actually looks like what it's meant to be.
## Changelog
🆑
add: DONK CO. HAS UNVEILED A NEW RANGE OF READY-DONK PRODUCTS! GET THEM
AT CARGO TODAY!
image: READY-DONK: NEW LOOK, SAME GREAT TASTE
/🆑
## Why It's Good For The Game
Clarity and consistency regarding DM's systems.
Internally, `eye` is used for anything that controls the client's view.

How `eye` is used in DM is consistent with how we use the term, so I
figured this would add clarity.
Being named mob/camera also makes it unclear exactly what it's doing.
The name implies that it would function similar to how mob/camera/ai_eye
does, but most of the time it's only used as... an eye.
My ulterior reason for this PR is that I want to clean up
mob/camera/ai_eye and it's subtypes after this.
## Changelog
🆑
server: mob/camera has been renamed to mob/eye, which may break
downstreams
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Chef produces is 35% cheaper to order from the chef console
## Why It's Good For The Game
If chef is forced to order from the cargo because botany isn't growing
what they need they deserve a discount, also this is inline with mining
and bitrunning discounts.
## Changelog
:cl:oranges
balance: Chef produce orders are cheaper
/🆑
---------
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
## About The Pull Request
Title; also fixed a runtime in `restore_comp` where no user was provided
to log the message. Also changed some var names and dmdocs the place
## Why It's Good For The Game
Fixes#72868
## Changelog
🆑
fix: fixed APC control console found in CE office only accessing APCs on
its z-level
fix: fixed restoring an emagged APC control console potentially leaving
the console in a forever state of restoring
/🆑
## About The Pull Request
closes https://github.com/tgstation/tgstation/issues/87136
## Why It's Good For The Game
it makes sense for a tv to have a volume button, some people just don't
want to listen to it all day.
## Changelog
🆑 grungussuss
qol: you can now turn off the volume on an entertainment monitor
/🆑
---------
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
## About The Pull Request
You can no longer view operating computer UI while lying down as to
prevent patients from peeking at the computer.
## Why It's Good For The Game
Currently its very hard to pull off a surprise brainwashing surgery on
someone as the patient can always peek at the computer to see what
exactly is going on. With this change players will have to trust their
doctors unless they want to be a victim of surgery related shenanigans.
## Changelog
🆑
balance: You can no longer view operating computer UI while lying down
/🆑
## About The Pull Request
Added a NO_DNA_SCRAMBLE check to the actual inactive mutation shuffling
action.
Added a mutadone check to the remove individual mutation proc.
Added arguments to inflate_gib().
Syndicate Monkeys will now slowly explode via the above proc if they're
species-changed.
This PR will not compile due to a bug on master.
## Why It's Good For The Game
> Added a NO_DNA_SCRAMBLE check to the actual inactive mutation
shuffling action.
I added this to the wrong proc. Turns out scramble_dna() is unrelated to
Scramble DNA. Yeah.
> Added a mutadone check to the remove individual mutation proc.
Someone forgor this and it became an issue when TRAIT_BORN_MONKEY was
added, which calls this proc instead of remove_mutation_groups on
ingestion, which does have the parameter.
> Added parameters to inflate_gib().
Default is the same as it used to be.
> Syndicate Monkeys will now slowly explode via the above proc if
they're species-changed.
I love seeing people use my syndicate monkeys but more often than not
they or the monkey immediately fuck off to become a human in genetics,
and holy shit that riles me up hard. This item is not meant to give you
a free human buddy. It's meant to give you a free monkey buddy.
Originally I didn't worry too much about the crew finding out ways to
humanize, but I changed my mind after seeing how one-note players are. I
don't want another lame cheese exploit causing people to use this as
cheap reinforcements.
The uplink item's desc has been updated to fit this new information.
You can still brain transfer, if you want to lose the clever mutation
and have a human that can't use machines.
## Changelog
🆑
fix: We found out that the money meant to purchase mutation vaccines for
Syndicate Monkey agents against mutation was being embezzled to buy
Space Yachts. We've repurposed their biomass towards a new and improved
vaccine, which has the minor side effect of causing allergies if their
species type is forcibly altered.
/🆑
## About The Pull Request
This fixes a bug that was hard to troubleshoot. While I was testing my
other PR, I noticed that I was getting inconsistent atmos readouts while
using a gas sensor hooked to an air alarm. Sometimes I would get the
readout from the tile of the air alarm, and other times it would give me
the readout of the gas sensor... I tracked it down and the root cause
was the `COMSIG_TURF_EXPOSE` signal not being properly reassigned when a
gas sensor was connected.
My fix is to transfer the signal from the air alarm to the air sensor
and vice versa when they are connected/disconnected. I also added some
redundancies in place to limit air sensors to be only connected to one
air alarm at a time. I threw in a mapping check to make sure one air
alarm isn't linked to multiple sensors to catch some accidents.
Another small fix is that air alarms now can be relinked to other air
sensors if the sensor is reset. This was a problem for round-start
linked air alarms that were paired with sensors since you could turn off
or break a sensor and then the air alarm would have it's link severed
without being able to link to any new sensors.
## Why It's Good For The Game
Air alarms are becoming more robust!
## Changelog
🆑
fix: Fix air alarms to work correctly while connected to a gas sensor
fix: Fix paired air alarms and sensors to be able to relink to other
devices if turned off, reset, or destroyed.
/🆑
## About The Pull Request
Changes map votes to be based on a persistent tally count.
Tallies for maps are cached between rounds and are added to by map
votes.
When a map is chosen, and it wasn't the only valid one, the tallies for
said chosen map will be reset.
Refactors map vote handling and moves it from SSmapping to SSmap_vote.
Rock the Vote has been removed as a result of this refactor.
## Why It's Good For The Game
Makes it more likely that all maps will be played over the course of a
server instead of always being truly random.
Removes some clutter off of SSmapping.
🆑
refactor: Map Votes are now carried over between rounds. When a map vote
is actually a contest, the winning map will have its votes reset.
/🆑
## About The Pull Request
All usages of world.icon_size in code have been replaced with new
`ICONSIZE_X`, `ICONSIZE_Y` and `ICONSIZE_ALL` defines depending on
context
Replaces some "32" magic numbers with the defines
A few bits of code have been modified to split up x/y math as well
## Why It's Good For The Game
Magic number bad, code more readable, code more flexible and I'm told
there's an access cost to doing world.icon_size so minor performance
gains
## Changelog
🆑 tonty
code: made some code relating to the world's icon size more readable
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
123 changed files and multiple crashes after writing broken regex, I
replaced most remains of direct spans with macros. This cleans up the
code and makes it easier to work with in general, see justification for
the original PR. I also fixed a bunch of broken and/or unclosed spans
here too.
I intentionally avoided replacing spans with multiple classes (in most
cases) and spans in the middle of strings as it would impact readability
(in my opinion at least) and could be done later if required.
## Why It's Good For The Game
Cleaner code, actually using our macros, fixes borked HTML in some
places. See original PR.
## Changelog
Nothing player-facing
## About The Pull Request
<details>
- renamed ai folder to announcer
-- announcer --
- moved vox_fem to announcer
- moved approachingTG to announcer
- separated the ambience folder into ambience and instrumental
-- ambience --
- created holy folder moved all related sounds there
- created engineering folder and moved all related sounds there
- created security folder and moved ambidet there
- created general folder and moved ambigen there
- created icemoon folder and moved all icebox-related ambience there
- created medical folder and moved all medbay-related ambi there
- created ruin folder and moves all ruins ambi there
- created beach folder and moved seag and shore there
- created lavaland folder and moved related ambi there
- created aurora_caelus folder and placed its ambi there
- created misc folder and moved the rest of the files that don't have a
specific category into it
-- instrumental --
- moved traitor folder here
- created lobby_music folder and placed our songs there (title0 not used
anywhere? - server-side modification?)
-- items --
- moved secdeath to hailer
- moved surgery to handling
-- effects --
- moved chemistry into effects
- moved hallucinations into effects
- moved health into effects
- moved magic into effects
-- vehicles --
- moved mecha into vehicles
created mobs folder
-- mobs --
- moved creatures folder into mobs
- moved voice into mobs
renamed creatures to non-humanoids
renamed voice to humanoids
-- non-humanoids--
created cyborg folder
created hiss folder
moved harmalarm.ogg to cyborg
-- humanoids --
-- misc --
moved ghostwhisper to misc
moved insane_low_laugh to misc
I give up trying to document this.
</details>
- [X] ambience
- [x] announcer
- [x] effects
- [X] instrumental
- [x] items
- [x] machines
- [x] misc
- [X] mobs
- [X] runtime
- [X] vehicles
- [ ] attributions
## Why It's Good For The Game
This folder is so disorganized that it's vomit inducing, will make it
easier to find and add new sounds, providng a minor structure to the
sound folder.
## Changelog
🆑 grungussuss
refactor: the sound folder in the source code has been reorganized,
please report any oddities with sounds playing or not playing
server: lobby music has been repathed to sound/music/lobby_music
/🆑
Fixes#86784
## About The Pull Request
Although some of the issues found were a direct result from #86692
(c698196766), there was still 40% of
length-related issues that wouldn't be covered anyways that are fixed in
this PR. I.E.:
* Name inputs without `MAX_NAME_LEN`
* Desc inputs without `MAX_DESC_LEN`
* Plaque inputs without `MAX_PLAQUE_LEN`
* Some people just screwed up the arguments so it would prefill
something like "40" in the `default` var because they didn't name their
vars.
To help me audit I added a lot of `max_length` named arguments to help
people understand it better. I think it might be kinder to have a
wrapper that handles adding `MAX_MESSAGE_LEN` in a lot of these cases
but I think there is some reason for a coder to be cognitive about input
texts? Let me know what you think. I didn't update anything
admin-related from what I can recall, let me know if anything needs to
be unlimited again.
## Why It's Good For The Game
The change to `INFINITY` notwithstanding, there were still an abundance
of issues that we needed to check up on. A lot of these are filtered on
down the line but it is clear that there needs to be something to catch
these issues. Maybe we could lint to make `max_length` a mandatory
argument? I don't know if that's necessary at all but I think that the
limit should be set by the invoker due to the wide arrangement of cases
that this proc could be used in.
This could all be a big nothingburger if the aforementioned PR is
reverted but a big chunk of cases fixed in this PR need to be fixed
regardless of that since people could put in 1024 character names for
stuff like guardians (or more now with the change). Consider this
"revert agnostic".
## Changelog
🆑
fix: A lot of instances where you could fill in 1024-character names
(normal limit is 42) have been patched out, along with too-long plaque
names, too-long descriptions, and more.
/🆑
## About The Pull Request
Improves feedback for broken suit sensors and simplifies repair.
- MedHUD and crew monitor can now see if a uniform's suit sensors are
broken
## Why It's Good For The Game
Beyond some easily missed examine text, there is no real easy way to
find out which players have broken suit sensors. This allows medbay to
be able to tell at a glance, and rectify vs. staring at the crew monitor
comparing who walked in with what the sensor status is on the console.
(And then yelling at them to fix their suit sensors, which half the time
they don't know how to do with the cable)
There's no change to the player's selected suit sensor level (off,
vitals, full data, etc.) this is only applicable to suit sensors in the
BROKEN_SENSORS status that are needing to be repaired with cable coil.

## Changelog
🆑 LT3
qol: Medical HUD and crew console can now detect broken (shorted out)
suit sensors needing repair
/🆑
## About The Pull Request
You can now look at an entertainment monitor from up to 7 tiles away.
You still must be adjacent (or telekinetic, or a silicon) to change the
channel.
## Why It's Good For The Game
Using these things is a little frustrating given they're wall mounts
that you have to be adjacent to watch. So if someone's doing a TV show
bit you basically have to get everyone to clutter around one single tv,
when more accurately people could just stand back and watch.
## Changelog
🆑 Melbert
qol: You can watch entertainment monitors from up to seven tiles away,
though you still need to be adjacent(or telekinetic, or a silicon) if
you want to change the channel.
/🆑
## About The Pull Request
this is a revival of #82635 . i got permission from potato to reopen
this, he did almost all the work. i only just solved the conflicts and
fixed all the bugs that were preventing the original from being merged
(but it should be TMed first)
## Why It's Good For The Game
slightly improves the performance of basic mob AI
## Changelog
🆑
LemonInTheDark
refactor: able_to_run and incapacitated have been refactored to be event
based
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: ZephyrTFA <matthew@tfaluc.com>
## About The Pull Request
The first Curator now spawns with a **Broadcast Camera**, a normal-sized
item that can be wielded to start a live broadcast to all entertainment
screens across the Station! It also broadcasts sound through a new
Entertainment radio channel that can be spoken into by the Curator. The
broadcast name can be changed by right-clicking the camera.
<details>
https://github.com/user-attachments/assets/cfe2a147-15b3-4a96-85e2-3082376a0e9a
</details>
Also adds a new clothing set to the Heroic Beacon of the Curator themed
around Journalists containing some unique clothing, a microphone, a
Press badge used for shoving into people's faces and crafting more
clothes (like Press armor and helmet), and also a set of 1 TV and 1
entertainment radio in-case station does not have places to watch
Curator's brilliant broadcasts.

## Why It's Good For The Game
The job of Curator has 3 things it can do:
- Curate Library (lol)
- Explore Space
- **Create News!**
Although the Curator does have extended access to the Newscaster -
that's not enough of content. Inspired by the Combat Correspondent from
the Colonial Marines server - Curator now has a **Broadcast Camera**!
Using it they can show the station what the most important matters that
are going on without lifting the butts of their comfortable chairs.
No matter what Curator will report: Security raiding Medbay? Interviews
of Cargo Techs complaining about Command? Maybe even shows produced in a
studio? Anything really!
Also, entertainment screens will get more use, as right now they only
_sometimes_ broadcast Bitrunning avatars and nothing else unless admins
mess with them.
## Changelog
🆑 DrDiasyl aka DrTuxedo
add: Curator has received a new BROADCAST CAMERA which can broadcast the
surroundings LIVE on Entertainment Screens/ Alongside with some other
Journalism related gear in his Heroic Beacon
sound: Entertainment screens now play muffled speech when hearing a
message on Entertainment frequency
/🆑
## About The Pull Request
Fixes several errors to spelling, grammar, and punctuation.
## Why It's Good For The Game
## Changelog
🆑
spellcheck: fixed a few typos
/🆑
## About The Pull Request
https://github.com/user-attachments/assets/b756bc49-70f0-4c86-8b04-5f0566d606a2
I've made the sound really quiet (quieter than most other sounds in the
game) so it shouldn't be too annoying, there is 7 variants of the clicks
so ear fatigue shouldn't strike too bad.
## Why It's Good For The Game
Clicky sounds release a dopamine surge for players and gives you audio
feedback when you're doing something, it also triggers when someone is
else working at a computer which tells you that they're using it.
## Changelog
🆑 grungussuss
sound: computers now make clicky clacky sounds
/🆑
## About The Pull Request
Currently to check for Silicon access, we do:
``if is silicon or is admin ghost or has unlimited silicon privileges or
has machine remote in hand``
What has unlimited silicon privileges? Bots, Drones, and admin ghosts.
To check for AI access, it just checks for AI instead of silicon, and
doesnt check for unlimited silicon privileges.
This was kinda silly, so I thought I should make this a little easier to
understand.
Now all silicon/ai traits come from ``AI_ACCESS_TRAIT`` or
``SILICON_ACCESS_TRAIT``. I made a single exception to keep Admin ghost,
since now instead of being a var on the client, we moved it to using the
same trait but giving it to the client instead, but since we have to
keep parity with previous functionality (admins can spawn in and not
have this on, it only works while as a ghost), I kept previous checks as
well.
No more type checks, removes a silly var on the mob level and another on
the client.
Now while I was doing this, I found a lot of tgui's ``ui_act`` still
uses ``usr`` and the wrong args, so I fixed those wherever I saw them,
and used a mass replace for the args.
Other changes:
- machinery's ``ui_act`` from
https://github.com/tgstation/tgstation/pull/81250 had ``isAI`` replaced
with ``HAS_AI_ACCESS``, this has been reverted. Machine wands and admin
ghosts no longer get kicked off things not on cameras. This was my
fault, I overlooked this when adding Human AI.
- Human AI's wand gives AI control as long as it's in your hand, you can
swap to your offhand. I hope this doesn't end up going horribly,
otherwise I'll revert this part. It should let human AIs not have their
UI closed on them when swapping to eat food or use their door wand or
whatnot.
- Bots previously had special checks to scan reagents and be
unobservant, I replaced this with giving them the trait. I also fixed an
instance of unobservant not being used, so now statues don't affect the
basic creature, whatever that is.
## Why It's Good For The Game
This is an easier to understand way of handling silicon access and makes
these mobs more consistent between eachother.
Other than what I've mentioned above, this should have no impact on
gameplay itself.
## Changelog
🆑
fix: Statues don't count as eyes to creatures.
fix: Human AIs and Admin ghosts no longer get kicked off of machines
that aren't on cameranets.
/🆑
Hello everybuddy, your number three rated coder-failure here to clean up
some mess. This PR accomplishes some of the more major structural clean
up changes I wanted to do with /obj/ folder, but decided to wait on
until wallening gets merged, and so, time has come. Several things to
still be done, although I know these cleaning PR's are quite a load, so
will wait for this one to get done with first.
## Why It's Good For The Game
Saner spriters, better sprites, less annoyance. Also deleted a whole
load of redundancy this time around, a lot of sprites which existed
simultaniously in two places now got exit their quantum superposition.
## About The Pull Request
1. Silicons now able to invalidate crimes, because... they have armory
access too.
2. After citation being paid off there will be no more broken 0 in sec
records
3. After citation being paid off it will be invalidated automticaly
4. Crime authors can invalidate crimes, issued by them.
5. In case of invalidation, crime now shows who voided it
6. Also fixing bug with editing crime description
<details>
<summary>Screenshots</summary>



</details>
## Why It's Good For The Game
Thats few fixes and QoLs features.
If someone want to argue about:
1. Synths: man they was able to issue crimes which is more impactfull +
now voiding is recorded
2. Authors: they had ability to edit name and description, why can't
delete?
3. Voiders: how offen do you use invalidate button? How many of those
uses you wanna hide from sec?
## Changelog
🆑
fix: Strange zeros in paid off citations on sec records
fix: Now invalidating citations works
fix: You can change crimes description
fix: Synths have 'armory access' for sec records logic
qol: Paying off citation now automaticaly voiding it
qol: Crime issuer can void the crime without armory access
qol: In case of invalidation crime shows who voided it
/🆑
## What's going on here
Kept you waitin huh!
This pr resprites most all walls, windows and other "wall adjacent"
things to a 3/4th perspective, technical term is "tall" walls (we are
very smart).
If you're trying to understand the technical details here, much of the
"rendering tech" is built off the idea of split-vis. Basically, split a
sprite up and render it on adjacent turfs, to prevent seeing "through"
walls/doors, and to support seeing "edges" without actually seeing the
atom itself.
Most of the rest of it is pipelining done to accommodate how icons are
cut.
## Path To Merge
Almost* all sprites and code is done at this point.
There are some things missing both on and off the bounty list, but that
will be the case forever unless we force upstream (you guys) to stop
adding new shit that doesn't fit the style.
I plan on accepting and integrating prs to the current working repo
<https://github.com/wall-nerds/wallening> up until a merge, to make
contribution simpler and allow things like bounties to close out more
easily
This pr is quite bulky, even stripping away map changes it's maybe 7000
LOC (We have a few maps that were modified with UpdatePaths, I am also
tentatively pring our test map, for future use.)
This may inhibit proper review, although that is part of why I am
willing to make it despite my perfectionism. Apologies in advance.
Due to the perspective shift, a lot of mapping work is going to need to
be done at some point. This comes in varying levels of priority. Many
wallmounts are offset by hand, some are stuck in the wall/basically
cannot be placed on the east/west/north edges of walls (posters), some
just don't look great good in their current position.
Tests are currently a minor bit yorked, I thought it was more important
to get this up then to clean them fully.
## What does it look like?






## Credits
<details>
<summary>Historical Mumbojumbo</summary>
I am gonna do my best to document how this project came to be. I am
operating off third party info and half remembered details, so if I'm
wrong please yell at me.
This project started sometime in late 2020, as a product of Rohesie
trying to integrate and make easier work from Mojave Sun (A recently
defunct fallout server) with /tg/.
Mojave Sun (Apparently this was LITERALLY JUST infrared baron, that man
is insane) was working with tall walls, IE walls that are 48px tall
instead of the normal 32. This was I THINK done based off a technical
prototype from aao7 proving A it was possible and B it didn't look like
dogwater.
This alongside oranges begging the art team for 3/4th walls (he meant
TGMC style) lead to Rohesie bringing on contributors from general /tg/,
including actionninja who would eventually take over as technical lead
and Kryson, who would define /tg/'s version of the artstyle. Much of the
formative aspects of this project are their work.
The project was coming along pretty well for a few months, but ran into
serious technical issues with `SIDE_MAP`, a byond map_format that allows
for simpler 3/4th rendering.
Due to BULLSHIT I will not detail here, the map format caused issues
both at random with flickering and heavily with multiz.
Concurrent with this, action stepped down after hacking out the
rendering tech and starting work on an icon cutter that would allow for
simpler icon generation, leaving ninjanomnom to manage the project.
Some time passed, and the project stalled out due to the technical
issues. Eventually I built a test case for the issues we had with
`SIDE_MAP` and convinced lummox jr (byond's developer) to explain how
the fuckin thing actually worked. This understanding made the project
theoretically possible, but did not resolve the problems with multi-z.
Resolving those required a full rework of how rendering like, worked. I
(alongside tattle) took over project development from ninjanomnom at
this time, and started work on Plane Cube (#69115), which when finished
would finally make the project technically feasible.
The time between then and now has been slow, progressive work. Many many
artists and technical folks have dumped their time into this (as you can
see from the credits). I will get into this more below but I would like
to explicitly thank (in no particular order) tattle, draco, arcanemusic,
actionninja, imaginos, viro and kylerace for keeping the project alive
in this time period. I would have curled up into a ball and died if I
had to do this all myself, your help has been indispensable.
</details>
<details>
<summary>Detailed Credits</summary>
Deep apologies if I have forgotten someone (I am sure I have, if someone
is you please contact me). I've done my best to collate from the git
log/my memory.
Thanks to (In no particular order):
Raccoff: Being funny to bully, creating threshold decals for airlocks
aa07: (I think) inspiring the project
ActionNinja: Laying the technical rock we build off, supporting me
despite byond trying to kill him, building the icon cutter that makes
this possible
ArcaneMusic: Artistic and technical work spanning from the project's
start to literally today, being a constant of motivation and positivity.
I can't list all the stuff he's done
Armhulen: Key rendering work (he's the reason thindows render right), an
upbeat personality and a kick in the ass. Love you arm
Azlan: Damn cool sprites, consistently
Ben10Omintrix: You know ben showed up just to make basic mobs work, he's
just fuckin like that man
BigBimmer: A large amount of bounty work, alongside just like, throwing
shit around. An absolute joy to work with
Capsandi: Plaques, blastdoors, artistic work early on
CapybaraExtravagante: Rendering work on wall frames
Draco: SO MUCH STUFF. Much of the spritework done over the past two
years is his, constantly engaged and will take on anything. I would have
given up if not for you
Floyd: Early rendering work, so early I don't even know the details.
Enjoy freedom brother
Imaginos16: A guiding hand through the middle years, handled much of the
sprite review and contribution for a good bit there
Iamgoofball: A dedication to detail and aesthetic goals, spends a lot of
effort dissecting feedback with a focus on making things as good as they
can be at the jump
Infrared: Part of the impetus for the project, made all the xenomorph
stuff in the MS style
Jacquerel: A bunch of little upkeep/technical things, has done so much
sprite gruntwork (WHY ARE THERE SO MANY PAINTING TYPES)
Justice12354: Solved a bunch of error sprites (and worked out how to
actually make prs to the project) Thanks bro!
Kryson: Built the artstyle of the project, carrying on for years even
when it was technically dying, only stopping to casually beat cancer. So
much of our style and art is Kryson
KylerAce: Handled annoying technical stuff for me, built window frame
logic and fully got rid of grilles.
LemonInTheDark: Rendering dirtywork, project management and just so much
fucking time in dreammaker editing sprites
Meyhazah: Table buttons, brass windows and alll the old style doors
Mothblocks: Has provided constant support, gave me a deadline and
motivation, erased worries about "it not being done", gave just SO much
money to fill in the critical holes in sprites. Thanks moth
MTandi: Contributed art despite his own blackjack and hookers club
opening right down the road, I'm sorry I rolled over some of your
sprites man I wish we had finished earlier
Ninjanomnomnom: Consulted on gags issues, kept things alive through some
truly shit times
oranges: This is his fault
Rohesie: Organized the effort, did much of the initial like, proof of
concept stuff. I hope you're doin well whatever you're up to.
san7890: Consulting on mapper UX/design problems, being my pet mapper
Senefi: Offsetting items with a focus on detail/the more unused
canidates
SimplyLogan: Detailed map work and mapper feedback, personally very kind
even if we end up talking past each other sometimes. Thank you!
SpaceSmithers: Just like, random mapping support out of nowhere, and
bein a straight up cool dude
Tattle: A bunch of misc project management stuff, organizing the
discord, managing the test server, dealing with all the mapping bullshit
for me, being my backup in case of bus. I know you think you didn't do
much but your presence and work have been a great help
Thunder12345: Came out of nowhere and just so much of the random
bounties, I'm kind of upset about how much we paid him
Time-Green: I hooked him in by fucking with stuff he made and now he's
just doin shit, thanks for helping out man!
Twaticus: Provided artistic feedback and authority for my poor feeble
coder brain, believed in the project for YEARS, was a constant source of
❤️ and affirmation
unit0016: I have no god damn idea who she is, popped out of nowhere on
the github one day and dealt with a bunch of annoying
rendering/refactoring. Godspeed random furry thank you for all your
effort and issue reports
Viro: A bunch of detailed spriting moving towards 3/4ths, both on and
off the wallening fork. If anyone believed this project would be done,
it was viro
Wallem: Artistic review and consultation, was my go-to guy for a long
time when the other two spritetainers were inactive
Waltermeldon: Cracked out a bunch of rendering work, he's the reason
windows look like not dogwater. Alongside floyd and action spent a TON
of time speaking to lummox/unearthing how byond rendering worked trying
to make this thing happen
ZephyrTFA: Added directional airlock helpers, dealt with a big fuckin
bugaboo that was living in my brain like it was nothing. Love you
brother
And finally:
The Mojave Sun development team. They provided a testbed for the idea,
committed hundreds and hundreds of hours to the artstyle, and were a
large reason we caught issues early enough to meaningfully deal with
them. Your work is a testament to what longterm effort and deep detailed
care produce. I hope you're doing well whatever you're up to. Go out
with a bang!
</details>
## Changelog
🆑 Raccoff, aa07, ActionNinja, ArcaneMusic, Armhulen, Azlan,
Ben10Omintrix, BigBimmer, Capsandi, CapybaraExtravagante, Draco, Floyd,
Iamgoofball, Imaginos16, Infrared, Jacquerel, Justice12354, Kryson,
KylerAce, LemonInTheDark, Meyhazah, Mothblocks, MTandi, Ninjanomnom,
oranges, Rohesie, Runi-c, san7890, Senefi, SimplyLogan, SomeAngryMiner,
SpaceSmithers, Tattle, Thunder12345, Time-Green, Twaticus, unit0016,
Viro, Waltermeldon, ZephyrTFA with thanks to the Mojave Sun team!
add: Resprites or offsets almost all "tall" objects in the game to match
a 3/4ths perspective
add: Bunch of rendering mumbo jumbo to make said 3/4ths perspective work
/🆑
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: = <stewartareid@outlook.com>
Co-authored-by: Capsandi <dansullycc@gmail.com>
Co-authored-by: ArcaneMusic <hero12290@aol.com>
Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: SomeAngryMiner <53237389+SomeAngryMiner@users.noreply.github.com>
Co-authored-by: KylerAce <kylerlumpkin1@gmail.com>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: Runi-c <5150427+Runi-c@users.noreply.github.com>
Co-authored-by: Roryl-c <5150427+Roryl-c@users.noreply.github.com>
Co-authored-by: tattle <article.disaster@gmail.com>
Co-authored-by: Senefi <20830349+Peliex@users.noreply.github.com>
Co-authored-by: Justice <42555530+Justice12354@users.noreply.github.com>
Co-authored-by: BluBerry016 <50649185+unit0016@users.noreply.github.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com>
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
Co-authored-by: Rob Bailey <github@criticalaction.net>
Co-authored-by: MMMiracles <lolaccount1@hotmail.com>
## About The Pull Request
closes https://github.com/tgstation/tgstation/issues/85182
Replaced all instances of it with the new type.
The CMO telescreen was used instead before.
## Why It's Good For The Game
CMO telescreen can be a spy obj so separating them is wise.
## Changelog
🆑 grungussuss
fix: Med sec telescreens are no longer the same item as the CMO
telescreen.
spellcheck: correcte name for the CMO telescreen mount
/🆑
## About The Pull Request
Fixes surgery steps that require a chemical from failing silently if
that chemical is missing. Player receives a bubble notification and the
surgery is not performed if the chemical is missing. Operating computer
UI tells you if the required chem is present or not.

## Why It's Good For The Game
Having to guess, without feedback, if the chemical was in the target's
system at the time surgery completes is bad.
## Changelog
🆑 LT3
fix: Players now receive a notification when trying to perform surgery
steps that involve chemicals
/🆑
## About The Pull Request
it's - conjunction of "it" and "is"
its - possessive form of "it"
grammar is hard, and there were a lot of places where "it's" was used
where it shouldn't have been. i went and painstakingly searched the
entire repository for these instances, spending a few hours on it. i
completely ignored the changelog archive, and i may have missed some
outliers. most player-facing ones should be corrected, though
## Why It's Good For The Game
proper grammar is good
## Changelog
🆑
spellcheck: Numerous instances of "it's" have been properly replaced
with "its"
/🆑
## About The Pull Request
Fixes#85100
Roundstart monkeys are monkeys before they're monkeys, whoops.
## Changelog
🆑 Melbert
fix: Fixed roundstart monkeys not having monkified
fix: Fixed being "de-monkified" while dead making it difficult to
actually de-monkey you going forward
fix: Fixed genetic scanner showing dead mobs as "transforming"
/🆑
## About The Pull Request
As the title says
## Why It's Good For The Game
if someone's using the proc and fucks up they might be able to tell
easier
## Changelog
🆑
code: added a crash report and removes an arg
/🆑
## About The Pull Request
Move security level related data from switch-cases to security level
prototypes.
## Why It's Good For The Game
Nothing player facing.
Cleaner code for coders
## Changelog
🆑
refactor: move `status_display_bottom_text` and `fire_alarm_light_color`
to security level prototypes
/🆑
## About The Pull Request
Title, continuation of #84385
## Why It's Good For The Game
Continuation of my previous PR, this time with the other var being
banned and additional lint.

I also added new subtypes to the required atmos machinery that needed
it. This'll add transparency to what layer a machine will be on and make
it easier to set up pipe networks while mapping, instead of guessing "I
hope this'll connect!". Nothing should break or go awry, I looked at
some maps to make sure and they looked fine.
Snowdin can also go rot, whoever did the pipenet there, I have a
question, `why`.
## Changelog
🆑 Jolly
code: Behind the scenes, atmos machines (freezers/mixers) in maps were
tweaked a bit. If you see them no longer connected to specific pipenets,
please make an issue report, this is not intended behavior!!
/🆑
## About The Pull Request
1. Objects now have an `get_proxy_for()` proc. This returns an atom that
will participate in the object melee attack chain on behalf of your
atom. Allows for general purpose polymorphism per object interaction
2. Cleaned up some multitool acts to accommodate proxy behaviour
3. You can pry tiles as an Engiborg with crowbar in hand & do other
similar behaviour with crowbar
5. Improves & Depends on #83880. We don't need a hidden omni toolbox &
can create the tools directly in the omnitool and pass them in the
attack chain as a proxy rather than calling the attack chain manually.
All tools are on the borg directly
- Fixes#84355
- Fixes#84359
- Fixes#84393
## Changelog
SyncIt21,zxaber
🆑
fix: omni crowbar tool interaction for replacing tiles has been fixed
fix: techfab screentip does not runtime when you hover over it with an
omnitool multitool
fix: medi borgs can do brain surgery again
code: improved multitool & general tool code for some machines
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
## About The Pull Request
There was a feedback that the new techweb made it harder to do science
on ghost roles, namely Charlie station crew.
This PR makes a few tweaks to oldstation to lower the bar on the
experiments:
- Added a pure N2O tank for easier BZ creation
- Added one diamond to the ai sat to create artificial BS crystal
- Added research console to ai sat with frontier app pre-installed
- Added a gas compressor to Beta station atmos area
Also moved the NTNet relay back to tcomms node as it requires tcomms
parts. And moved chem pack/blood pack from tier 1 to tier 0 per players`
request.
Also fixed the dissection experiments giving the old amount of bonus
points, before the recent point denomination.
Made a few other minor changes to the map.
## Why It's Good For The Game
Charlie is supposed to be friendly for the beginner players, yet the new
experiments are hard to do with the limited resources on Charlie.
## Changelog
🆑
qol: It is easier to do some required techweb experiments on Charlie
station now
fix: Fixed experimental dissection surgeries giving too many points
balance: Techweb: Moved NTNet relay back to tcomms node
balance: Techweb: Moved blood pack and chem pack to the starting node
/🆑
## About The Pull Request
This PR fixes the arcade machine tell you that you don't have enough MP
to counterattack when using the heavy attack option.
Before:
<img src="https://i.ibb.co/QMYTzv4/Gaming-Before.png">
After:
<img src="https://i.ibb.co/5WMDC9D/Gaming-After.png">
## Why It's Good For The Game
I like the arcade. I don't like bugs.
## Changelog
Not worth space in CL very small change.
## About The Pull Request
Since non-clothing items can also be worn on several slots, there's no
need for cigarettes/vapes to be subtypes of masks anymore, since that
comes with a few oddities like #82870.
## Why It's Good For The Game
This should fix#82870, with about no side-effect aside them no longer
being edible by moths 🤢.
## About The Pull Request
Title.
## Why It's Good For The Game
The telescreens that are used primarily in head offices are.. a mess.
The parent of all telescreens is also a gigantic mess.
*I've opted AGAINST making an updatepaths here and decided to hand fix
all of these. There's not a lot, but I can't make an edge case for
everything. Some of their nudges are a bit wonky too, and I want to make
sure noting looks off. Theres also a handful of prefabs on the parent
telescreen that I want to individually look at.*
Updatepaths or not, this is going to be a "smaller" one of "those" PRs
that I've done thusfar, or so I think.
Prevents more mapping sin like this (THERE ARE SUBTYPES WHY ARE YOU
MAKING "NEW" ONES ON THE PARENT?? STOPPPP)

The sprite edits are necessary to make sure the mapping helper macro
works, otherwise they'll be inverted.
## Changelog
N/A
## About The Pull Request
Sanitizes input sent to pdas when a citation is issued. The text length
is +very+ limited so it'd be hard to abuse, but better safe than sorry.
## Why It's Good For The Game
be clean...
## Changelog
🆑
fix: sanitization on citation pda alerts
/🆑