* Change admin comm console alert sound [NO GBP] (#72637)
## About The Pull Request
The original sound I used for the admin comm/fax notification causes
confusion with shuttle uplink being enabled/disabled for various
reasons.
## Why It's Good For The Game
You wonder who disabled the shuttle, but it's just a fax.
## Changelog
🆑 LT3
admin: Changed admin comm/fax notification sound to be less confusing
/🆑
* Change admin comm console alert sound [NO GBP]
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Allows admins to skip some paper sanitization (#72553)
## About The Pull Request
This PR allows admins with R_FUN to create paper that doesn't sanitize
as much HTML as the default, player-accessible paper. Specifically, the
ability for admins with R_FUN to add images that papercode would
normally sanitise via HTML img tags.
## Why It's Good For The Game
I'd like to make some fancy papers to send as faxes, but the current
sanitization doesn't allow for images.

This was a fax I threw together in a few minutes after making the logo
## Changelog
🆑
admins: Admins with the appropriate permissions can now use HTML image
tags in paper and faxes.
/🆑
* Allows admins to skip some paper sanitization
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
* Improves duplication (#72572)
## About The Pull Request
- Improves duplication code significantly
- Removes 'perfectcopy', 'newloc', 'nerf' and 'holoitem' args. These
were made for holodeck items, but holodeck items do not use this proc so
it's since been unused.
- Adds many things to duplicate forbidden vars, such as external organs
(and fixes internal organs), overlays, and signals. The signal part is
what broke basic things for duplicated mobs, such as dying, huds, and
lying down.
- Duplicated mobs now properly carry over the identity of the old mob
without losing anything in the process, and now actually work as a mob,
with visible HUDs and everything. They also carry implants over now.
- Duplicated mobs also now no longer cut all their contents and rebuild
the entire mob, they don't carry overlays at all (so we don't have the
problems that come along with it, like clothing sprites from clothes
that don't exist).
- As a minor detail, makes DuplicateObject use snake_case instead, and
makes duplicate_forbidden_vars protected.
- Removes copy_contents_to because it's unused. It was originally meant
for Holodeck, but holodecks now use map templates so it's no longer used
in-game.


## Why It's Good For The Game
Closes https://github.com/tgstation/tgstation/issues/42212
Duplicating mobs no longer gives a broken mob, which was a common
problem with cloning pods (the admin pods, that you drop down onto
people).
Updates very old code to modern code standards.
This PR was made to help out
https://github.com/tgstation/tgstation/pull/71141 too, the author of
that PR is aware of this one.
## Changelog
🆑
refactor: Duplicating mobs now should now give properly functioning
mobs, as duplications in general have been reworked. Admins can feel
free to use the pod feature on people.
/🆑
* Improves duplication
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Organizes the lists in `admin_verbs.dm` because I got sick and tired of looking at them, and one in particular (#72151)
Title for the most part.
I was told, many, MANY, moons go, as a downstream host, that one of
these lists would rarely ever get touched.
What a fat lie that was.
The more I had to stare at this list the more infuriated I got with it.
Now, I just went ahead and organized most of the lists in this file, as
well as fixing comments to fit the format of `/* hey bozo */`. Where
applicable, things were organized into `/datums/admins/` and
`/client/proc` as well.
🆑 Jolly
code: The lists in admin_verbs.dm was organized to be made better. This
shouldn't affect the panels admins use at all, since they're already
alphabetized.
/🆑
* Literally already broke the sorting rules within 2 seconds
Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
* adminhelp logs are now sanitized correctly (#72501)
## About The Pull Request
Properly sanitizes adminhelp replies to match the sanitization given to
the initial adminhelp

## Why It's Good For The Game
LogBuddy breaks if any admin replies to a message over multiple lines,
so this fixes that
## Changelog
🆑
admin: Logbuddy should no longer fail to parse logs with multi-line
adminhelp replies
/🆑
* adminhelp logs are now sanitized correctly
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Admin alert for communications console messages (#72412)
Adds an audio alert when a CentCom or Syndicate communications console
message is sent, for things such as ERT requests.
It is optional and can be toggled in the Game Preferences menu.
Also fixes an incorrect line in the prefs readme.md
Less missing CentCom messages because you're busy doing other things,
less complaining that you're ignoring them.
* Small changes to some card-related debug verbs (#72361)
## About The Pull Request
Test Card Distribution debug verb has been altered slightly to prevent
runtimes. Backing out of any one of the menus would send null as an
argument, and cause a runtime.
The Validate Cards verb now returns a message if no errors are found. I
kept mistakenly clicking this verb thinking it was the Cardpack
Distribution one, and would get confused whenever nothing happened. Now
it returns a message!
Also converts some of the stuff I touch into snake case because pretty
code is nice.
## Why It's Good For The Game
Closes#66987. Feedback for the random debug buttons I accidentally
click is good.
## Changelog
🆑 Rhials
fix: backing out of the Test Card Packs debug menu will no longer cause
a runtime
fix: Validate Cards debug verb now gives feedback if no errors are
detected.
/🆑
* Small changes to some card-related debug verbs
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Avoid wasted work creating body parts that are just going to be destroyed [0.3s of init] (#71916)
Current process:
- Human created
- Body parts created for basic human
- Species set
- Body parts torn down, recreated
New process:
- Human created
- Species set
- Body parts created then and there
I think the same is being done to organs, can be adjusted.
Set species was also being invoked asynchronously, but it's not clear
why, and SHOULD_NOT_SLEEP indicates nothing sleeps, so alas. This isn't
done for init, just for consistency.
Reorders init a little to accomodate the body parts not necessarily
being there, huds now need to safety check.
Saves about 0.3s of init. Closes
https://github.com/tgstation/dev-cycles-initiative/issues/18
* Avoid wasted work creating body parts that are just going to be destroyed [0.3s of init]
* update modular
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Fixes summon guns / magic from the secrets menu (#72294)
## About The Pull Request
The proc takes a mob, not a client. `holder`'s a client.
This is fine if it ends up being `null` for some reason
It's also completely viable to just not pass a mob and keep it `null`,
so that's option B
## Why It's Good For The Game
I could've sworn this worked when I tested it last but 🤷
## Changelog
🆑 Melbert
fix: Secrets menu Summon Guns / Summon Magic work again.
/🆑
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* Fixes summon guns / magic from the secrets menu
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* Rescale SM health from 900 to 100, UI improvements, visual changes. (#72252)
Rescaling because i saw someone think that the number on the supermatter
UI are actually the percent damage over time, which is wrong.
Added delta symbol to damage and energy since they actually denote
change, not the actual value.
Chose the numbers that look good instead of doing a 1:1 rescale of the
old one (i.e. im dividing or multiplying things by 10 instead of 9). In
practice this means I'm lowering the damage cap but increasing damage
over the board for atmos (since it's mostly divisors). Lowered the
damage overall for external stuffs.
A bit of modification on the filter helpers to suit my needs. Added
documentation because I'm awesome.
* Rescale SM health from 900 to 100, UI improvements, visual changes.
Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
* Separate chat category for prayers (#72274)
## About The Pull Request
Smithers asked me to, and he's pretty cool.
Said something about being hard to notice prayers and wanting to be able
to make a unique pane for them.
This doesn't include subtle messages, tho they're dumped into admin log
so it wouldn't be that hard to stick them in the same subcategory. lemme
know if that's an issue
🆑
admin: Added a new chat category for prayers. Filter them out, move them
to their own pane, live your best life
/🆑
* Adds a seperate chat category for prayers
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Reset Thunderdome Respects Closing The Alert (bonus qol) (#72028)
Similar vein to #70449.
## About The Pull Request
I was training an admin yesterday, and they accidentally reset the
thunderdome when they tried to cancel out of it by closing out of it
since they didn't hit the "cancel" button, but rather the big red X.
That's silly, let's have this respect that potential user entry.
Also, the log_admin call here had an excessive number of arguments?
Probably cruft that never got cleaned up, I just patched it up while I
was in the area. I also changed the name of the title to not be so
vague.
## Why It's Good For The Game
Better UX is always a good thing. It's silly to have this happen more
than once.
## Changelog
🆑
admin: The "Reset Thunderdome" option in the Secrets Menu now respects
you closing out of the confirmation screen as a way of cancelling your
potential thunderdome reset, rather than proceeding immediately. It
should also be easier to comprehend as well.
/🆑
* Reset Thunderdome Respects Closing The Alert (bonus qol)
Co-authored-by: san7890 <the@san7890.com>
* bumps auxlua to 1.4.0 (#72108)
## About The Pull Request
Mothblocks recently talked about wanting an auxlua function to check if
the lua state was about to overrun its execution limit, and that was
something I had been thinking about for a long time prior, but never
bothered to actually implement until it was brought up. So I did just
that. The documentation has also been updated to include a description
of how the execution limit works and how to use the new function,
`over_exec_time`
## Why It's Good For The Game
Allows for lua loops of indeterminate length to do as much work as they
reasonably can in a single tick without setting off the execution
limiter and erroring out.
## Changelog
🆑
admin: Adds a new function for admin lua scripting, "over_exec_time",
for checking if lua code is running close to the execution limit.
Details are available in the lua editor's help menu.
admin: The execution limit is described in detail in the lua editor's
help menu.
/🆑
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* bumps auxlua to 1.4.0
Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Gives admins the ability to enable hostile environments at will. (#72018)
* Gives admins the ability to enable hostile environments at will.
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
* Replaces the direct central command contact from fax machines with nanotrasen departmental contacts (#72009)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
Does what it says on the tin, instead of being able to fax central
command fax machines are linked to a randomly selected Nanotrasen
department. Current options are as follows but more can be added if any
creative ideas are provided.
- NT HR Department
- NT Legal Department
- NT Complaint Department
- NT Customer Relations
- Nanotrasen Tech Support
- NT Internal Affairs Dept
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
## Why It's Good For The Game
Re-restricts contacting the top dogs at central command to people with a
captain ID. Being able to contact central commands highest ranks from an
IC perspective makes sense to be restricted to the captain only through
the use of the communications console. The crew can instead contact what
is likely an intern working in a specialized department.
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
spellcheck: Admin fax report names now default to standard report rather
than standart.
del: Central Command can no longer be faxed directly from fax machines.
spellcheck: Replaced the ability to contact central command directly by
being able to contact a randomly selected nanotrasen department.
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
* Replaces the direct central command contact from fax machines with nanotrasen departmental contacts
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
* Defer admin profiling access until the admin logs in - Saves 69ms (#71680)
Just some unnecessary costs. We create `/datum/admins` for every admin
in the txt and database. It might sound silly, but it ends up being
useful for things like the permissions panel. Anyway, admins are usually
given profiling access, but the SetConfig call is extremely slow. So
slow that we have it config'd off on Campbell, AFAIK. This defers that
cost to when an admin joins.
This could in theory cause issues with latejoining admins getting debug perms, but it appears to work in testing. noting for far future
* Defer admin profiling access until the admin logs in - Saves 69ms
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* 3/4ths-ify some wall mount sprites (by Kryson and Viro) (#71788)
posters are now 24px tall, new sprites for nanomeds, emergency safes, and ticket machines
(by Kryson)
* 3/4ths-ify some wall mount sprites (by Kryson and Viro)
* DON'T INCLUDE FUCKING OVERRIDES IF THEY DON'T DO ANYTHING HHHNGH MY CI IS FAILING CODERS
* FUCK
Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
* Fixes fake links in Adminwho that led to "no_feedback_link" (#71804)
## About The Pull Request
Basically, sometimes, very rarely, it was possible for this to happen,
when it shouldn't be happening. I was wondering for a little while what
it was about, and then I finally downloaded my chat logs for a round and
realized what was going on. It should no longer happen.
## Why It's Good For The Game
Clickable links that lead nowhere (and thus don't do anything) aren't
very good for the game.
## Changelog
🆑 GoldenAlpharex
fix: There shouldn't be clickable names in Adminwho that don't do
anything anymore.
/🆑
* Fixes fake links in Adminwho that led to "no_feedback_link"
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Atmospheric machineries now interact with each other directly, rather than going through a radio layer -- saves about 0.4s of init time
* updatescript maps
* Merge conflicts
* Tarkon atmos
* tick file
* that file was supposed to be removed
* tarkon cringe
* tarkon tweaks after testing
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Patches Admin_Teleport Location Logging Error (#71770)
## About The Pull Request
Hey there,

This admin didn't actually send that player to the secret nullspace
room, they sent them to somewhere stationside. This is because the
logging in admin_teleport only reads the location of the current
mob/atom's location, not the actual location of where they are going to.
Silly error, but I've fixed it now.
## Why It's Good For The Game

Logs being _correct_ is quite important, I feel.
## Changelog
🆑
admin: Whenever you teleport an atom/mob using the Get function found in
many admin utilities, rest assured that it will actually log the
destination location of where you are teleporting that thing to- rather
than the location they were pre-teleportation.
/🆑
* Patches Admin_Teleport Location Logging Error
Co-authored-by: san7890 <the@san7890.com>
* Change "End Round Normally" -> "Undelay Round End" (#71681)
## About The Pull Request
This is right under a button that says "End Round Now" so I was scared
as piss to click on it in a live server to undelay round end
## Changelog
🆑
admin: Renamed "End Round Normally" in Check Antagonists to "Undelay
Round End"
/🆑
* Change "End Round Normally" -> "Undelay Round End"
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Fixes a transofrm animation todo (#71496)
makes it pass appearance
Co-authored-by: TiviPlus <572233640+TiviPlus@ users.noreply.com>
* Fixes a transofrm animation todo
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: TiviPlus <572233640+TiviPlus@ users.noreply.com>
* Fixup list helpers, remove listoflist footgun from generic list procs, remove duplicated procs. (#71280)
Add helper defines for handling list values in lists to remove the
footgun where `+=` and `-=` with lists as the Right hand side argument
causes the list contents to be added or removed, not the list itself.
Use said helpers to remove the footgun from list helpers that could
reasonably be expected to get called on list of lists.
Remove duplicated clear nulls from list proc. this pr will fail to
compile until i go move those over to the preexisting one, but the
compile errors will tell me where all the consumers are.
This likely fixes some bug(s) in the issue tracker, but we don't know
what they are.
* Fixup list helpers, remove listoflist footgun from generic list procs, remove duplicated procs.
Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
* Improves Readability/Documentation of SSTicker.force_ending (#71329)
## About The Pull Request
Hey there,
force_ending was a boolean (with inconsistent usage, flip-flopping
between using TRUE/FALSE and 1/0 variables), so let's just change it all
over to the macros and call it a good day.
I also updated documentation of the variables in that "code block" in
SSTicker while in the area because changing just one line made it look
ugly. Some of the documentation was no longer current to it's... current
use in code, so I updated those as well.
## Why It's Good For The Game
Pure code improvement, DMdocs are swell, and readability is kino.
## Changelog
Nothing here should affect players.
* Improves Readability/Documentation of SSTicker.force_ending
Co-authored-by: san7890 <the@san7890.com>
* Particle editor (#71110)
## About The Pull Request
Demo: https://streamable.com/wnj3mf
Features:
- Full support for most gradients/vectors/numbers/generators/transforms
( I might have forgotten some of the more esoteric ones)
- A "tutorial" section that explains the different rand/generation types
and how physics works with pictures
- Button for viewing what each var does
- Selecting a particle type to set immediately
- The generator types use defines now
Not included:
Color matrix support for color generators (I'm sorry but hell no)
Special thanks to @ jlsnow301 for explaining js things to me
## Why It's Good For The Game
Making cool stuf
## Changelog
🆑
refactor: Added a particle editor to VV dropdown which can be used by
coders and admins to edit particle values on the fly easily.
/🆑
Co-authored-by: TiviPlus <572233640+TiviPlus@ users.noreply.com>
* Particle editor
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: TiviPlus <572233640+TiviPlus@ users.noreply.com>
* Adding the ability to load the configuration of custom maps. (#71277)
## About The Pull Request
By default, all custom maps are assigned one standard configuration.
This option rather limits the possibilities for creating custom levels.
For example, you can not use multilevel maps, because with this
configuration will always be loaded only one level. With this PR I want
to provide the ability to load a configuration file for a custom map
similar to the standard map.json configs.

## Why It's Good For The Game
Allows administrators to flexibly configure custom maps. For example for
events, etc.
## Changelog
🆑
admin: Adding the ability to load the configuration of custom maps
/🆑
Co-authored-by: twilightwanderer <twilightwanderer@ users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
* Adding the ability to load the configuration of custom maps.
Co-authored-by: twilightwanderer <88540658+twilightwanderer@users.noreply.github.com>
Co-authored-by: twilightwanderer <twilightwanderer@ users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
* Moves flick_overlay to atom instead of being global (#71045)
## About The Pull Request
Moves flick_overlay and flick_overlay_view to atom instead of being a
global proc
## Why It's Good For The Game
General performance and syntaxical improvements, makes it easier to
retrieve iconstates
## Changelog
🆑
fix: flick_overlay is an atom proc
/🆑
Co-authored-by: etherware-novice <candy@ notarealaddr.com>
Co-authored-by: Candycaneannihalator <candycane@ thisisnotarealaddr.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Moves flick_overlay to atom instead of being global
* modular flick
Co-authored-by: texan-down-under <73374039+etherware-novice@users.noreply.github.com>
Co-authored-by: etherware-novice <candy@ notarealaddr.com>
Co-authored-by: Candycaneannihalator <candycane@ thisisnotarealaddr.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Strays away from GLOB.machines when possible (#71100)
## About The Pull Request
This replaces needless GLOB.machines with more precise lists whenever
one existed, plus adding a new one for CTF machines.
## Why It's Good For The Game
GLOB.machines holds every single /obj/machinery in the game, so checking
the whole list for stuff is pretty big. This aims to cut that down by
using smaller lists whenever possible. I also gave CTF a new list
because it checked machines very often.
## Changelog
Nothing player facing.
* Strays away from GLOB.machines when possible
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>