1349 Commits
Author SHA1 Message Date
nevimer 00ccf0c6b5 Merge remote-tracking branch 'tgstation/master' into upstream-feb12-2026
# Conflicts:
#	.github/CODEOWNERS
#	.github/workflows/compile_changelogs.yml
#	.github/workflows/stale.yml
#	SQL/database_changelog.md
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	code/__DEFINES/atom_hud.dm
#	code/__DEFINES/inventory.dm
#	code/__DEFINES/mobs.dm
#	code/__DEFINES/species_clothing_paths.dm
#	code/__DEFINES/subsystems.dm
#	code/__DEFINES/surgery.dm
#	code/__HELPERS/global_lists.dm
#	code/_globalvars/lists/maintenance_loot.dm
#	code/_globalvars/traits/_traits.dm
#	code/controllers/subsystem/minor_mapping.dm
#	code/controllers/subsystem/processing/quirks.dm
#	code/controllers/subsystem/shuttle.dm
#	code/datums/components/palette.dm
#	code/datums/components/surgery_initiator.dm
#	code/datums/diseases/advance/advance.dm
#	code/datums/hud.dm
#	code/datums/mood.dm
#	code/datums/mutations/chameleon.dm
#	code/datums/quirks/negative_quirks/nyctophobia.dm
#	code/datums/status_effects/debuffs/debuffs.dm
#	code/datums/status_effects/debuffs/drunk.dm
#	code/datums/status_effects/debuffs/slime/slime_leech.dm
#	code/datums/weather/weather.dm
#	code/game/data_huds.dm
#	code/game/objects/items.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/game/objects/items/frog_statue.dm
#	code/game/objects/items/rcd/RLD.dm
#	code/game/objects/items/robot/items/hypo.dm
#	code/game/objects/items/stacks/medical.dm
#	code/game/objects/items/stacks/wrap.dm
#	code/game/objects/items/storage/garment.dm
#	code/game/objects/items/tools/medical/defib.dm
#	code/game/objects/items/weaponry.dm
#	code/game/objects/items/weaponry/melee/misc.dm
#	code/game/objects/structures/crates_lockers/closets/secure/security.dm
#	code/game/objects/structures/curtains.dm
#	code/game/objects/structures/dresser.dm
#	code/game/objects/structures/girders.dm
#	code/game/objects/structures/maintenance.dm
#	code/game/objects/structures/mirror.dm
#	code/modules/admin/greyscale_modify_menu.dm
#	code/modules/admin/verbs/light_debug.dm
#	code/modules/antagonists/ashwalker/ashwalker.dm
#	code/modules/antagonists/heretic/knowledge/starting_lore.dm
#	code/modules/antagonists/ninja/ninjaDrainAct.dm
#	code/modules/art/paintings.dm
#	code/modules/client/preferences.dm
#	code/modules/client/verbs/ooc.dm
#	code/modules/clothing/head/wig.dm
#	code/modules/events/disease_outbreak.dm
#	code/modules/holodeck/holo_effect.dm
#	code/modules/jobs/job_types/head_of_security.dm
#	code/modules/jobs/job_types/security_officer.dm
#	code/modules/library/skill_learning/generic_skillchips/point.dm
#	code/modules/mining/lavaland/ash_flora.dm
#	code/modules/mining/lavaland/mining_loot/megafauna/ash_drake.dm
#	code/modules/mob/dead/new_player/new_player.dm
#	code/modules/mob/living/basic/guardian/guardian.dm
#	code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm
#	code/modules/mob/living/carbon/carbon.dm
#	code/modules/mob/living/carbon/human/human.dm
#	code/modules/mob/living/carbon/human/human_defines.dm
#	code/modules/mob/living/carbon/life.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob/living/living_defines.dm
#	code/modules/mob/mob.dm
#	code/modules/mob_spawn/ghost_roles/mining_roles.dm
#	code/modules/mod/mod_control.dm
#	code/modules/mod/modules/modules_general.dm
#	code/modules/modular_computers/computers/item/computer_ui.dm
#	code/modules/paperwork/paper.dm
#	code/modules/paperwork/paperbin.dm
#	code/modules/power/lighting/light.dm
#	code/modules/projectiles/guns/energy/kinetic_accelerator.dm
#	code/modules/projectiles/projectile.dm
#	code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
#	code/modules/reagents/chemistry/reagents/food_reagents.dm
#	code/modules/reagents/chemistry/reagents/other_reagents.dm
#	code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
#	code/modules/research/xenobiology/crossbreeding/_clothing.dm
#	code/modules/research/xenobiology/crossbreeding/prismatic.dm
#	code/modules/surgery/advanced/brainwashing.dm
#	code/modules/surgery/advanced/lobotomy.dm
#	code/modules/surgery/amputation.dm
#	code/modules/surgery/blood_filter.dm
#	code/modules/surgery/bodyparts/_bodyparts.dm
#	code/modules/surgery/brain_surgery.dm
#	code/modules/surgery/cavity_implant.dm
#	code/modules/surgery/coronary_bypass.dm
#	code/modules/surgery/gastrectomy.dm
#	code/modules/surgery/healing.dm
#	code/modules/surgery/limb_augmentation.dm
#	code/modules/surgery/organ_manipulation.dm
#	code/modules/surgery/revival.dm
#	code/modules/surgery/sleeper_protocol.dm
#	code/modules/surgery/surgery_helpers.dm
#	code/modules/surgery/surgery_step.dm
#	code/modules/unit_tests/_unit_tests.dm
#	code/modules/unit_tests/designs.dm
#	code/modules/unit_tests/icon_state_worn.dm
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_cultist.png
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_headrevolutionary.png
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_provocateur.png
#	code/modules/unit_tests/screenshots/screenshot_husk_body.png
#	code/modules/unit_tests/screenshots/screenshot_husk_body_missing_limbs.png
#	icons/map_icons/clothing/head/_head.dmi
#	icons/map_icons/clothing/shoes.dmi
#	icons/map_icons/items/_item.dmi
#	icons/mob/huds/hud.dmi
#	icons/mob/inhands/64x64_lefthand.dmi
#	icons/mob/inhands/64x64_righthand.dmi
#	icons/obj/machines/computer.dmi
#	tgui/packages/tgui/interfaces/OperatingComputer.jsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/MainPage.tsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/types.ts
#	tgui/packages/tgui/interfaces/SurgeryInitiator.tsx
#	tools/icon_cutter/check.py
2026-02-12 23:50:09 -05:00
BloopandGitHub 68153c2333 Refactors faction lists to use getters and setters and be cached (#94490) 2026-01-19 04:12:35 +01:00
san7890andGitHub 8f73588d9a Blood Drunk Miner Basic Boss Refactor - "Similar Enough" Edition (#94728)
## About The Pull Request

I thought megafauna were hard to refactor into simple mobs, and they
kinda are, but also enough work has been done on them through various
refactors (e.g. mob abilities) that it's not _too_ bad, but I didn't
really relish working on it.

Regardless, it's refactored! A few more of the ol' simple mobs flushed
down the toilet, with a bunch more features to make porting over more
`megafauna` to the basic mob's `boss` framework even simpler. There's
some weird patterns that are introduced in here to better fit the old
system's parity, but I don't really mind having done that since it's
more important to get stuff out of the simple mob framework and into
something a bit easier to work with and extend.

Here are all of the changes I can recall having made:

* A lot of the documentation regarding the blood drunk miner did not
actually meet reality. The current refactor reflects what the code was
actually doing, not what was documented.
* The code regarding using the saw's `melee attack chain` stuff wasn't
changed. Sorry but I can't even start to unravel that, I just overrode
the whole attack thing because it's not really incorporable from what I
was finding.
* Basic mobs operate differently than simple mobs, thus this mob will be
"harder" for a shorter amount of time as people are not used to the
current timings/pathfinding behavior/cooldowns/etc. of the modern blood
drunk miner. The overall difficulty didn't feel too different to me in
my playtesting, but changes can certainly be made if someone can tell me
which variable to fix.
* Basic Bosses now appear in the orbit menu as mob POIs, parity with
megafauna
* Basic Bosses can now use the boss music component.
## Why It's Good For The Game

Cleans up the code by incorporating it into a modern framework that
already accounts for a lot of the stuff that was taken for granted 8-9
years ago when this was first implemented, and tries to keep any
possible number the same in doing so. Should be much easier to add new
graphics or overhaul the boss's AI to transform it into something even
more interesting should someone choose to do so.

Let me know if I fucked up with signals/ai behavior patterns/etc.
somewhere as it's been a while since I touched this stuff and I had to
clean out a lot of cobwebs in my brain to get to this implementation.
## Changelog
🆑
balance: Miners Beware: Blood Drunk Miners have been refactored into
basic mobs. This means their timings and such may be a bit more
unpredictable than what you're used to. The difficulty should be about
the same, but do approach with caution lest you get devoured...
/🆑

Hopefully more people can pitch in with refactoring megafauna now... not
too bad anymore after I fixed some of the jank...
2026-01-12 01:36:54 +00:00
AnturKandGitHub f60e992b10 Fixes few admin notices sanitization (#94788)
## About The Pull Request

Just some missing admin message sanitization.
2026-01-08 17:18:20 -08:00
MrMelbertandGitHub 88cc7e80a6 Adds screen hud elements for ghost toggles (#94570)
## About The Pull Request

On the bottom right of the ghost hud, there will be buttons to toggle
the various ghost hud changes

<img width="253" height="130" alt="image"
src="https://github.com/user-attachments/assets/98e66f4f-b211-4d45-9f18-382d4a50de37"
/>

- Darkness level
- Atmos click scan
- Heath click scan
- Chem click scan
- Data huds
- Tray scan
- Ghost vision

## Why It's Good For The Game

Provides an easy place to toggle things without needing to fish though a
side panel or UI, or type something in chat.
Plus shows you at a glance what you all have on. 

## Changelog

🆑 Melbert
add: Adds screen hud elements for ghost toggles
/🆑
2025-12-30 22:01:30 +01:00
53ed83bb9d Makes some more lists lazy (#94388)
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2025-12-28 19:57:42 +01:00
san7890andGitHub 2c3513e998 Admins Can Now Always Recall Shuttles (#94486) 2025-12-26 19:32:37 +11:00
MrMelbertandGitHub a9b0ecb7d0 Weather anomaly (#94509)
## About The Pull Request

A weather anomaly can spawn on the station, causing a sandstorm,
snowstorm, or rainstorm to affect the room (and nearby rooms). These
weathers range from "harmless" to "mildly damaging".

They last for around five minutes.
The weather doesn't start immediately, giving people time to neutralize
it before it causes damage.
Neutralizing the anomaly stops the weather. 
If they detonate, it just throw objects away from itself.

<img width="407" height="225" alt="image"
src="https://github.com/user-attachments/assets/2de1b797-2b17-442c-9023-11085b4849cf"
/>

<img width="991" height="674" alt="image"
src="https://github.com/user-attachments/assets/afe5a21d-9cf8-4e9d-95ec-adef6fd12a93"
/>

A rarer version of the anomaly can also occur, which brings a lightning
storm, which may damage the station itself.

Also, reactive weather armor. When you are hit, it summons a lightning
strike below nearby assailants.

## Why It's Good For The Game

With the added rain mechanics I wanted to use them, but it's kinda hard
to shoe them into the station because, "why is it raining on a space
station that makes no sense"

However, anomalies are weird, so this fits perfectly

## Changelog

🆑 Melbert
add: Weather anomalies, in four variants: Rain, snow, sand, and the rare
lightning storm.
add: Reactive Weather Armor
/🆑
2025-12-20 12:33:10 -05:00
nevimer 6e9f2ccfc0 Merge remote-tracking branch 'tgstation/master' into upstream-12-15
# Conflicts:
#	.github/workflows/compile_all_maps.yml
#	.github/workflows/run_integration_tests.yml
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	code/_onclick/hud/credits.dm
#	code/controllers/subsystem/networks/id_access.dm
#	code/datums/diseases/advance/advance.dm
#	code/datums/diseases/advance/symptoms/heal.dm
#	code/game/machinery/doors/door.dm
#	code/game/objects/structures/crates_lockers/closets/secure/medical.dm
#	code/game/objects/structures/crates_lockers/closets/secure/security.dm
#	code/modules/antagonists/malf_ai/malf_ai_modules.dm
#	code/modules/jobs/job_types/_job.dm
#	code/modules/loadout/categories/accessories.dm
#	code/modules/loadout/loadout_helpers.dm
#	code/modules/loadout/loadout_items.dm
#	code/modules/loadout/loadout_preference.dm
#	code/modules/mob/living/silicon/robot/robot_defense.dm
#	code/modules/mod/mod_theme.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	code/modules/reagents/reagent_containers/cups/drinks.dm
#	code/modules/shuttle/mobile_port/variants/supply.dm
#	code/modules/surgery/organs/internal/eyes/_eyes.dm
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_heretic.png
#	icons/hud/screen_full.dmi
2025-12-15 18:12:29 -05:00
san7890andGitHub 4f88c9f756 Cleanup + Logging for Readiness Bugs (#94462)
## About The Pull Request

On production, I sign up for rounds (and I know I pushed the button
because the auto-deadmin message comes up) but it doesn't inject me in
the game and fails without a warning. I have no idea why it's doing this
but I shifted some stuff around and added a few logs to hopefully stop
this strange consistent failure for me to start a shift.

I just cleaned up a lot of the code and turned the ready defines into
strings instead of a boolean (so I could log it more efficiently with
little overhead, as well as standardize it to a define without people
doing wacky shit everywhere). I don't think this will fix the issue but
it will definitely make some things more clear as to why I'm not joining
rounds without warning despite clicking ready.
## Why It's Good For The Game

Cleans the code up while trying to resolve a really puzzling bug I've
been having.
## Changelog
🆑
server: The ready/not ready states of new players are logged when a
shift starts.
/🆑
2025-12-14 21:25:58 -05:00
nevimer baf3837ae8 Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29
# Conflicts:
#	_maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm
#	_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	_maps/map_files/tramstation/tramstation.dmm
#	code/_onclick/hud/new_player.dm
#	code/datums/components/squashable.dm
#	code/datums/diseases/advance/symptoms/heal.dm
#	code/datums/diseases/chronic_illness.dm
#	code/datums/status_effects/buffs.dm
#	code/datums/status_effects/debuffs/drunk.dm
#	code/datums/status_effects/debuffs/stamcrit.dm
#	code/game/machinery/computer/crew.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/game/objects/items/wall_mounted.dm
#	code/game/turfs/closed/indestructible.dm
#	code/modules/admin/view_variables/filterrific.dm
#	code/modules/antagonists/heretic/influences.dm
#	code/modules/cargo/orderconsole.dm
#	code/modules/client/preferences.dm
#	code/modules/events/space_vines/vine_mutations.dm
#	code/modules/mob/dead/new_player/new_player.dm
#	code/modules/mob/living/carbon/human/death.dm
#	code/modules/mob/living/carbon/human/species_types/jellypeople.dm
#	code/modules/mob/living/damage_procs.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob_spawn/ghost_roles/mining_roles.dm
#	code/modules/mob_spawn/mob_spawn.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	code/modules/projectiles/guns/ballistic/launchers.dm
#	code/modules/projectiles/guns/energy/laser.dm
#	code/modules/reagents/chemistry/machinery/chem_dispenser.dm
#	code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
#	code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
#	code/modules/reagents/chemistry/reagents/medicine_reagents.dm
#	code/modules/surgery/healing.dm
#	code/modules/unit_tests/designs.dm
#	icons/mob/inhands/items_lefthand.dmi
#	icons/mob/inhands/items_righthand.dmi
#	tgui/packages/tgui/interfaces/ChemDispenser.tsx
2025-11-29 22:49:21 -05:00
MrMelbertandGitHub 5765f259ef Fixes human skeleton pirates, Refactors ghost spawns (#94138)
## About The Pull Request

`create_from_ghost` can be called from stuff like... dynamic executing a
ruleset, so putting a sleep/user input within it causes problems

So I refactored ghost spawns a fair bit, creating a clear delineation
between where you can and can't put user input

## Changelog

🆑 Melbert
fix: Pirates will no longer randomly spawn as human
fix: Servant Golems have numbered names again
refactor: Refactored ghost spawns (like spider eggs or pirate spawners),
report any oddities
/🆑
2025-11-25 19:52:19 -07:00
MrMelbertandGitHub 029ebd284b Blackbox logs # of latejoin in 5 minute intervals (#94018)
## About The Pull Request

Records the number of latejoins per 5 minutes of round time.
Example data would look something like 
```
0-5 minutes = 1
5-10 minutes = 2
10-15 minutes = 0
```
2025-11-19 19:38:08 -07:00
Roxy d0ca474789 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-2025-11-05 2025-11-05 19:43:07 -05:00
MrMelbertandGitHub 396bce4237 Adds a popup for logging in with an unrecommended byond version (#93742)
## About The Pull Request

Adds `GLOB.unrecommended_builds`, for byond build which are broken for
the end user in some way, but not in a way that warrants outright
blacklisting players from connecting with them

Looks like this (Ignore the number I changed it for testing purposes) 

<img width="493" height="267" alt="image"
src="https://github.com/user-attachments/assets/d31636e8-a106-4d13-a8fa-aee6a50c6d27"
/>

Uses this system for the new byond build, 1670+, which breaks text
rendering

Also adds 1670+ to the list of builds to warn on compile

## Why It's Good For The Game

1670 broke the compilation step, probably permanently

Whether we will fix this or flip a pragma or w/e remains to be seen, but
until then we can tell people to compile an earlier version

1670 also broke the user experience, causing map text to show up as
really big. This will be fixed in an upcoming version
<https://www.byond.com/forum/post/2983385>

## Changelog

🆑 Melbert
qol: If you are on Byond 516.1670+, you will get an alert on login that
your build is less than functional
/🆑
2025-11-02 20:31:56 -05:00
xPokee 5e629dff04 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-10-03 07:05:54 -04:00
3ea7b03369 Accentuate the positive with **Personality**: A (soft) mood rework (#92941)
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2025-10-02 19:00:13 +00:00
xPokee b308ee9d78 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-09-24 10:13:01 -04:00
MrMelbertandGitHub 750ca9d2ec Two as anything greps (and some other cleanup) (#92974) 2025-09-20 13:44:28 -04:00
MrMelbertandGitHub 4a618934e9 Removes message arg from Hear, free performance (#93020)
## About The Pull Request

The first argument of `Hear` is `message`, the message heard

OR SO YOU'D THINK

Actually the first argument doesn't do anything but get overridden by
ALL implementations of `Hear`

No other uses as far as I and Ephe can tell. Removing it makes it a ton
easier to understand and gives us some free performance in radio code by
not rendering messages twice

## Changelog

🆑 Melbert
code: Removed some redundant code from core hearing code. Report if you
hear anything weird.
/🆑
2025-09-20 12:29:40 +02:00
MrZoramanandGitHub ac9b7c2fd8 Allow command to have missing limbs on roundstart. (#4311)
## About The Pull Request

As the code currently is, if any missing limb is selected, command is
locked. This PR adjusts the logic so that command is locked only if both
arms are missing.
## Why It's Good For The Game

Disabled captains and other heads of staff offer more character creation
and roleplay opportunities. This change removes such logic discrepancies
such as a paraplegic captain being fine bug a legless captain being
disallowed. Crew with one hand are still very capable and do not need to
be blocked from command roles.
## Proof Of Testing

Code compiles with 0 errors, 0 warnings. Tested locally and working as
expected.
<details>
<summary>Screenshots/Videos</summary>

</details>

## Changelog
🆑
balance: Heads of staff are free to be missing as many roundstart limbs
as they want, as long as they have at least one hand.
/🆑
2025-08-09 22:11:47 -04:00
SmArtKarandRoxy caf2b4b025 Fixes admin's ckey search in orbit sometimes failing (#92183) 2025-07-19 20:29:31 -04:00
SmArtKarandGitHub c0acaf7b01 Fixes admin's ckey search in orbit sometimes failing (#92183) 2025-07-19 10:36:41 -06:00
MrMelbertandRoxy 6fa94df043 Quirks send on_gain messages in fewer contexts (#91867)
## About The Pull Request

Quirks only send their on_gain text when given midround, such as by an
admin

## Why It's Good For The Game

Spams the hell out of you for no reason - in very few contexts are these
messages important (randomized allergies come to mind), but there are
other avenues to figure out (such as dogtags)


![image](https://github.com/user-attachments/assets/a1abb43b-edd0-4a08-8085-319ee216917a)

## Changelog

🆑 Melbert
qol: Quirks spam you less on roundstart or latejoin
/🆑
2025-07-04 16:33:07 -04:00
MrMelbertandGitHub 08045236ca Quirks send on_gain messages in fewer contexts (#91867)
## About The Pull Request

Quirks only send their on_gain text when given midround, such as by an
admin

## Why It's Good For The Game

Spams the hell out of you for no reason - in very few contexts are these
messages important (randomized allergies come to mind), but there are
other avenues to figure out (such as dogtags)


![image](https://github.com/user-attachments/assets/a1abb43b-edd0-4a08-8085-319ee216917a)

## Changelog

🆑 Melbert
qol: Quirks spam you less on roundstart or latejoin
/🆑
2025-06-29 11:42:59 -06:00
FeudeyTFandRoxy 161d744035 Telecomms Update: Ability to change existing radio channels and create new ones (#91647)
## About The Pull Request
I have added the ability to create and edit station radio channels
through the existing telecommunications system.
You can change the name of the radio channel and its color.

The channel settings are changed and created through the servers
(Frequencies Settings)

![ui](https://github.com/user-attachments/assets/cb010d75-bb00-4e3c-86b6-351b39b832e3)

Here i created my own channel:
1) Add frequency at Receiver (you will not see channel name):

![TestChannelInReceiver](https://github.com/user-attachments/assets/d3934e96-fb2d-492a-a1d6-84e8bfbd6628)
2) Add frequency at Bus (you will not see channel name):

![TestChannelnBus](https://github.com/user-attachments/assets/9955fb9c-9ca0-44f5-8d8f-caf02c0b3a9c)
3) Add frequency at Server
4) Add settings for your frequency

![NewChannel](https://github.com/user-attachments/assets/14a86eae-a000-4106-848b-a140ab678c3c)
5) See the result:

![TestChannel](https://github.com/user-attachments/assets/a720c660-43f6-47c0-8e85-fd313e8ce8d7)

Important Notes:
1) Headsets, radios, and intercoms will not see a change in
telecommunications, but will use standard names (Common, Security etc.).
2) There are still reserved names that cannot be used: CentComm,
Syndicate, Uplink, CTFs channels
3) Servers must filter frequency for applying settings on them

## Why It's Good For The Game

Now telecommunication channels names and colors depends on the settings
of the network servers, which makes it more flexible and logical. It is
also useful for foreign language servers, as you can translate channel
names.

## Changelog

🆑
add: Added ability to change existing radio channels and create new
qol: Added color for some buttons in Telecomms UI
/🆑

(cherry picked from commit 35494b93bb)
2025-06-28 20:37:12 -04:00
FeudeyTFandGitHub 35494b93bb Telecomms Update: Ability to change existing radio channels and create new ones (#91647)
## About The Pull Request
I have added the ability to create and edit station radio channels
through the existing telecommunications system.
You can change the name of the radio channel and its color.

The channel settings are changed and created through the servers
(Frequencies Settings)

![ui](https://github.com/user-attachments/assets/cb010d75-bb00-4e3c-86b6-351b39b832e3)

Here i created my own channel:
1) Add frequency at Receiver (you will not see channel name):

![TestChannelInReceiver](https://github.com/user-attachments/assets/d3934e96-fb2d-492a-a1d6-84e8bfbd6628)
2) Add frequency at Bus (you will not see channel name):

![TestChannelnBus](https://github.com/user-attachments/assets/9955fb9c-9ca0-44f5-8d8f-caf02c0b3a9c)
3) Add frequency at Server
4) Add settings for your frequency

![NewChannel](https://github.com/user-attachments/assets/14a86eae-a000-4106-848b-a140ab678c3c)
5) See the result:

![TestChannel](https://github.com/user-attachments/assets/a720c660-43f6-47c0-8e85-fd313e8ce8d7)

Important Notes:
1) Headsets, radios, and intercoms will not see a change in
telecommunications, but will use standard names (Common, Security etc.).
2) There are still reserved names that cannot be used: CentComm,
Syndicate, Uplink, CTFs channels
3) Servers must filter frequency for applying settings on them

## Why It's Good For The Game

Now telecommunication channels names and colors depends on the settings
of the network servers, which makes it more flexible and logical. It is
also useful for foreign language servers, as you can translate channel
names.

## Changelog

🆑
add: Added ability to change existing radio channels and create new
qol: Added color for some buttons in Telecomms UI
/🆑
2025-06-28 01:19:18 +10:00
MrMelbertandRoxy e0bdfc3f5f Dynamic Rework (#91290)
Implements https://hackmd.io/@tgstation/SkeUS7lSp , rewriting Dynamic
from the ground-up

- Dynamic configuration is now vastly streamlined, making it far far far
easier to understand and edit

- Threat is gone entirely; round chaos is now determined by dynamic
tiers
   - There's 5 dynamic tiers, 0 to 4.
      - 0 is a pure greenshift.
- Tiers are just picked via weight - "16% chance of getting a high chaos
round".
- Tiers have min pop ranges. "Tier 4 (high chaos) requires 25 pop to be
selected".
- Tier determines how much of every ruleset is picked. "Tier 4 (High
Chaos) will pick 3-4 roundstart[1], 1-2 light, 1-2 heavy, and 2-3
latejoins".
- The number of rulesets picked depends on how many people are in the
server - this is also configurable[2]. As an example, a tier that
demands "1-3" rulesets will not spawn 3 rulesets if population <= 40 and
will not spawn 2 rulesets if population <= 25.
- Tiers also determine time before light, heavy, and latejoin rulesets
are picked, as well as the cooldown range between spawns. More chaotic
tiers may send midrounds sooner or wait less time between sending them.

- On the ruleset side of things, "requirements", "scaling", and
"enemies" is gone.
- You can configure a ruleset's min pop and weight flat, or per tier.
- For example a ruleset like Obsession is weighted higher for tiers 1-2
and lower for tiers 3-4.
- Rather than scaling up, roundstart rulesets can just be selected
multiple times.
- Rulesets also have `min_antag_cap` and `max_antag_cap`.
`min_antag_cap` determines how many candidates are needed for it to run,
and `max_antag_cap` determines how many candidates are selected.

- Rulesets attempt to run every 2.5 minutes. [3]

- Light rulesets will ALWAYS be picked before heavy rulesets. [4]

- Light injection chance is no longer 100%, heavy injection chance
formula has been simplified.
- Chance simply scales based on number of dead players / total number
off players, with a flag 50% chance if no antags exist. [5]

[1] This does not guarantee you will actually GET 3-4 roundstart
rulesets. If a roundstart ruleset is picked, and it ends up being unable
to execute (such as "not enough candidates", that slot is effectively a
wash.) This might be revisited.

[2] Currently, this is a hard limit - below X pop, you WILL get a
quarter or a half of the rulesets. This might be revisited to just be
weighted - you are just MORE LIKELY to get a quarter or a half.

[3] Little worried about accidentally frontloading everything so we'll
see about this

[4] This may be revisited but in most contexts it seems sensible.

[5] This may also be revisited, I'm not 100% sure what the best / most
simple way to tackle midround chances is.

Other implementation details

- The process of making rulesets has been streamlined as well. Many
rulesets only amount to a definition and `assign_role`.

- Dynamic.json -> Dynamic.toml

- Dynamic event hijacked was ripped out entirely.
- Most midround antag random events are now dynamic rulesets. Fugitives,
Morphs, Slaughter Demons, etc.
      - The 1 weight slaughter demon event is gone. RIP in peace.
- There is now a hidden midround event that simply adds +1 latejoin, +1
light, or +1 heavy ruleset.

- `mind.special_role` is dead. Minds have a lazylist of special roles
now but it's essentially only used for traitor panel.

- Revs refactored almost entirely. Revs can now exist without a dynamic
ruleset.

- Cult refactored a tiny bit.

- Antag datums cleaned up.

- Pre round setup is less centralized on Dynamic.

- Admins have a whole panel for interfacing with dynamic. It's pretty
slapdash I'm sure someone could make a nicer looking one.

![image](https://github.com/user-attachments/assets/e99ca607-20b0-4d30-ab4a-f602babe7ac7)

![image](https://github.com/user-attachments/assets/470c3c20-c354-4ee6-b63b-a8f36dda4b5c)

- Maybe some other things.

See readme for more info.

Will you see a massive change in how rounds play out? My hunch says
rounds will spawn less rulesets on average, but it's ultimately to how
it's configured

🆑 Melbert
refactor: Dynamic rewritten entirely, report any strange rounds
config: Dynamic config reworked, it's now a TOML file
refactor: Refactored antag roles somewhat, report any oddities
refactor: Refactored Revolution entirely, report any oddities
del: Deleted most midround events that spawn antags - they use dynamic
rulesets now
add: Dynamic rulesets can now be false alarms
add: Adds a random event that gives dynamic the ability to run another
ruleset later
admin: Adds a panel for messing around with dynamic
admin: Adds a panel for chance for every dynamic ruleset to be selected
admin: You can spawn revs without using dynamic now
fix: Nuke team leaders get their fun title back
/🆑

(cherry picked from commit 4c277dc572)
2025-06-26 20:12:17 -04:00
grungussussandRoxy 9cbcde390d lobby art is mouse transparent on fade out (#91774)
(cherry picked from commit 601654a91c)
2025-06-26 19:54:39 -04:00
John WillardandRoxy 78cffc2101 Adds a new halloween species: Spirits (#90711)
Adds 2 new species: Spirits and Ghosts

Spirits are available roundstart during Halloween, Wabbajack and
Xenobio's black slime extract
Ghosts are available through Magic mirrors

They fly around, and don't have legs and instead float around. They also
can't get legs implanted onto themselves.

They also do have organs, so they are affected by flashbangs, they do
get hungry, they do need oxygen to survive (they don't take damage in
space but they do suffocate & get slowdown), and can process chems.
Gibbing a ghost gives ectoplasm, an ingredient for ghost burgers.

Chaplains also got a buff here, null rod-type weapons' bane is now
against Spirit mobs, rather than hardcoded revenants. This means it now
includes Spirits/Ghosts, but also Soulscythes & Cult shades.

Also re-adds https://github.com/tgstation/tgstation/pull/81630 which was
reverted in https://github.com/tgstation/tgstation/pull/86506 which I
assume was accidental.

Ghosts have an innate ability to become incorporeal, which allows them
to phase through walls and stuff. Using this will immediately make them
drop any non-ghost limb/organ (not implants cause I thought it would be
funny). This ability is not available if they have holy water in their
system, and like revenants they also can't walk over blessed tiles with
it. They are also invisible to cameras while using this (not the obscura
though).

Sprites taken from observers directly, if anyone wants to make custom
sprites for them feel free. If anyone wants to make this obtainable
somehow in-game as well I wouldn't be opposed, halloween is just where I
thought it would fit most.

This also adds a lot of fixes that I encountered trying to add this,
from systems that have been neglected throughout the years.

https://github.com/user-attachments/assets/e368d710-80a0-4c63-b271-1abe3dd41a5e

We haven't gotten a new halloween species in a long time and thought it
would be fun if you can play as an actual ghost, the soul that remains
after a person passes, so Halloween feels more haunted. It's overall
made in just good fun, with a bonus that Ghosts are a cool species to
play with as well for Wizards & maybe Chaplains in the future (Dead sect
when?)

🆑
add: Added a new halloween species: Spirits, a species without legs and
instead floats.
add: Added a new magic mirror species: Ghosts, like spirits but with the
ability to become incorporeal, traversing through solid wall.
fix: Mobs unable to use storage items now can't use storage items.
fix: Mobs unable to use items can now not open airlocks & closets
fix: Mobs unable to pick items up can no longer pick items up and
immediately drop, moving one tile at a time.
fix: Mobs with intentional missing limbs (Alien larva) no longer show
their limbs as missing on examine (again)
fix: Golems' pref page had a missing icon, it now has one.
/🆑

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
(cherry picked from commit 096c032402)
2025-06-26 19:54:02 -04:00
MrMelbertandGitHub 4c277dc572 Dynamic Rework (#91290)
## About The Pull Request

Implements https://hackmd.io/@tgstation/SkeUS7lSp , rewriting Dynamic
from the ground-up

- Dynamic configuration is now vastly streamlined, making it far far far
easier to understand and edit

- Threat is gone entirely; round chaos is now determined by dynamic
tiers
   - There's 5 dynamic tiers, 0 to 4.
      - 0 is a pure greenshift.
- Tiers are just picked via weight - "16% chance of getting a high chaos
round".
- Tiers have min pop ranges. "Tier 4 (high chaos) requires 25 pop to be
selected".
- Tier determines how much of every ruleset is picked. "Tier 4 (High
Chaos) will pick 3-4 roundstart[1], 1-2 light, 1-2 heavy, and 2-3
latejoins".
- The number of rulesets picked depends on how many people are in the
server - this is also configurable[2]. As an example, a tier that
demands "1-3" rulesets will not spawn 3 rulesets if population <= 40 and
will not spawn 2 rulesets if population <= 25.
- Tiers also determine time before light, heavy, and latejoin rulesets
are picked, as well as the cooldown range between spawns. More chaotic
tiers may send midrounds sooner or wait less time between sending them.

- On the ruleset side of things, "requirements", "scaling", and
"enemies" is gone.
- You can configure a ruleset's min pop and weight flat, or per tier.
- For example a ruleset like Obsession is weighted higher for tiers 1-2
and lower for tiers 3-4.
- Rather than scaling up, roundstart rulesets can just be selected
multiple times.
- Rulesets also have `min_antag_cap` and `max_antag_cap`.
`min_antag_cap` determines how many candidates are needed for it to run,
and `max_antag_cap` determines how many candidates are selected.

- Rulesets attempt to run every 2.5 minutes. [3]

- Light rulesets will ALWAYS be picked before heavy rulesets. [4]

- Light injection chance is no longer 100%, heavy injection chance
formula has been simplified.
- Chance simply scales based on number of dead players / total number
off players, with a flag 50% chance if no antags exist. [5]

[1] This does not guarantee you will actually GET 3-4 roundstart
rulesets. If a roundstart ruleset is picked, and it ends up being unable
to execute (such as "not enough candidates", that slot is effectively a
wash.) This might be revisited.

[2] Currently, this is a hard limit - below X pop, you WILL get a
quarter or a half of the rulesets. This might be revisited to just be
weighted - you are just MORE LIKELY to get a quarter or a half.

[3] Little worried about accidentally frontloading everything so we'll
see about this

[4] This may be revisited but in most contexts it seems sensible. 

[5] This may also be revisited, I'm not 100% sure what the best / most
simple way to tackle midround chances is.

Other implementation details

- The process of making rulesets has been streamlined as well. Many
rulesets only amount to a definition and `assign_role`.

- Dynamic.json -> Dynamic.toml

- Dynamic event hijacked was ripped out entirely.
- Most midround antag random events are now dynamic rulesets. Fugitives,
Morphs, Slaughter Demons, etc.
      - The 1 weight slaughter demon event is gone. RIP in peace. 
- There is now a hidden midround event that simply adds +1 latejoin, +1
light, or +1 heavy ruleset.

- `mind.special_role` is dead. Minds have a lazylist of special roles
now but it's essentially only used for traitor panel.

- Revs refactored almost entirely. Revs can now exist without a dynamic
ruleset.

- Cult refactored a tiny bit. 

- Antag datums cleaned up.

- Pre round setup is less centralized on Dynamic.

- Admins have a whole panel for interfacing with dynamic. It's pretty
slapdash I'm sure someone could make a nicer looking one.


![image](https://github.com/user-attachments/assets/e99ca607-20b0-4d30-ab4a-f602babe7ac7)


![image](https://github.com/user-attachments/assets/470c3c20-c354-4ee6-b63b-a8f36dda4b5c)

- Maybe some other things.

## Why It's Good For The Game

See readme for more info.

Will you see a massive change in how rounds play out? My hunch says
rounds will spawn less rulesets on average, but it's ultimately to how
it's configured

## Changelog

🆑 Melbert
refactor: Dynamic rewritten entirely, report any strange rounds
config: Dynamic config reworked, it's now a TOML file
refactor: Refactored antag roles somewhat, report any oddities
refactor: Refactored Revolution entirely, report any oddities
del: Deleted most midround events that spawn antags - they use dynamic
rulesets now
add: Dynamic rulesets can now be false alarms
add: Adds a random event that gives dynamic the ability to run another
ruleset later
admin: Adds a panel for messing around with dynamic
admin: Adds a panel for chance for every dynamic ruleset to be selected
admin: You can spawn revs without using dynamic now
fix: Nuke team leaders get their fun title back
/🆑
2025-06-25 17:36:10 -07:00
grungussussandGitHub 601654a91c lobby art is mouse transparent on fade out (#91774) 2025-06-23 23:36:37 -06:00
096c032402 Adds a new halloween species: Spirits (#90711)
## About The Pull Request

Adds 2 new species: Spirits and Ghosts

Spirits are available roundstart during Halloween, Wabbajack and
Xenobio's black slime extract
Ghosts are available through Magic mirrors

They fly around, and don't have legs and instead float around. They also
can't get legs implanted onto themselves.

They also do have organs, so they are affected by flashbangs, they do
get hungry, they do need oxygen to survive (they don't take damage in
space but they do suffocate & get slowdown), and can process chems.
Gibbing a ghost gives ectoplasm, an ingredient for ghost burgers.

Chaplains also got a buff here, null rod-type weapons' bane is now
against Spirit mobs, rather than hardcoded revenants. This means it now
includes Spirits/Ghosts, but also Soulscythes & Cult shades.

Also re-adds https://github.com/tgstation/tgstation/pull/81630 which was
reverted in https://github.com/tgstation/tgstation/pull/86506 which I
assume was accidental.

### The difference between Spirits and Ghosts

Ghosts have an innate ability to become incorporeal, which allows them
to phase through walls and stuff. Using this will immediately make them
drop any non-ghost limb/organ (not implants cause I thought it would be
funny). This ability is not available if they have holy water in their
system, and like revenants they also can't walk over blessed tiles with
it. They are also invisible to cameras while using this (not the obscura
though).

Sprites taken from observers directly, if anyone wants to make custom
sprites for them feel free. If anyone wants to make this obtainable
somehow in-game as well I wouldn't be opposed, halloween is just where I
thought it would fit most.

This also adds a lot of fixes that I encountered trying to add this,
from systems that have been neglected throughout the years.


https://github.com/user-attachments/assets/e368d710-80a0-4c63-b271-1abe3dd41a5e

## Why It's Good For The Game

We haven't gotten a new halloween species in a long time and thought it
would be fun if you can play as an actual ghost, the soul that remains
after a person passes, so Halloween feels more haunted. It's overall
made in just good fun, with a bonus that Ghosts are a cool species to
play with as well for Wizards & maybe Chaplains in the future (Dead sect
when?)

## Changelog

🆑
add: Added a new halloween species: Spirits, a species without legs and
instead floats.
add: Added a new magic mirror species: Ghosts, like spirits but with the
ability to become incorporeal, traversing through solid wall.
fix: Mobs unable to use storage items now can't use storage items.
fix: Mobs unable to use items can now not open airlocks & closets
fix: Mobs unable to pick items up can no longer pick items up and
immediately drop, moving one tile at a time.
fix: Mobs with intentional missing limbs (Alien larva) no longer show
their limbs as missing on examine (again)
fix: Golems' pref page had a missing icon, it now has one.
/🆑

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
2025-06-22 10:02:06 +02:00
John WillardandRoxy 2a79d6424e Removes widescreen config (#91419)
19x15 forever, or 15x15 if you're non widescreen user.

Idek why this is a config
2025-06-21 22:38:18 -04:00
LucyandRoxy a2f60cf2cb [NO GBP] fix server hop lobby art fade-in (#91693)
## About The Pull Request

accidentally broke this in
https://github.com/tgstation/tgstation/pull/91637, whoops

## Why It's Good For The Game

bugfix

## Changelog
🆑
fix: Fixed lobby art not fading in when server hopping.
/🆑
2025-06-21 22:32:21 -04:00
BloopandRoxy ac3a9d3d24 Adds back a couple ghost verbs (#91654)
## About The Pull Request

https://github.com/tgstation/tgstation/pull/91619 missed a couple that I
use and I want them back!!

Also unhides the report-issue verb as it's kind of a pain to get to now
with the removal of the ever present button above stat panel.

## Why It's Good For The Game

Reee give me back my verbs

## Changelog

🆑
qol: "Spawners Menu" and "Minigames Menu" are back as chat verbs for
power users
qol: report-issue is now a verb that can be used in chat to open the
issue report prompt for power users
/🆑
2025-06-21 22:21:55 -04:00
LucyandRoxy 04c09cc73b Fix the lobby art not fading out (#91637)
## About The Pull Request

ports a fix from
https://github.com/Monkestation/Monkestation2.0/pull/6991

https://github.com/tgstation/tgstation/pull/76772 accidentally broke
most instances of using `/atom/movable/screen/splash`, bc now the client
needs to be third instead of second argument to `new
/atom/movable/screen/splash`... yeah.

<details>
<summary><h3>pre-fix video clip</h3></summary>


https://github.com/user-attachments/assets/87015373-de72-4753-bf6e-55c3d9ffa207

</details>

<details>
<summary><h3>post-fix video clip</h3></summary>


https://github.com/user-attachments/assets/3dc80c68-f4a5-44a7-95fe-d590affc273d

</details>

## Why It's Good For The Game

bugfix good

## Changelog
🆑
fix: The lobby art properly fades out during roundstart, latejoin, and
server restart again.
/🆑
2025-06-21 22:17:48 -04:00
John WillardandGitHub 4c82b029c7 Removes widescreen config (#91419)
## About The Pull Request

19x15 forever, or 15x15 if you're non widescreen user.

## Why It's Good For The Game

Idek why this is a config
2025-06-22 01:14:55 +00:00
LucyandGitHub 010c585c71 [NO GBP] fix server hop lobby art fade-in (#91693)
## About The Pull Request

accidentally broke this in
https://github.com/tgstation/tgstation/pull/91637, whoops

## Why It's Good For The Game

bugfix

## Changelog
🆑
fix: Fixed lobby art not fading in when server hopping.
/🆑
2025-06-19 16:30:26 +00:00
BloopandGitHub 5f2d40389e Adds back a couple ghost verbs (#91654)
## About The Pull Request

https://github.com/tgstation/tgstation/pull/91619 missed a couple that I
use and I want them back!!

Also unhides the report-issue verb as it's kind of a pain to get to now
with the removal of the ever present button above stat panel.

## Why It's Good For The Game

Reee give me back my verbs

## Changelog

🆑
qol: "Spawners Menu" and "Minigames Menu" are back as chat verbs for
power users
qol: report-issue is now a verb that can be used in chat to open the
issue report prompt for power users
/🆑
2025-06-17 09:29:02 -06:00
LucyandGitHub c0e63357d9 Fix the lobby art not fading out (#91637)
## About The Pull Request

ports a fix from
https://github.com/Monkestation/Monkestation2.0/pull/6991

https://github.com/tgstation/tgstation/pull/76772 accidentally broke
most instances of using `/atom/movable/screen/splash`, bc now the client
needs to be third instead of second argument to `new
/atom/movable/screen/splash`... yeah.

<details>
<summary><h3>pre-fix video clip</h3></summary>


https://github.com/user-attachments/assets/87015373-de72-4753-bf6e-55c3d9ffa207

</details>

<details>
<summary><h3>post-fix video clip</h3></summary>


https://github.com/user-attachments/assets/3dc80c68-f4a5-44a7-95fe-d590affc273d

</details>

## Why It's Good For The Game

bugfix good

## Changelog
🆑
fix: The lobby art properly fades out during roundstart, latejoin, and
server restart again.
/🆑
2025-06-15 19:00:46 -06:00
John WillardandRoxy a370710836 Ghost lighting now updates prefs (#91592) 2025-06-15 15:54:32 -04:00
SmArtKarandRoxy e08086ba8d Brings back ghost verbs (chatbar only) (#91619)
## About The Pull Request

Partially rolls back #91370 by reintroducing ghost verbs, but for the
chatbar only. Doesn't clutter up the statpanel, but powerusers can
quickly type them in without navigating the menu.

## Why It's Good For The Game

The change massively fucked over our powerusers (aka admins, which are
already suffering from poor UX) who were used to typing out the verbs in
the chat. No reason to remove functionality, the menu is neat but if you
remember commands by heart its faster to type them out.

## Changelog
🆑
add: Ghost verbs are back in the chatbar, you can now type out things
like "Orbit" or "T-ray-scan" once again as a ghost.
/🆑
2025-06-15 15:54:22 -04:00
LemonInTheDarkandRoxy d5be02ecee Mob ckey sanity check now respects insano aghost code (#91517)
## About The Pull Request

I HATE THIS PLACE DUDE, aghosting sets your ckey/key to your normal
ckey/ckey but with @ prefixed. hhhhhhhhh.
2025-06-15 15:52:38 -04:00
John WillardandGitHub d8a032cb56 Ghost lighting now updates prefs (#91592) 2025-06-14 00:16:37 -06:00
SmArtKarandGitHub 5ecd40b16d Brings back ghost verbs (chatbar only) (#91619)
## About The Pull Request

Partially rolls back #91370 by reintroducing ghost verbs, but for the
chatbar only. Doesn't clutter up the statpanel, but powerusers can
quickly type them in without navigating the menu.

## Why It's Good For The Game

The change massively fucked over our powerusers (aka admins, which are
already suffering from poor UX) who were used to typing out the verbs in
the chat. No reason to remove functionality, the menu is neat but if you
remember commands by heart its faster to type them out.

## Changelog
🆑
add: Ghost verbs are back in the chatbar, you can now type out things
like "Orbit" or "T-ray-scan" once again as a ghost.
/🆑
2025-06-13 16:12:51 -06:00
LemonInTheDarkandGitHub c8701aa056 Mob ckey sanity check now respects insano aghost code (#91517)
## About The Pull Request

I HATE THIS PLACE DUDE, aghosting sets your ckey/key to your normal
ckey/ckey but with @ prefixed. hhhhhhhhh.
2025-06-08 15:09:54 -06:00
John WillardandRoxy 25da3e86a6 Ghost settings UI (#91370)
This is part of my ongoing project to remove the Stat panel which you
can read/contribute to here: https://hackmd.io/443_dE5lRWeEAp9bjGcKYw

Replaces the pAI button at the bottom of Ghost's HUD with a new button
for Ghost settings

Default look

![image](https://github.com/user-attachments/assets/7b97287d-5f8b-40a4-b574-98ecaafa8533)

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

![image](https://github.com/user-attachments/assets/3ee9bb9b-389c-452c-8ff5-fbd0ee677fef)

The ghost icon next to "re-enter body" is the DNR button, which requires
double click.
Extra view is now easier to understand, 0 is "default", anything more is
extra vision you get. Goes to 3 for regular users, 7 for BYOND members.

Removes the "Ghost" tab from the stat panel entirely, this replaces it.

The Ghost tab of the stat panel is filled with barely functional stuff,
like "Jump to Mob" which allows you to jump to "oranges ear" which
teleports you to nullspace, or the 4 different jump to verbs for
different things which is irrelevant from the Orbit menu and the many
improvements it got over the years, and even the Notifications panel,
which seems pretty useful, but because it's delegated to a small button
filled with the rest of these it gets entirely drowned out.
This puts all the important things in front of the user at the click of
a button, meant to be easy to navigate and giving important information
first.

🆑
add: Added a 'Ghost settings' button, taking the spot of the pAI
candidate button and replacing the "Ghost" tab of the Stat panel. This
button contains buttons pertinent to your time as an Observer.
/🆑
2025-05-29 16:17:39 -04:00
John WillardandGitHub ca96a9e2cd Ghost settings UI (#91370)
## About The Pull Request

This is part of my ongoing project to remove the Stat panel which you
can read/contribute to here: https://hackmd.io/443_dE5lRWeEAp9bjGcKYw

Replaces the pAI button at the bottom of Ghost's HUD with a new button
for Ghost settings

Default look

![image](https://github.com/user-attachments/assets/7b97287d-5f8b-40a4-b574-98ecaafa8533)

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

![image](https://github.com/user-attachments/assets/3ee9bb9b-389c-452c-8ff5-fbd0ee677fef)

The ghost icon next to "re-enter body" is the DNR button, which requires
double click.
Extra view is now easier to understand, 0 is "default", anything more is
extra vision you get. Goes to 3 for regular users, 7 for BYOND members.

Removes the "Ghost" tab from the stat panel entirely, this replaces it.

## Why It's Good For The Game

The Ghost tab of the stat panel is filled with barely functional stuff,
like "Jump to Mob" which allows you to jump to "oranges ear" which
teleports you to nullspace, or the 4 different jump to verbs for
different things which is irrelevant from the Orbit menu and the many
improvements it got over the years, and even the Notifications panel,
which seems pretty useful, but because it's delegated to a small button
filled with the rest of these it gets entirely drowned out.
This puts all the important things in front of the user at the click of
a button, meant to be easy to navigate and giving important information
first.

## Changelog

🆑
add: Added a 'Ghost settings' button, taking the spot of the pAI
candidate button and replacing the "Ghost" tab of the Stat panel. This
button contains buttons pertinent to your time as an Observer.
/🆑
2025-05-29 10:21:29 -07:00
John WillardandShadow-Quill 0babfe8098 Spirit realm ghosts can't observe (#90556) 2025-04-29 17:52:31 -06:00