## About The Pull Request
On the tin, just adds a link to
https://github.com/tgstation-operations/server-config to the game so
people are a little bit more aware of it.
Here's how it looks:
<img width="1386" height="275" alt="image"
src="https://github.com/user-attachments/assets/63d2d284-6d5f-4f41-ba80-abc33699f7c5"
/>
## Why It's Good For The Game
More visibility to a public resource, this wasn't feasible before the
present situation. It won't show up here unless the config variable is
set.
## Changelog
🆑
config: If you publicly host a copy of your server's config, you may now
link to the public URL in the 'CONFIGURL' setting in the server config.
It will show to players in the Escape Menu's Resources Carousel.
/🆑
## About The Pull Request
This PR fixes runtimes in various parts of Bubber/Skyrat code
Fixes the employment contract so that it doesn't return in the absence
of an employee or mind
The Akula mood event proc checks if an Akula is present
Operating tables no longer runtime if there is no table present
Nanotrasen Consultant no longer fails to set intern time threshold
because it has no department head
The Leave Body page of the escape menu no longer errors out when
selecting it
## Why It's Good For The Game
Less unnecessary runtimes in code, no player facing changes
## Proof Of Testing
It compiles. I've tested the Leave Body Page and Operating tables
changes to make sure they no longer runtime
## Changelog
🆑 ReturnToZender
/🆑
## About The Pull Request
I was originally gonna remove non-widescreen but decided against it, so
here's a fix for non-widescreen users to use the escape menu.
https://github.com/user-attachments/assets/ac92e346-efd0-4ac3-962b-667e8c8a0f54
## Why It's Good For The Game
This is for the players who play ss13 on their outdated library
computers.
## Changelog
🆑
fix: The escape menu now works for non-widescreen users.
/🆑
## About The Pull Request
`resource_panels` is only emptied if the user collapses the panel by
clicking the expand button again, if they just close the escape menu
with it expanded then refs to all the buttons linger and hard delete
## Why It's Good For The Game
Fix for several hard deletes
```
RUNTIME: ## TESTING: GC: -- [0x2002d13] | /atom/movable/screen/escape_menu/lobby_button/small/collapsible was unable to be GC'd -- (ref count of 3)
RUNTIME: ## TESTING: GC: -- [0x2002259] | /atom/movable/screen/escape_menu/lobby_button/small/collapsible was unable to be GC'd -- (ref count of 3)
RUNTIME: ## TESTING: GC: -- [0x2002414] | /atom/movable/screen/escape_menu/lobby_button/small/collapsible was unable to be GC'd -- (ref count of 3)
RUNTIME: ## TESTING: GC: -- [0x2001e36] | /atom/movable/screen/escape_menu/lobby_button/small/collapsible was unable to be GC'd -- (ref count of 3)
RUNTIME: ## TESTING: GC: -- [0x2007b3b] | /atom/movable/screen/escape_menu/lobby_button/small/collapsible was unable to be GC'd -- (ref count of 3)
RUNTIME: ## TESTING: GC: -- [0x200216d] | /atom/movable/screen/escape_menu/lobby_button/small/collapsible was unable to be GC'd -- (ref count of 3)
```
## Changelog
N/A
## About The Pull Request
`resource_panels` is only emptied if the user collapses the panel by
clicking the expand button again, if they just close the escape menu
with it expanded then refs to all the buttons linger and hard delete
## Why It's Good For The Game
Fix for several hard deletes
```
RUNTIME: ## TESTING: GC: -- [0x2002d13] | /atom/movable/screen/escape_menu/lobby_button/small/collapsible was unable to be GC'd -- (ref count of 3)
RUNTIME: ## TESTING: GC: -- [0x2002259] | /atom/movable/screen/escape_menu/lobby_button/small/collapsible was unable to be GC'd -- (ref count of 3)
RUNTIME: ## TESTING: GC: -- [0x2002414] | /atom/movable/screen/escape_menu/lobby_button/small/collapsible was unable to be GC'd -- (ref count of 3)
RUNTIME: ## TESTING: GC: -- [0x2001e36] | /atom/movable/screen/escape_menu/lobby_button/small/collapsible was unable to be GC'd -- (ref count of 3)
RUNTIME: ## TESTING: GC: -- [0x2007b3b] | /atom/movable/screen/escape_menu/lobby_button/small/collapsible was unable to be GC'd -- (ref count of 3)
RUNTIME: ## TESTING: GC: -- [0x200216d] | /atom/movable/screen/escape_menu/lobby_button/small/collapsible was unable to be GC'd -- (ref count of 3)
```
## Changelog
N/A
## 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
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
Currently in the escape menu we have
``/atom/movable/screen/escape_menu/home_button`` (not to be confused
with ``/atom/movable/screen/escape_menu/lobby_button`` which is an
entirely separate thing) which itself contains a
``/atom/movable/screen/escape_menu/home_button_text`` that holds the
maptext displayed to players.
This is a little confusing and convoluted for nothing, so let's simplify
it a bit
``/atom/movable/screen/escape_menu/text`` for text
``/atom/movable/screen/escape_menu/text/clickable`` for clickable text
``/atom/movable/screen/escape_menu/lobby_button`` for buttons
This also fixes issues with maptext height/width, which was causing me
issues when I was adding a player list button (not in this PR). This
hopes to make adding things to the escape menu easier in the future.
Slightly different offsets for UI buttons now, too

