1843 Commits
Author SHA1 Message Date
AlexisandGitHub 313b09c072 [Semi-Modular] Updates Autowiki (#5300)
## About The Pull Request
It'll allow autowiki to work for us instead of trying to log in to
/tg/'s wiki. Which is what we want.
2026-03-02 16:41:20 -05:00
RoxyandGitHub 480c0e957d Fix .proc lint for modular folders (#5221)
## About The Pull Request

Our modular folders weren't being checked for this lint because the
search directories were defined in a separate var whoops
## Why It's Good For The Game

Syntax that's been deprecated for years should be linted for

## Proof Of Testing

The green check mark will say all
2026-02-08 09:23:38 -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 b4e9cc4809 Adds Small "How To Fix" Message for Python Bootstrap Error (#94493) 2025-12-15 21:39:08 +01:00
shayoki 739a897e5f merging with current 2025-12-14 03:25:39 -06:00
san7890andGitHub 34289bfce8 Standardizes all CI to run on ubuntu-24.04 (#94410)
## About The Pull Request

<img width="908" height="878" alt="image"
src="https://github.com/user-attachments/assets/7262576b-f7d9-4be4-8cff-6662f85698fd"
/>

Our application of Ubuntu 22.04 versus Ubuntu 24.04 (which is presently
the version for `ubuntu-latest`) is pretty inconsistent even within the
same suites, I figure we bump it up and set one standard moving
forwards. This PR was originally set to autoset it to `ubuntu-latest`
but wow the issues are agonizing so let's just bump it up and keep it
synchronized

also bumps python to `3.11.0` and whatever dependency versions needed
that as that was necessary
2025-12-13 20:36:10 -05:00
shayoki 28e23abe01 modular walltoys 2025-12-13 09:26:14 -06:00
SyncIt21andGitHub b03fc39287 Replacing objects with their mapping directional helpers Part 3 (#94315)
## About The Pull Request
Continuation of #94059. Replaces the following signs with their
directional helpers

- `/obj/structure/sign/departments/cargo :
/obj/structure/sign/departments/cargo/directional`
- `/obj/structure/sign/warning/vacuum/external :
/obj/structure/sign/warning/vacuum/external/directional`

## Changelog
🆑
qol: added mapping directional helper for cargo & vacuum signs allowing
them to interact with fire/acid on their mounted turf
/🆑
2025-12-09 23:33:44 +00:00
AlexisandGitHub 1c3db82004 Removes the Imperial/Naval Hats and Jumpsuits (#4981)
## About The Pull Request
Does as the title suggests. I am pretty impartial to these existing, so
long as they get a resprite, and get proper digitigrade leg sprites
before they make a return. If anyone is super attached to the hats, let
me know in the comments, and I'll remove them from this PR. I only
included them with this due to it feeling silly to only have the hats
without the uniforms.
## Why It's Good For The Game
I am normally a firm believer in "Improve. Don't remove." but these
sprites lack digitigrade sprites and their own sprites have clearly not
been touched up in quite some time leads me to believe they are being
unmaintained and would best be removed for the time being.
## Proof Of Testing
It compiled. If CI passes it should work.
## Changelog
🆑
del: Removed the imperial/naval hats and jumpsuits.
/🆑
2025-12-09 11:10:50 -08:00
RoxyandGitHub 9cc1979b95 Update CreditsTool (#94254)
## About The Pull Request

I was gonna make a PR to delete this then I realized the code for it is
still in game the script just doesn't work anymore so I made it work for
a laugh

EDIT: okay i got a little invested and cleaned up how it looks a bit too

## Why It's Good For The Game

https://files.catbox.moe/9pwdr4.mp4
Everyone Is Here

## Changelog

N/A
2025-12-08 17:26:48 -08:00
san7890andGitHub e0827de4b5 [MDB Ignore] Unrestricted Airlocks - Door Delays (#94040)
## About The Pull Request

This PR adds a change to a pretty prevalent feature that's been around
since #66588 (April 28th, 2022). Although it has been controversial to
some extent, I believe that it was a good change in principle for
reasons I will later get into. For now, this is what the PR does:

* All _station_ unrestricted door helpers (e.g. those in maintenance)
have been replaced with a subtype that adds a random 2-3 second delay to
opening the door, using a new "unrestricted latch" feature. **This does
not occur if the user has regular access to that door.**
* The unrestricted side will initiate a do_after and plays a distinct
small hissing sound (because I presume you're disengaging some hydraulic
lever on that side), after which the door will open as players have come
to expect.
* While you're engaging the lever, you will be resistant to pressure
movements as you are presumably holding onto the lever or something. All
other movements (e.g. voluntary, being shoved, etc.) will continue to
function as expected.
* We will statistically tabulate each time someone attempts to use the
unrestricted "lever", and every time one successfully occurs. This is
just for analysis to see player trends as we have lacked this over the
last 3.5 years.

Here's a link to the sound I added:
https://freesound.org/people/Usernameis1337/sounds/632755, the version
in this PR was converted using OGG Vorbis.


https://github.com/user-attachments/assets/4167bda4-63b5-4dc0-a7b2-694a9e3d3201

## Why It's Good For The Game

Back in 2022, I was one of the major proponents for adding such a change
to the game. This is for a few reasons:

* It doesn't really make human sense for a station to have
hallways/spaces that you can enter and then just get completely trapped
in. The station is a deathtrap because of _who_ is on it, not because it
_is_ a death trap. I have always maintained that we should assume that
the station is competently made to give the hijinx a much more jarring
background. To me, maintenance isn't old sections of a station (although
it can have those elements), but vital side pathways in the event of
emergencies, like having extra fire stairs in a building. The doors to
those fire stairs are always unlocked because they need to ensure that
people are able to efflux to save themselves from danger rather than
die.
* It was easily subvertable anyways. You can easily ask the HoP for
maintenance access or AI to let you out of maintenance (although the
latter was a bit harder to articulate). I don't find myself agreeing
with this as much nowadays but I remember the frustration I felt waiting
for minutes for someone to open the door had something occurred for me
to have found myself in maintenance. It's simply not fun and doesn't
make sense for a station to have this.
* I thought that it added a unique element to antagonism. You can't drag
someone in maintenance and then have the whole entire subsection of the
station be your den. It's important for you to secure your base should
you be dragging people in there instead of just always being able to win
via dragging.
* People tend to forget this point, but it actually did cause a lot
_more_ deaths in situations where threats originate outside the
station/in maintenance. It was much easier for the killy-stabby mass
murderers to ingress into main hallways and get to killing faster. This
is why the change felt "equal" in a way.

### Why not remove it outright?

I believe that a lot of balance changes over the last 3.5 years (30000
issues ago!) have been weighting for these interactions, and I think
removing it all cold-turkey like will cause a huge upturn in deadliness
and just not be what players are looking for in the new game loop. To
me, this was a vital step in getting more towards 90-minute rounds, and
I think we would see a drop in that. I also have those above three
reasons that I am still a firm believer in, but I am still interested in
seeing what a different system might entail and how that could play out.
I added stat gathering so after we get 4-6 weeks of data, we can
determine to keep or shelve this feature. I will probably always be on
the "blocking" side of removing it outright unless there's some severe
data that can convince me (which will probably need it's own test-merged
PR, while this is meant to be added into the game right now).

### Why are we changing it?

I think not enough people are dying. I played a few rounds yesterday and
while a decent chunk of people were dying, I saw a few follies in my
original line of thought. Maintenance should be a bit creepier and not
auxiliary hallways (in normal circumstances), I already thought we did a
really good job of that but I noticed that it wasn't as good as memory
served me. I think maintenance should have a little bit more difficulty
to navigate (i.e. if you're being chased down by someone and it's taking
2.5 seconds to open, that would be an excellent heart-pounding tension
moment) and would overall be more interesting than the status quo. It is
a bit sillier to me but some IRL buildings do have to have you hold down
the push bar for a few seconds until it disengages, so this is
agreeable.

I also don't think the unidirectional exit design flow standards are
where they were due to drift in application, so this is also a better
way to uniformly apply it.
## Changelog
🆑
balance: After noticing it was too easy for animals to crawl through
maintenance by abusing the Easy-Exit sensors, Nanotrasen has replaced
all unrestricted door sensors (like in maintenance) with a pull-down
lever that should take around 2-3 seconds to engage. It has been
designed to allow the employee to actuate it despite any pressure
differentials within an area.
balance: The above change does not apply to select doors in the medical
section of the station, which will continue to use the "older"
Ready-Exit system.
sound: In order to ensure that staff in high-traffic areas don't go
bonkers due to this new change, sound dampeners have been installed to
prevent the hydraulics from being heard for super long distances.
However, they skimped out on the quality for the ones in maintenance...
/🆑

FYI Mappers/Tweakers: This PR replaces all station map unres mapping
helpers with the new subtype. You are welcome to replace certain doors
with the old helper (the base type) to get the old behavior as you see
fit, just explain why that behavior is desired in that location.
Otherwise, it would be appreciated if we have this new behavior >95% of
the time.
2025-12-05 21:01:15 -05:00
RoxyandGitHub 9f7dc7c970 [MDB IGNORE] Make /obj/item/stamp abstract, create proper granted stamp subtype (#94139)
## About The Pull Request

There is technically an `/obj/item/stamp/granted` in that one traitor
objective refers to it and tries to override a proc on it thus making it
a valid type, but not really. This changes the base `/obj/item/stamp`
from being the granted stamp to being an abstract type, and creates a
proper subtype for the granted stamp.

## Why It's Good For The Game

Base types being concrete outside of scenarios where its intuitive are
very annoying

## Changelog
🆑
code: makes /obj/item/stamp abstract, creates /obj/item/stamp/granted
/🆑
2025-12-02 16:53:07 -07:00
SyncIt21andGitHub 2424103245 Replacing objects with their mapping directional helpers Part 2 (#94181)
## About The Pull Request
Continuation of #94059. Replaces the following signs with their
directional helpers

- `/obj/structure/sign/warning ->
/obj/structure/sign/warning/directional`
- `/obj/structure/sign/warning/radiation ->
/obj/structure/sign/warning/radiation/directional`
- `/obj/structure/sign/warning/secure_area ->
/obj/structure/sign/warning/secure_area/directional`

Depends on #94076 for diagonal wall mounts

## Changelog
🆑
qol: added mapping directional helper for warning, radiation & secure
area sign allowing them to interact with fire/acid on their mounted turf
qol: adds mapping helper to create diagonally shifted objects
/🆑
2025-12-02 23:46:53 +00:00
SyncIt21andGitHub f7bc204bf7 Replacing objects with their mapping directional helpers Part 1 (#94059)
## About The Pull Request
Improving upon #93662 where i noticed a lot of objects don't have
directional helpers

Replaces the following mapped in objects with their directional
counterpart

- `/obj/structure/sign/nanotrasen ->
/obj/structure/sign/nanotrasen/directional`

less var edits & also more realistic interaction with fire/acid etc if
the turf on which they are placed on is attacked which isn't the case if
they are directly mounted on walls

## Changelog
🆑
qol: adds mapping directional helper for nanotrasen sign & replaces all
var edited instances
/🆑
2025-12-02 23:44:30 +00:00
tontyandGitHub 8c45d4466c [MDB IGNORE] Cleans up AI core structure, un-spaghettis some AI code (#93873)
## About The Pull Request

The AI core structure now fully integrates item/tool interactions and no
longer uses attackby/take_damage overrides. Construction behaviour has
been isolated into its own file.

All handling relating to the AI core's status when shunted has been
turned into signals. For this reason, helper procs for managing core
link state have been made and integrated into the relevant users (APC
shunting, mech takeover). The AI core no longer references the remote AI
mob.

/obj/structure/ai_core/deactivated has been removed from code since it
had no function after refactoring. There was only a single instance of
it being used in a map, which has been replaced with a var edit.

There may be more things I changed, but I'm h
2025-12-02 12:38:51 -06:00
necromanceranneandGitHub ac6c47f601 Several file changes just to make high frequency blade null rods block mechs, mech melee blocking finally implemented (#94089)
## About The Pull Request

High frequency blades, both null rod variant and admeme variant, can
block mech melee attacks. For the former, that is the only thing it can
block. Great if you're fighting a lot of mechs as a chaplain I guess.
And you're also really committed to the bit.

Weapons that were vibro subtypes are now claymore subtypes. The only
difference here is that they now have 30% block instead of 35% AP.

Null rod high frequency blades are now two-handed. This mostly
determines force changes (10 unwielded, 18 wielded), and mech attack
block chances.

Mech melee attacks respect block...assuming the blocking source can even
block the attack in the first place. Currently, the few sources that can
block/avoid mech attacks are;
- high frequency blades
- energy katanas
- Those staff nullrods (its a holy force field, iunno)
- wizard modsuit shield (and it will eat literally every single charge
it has to do that)
- Sleeping Carp evasion (and only at half the possible chance)
- CQC defense mode (themed as dodging the attack, and also halved)
- probably something I overlooked when I implemented OVERWHELMING_ATTACK
originally and have overlooked here as well.
 
Just think 'could this help avoid being hit by a road roller being
dropped on you' and go with your gut as to whether or not it is
appropriate if you spot something in the wild that seemingly can block a
mech.

## Why It's Good For The Game

> High Frequency Blade

I wanted to elevate the meme and that is as deep as this goes. Also I
wanted to make this two-handed, much like the true version.
The only thing it is lacking is the cool attack functionality, but I'll
be damned if I can get that to work in a sensible fashion for a crew
weapon...

> Vibro subtype

A lot less of these than I thought. And most of them seemed more
appropriate as claymore types anyway.

> Mech Block

I seeded this previously by making mech clamps respect block. I've now
come back to fully implement it in order to facilitate MGR memes.

For the most part, mechs should still enjoy being largely unblocked by
most sources, even from things like operative suit shields, and
certainly not from actual shields (which I've stripped the ability to
block the attack from entirely) and melee weapons.

The sources that can block them do so poorly. Or, in the case of the
high frequency blade, very well and that's pretty much the only thing it
IS good at blocking.

## Changelog
🆑
balance: High frequency blades (both null rod and admin versions) are
able to block melee attacks from mechs.
balance: High frequency blade null rods are now two-handed weapons.
balance: Mech melee attacks can be blocked or avoided by a few rare
sources.
/🆑
2025-12-02 01:13:58 -05:00
san7890andGitHub 693d94d930 Delete DM Line counter.exe from tools (#94252)
## About The Pull Request

It was already pretty weird that we were publishing a fully built `.exe`
to everyone regardless without a way to modify it to make it actually
work (it's wildly inaccurate) and we can use stuff like
[tokei](https://github.com/XAMPPRocky/tokei) (very cool btw) now so it's
pretty much useless in the year 2025 and onwards.
2025-12-01 00:53:28 +00:00
shayoki fc809d7687 automappers for spaceruins arent spaceruins theyre automappers 2025-11-30 04:40:41 -06:00
shayoki d3668036f2 spaceruin noops and spaceheater death
my first commit as a maptainer i sure hope this doesn't make things worse
2025-11-30 04:05:44 -06: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
AfevisandGitHub 8aeba5a0ab [MDB Ignore] area/noop map lint (#94158)
safeguards against #94132



for downstreams, i've added a bat script in
tools\mapping_fix_template_noop_areas that'll iterate over all .dmm in a
given folder (set the relative path from the git root in the .bat)

---------

Fixes a bunch of shit getting left in space randomly, as well as flaky
tests.
<img width="1960" height="149"
alt="518075345-f003e38f-21ef-4ead-b233-f3a47d1aadcc"
src="https://github.com/user-attachments/assets/9a807cd8-0304-4737-bd91-da783c3c8bef"
/>
2025-11-28 15:56:58 -07:00
Thunder12345andGitHub ae9183c32c Repaths green "captain" suits to not be real captain clothing (#94014)
## About The Pull Request

Repaths the green captain suit and its skirt version to be costumes
instead of real captain clothing, as this is in line with how they're
used and makes them not have the armour of real captain clothing.

Deleted an unused identical copy of the same suit.

Fixes #93972

## Why It's Good For The Game

These are costumes and it's inconsistent for them to have armour values.

## Changelog
🆑
fix: The captain suit costume (green suit) no longer has the same armour
as real captain outfits.
/🆑
2025-11-26 13:40:41 +11:00
RoxyandGitHub 4d9471ee95 Fix grilled cheese sandwich never burning [MDB IGNORE] (#93957)
## About The Pull Request

`/obj/item/food/sandwich/cheese/grilled` inherited
`/obj/item/food/sandwich/cheese`'s `make_grillable()` definition so the
product of grilling a grilled cheese sandwich was a grilled cheese
sandwich. Repaths grilled cheese to not be a subtype of cheese

## Why It's Good For The Game

grilled cheese sandwiches should burn eventually

## Changelog
🆑
fix: fixed grilled cheese sandwich grilling into grilled cheese sandwich
/🆑
2025-11-17 22:55:38 -07:00
tontyandGitHub 416dea02aa [MDB IGNORE] isolates signpost teleporting into new component /datum/component/houlihan_teleport (#93810)
## About The Pull Request

Isolates signpost teleport code into a component
`/datum/component/houlihan_teleport`, which takes a question argument
and a list of zlevels.
Removes `/obj/structure/no_effect_signpost` and turns existing mapped-in
instances into `/obj/structure/signpost`s
Adds/documents/fixes some attack signals that were added to the element

## Jebediah
<img width="100%" alt="image"
src="https://github.com/user-attachments/assets/b227e5bd-1c93-41b3-b87f-1a559cf81112"
/>


## Changelog

🆑
refactor: Signposts have had their code improved internally. Please make
an issue if a signpost that should teleport you no longer can.
/🆑
2025-11-12 23:09:49 -07:00
Roxy 71faa643bf Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-2025-11-12 2025-11-12 16:44:13 -05:00
e30b7d97ef Add constructable floor lights + mapping subtypes (#93537)
## About The Pull Request
Features:
- Floor lights can be constructed using a small light fixture on the
turf you are standing on
- Floor light construction sprites
- `/burned` subtypes for lights
- Convert `/build` subtypes to `/empty` subtypes with `UpdatePaths`
script

## Why It's Good For The Game
Floor lights can now be constructed in game using the same mechanics as
other lights. The `/burned` and `/empty` subtypes might be useful for
mapping.

## Changelog
🆑
add: Add constructable floor lights by using a small light fixture on
the floor. They are constructed the same way as other lights.
qol: Add `/burned` subtype to `/obj/machinery/light` for mapping
shenanigans
image: Add floor light construction sprites
map: Converted the `/built` subtype for `/obj/machinery/light` to be
`/empty` and added an UpdatePaths script.
/🆑

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
2025-11-10 21:17:51 +13:00
95d70f5d9b feat: removes varedited icon states from turret controls on 27(!!) maps (#93808)
## About The Pull Request

Removes the varedited "icon_state" from `turretid` objects on station
and away maps. Continues
https://github.com/tgstation/tgstation/pull/93728, closes #93766

## Why It's Good For The Game

Those icon states don't exist anymore, making the ingame object
invisible. My PR fixes that

## Changelog

🆑
fix: Turret controls are visible again
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2025-11-07 20:49:09 +01: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
tontyandGitHub 14d2514aa9 [MDB IGNORE] Refactors away /area/station/ai_monitored and its subtypes (with bonus neat repathing) (#93704)
## About The Pull Request

/area/station/ai_monitored's behaviour was isolated into a component,
`/datum/component/monitored_area`, which itself uses
`/datum/motion_group`s to query cameras. Functionally, it (should) work
identically to the old implementation. I'm sure that behaviour could
have been further cleaned up, camera code is quite dreadful, but it's
better to focus on isolating the behaviour first. Baby steps.

Areas that want to opt into monitoring can set `var/motion_monitored` to
TRUE (this approach was taken to make subtyping easier).

The following non-AI areas were changed:
- /area/station/ai_monitored/security/armory ->
/area/station/security/armory
- /area/station/ai_monitored/command/nuke_storage ->
/area/station/command/vault
- /area/station/ai_monitored/command/storage/eva ->
/area/station/command/eva

All other `/area/station/ai_monitored` subtypes were repathed into
`/area/station/ai` and cleaned up in a way that I thought made logical
sense. It is **much** more readable now. For example:

- /area/station/ai_monitored/turret_protected/aisat ->
/area/station/ai/satellite
- /area/station/ai_monitored/command/storage/satellite ->
/area/station/ai/satellite/maintenance/storage
- /area/station/ai_monitored/turret_protected/ai ->
/area/station/ai/satellite/chamber
2025-11-03 11:27:14 -06:00
BloopandGitHub f90e9cd306 Removes jetback deletion from UpdatePaths (#93744)
## About The Pull Request

This was an error from
https://github.com/tgstation/tgstation/pull/93676, they are meant to be
replaced (which happens in the line below the deletion one).
2025-11-02 20:31:05 -05:00
Aliceee2chandGitHub 1513f779ad Repaths oxygen jetpacks and "removes" fake empty jetpack (#93676)
## About The Pull Request

removes oxygen jetpack subtype and makes empty jetpack actual oxygen

## Why It's Good For The Game

because our empty jetpack wasnt actually empty and we infact had two
oxygen jetpacks?

## Changelog

N/A
2025-11-01 13:40:04 +01:00
SyncIt21andGitHub 002aef897f [MDB Ignore] Removes circuit board recipe for vend a tray (#93517)
## About The Pull Request
- Closes #93497

'Vend a trays' are not subtypes of machines but structures i.e. their
path is `/obj/structure/displaycase/forsale`. You can't create
structures with machine circuit boards so they runtime like hell

You can still create an Vend a tray by
- Creating a "display case chassis" with 5 wood
- Inserting a card reader in it

It's just this broken way of designing the tray has to go

## Changelog
🆑
del: Removes circuit board recipe for vend a tray. Use 5 wood to create
a "display case chassis" and insert a card reader to create the tray
instead
/🆑
2025-10-29 23:19:02 +01:00
Roxy e28e9fbdba Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-23-10-2025 2025-10-23 17:38:23 -04:00
CornkaandGitHub 249f4400a4 Small QoL for tools/UpdatePaths (#93482)
## About The Pull Request

Added the ability to drag and drop multiple files with scripts onto
`Update Paths.bat` instead of just one.

<img width="979" height="275" alt="изображение"
src="https://github.com/user-attachments/assets/986a3ecc-803a-487a-80c6-54932ac94437"
/>

## Why It's Good For The Game

It is faster and easier to use!
## Changelog
Not needed?
2025-10-18 19:45:29 +02:00
RoxyandGitHub 436f766c3b Modular vending machine code cleanup (#4791)
## About The Pull Request

This is a general clean up of some of our modular vending machine code,
highlights are:
- Merges the skyrat `modular_vending` folder into our own
- Eliminates the `skyrat_products`, `skyrat_product_categories`,
`skyrat_contraband`, and `skyrat_premium` vars, merge their stuff into
the bubber equivalents
- Changes the handling for modular autodrobe additions to just add them
to the global list because the autodrobe uses global lists for some
reason, this fixes #4758
- Change a `+=` to `|=` to prevent duplicate entries in vending machines
causing both to appear out of stock
- Fix a duplicate recolor button in the vending machine TGUI

## Why It's Good For The Game

Less duplicate code and bugs, the autodrobe one in particular was funny
because what was happening is the category lists of items were global
lists, and the modular code for adding our own stuff to categories just
`+=` adds it, and that runs every time an autodrobe is created on the
map, so each time the same stuff was being added to the same list and
bloating it to several hundred

## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>

<img width="425" height="559" alt="image"
src="https://github.com/user-attachments/assets/e9ab16ed-3c7c-4061-90d5-dc27a7d8a40e"
/>

</details>

## Changelog
🆑
fix: fixed the autodrobe being mostly out of stock and broken
fix: fixed certain vending machines having duplicate items that broke
fix: fixed a bug with the recolor button in vending machines appearing
twice
code: merged modular skyrat vending machine code into our folder
/🆑
2025-10-08 14:28:49 -04:00
xPokee 8aa39b75f0 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-10-04 05:28:09 -04:00
John WillardandGitHub e9e3df89d9 Latejoiners are buckled in again. (#93250)
## About The Pull Request

Not reported yet but I noticed this and immediately knew I broke it, my
bad.
Fixes latejoiners not being buckled into their chairs & Hangover station
trait effects, also merges the two hangover landmarks into one cause i
dont see why they had to be two, I put it in the same updatepaths as the
PR this is a fix to.

## Why It's Good For The Game

Bug fixes

## Changelog

🆑
fix: Latejoiners are buckled in to their chairs & Hangover station trait
now kicks their effects in again.
/🆑
2025-10-04 04:43:06 +02:00
xPokee 5e629dff04 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-10-03 07:05:54 -04:00
KrysonismandGitHub 075de00420 Chekov's Canister! Adds missing resupply canisters, makes them constructable & spawn in maint,. (#93028)
## About The Pull Request

This is was created because I found several rare and exciting canisters
in game and then finding out there is no way to actually construct the
vendor they belong to!...

<img width="768" height="385" alt="image"
src="https://github.com/user-attachments/assets/70261cea-daaf-41df-a212-21cef6d6bd0c"
/>

### This PR:

* Makes all noteable vendors constructable, if you have the canister. 
* Adds canisters to syndismokes, syndiechem, liberation station,
magivend, shambler's juice and bombuddy
* Replaces the old tptally random canisters spawner, with a variety of
spawners weighted for power and split according to different themes.
* Adds the new main canister spawner to maint. 

### Spawner weights

The random canister spawner from maintenance has a:

* **93,5%** chance to spawn a common station vendor refill(with weights
for wardrobes being somewhat reduced.)
* **6%** chance to spawn a rare and special vendor refill.
* **0.5%** chance to spawn a oddity level., super powerful vendor
refill.

## Why It's Good For The Game

One must never place a filled canister in maint if it isn't going to be
constructed It's wrong to make promises you don't mean to keep.

## Changelog

🆑
add: Nearly all notable vendors are now constructable if you have the
canister.
add Added refill canisters for syndiesmokes, liberation station,
magivend, bombuddy 3000, shambler's juice and syndichem.
add: Random vending refill canisters now have a chance to spawn in
maint.
image: Robco Toolmaker and Centdrobe canisters have new sprites.
/🆑
2025-10-02 20:12:46 +02:00
John WillardandGitHub fd752f043d Easy multi-z support for alarm console (+spawn changes) (#93198)
## About The Pull Request

Station alarm consoles now register to all Station Z levels+Areas if
they were created on a station Z level (this doesn't include mining, but
station ones will see mining areas), otherwise will be a "local" console
to that Z level only.

Mostly the same applies for Cyborg/AI, but if they were built on a
non-station Z level then they have their Z level added on top of Station
Z levels, so example Nukie saboteur borgs will see alarms they might
need, while a Golem/Oldstation AI will also be able to see their own
alarms.

Because of how alarms and spawning in worked, Cyborgs/AIs had CentCom's
Z level as something it would detect, so we simply create the mob at the
spawn location rather than on the title screen during Initialization,
fixing that issue as well.

## Why It's Good For The Game

Adds easy multi-z support for station alarms and removes the previous
bandaid of having to deconstruct your board and multitool it or map in
every single station alarm console to allow station alerts (which is
quite silly) which was done in
https://github.com/tgstation/tgstation/pull/88343.

Closes https://github.com/tgstation/tgstation/issues/61592
Closes https://github.com/tgstation/tgstation/issues/83042
Closes https://github.com/tgstation/tgstation/issues/69314

I find this solution better since it catches pretty much all use cases
without the need for special subtypes and needing players to actually
know the difference between these things.

## Changelog

🆑
fix: Cyborgs and AIs will now see alerts of the whole station rather
than solely the Z level they were spawned on.
fix: Cyborgs and AIs will no longer get alerts about Thunderdome.
/🆑
2025-10-02 18:12:57 +02:00
d87637e6ab Adjusts easing in places where EASE_IN/OUT was applied without a curve. (#92976)
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2025-09-27 17:54:45 +02:00
MrMelbertandGitHub f20c61f670 [MDB Ignore] Deletes the bluespace gas vendor (#93137)
## About The Pull Request

Deletes the Bluespace Gas Vendor and accompanying Bluespace Gas Sender

## Why It's Good For The Game

These wall mounts were added as ways to encourage Atmos Techs to
participate in the economy and crew at large. Unfortunately, it's missed
the mark and is unused in 99% of all rounds*.

**I have seen more atmos techs use the bluespace gas sender for exploits
than for its intended use.*

It has been noted that
1. Atmos doesn't need to sell gas to the crew to make money. They can
export gas to cargo to make more money.
2. The crew doesn't really care about gases. They will rarely go out of
their way to acquire them, even if free.
3. Most importantly, most atmos players **like to give out gas for
free** - it's mass producible and seeing people utilize their creations
tend to be its own reward.
4. Even for the atmos techs that want to charge for their products (to
create conflict or whatnot), *you could easily do that by hand via
pre-filling tanks**.

***I have seen more atmos techs make money off of selling pre-filled
tanks than by using the vendor.*

Ultimately, this machine serves no purpose besides bloating wall space
and existing as an atmos exploit vector.

## Changelog

🆑 Melbert
del: Bluespace Gas Vendors and the accompanying Bluespace Gas Sender
have been removed
/🆑
2025-09-26 20:27:30 +02:00
xPokee cce0ebbd28 This should fix the rest. 2025-09-24 14:48:37 -04:00
xPokee b308ee9d78 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-09-24 10:13:01 -04:00
fe2d933930 [NO GBP] deletes a stray updatepaths file i forgot about (#93052)
Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
2025-09-21 18:09:01 -04:00
Aliceee2chandGitHub 8cb8941485 [NO GBP] Borgening fixes (#93026)
## About The Pull Request

closes #93025 and closes #93013
also gives borg thermals right icon, i acidentally used regular meson
icon before, and kills borg goggles items (forgot to do that)

## Why It's Good For The Game

because bugs smell

## Changelog

🆑
fix: Fixed meson and thermal view action for cyborgs
fix: You can't eject infinite toner from cyborg decal painter anymore.
del: Removed now unused cyborg meson and thermal goggles items.

/🆑
2025-09-21 14:07:49 -04:00
MrMelbertandGitHub 750ca9d2ec Two as anything greps (and some other cleanup) (#92974) 2025-09-20 13:44:28 -04:00
ea06f858c8 repaths lava lattices to lava catwalks (#92994)
Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
2025-09-20 09:18:28 -04:00
c0f8e7bb5c Multiload Second Pass (ft. Speedloaders Will Be Real In 2025) (#92854)
## About The Pull Request
Gets, yet again, more granular with multiload capabilities, by
introducing `AMMO_BOX_MULTILOAD_OUT_LOADED`; ammo boxes flagged with
this can speed-load ammo boxes that are currently inside another gun,
like revolver cylinders or internal magazines.

To accomodate for this, the previous flag that covered this,
`AMMO_BOX_MULTILOAD_OUT` can no longer speedload into currently loaded
magazines (e.g. internal magazines, including revolver cylinders).

Also implements a base type for speedloaders, moving .38 and .357
speedloaders along with .310 stripper clips to this type, instead of
being ammo boxes. Also features an UpdatePaths script for mappers, which
is why there's so many files touched - repathing is a pain.

Also also adds fancy types for ammo boxes, magazines, and speedloaders,
which isn't particularly player-facing.

Also also also makes the lionhunter ammo strip for the lionhunter rifle
visually three rounds only instead of being perpetually half-full (or
half-empty, depending on your pessimism).

## Why It's Good For The Game

The hypothetical case of "ammo box that holds shotgun ammo" should
probably... not... teleport as much of its ammo as possible into a
tube-fed shotgun, but should probably still be okay at reloading
magazines that actually go into shotguns. Or something.

More relevant, reloading BR-38 magazines with speedloaders, while funny,
probably also shouldn't be teleporting in six fresh rounds.

## Changelog

🆑
balance: General ammo boxes (not speedloaders, not stripper clips) can
no longer multiload into currently loaded magazines (revolver cylinders,
internal magazines).
balance: Speedloaders are now a separate type from ammo boxes, and can
only multiload into currently loaded magazines e.g. revolver cylinders.
qol: Ammo boxes, magazines, and speedloaders now have fancier types for
spawning in by admins.
sprite: Lionhunter ammo clips are visually smaller now.
/🆑

---------

Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
2025-09-20 08:10:35 +10:00
BloopandGitHub 2075a27dc6 Makes the regex for the 'fix' label detection a bit more lenient (#93008)
## About The Pull Request

Currently, for detecting issue-closing fixes, the labeler regex matches
strictly things like:

`Fixes #some_number_here`

but sometimes people will paste the full issues url, which github
renders as the issue number. Problem is the raw text still has the url,
so it will not match when passed through the rest api.

This PR just makes it a bit less restrictive, so that something like
this:

``Fixes https://github.com/tgstation/tgstation/issues/some_number_here`

will correctly get registered as a fix.

## Why It's Good For The Game

More PRs getting autolabeled more correctly

## Changelog

Not player-facing
2025-09-17 20:43:39 -07:00