2313 Commits

Author SHA1 Message Date
gavla 1e26a36b89 Ci map fixes (#5293)
## About The Pull Request

This should fix new PRs that are failing unit tests due to irrelevant
mapping issues from a space ruin and weirdly placed firelock.
2026-03-01 04:52:56 -06:00
waykay 45d7265c59 Ports SPLURT's Podpeople Seedvault (#5282)
## About The Pull Request

from
[SPLURT-TG#634](https://github.com/SPLURT-Station/S.P.L.U.R.T-tg/pull/634)
and
[SPLURT-TG#650](https://github.com/SPLURT-Station/S.P.L.U.R.T-tg/pull/650)

## Why It's Good For The Game

seedvault sucked even after my very old pr adding stuff to it and
thankfully this kind individual from another server who absolutely isn't
just my shameful alt account made it look much nicer

## Changelog

🆑
add: Ported New Seedvault
/🆑
2026-02-26 21:30:34 -06:00
Yobrocharlie 5597d3556b fix: Roundstart atmos dif's (#5263)
Just fixes some tiles where there is a difference in atmos roundstart
which causes lag.

🆑
fix: fixes some roundstart atmos differences with lizard gas and the
persistence
/🆑

Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
Co-authored-by: gavla <96078776+shayoki@users.noreply.github.com>
2026-02-24 09:11:18 -06:00
axietheaxolotl 51ad6527c7 stabs blusec in the jugular and takes their wallet (virosec - security resprite and reset) (#5159)
## About The Pull Request

I'm working on it. the poll won so I am going ahead w/ this. 

<img width="1436" height="286" alt="image"
src="https://github.com/user-attachments/assets/255eda79-eb2c-4e36-9ad8-53c91c3b245e"
/>

<img width="336" height="183" alt="image"
src="https://github.com/user-attachments/assets/f92f5c29-c4e0-46da-889e-88acc903d253"
/>

stuff left to do

- [x] finish hos outfits
- [x] finish warden outfits
- [x] finish obj icons
- [ ] bugtest

this is a total overhaul of security, essentially resetting everything
to a new standard which can be worked off of. this is also a deletion of
blusec, an antiquated, unpopular idea that has long since proven to both
not be liked, and not work.

### this pr will not be the be-all, end-all. stuff will likely be
tweaked, added, removed, changed, or resprited in the coming days,
weeks, and months. due to just how much stuff security has.

## Why It's Good For The Game

will write a markup for this specific pr eventually but I will just be
posting the discord justification I gave

<img width="427" height="313" alt="image"
src="https://github.com/user-attachments/assets/e033ff0c-44f2-4cf6-ad9b-4b2d124cf21e"
/>
<img width="419" height="506" alt="image"
src="https://github.com/user-attachments/assets/84e86f18-72d2-4bef-a84b-1b53067fe41d"
/>

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

<img width="967" height="1046" alt="image"
src="https://github.com/user-attachments/assets/feaf9395-88d3-4999-a02f-e89cae25cc67"
/>
<img width="602" height="728" alt="image"
src="https://github.com/user-attachments/assets/81daae2f-f18e-41a9-a225-48dbbaad697f"
/>


</details>

## Changelog
🆑 axietheaxolotl / viro
del: blusec
add: redsec
/🆑
2026-02-18 16:38:21 +01: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
shayoki ff168423fd reducing mapping runtimes 2 2025-12-13 20:21:48 -06:00
SyncIt21 f640a0e972 Enhances algorithm for finding an atom mount (#94076)
## About The Pull Request
Depends on #94064 for the unit test but offers a better method for
finding an atom to mount on
- Finding a mount now takes into consideration the objects pixel x & y
offsets meaning diagonal mounting is now supported. Gives great
flexibility for mappers
- If you don't want to use pixel offsets but default back to using the
objects direction that behaviour is still preserved. Useful if your
object uses directional icon states(lights & cameras for now) AND don't
use offsets
- If no direction could be specified then as the last resort it defaults
back to the objects local turf for mounting

## Changelog
🆑
fix: all mounted objects on tables, fences, windows & walls should fall
of correctly when the atom it is placed on is destroyed
fix: security telescreen now falls off when their mounted wall is
destroyed
fix: defib wall mount falls off when their mounted wall is destroyed
fix: floor lights are mounted to the ground/catwalk/tram floor they are
sitting on meaning destroying it will destroy the light
fix: wall mounted plaques now fall off when their mounted wall is
destroyed
/🆑
2025-12-12 12:23:22 -05:00
SyncIt21 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
RikuTheKiller be1f231869 Lock R&D console boards by default (#94114)
## About The Pull Request

This PR makes all R&D console boards that are either printed or sourced
from tech storage start out locked. They can be unlocked by swiping them
with an ID that has research access.

R&D consoles can also be unlocked with an emag, but doing so will break
their comms circuit as well, making all researched nodes broadcast over
public comms. You can still emag the console itself after it's been
constructed without breaking it in any way, while also silencing
announcements instead. (that's definitely a noob trap, but it's out of
scope for this PR)

The reason why the tech storage board is locked as well is because the
goal of this PR is to stop engineers from making R&D consoles, and
engineers have access to tech storage. Leaving the board unlocked and
moving it to secure tech storage would make engineers break in there
every shift.

The changelog basically has a FAQ for "Okay, so what do I do instead?",
because I know people will be confused about what route they're intended
to take when science closes their desk shutters for the umpteenth time
this week.
## Why It's Good For The Game

Engineering has a habit of making an R&D console every round to bypass
having to ask science or a head of staff to research things. Locking the
consoles at least makes engineers consider asking science to do
science's job.

Note that this doesn't solve the issue entirely, it just removes the
easiest and most convenient way of bypassing science. Engineers can
still break into R&D extremely easily using their wire knowledge, and do
so regularly.

More importantly though, this might shine some light on the fact that
heads of department like the CE have remote access to the research
network via their PDAs. This means engineers can ask the CE to research
things for them.

Asking people with access to the research network to research things is
a lot better for roleplay and immersion than having engineering
construct R&D consoles every shift.

## Changelog
🆑
balance: R&D console boards sourced from printing or tech storage are
now locked by default. It's recommended to ask your respective head of
department or the science department to complete research for you. Heads
of department can remotely access the research network using their PDAs.
/🆑
2025-12-05 19:12:22 -05:00
Bloop f71c00a88b Runs UpdatePaths to condense some map keys (#94312)
## About The Pull Request

Tin. I just ran UpdatePaths, which automatically does this. The recent
script to root out all the nearspace flaky test causing issues made some
changes that were causing every UpdatePaths run to create diffs
downstream.

## Why It's Good For The Game

Helps with map parity for downstreams.

## Changelog

Nothing player-facing
2025-12-05 11:23:03 -07:00
Roxy 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
SyncIt21 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
SyncIt21 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
uaioy 77455b86a1 lavaland ruin ash storm fix (#94256)
## About The Pull Request
replaces area/lavaland/surface with area/lavaland/surface/outdoors in
crash site ruin
## Why It's Good For The Game
this sucks
<img width="869" height="613" alt="image"
src="https://github.com/user-attachments/assets/033c7600-b1a4-46d1-815c-eb585865054d"
/>

## Changelog
🆑
fix: lavaland crash site ruin should properly be affected by ash storm
now
/🆑
2025-12-02 23:10:46 +00:00
tonty 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
SyncIt21 39a196824a Enhances algorithm for finding an atom mount (#94076)
## About The Pull Request
Depends on #94064 for the unit test but offers a better method for
finding an atom to mount on
- Finding a mount now takes into consideration the objects pixel x & y
offsets meaning diagonal mounting is now supported. Gives great
flexibility for mappers
- If you don't want to use pixel offsets but default back to using the
objects direction that behaviour is still preserved. Useful if your
object uses directional icon states(lights & cameras for now) AND don't
use offsets
- If no direction could be specified then as the last resort it defaults
back to the objects local turf for mounting

## Changelog
🆑
fix: all mounted objects on tables, fences, windows & walls should fall
of correctly when the atom it is placed on is destroyed
fix: security telescreen now falls off when their mounted wall is
destroyed
fix: defib wall mount falls off when their mounted wall is destroyed
fix: floor lights are mounted to the ground/catwalk/tram floor they are
sitting on meaning destroying it will destroy the light
fix: wall mounted plaques now fall off when their mounted wall is
destroyed
/🆑
2025-12-01 00:50:16 +01: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 fc2c3d826e Reset Maps to TGstation 2025-11-29 22:51:11 -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
Afevis 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
san7890 8400284868 Illusion Basic Mob Refactor (#93860)
## About The Pull Request

Another relatively simple simple_mob to basic mob refactor. I wish more
people were doing these since I was saving these for people to get their
feet wet, but I think it's better to pivot away from that and just have
only the gargantuan ones outstanding (since those ones are pretty much
their own framework).

I also delayed this one because we didn't actually have the AI framework
available 1-2 years ago for this to be seamless and easy, but now we
have easy fleeing functionality so that's an easy plug and play.

This rework contains the following:

* General code readability changes and standardization (i.e. removing
single letter vars, `SECONDS` defines)
* Moves more stuff to subtypes instead of having it be on parent
* Removes the necessity for define "attack modes", that's on subtypes
now
* Fixed instances where args weren't defined. I think cult apparitions
via the mirror shield have been much weaker than what they were
originally intended to, so I changed it to what I thought was correct. I
can change the health to be down but it really doesn't make sense as a
lot of the args were not standardized (ideally we would have more
subtypes). I can change this back to the original arg order, let me
know.
* Clones now replicate on damage taken as well as when they attack. I
wanted to tweak this around more but this was originally added since I
confused myself, but it gave a more realistic mitotic effect I liked
more for the replicating clones.
## Why It's Good For The Game

If we want more flamboyant mirage escapes or sneaky clone AI behavior,
it is now far easier to implement. It's very simplistic at the moment
but is pretty much fully featured and representative of the simple mob
version of illusions. They were already laden to the item/mob that was
spawning them in anyways, so this is really the most simple stuff we got
going on.

I tested this with the mirage grenade, reactive stealth armor, and the
mirror shield. I have no clue how the heretic stuff works but it appears
to be a really simple framework plug-and-play so no real worries there I
think.
## Changelog
🆑
refactor: The Cult of Nar'Sie realized that they were installing the
mirrors on their mirror shields the wrong way around, thus altering the
makeup of their mirror clones health, damage, and re-replicability.
refactor: In response to the recent updates in clone magic, Nanotrasen's
Stealth Reactive Armor should now generate more convincing clones.
/🆑
2025-11-26 13:02:00 +11:00
EEASAS a567cbf640 Fixes Icemoon Comms Agent's secret documents (#94065)
## About The Pull Request
Closes #88539 (This issue has been open for almost an entire fucking
year now holy moly dude)
This replaces the documents in the comms agent room(s) on Icebox.
It replaces `/obj/item/paperwork` (generic paperwork, no importance at
all) with `/obj/item/folder/syndicate/mining` which is ACTUALLY secret.
It also makes the traitor objective of stealing any secret documents
easier. These documents are also found on the Lavaland equivalent of the
comms agent ruin.
## Why It's Good For The Game

Mmmm fixes... More gameplay...
## Changelog
🆑
fix: Fixes Icebox's comms agent ruin having generic documents, not the
secret ones
/🆑
2025-11-22 23:11:05 +01:00
Leland Kemble 97164a090e Turns some instances of ", this" into ". This" (#94043) 2025-11-21 17:33:19 +01:00
necromanceranne d76d2f5438 Laser Gun Update: Deep Lore, Gun Variety, Pew Pew (#93520)
## About The Pull Request

Updates the laser gun into four proper subtypes: Standard, Pistol, Rifle
and Carbine.

<img width="229" height="210" alt="image"
src="https://github.com/user-attachments/assets/12c03076-8ebf-4d87-8c98-6a8cce6821db"
/>

Current sprites are pending a palette change.

**Standard:** Functions as you would expect. Same as ever.

**Pistol**: Lower charge, 20 force, normal sized, recharges faster.

**Carbine**: 15 force, 26 mag, two round burst. Projectiles flight
slightly faster. Cannot dual-wield.

**Rifle**: 20 force. 40 mag. Two round burst. EMP resistant (not
immune). Projectiles fly slightly faster. Cannot dual-wield (not that
you need to).

All but the rifle can be sourced from cargo. You can also buy the sovl
version of the laser gun if you're especially nostalgic.

### Armory Changes

The Armory now can potentially spawn either pistols, carbines or
standard. The weighting leans closer to spawning carbines and standard
as opposed to pistols.

### Lore Dump

The laser line of weapons now all have lore. That rich, deep lore that
every game needs and is totally not important at all to the meat and
potatoes of the game. I'm paid by the hour ($0.00)

### Code Tidying

Lasers are old and a total mess code-wise so we've tidied up while we're
here.

## Why It's Good For The Game

Variety is the spice of life and also some of these weapons could have
used a face lift. Especially the laser carbine. Both functionaltiy wise
and appearance wise.

A bit of randomness in the armory means some rounds might have unique
outcomes compared to others. Sometimes, items in cargo don't see
particularly much use, so peppering in a few random potential deviations
can maybe nudge people to utilize variant gear on future rounds.

I'm obsessed with writing too much information. I blame Hatterhat.

## Changelog
🆑
add: Three variants of the laser gun; Carbine (replacing the existing
one), Pistol and Rifle! Find it (possibly) in your armory today!
balance: The armory laser guns might be different variants of the laser
gun, rather than always being the standard. The standard is the same as
ever, even if it looks different.
add: If you care, the sovl version is available as a goodie. And in the
hands of pirates...
spellcheck: Lore! LORE FOR LASER GUNS! LOOOORE! Examine laser guns
closely and you might learn more about them.
balance: The new set of laser guns come with brand new sprites.
/🆑

---------

Co-authored-by: StaringGasMask <62149527+Exester509@users.noreply.github.com>
2025-11-20 22:21:16 -05:00
SyncIt21 81427cd5cf Unit tests, refactor & realignment for map loaded wall mounts (#93662)
## About The Pull Request
This 1st has to be PR'd so the integration tests can point out all
wallmounts that could not find a support structure to mount on. I then
will do many map edits to align them onto the closest atom

Yes we no longer use wall mount but atom mounted component. All objects
that are mounted on windows/tables & fences now also fall off when
destroyed

It'll probably be a WHILE before I can fix all wall mounts. Long day.
Expect me to misalign many stuff to fix failing CI so make sure to
provide suggestions when possible

Improved wallmount code overall
- Fixes #93793


## Changelog
🆑
fix: fixes all incorrectly maploded wall mounts that aren't actually
hanging on any support structure
fix: objects mounted on tables, windows & fences also fall off now when
destoryed
qol: lights can be mounted on windows
qol: cameras can be mounted on windows
qol: buttons can be mounted on tables
refactor: improved how wall mounts interact with objects as a whole
report bugs on github
/🆑
2025-11-18 22:37:12 -07:00
tonty 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 5e653aa3c1 93808_turret_control_varedited_iconstate 2025-11-12 17:40:39 -05:00
Roxy 021ce82847 93537_replace_built_light 2025-11-12 17:38:55 -05: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
Tim 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
mcbalaam 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 6a6609d4f4 Repaths missed this variable 2025-11-06 00:38:56 -05:00
Roxy 8c08b36bd9 Fixes for 1513f779ad 2025-11-06 00:08:59 -05: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
Aliceee2ch 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
Capsandi 6fb29edbd5 Charlie Station ghostroles notify ghosts when taken (#93646)
OOPS i forgot about this branch for like a month
## About The Pull Request

When someone takes one of those cryopod ghostroles a notification goes
out to observers advertising the ability to join up.
What better way to convince salty observers to commit to the bit than to
show them you've already done so?

## Why It's Good For The Game
Charlie station is great with friends, and as one of our better ghost
roles the game would benefit from turning heads when someone joins a
session.
## Changelog

🆑
qol: Charlie station ghostroles call on other observers to join in the
fun when taken.
/🆑
2025-10-30 00:24:33 +01:00
SyncIt21 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
Fghj240 b64bfc3290 Syndicate bioweapons base touch up (#93572)
## About The Pull Request

This PR edits the syndicate bioweapons base lavaland ruin to make things
easier on the comms agents and scientists living there,

It now sports two wall mounted deforest thingies, one in the medbay and
one outside the chemistry lab. 15 silver bars have also been added to
the chemistry lab because you need silver to make certain chems and
before then the only source of silver was taking apart the surgery bed
in the medbay.

Finally, the kitchen has had a big upgrade. The water tank and beer keg
were removed for space because there is already a water tank in the
janitors closet, the base has infinite water from a chemical
synthesizer, and the base has infinite beer from the booze dispenser.
One of the freezers was switched out for a meat freezer so it now
contains slightly less flour, rice, and sugar and instead contains 4
pieces of monkey meat along with the addition of a food processor and
range. Not having a range meant that the flour, rice, and sugar were
basically cosmetic and the only thing you could cook was... microwaved
eggs.

## Why It's Good For The Game

Wall mounted healer thingies are nice if you're in the base solo, which
is pretty often because it's a ghost role. They aren't very strong so
they won't powercreep heal mixes from the chemistry lab.
15 silver is there so you can actually make chems because mining would
involve you leaving the base (which is a big no no) and crossing the
moat of lava that surrounds it. I went with 15 because there is 15
plasma on the same table next to the grinder.
Finally, the kitchen one is self explanatory. You can barely cook with
the current kitchen.

<img width="267" height="326" alt="image"
src="https://github.com/user-attachments/assets/ac5e11db-70b3-4dd2-ad2b-bb7c430a7339"
/>

The old kitchen (I don't have an ingame screenshot)

<img width="290" height="388" alt="Screenshot 2025-10-21 180009"
src="https://github.com/user-attachments/assets/c7155cd3-9a7e-4482-8b33-cfa1c2af390e"
/>


The new kitchen

## Changelog

🆑
map: Added two DeForest first aid stations to the syndicate bioweapons
base
map: Added silver bars to the syndicate bioweapons base for grinding
map: Added meat and a food processor to the syndicate bioweapons base
kitchen
map: The syndicate bioweapons base kitchen now contains a range
map: The syndicate bioweapons base kitchen contains less flour, rice,
and sugar
/🆑

Co-authored-by: Fghj240 <fakeemail@notrealemail.com>
2025-10-29 01:00:22 +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
Roxy 98335ef724 Fix white ship sometimes overlapping other ruins (#93491)
## About The Pull Request

Moves the docking port in the `whiteshipdock.dmm` ruin closer to the top
center instead of the bottom left where it currently is, fixes the
`width` being off by one, fixes `dwith` and `dheight` being wrong.

What happened here is `dwidth` and `dheight` are supposed to be counted
from the top right instead of the bottom left here, so while the docking
port was placed in the bottom left, the code said it was in the top
right and so no runtimes were thrown when loading a shuttle that
actually didn't fit. But most of the white ship templates _didn't_ fit,
meaning they'd jut outside the boundaries of the ruin, and if another
ruin was placed next to it it'd overwrite parts of them.

I tested all of the white ship templates with these new values and they
all fit well.

## Why It's Good For The Game

<img width="1262" height="997" alt="image"
src="https://github.com/user-attachments/assets/509feef8-4ff9-4483-ae92-6886f4592e54"
/>
Bad!

## Changelog
🆑
fix: fixed white ship sometimes loading partially inside other ruins
/🆑
2025-10-18 17:37:52 +02:00
Fghj240 99ab268ab0 Icemoon listening post kitchen gets a knife and some more ingredients (#93480)
## About The Pull Request

I think I finally got making new branches down so bits of other PRs
don't slip into this one? Anyways, this is a small change to make
cooking as a comms agent on ice box easier.

## Why It's Good For The Game

I don't think comms agents are supposed to be chefs, but holy shit is it
hard to cook without something like a knife. I mean you have the
ingredients to make cheese, but you can't even slice it. Not having
sugar also locks you out of a ton of foods. After this change you're
still missing things like meat, a food processor, most vegetables, and a
dehydrator, but you can at least make something to hold you over during
long shifts.

## Changelog

🆑
add: Added a knife, sugar, and a carrot to the icemoon listening post
/🆑

Co-authored-by: Fghj240 <fakeemail@notrealemail.com>
2025-10-17 20:47:39 +02:00
Roxy 0752e590fd Fix some missed repaths (#4819)
## About The Pull Request

These speedloaders were repathed in a previous upstream, but because we
had subtypes of the old paths that weren't updated during the upstream
pull, using the parent type paths wouldn't cause errors, it'd just fail
silently.
## Why It's Good For The Game

Fix

## Proof Of Testing

No
2025-10-16 15:00:35 -04:00
Roxy 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
ArcaneMusic f74b725961 Ore vent sizes are now divided up based on their distance to the mining base (#92943) 2025-10-03 18:07:52 +02:00
xPokee 5e629dff04 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-10-03 07:05:54 -04:00
Krysonism 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
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