## Why It's Good For The Game
Easier to understand code for escape menu, making it easier to
contribute to, and helps mitigate future issues with maptext.
## Changelog
🆑
code: The escape menu has a slightly different UI, again.
/🆑
## About The Pull Request
Currently in the escape menu we have
``/atom/movable/screen/escape_menu/home_button`` (not to be confused
with ``/atom/movable/screen/escape_menu/lobby_button`` which is an
entirely separate thing) which itself contains a
``/atom/movable/screen/escape_menu/home_button_text`` that holds the
maptext displayed to players.
This is a little confusing and convoluted for nothing, so let's simplify
it a bit
``/atom/movable/screen/escape_menu/text`` for text
``/atom/movable/screen/escape_menu/text/clickable`` for clickable text
``/atom/movable/screen/escape_menu/lobby_button`` for buttons
This also fixes issues with maptext height/width, which was causing me
issues when I was adding a player list button (not in this PR). This
hopes to make adding things to the escape menu easier in the future.
Slightly different offsets for UI buttons now, too

## Why It's Good For The Game
Easier to understand code for escape menu, making it easier to
contribute to, and helps mitigate future issues with maptext.
## Changelog
🆑
code: The escape menu has a slightly different UI, again.
/🆑
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.
/🆑
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
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.


## Why It's Good For The Game
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).
## Changelog
🆑
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.
/🆑
## About The Pull Request
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
##### Alt ideas for sprites: Changelog can be a newspaper and Forums can
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.
## Why It's Good For The Game
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.
## Changelog
🆑
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.
/🆑
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
This PR started with the idea of adding support for map feedback
threads, which I added to the roundend report, escape menu, and stat
panel. To do this though I had to make pretty annoying changes to the
stat panel and had to touch every single time something to the stat
panel was added, so since we now have a way to have links in the stat
panel I thought of taking full advantage of it and add some QOL.
AIs can now track their borgs by clicking their status on the stat panel
https://github.com/user-attachments/assets/1789dc46-5d12-48e9-bb8d-d3278aa19639
With Melbert's comment, I added another stat panel entry that directs
you to the Webmap page, which currently seems to be a little messed up
(https://github.com/AffectedArc07/SS13WebMap/issues/41 &
https://github.com/AffectedArc07/SS13WebMap/issues/42) but if they get
fixed this would be a swag asf feature
##### Code bounty for Ezel/Improvedname
## Why It's Good For The Game
Feedback threads was a suggestion from a player and is fully in control
of admins as an optional thing, and while we still have stat panel I
think it's nice to be able to take advantage of its features.
## Changelog
🆑
admin: Admins can now link a URL for maps, used to give feedback on said
maps. Accessible through the roundend report, escape menu, and stat
panel.
qol: AIs can track their borgs by clicking on them in the stat panel.
qol: You can now directly go to the webmap of maps from the stat panel
(assuming it's set in config).
/🆑
## About The Pull Request

Escape menu details no longer hug the top border of the screen.
## Why It's Good For The Game
This has been triggering my OCD for months.
## Changelog
🆑
qol: Shifted the escape menu stat panel down a bit
/🆑
## About The Pull Request
Improper tags were being passed around which left a blank menu on
player's side and a bunch of runtimes on server's side
## Changelog
🆑
fix: Fixed "Leave Body" escape menu tab runtiming
/🆑
## About The Pull Request
https://github.com/user-attachments/assets/3e07530e-c8f1-4c21-b59b-b814831fdb2d
## Why It's Good For The Game
The aforementioned escape menu felt lacking on the sound side so with
the assistance of @Sadboysuss I've added these,
they also sound pretty neat.
## Changelog
🆑
sound: Added sounds for the escape menu opening/closing/being open
/🆑
## 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.
/🆑
* Spellchecks charater->character (#84251)
## About The Pull Request
Quick spellcheck PR, this caught my eye reviewing a recent PR and it
bothered me.
## Changelog
Nothing player facing, these are just comments and proc names.
* Spellchecks charater->character
---------
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
## About The Pull Request
Quick spellcheck PR, this caught my eye reviewing a recent PR and it
bothered me.
## Changelog
Nothing player facing, these are just comments and proc names.
* Adds the actual game settings menu to the escape menu in addition to the character settings menu. (#84213)
🆑 ShizCalev
add: The game settings menu can now actually be accessed through the
escape menu.
/🆑
* Adds the actual game settings menu to the escape menu in addition to the character settings menu.
---------
Co-authored-by: Afevis <ShizCalev@users.noreply.github.com>
## About The Pull Request
After https://github.com/tgstation/tgstation/pull/80628, these shouldn't
be needed anymore right?
## Why It's Good For The Game
Cleans up some vestigial code
## Changelog
EDIT: Not player-facing.
* Fixes a bunch of callbacks that were being qdeleted, and code cleanup (#77904)
## About The Pull Request

Continuing the work of
https://github.com/tgstation/tgstation/pull/77850.
it started with finding one that was being missed and causing a
runtime...then I noticed a whole lot more. While I was doing this I
found callbacks that weren't being nulled in `Destroy()`, so I added
that wherever I found these spots as well as some general code cleanup.
There were a lot more of these than I initially hoped to encounter so
I'm labeling it as a refactor.
## Why It's Good For The Game
Fixes lots of runtimes, improves code resiliency.
## Changelog
🆑
refactor: fixed a bunch of instances of callbacks being qdeleted and
cleaned up related code
/🆑
* Fixes a bunch of callbacks that were being qdeleted, and code cleanup
---------
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
## About The Pull Request

Continuing the work of
https://github.com/tgstation/tgstation/pull/77850.
it started with finding one that was being missed and causing a
runtime...then I noticed a whole lot more. While I was doing this I
found callbacks that weren't being nulled in `Destroy()`, so I added
that wherever I found these spots as well as some general code cleanup.
There were a lot more of these than I initially hoped to encounter so
I'm labeling it as a refactor.
## Why It's Good For The Game
Fixes lots of runtimes, improves code resiliency.
## Changelog
🆑
refactor: fixed a bunch of instances of callbacks being qdeleted and
cleaned up related code
/🆑
## About The Pull Request
Adds an arg in huds' screens to add the hud owner in the Initialize,
instead of manually setting it every time we need to.
This is already done in ``New()`` for lobby screens, which I left intact
as lobby screens are used for new players, and are given out before
atoms are Initialized. Everything else, however, uses Initialize, so it
does not mess with any other args in their own Initializes (like the
Escape menu).
This also allows us to set the screens' HUDs as a private var, to ensure
this won't be messed with in the future.
Lastly I replaced instances of ``client`` with ``cannon_client`` to be
consistent with a lot of other parts of hud code.
## Why It's Good For The Game
Huds are easy to break when they do not have a hud owner, and for
something as important as that I believe it should be something you
opt-out of when you don't want it, rather than something you opt-into by
manually setting hud owner every time.
This cuts down on a lot of copy paste in hud code for humans, aliens,
etc.
## Changelog
🆑
refactor: Huds now have their hud owner set in Initialize
/🆑
This tracks the seconds per tick of a subsystem, however note that it is
not completely accurate, as subsystems can be delayed, however it's
useful to have this number as a multiplier or ratio, so that if in
future someone changes the subsystem wait time code correctly adjusts
how fast it applies effects
regexes used
git grep --files-with-matches --name-only 'DT_PROB' | xargs -l sed -i
's/DT_PROB/SPT_PROB/g'
git grep --files-with-matches --name-only 'delta_time' | xargs -l sed -i
's/delta_time/seconds_per_tick/g'
* add SR items to escape menu
* Delete leave_body.dm
* Update code/modules/escape_menu/escape_menu.dm
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* restore leave_body.dm
* let's get modular, modularrr
* respawn
* tick leave body
* remove suicide proc again
---------
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>