Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The Ubuntu 20.04 Actions runner image will begin deprecation on 2025-02-01 and will be fully unsupported by 2025-04-01 #11101

Open
3 of 14 tasks
gdryke opened this issue Dec 5, 2024 · 19 comments

Comments

@gdryke
Copy link

gdryke commented Dec 5, 2024

Breaking changes

We will soon start the deprecation process for Ubuntu 20.04. While the image is being deprecated, you may experience longer queue times during peak usage hours. Deprecation will begin on 2025-02-01 and the image will be fully unsupported by 2025-04-01.

To raise awareness of the upcoming removal, we will temporarily fail jobs using Ubuntu 20.04. Builds that are scheduled to run during the brownout periods will fail. The brownouts are scheduled for the following dates and times:

GitHub Actions\Azure DevOps::

  • March 4 14:00 UTC – 22:00 UTC
  • March 11 13:00 UTC – 21:00 UTC
  • March 18 13:00 UTC – 21:00 UTC
  • March 25 13:00 UTC – 21:00 UTC

Target date

2025-04-01

The motivation for the changes

We maintain the latest two stable versions of any given OS version. Ubuntu 24.04 is going GA on 2025-02-01 so we start deprecating the oldest image at that time.

Possible impact

Workflows using the ubuntu-20.04 image label should be updated to ubuntu-latest, ubuntu-22.04, ubuntu-24.04 .

Platforms affected

  • Azure DevOps
  • GitHub Actions

Runner images affected

  • Ubuntu 20.04
  • Ubuntu 22.04
  • Ubuntu 24.04
  • macOS 12
  • macOS 13
  • macOS 13 Arm64
  • macOS 14
  • macOS 14 Arm64
  • macOS 15
  • macOS 15 Arm64
  • Windows Server 2019
  • Windows Server 2022

Mitigation ways

N/A

@erik-bershel erik-bershel pinned this issue Dec 5, 2024
ChillerDragon added a commit to ChillerDragon/ddnet that referenced this issue Dec 10, 2024
simplify build action by removing cmake path which is no longer needed

ubuntu-latest will slowly become ubuntu 24 actions/runner-images#10636
and ubuntu-20 will be deprecated actions/runner-images#11101
@AlexSkrypnyk
Copy link

AlexSkrypnyk commented Dec 16, 2024

Could you please use ISO standard for dates. It is not clear what this is 2025-04-01 - April or Jan?

@rtiangha
Copy link

That is ISO 8601.

https://www.iso.org/iso-8601-date-and-time-format.html

@AlexSkrypnyk
Copy link

This does not #10721
The confusion is real. It should not be a puzzle for a community to decipher the public announcements.

@rtiangha
Copy link

Then maybe post the ISO complaint under the right issue? The dates in this issue's description are correct.

@lonex-branch
Copy link

I assume this only affects GitHub-hosted runner. Can i ask a related question about ubuntu 20.04 upgrade to the self-hosted runner? As long as we keep our runner API by integrating the latest release from the actions/runner project, to what point we need to start worrying about the OS version of the self-hosted runner that requires a needed upgrade?

cfergeau added a commit to cfergeau/gvisor-tap-vsock that referenced this issue Jan 10, 2025
This reverts commit 2959505.
We prefer to stick with older ubuntu releases for building because of
containers#256
The issue with qemu with ubuntu 20.04 was fixed with
containers@fe7285a8a6a

Ubuntu 20.04 will be EOL'ed in April and the runner images will also go
away so we'll need to revisit this:
actions/runner-images#11101

Some options are to switch to Ubuntu 22.04 for our builds, or to look
into having pure go builds or statically linked builds, ...

Signed-off-by: Christophe Fergeau <[email protected]>
cfergeau added a commit to cfergeau/gvisor-tap-vsock that referenced this issue Jan 10, 2025
This reverts commit 2959505.
We prefer to stick with older ubuntu releases for building because of
containers#256
The issue with qemu with ubuntu 20.04 was fixed with
containers@fe7285a8a6a

Ubuntu 20.04 will be EOL'ed in April and the runner images will also go
away so we'll need to revisit this:
actions/runner-images#11101

Some options are to switch to Ubuntu 22.04 for our builds, or to look
into having pure go builds or statically linked builds, ...

Signed-off-by: Christophe Fergeau <[email protected]>
rjeffman added a commit to rjeffman/ansible-freeipa that referenced this issue Jan 13, 2025
Current upstream hosts use Ubuntu 20.04 images which will be fully
unsupported by 2025-04-01.

Update runners to use Ubuntu 24.04.

See: actions/runner-images#11101

Signed-off-by: Rafael Guterres Jeffman <[email protected]>
IvanNardi added a commit to IvanNardi/nDPI that referenced this issue Jan 17, 2025
This Ubuntu version is going to be deprecated.
See: actions/runner-images#11101
kmk3 added a commit to netblue30/firejail that referenced this issue Mar 7, 2025
To avoid CI failures.

From the first run of `cppcheck_old` on commit 8f69e98 ("bugfix:
firecfg: check full filename in check_profile() (#6674)", 2025-03-04)
[1]:

> This is a scheduled Ubuntu 20.04 brownout. Ubuntu 20.04 LTS runner
> will be removed on 2025-04-01. For more details, see
> actions/runner-images#11101

The target depends on the cppcheck version from Ubuntu 20.04 in order to
work properly and this distribution will become EOL next month (April
2025), so just remove the target.

Added on commit 53f0b39 ("CI: keep old cppcheck job and ignore two
files in new job that take too long to check", 2022-07-26).

[1] https://github.com/netblue30/firejail/actions/runs/13658953453/job/38185280665
samuel-jimenez added a commit to samuel-jimenez/sccache that referenced this issue Mar 7, 2025
The Ubuntu-20.04 brownout takes place from 2025-02-01. For more details, see actions/runner-images#11101

cuda-toolkit-11-1 unavailable on ubuntu-22.04
samuel-jimenez added a commit to samuel-jimenez/sccache that referenced this issue Mar 7, 2025
Fixes actions/runner-images#11101.
cuda-toolkit-11-1 unavailable on ubuntu-22.04.
samuel-jimenez added a commit to samuel-jimenez/sccache that referenced this issue Mar 7, 2025
Fixes actions/runner-images#11101.
cuda-toolkit-11-1 unavailable on ubuntu-22.04.
dkropachev added a commit to scylladb/java-driver that referenced this issue Mar 8, 2025
Image going to be depricated at 2025.04.01,
actions/runner-images#11101.
FeenieRU added a commit to MintStation/MintStation that referenced this issue Mar 8, 2025
* Automatic changelog for PR #89499 [ci skip]

* Automatic changelog for PR #89476 [ci skip]

* Automatic changelog for PR #89251 [ci skip]

* Automatic changelog for PR #89365 [ci skip]

* Final reagent enhancements (#89289)

## About The Pull Request
**1. Code Improvements**
- `get_reagent_log_string()` now won't round reagent volumes cause they
are already rounded by `update_total()` so its slightly faster
- `trans_to()` now logs reagents faster as it does it in place without
the overhead of passing the list to `get_external_reagent_log_string()`
which parses our list into another list which is just unessassary
- `trans_to()` is now faster performance wise as it no longer relies on
`remove_reagent()` to remove the reagent
- Merged `multiply_single_reagent()` into a single proc `multiply()`
which does the job for both single & multiple reagents to reduce code.
it now no longer uses proc `remove_reagent()` making it faster when
reducing reagents
- `copy_to()` no longer rounds its return value thus improving
performance & won't return false negatives for values lesser than 0.01

**2. Fixes**
- Fixes `multiply_single_reagent()` multiplying reagent subtypes as well
instead of just the target type as it uses `locate()`
- Fixes `multiply_reagents()` multiplying reagents twice. Notice how it
would call `_multiply_reagent()` & then again do the exact same thing as
that proc in the next line

https://github.com/tgstation/tgstation/blob/dfe9f50ad74507dabf8b9a534f385cad170c53c1/code/modules/reagents/chemistry/holder/holder.dm#L605-L609
- `convert_reagent()` actually uses the weighted ph. I was wrong in what
I assumed `override_base_ph` did

Just lesser & faster code overall

## Changelog
:cl:
fix: multiplying reagents in cases like fishing & chem splash will yield
accurate results. New amounts differ from present values
fix: converting reagents actually yields correct ph again
code: improved performance of reagent logging
code: copying reagents won't return false negatives for values lesser
than 0.01
/:cl:

* Adds The Liberator: Doorhickey Corporation's brand new gun (#89495)

The Liberator is a brand-new 3D printable gun, holding a single 10mm
shot in it's barrel. It has a damage multiplier of x0.5, dealing 20
damage per shot. However, shooting someone point blank gives it an x2
modifier, and shooting someone while holding them at gunpoint adds
additional x1.5 multiplier.

https://github.com/user-attachments/assets/b27adf1a-5b02-4817-90ad-2ba922cc6bf9

They can be printed for dirt cheap 3 sheets of plastic and 2 sheets of
iron from an autolathe. However, as a downside, whenever you're firing a
liberator you're risking it blowing up in your hands, potentially
wounding you! Reloading is also a bit tricky, since you need to unscrew
the barrel before placing the bullet in, and screwing it back on.

In order to print them, you'll need to find a (mildly rare) disk in
maintenance and upload the design to an autolathe. You also can find a
whole gun, albeit at a lower chance.

Funny gun that can be used for some gimmicks, not too overpowered but a
nifty tool for assistants. Can be countered by a well timed baton, or a
shove if your opponent is next to a wall.

:cl:
add: Added a new 3D printable gun "The Liberator", you can find the gun
itself or its design disc in maintenance tunnels.
/:cl:

* Automatic changelog for PR #89289 [ci skip]

* Refactor GLOB.admin/debug/fun_state into cached `/datum/ui_state/admin_state` instances (#89417)

So, some admin verbs/tools that used tguis, i.e edit/debug planes, were
available to admins with +DEBUG... but the ui_state used
`GLOB.admin_state`, which checks for +ADMIN - meaning that if they
_only_ had +DEBUG, they would have the verb... but it would do nothing
when they used it.

I've refactored `GLOB.admin_state`, `GLOB.debug_state`, and
`GLOB.fun_state` into a merged `/datum/ui_state/admin_state`, with a var
for which specific permissions are being checked for.

You now use the `ADMIN_STATE(perms)` macro to get the UI state for those
specific perms, i.e `admin_state(R_ADMIN)` or `admin_state(R_DEBUG)`,
and the resulting UI state will check for _those specific perms_.

These are initialized and cached in `GLOB.admin_states` (which should
never be directly accessed).

So, I've went thru every single usage of `GLOB.admin_state`,
`GLOB.fun_state`, and `GLOB.debug_state`, and made them all use
`ADMIN_STATE()` with the actual permission flags needed to use said UI
in the first place.

Kinda dumb for specific admin permissions to be granted verbs that don't
let them use it anyways.

:cl:
admin: Certain UI-based tools (plane debugger, filter editor, etc) that
were given to admins with only +VAREDIT or +DEBUG, but refused to open
without +ADMIN, now actually work for admins that have the needed
permission.
/:cl:

* Tweaks to chat hallucinations (#89486)

## About The Pull Request

It was pointed out to me that the hallucinations json file still
mentioned "viro" (as a job) and "gang leader" (as something to be scared
of), two things our codebase doesn't have. So I removed them from the
list.
While I was there I couldn't resist adding a bunch of extra stuff also.

## Why It's Good For The Game

More diversity of fake callouts you can hear over the radio is fun.

## Changelog

:cl:
add: Adjusted what things you can hallucinate people being accused of
doing or being over the radio
/:cl:

* Fixes SiliConnect not being able to download logs (#89408)

## About The Pull Request

Closes #89329
Also added a balloon_alert

## Changelog
:cl:
qol: SiliConnect now informs you that you're successfully downloading
logs
fix: Fixes SiliConnect not being able to download logs
/:cl:

* Fix jumpsuit sensors context not applying when jumpsuit is held, allow changing sensors when jumpsuit is in active hand (#89391)

## About The Pull Request

I noticed that jumpsuit maxing sensors context tips wouldn't actually
show when it's in your active hand, even though it does work.
Soooo in this pr we simply make it also display when it's the current
held item.

Additionally, we add a `attack_self_secondary(...)` override so the
right-click sensors menu actually works when the jumpsuit is in your
active hand.

This fixes our issues.
## Why It's Good For The Game

It's kinda awkward when it doesn't give you the ctrl-click to max
sensors context when the jumpsuit is in your active hand, even though it
DOES work.
Needing to drop the jumpsuit or swap to the other hand to change sensors
is kinda awkward.
## Changelog
:cl:
fix: Jumpsuit sensors context tips actually show when you are holding
the jumpsuit.
qol: You may right click to change jumpsuit sensors when it's in your
active hand, instead of having to swap to an empty hand or drop it to do
so.
/:cl:

* copyTurf proc minor fix (#89383)

## About The Pull Request
Added two checks in copyTurf proc for cases if used old coloring system
## Why It's Good For The Game
Small piece of greater picture...
## Changelog
:cl:
code: Shuttles with walls painted via color var shouldn't lose their
walls in transit
/:cl:

---------

Co-authored-by: SyncIt21 <[email protected]>

* Minor stat panel order change (#89377)

## About The Pull Request

Just a minor change so it's easier to make more orders
Useful if you want to have Status-MC-tickets for example ({"Status": 1,
"MC": 2, "Tickets": 3})

## Changelog
:cl:
code: Made it easier to set custom orders for stat panel tabs in code
/:cl:

Co-authored-by: TiviPlus <[email protected]>

* Automatic changelog for PR #89495 [ci skip]

* Automatic changelog for PR #89417 [ci skip]

* Automatic changelog for PR #89486 [ci skip]

* Automatic changelog for PR #89408 [ci skip]

* Automatic changelog for PR #89391 [ci skip]

* Automatic changelog for PR #89383 [ci skip]

* Automatic changelog for PR #89377 [ci skip]

* Fix runtime when simple mobs are exposed to reagents (#89483)

## About The Pull Request
- Fixes #89485

There was a runtime that would occur when most simple mobs are exposed
to a reagent. This was due to the `reagents` holder being null. The fix
is just to do a simple null check.

## Why It's Good For The Game
No more runtimes when it's raining m'kay.

## Changelog
:cl:
fix: Fix runtime when simple mobs are exposed to reagents
/:cl:

* Automatic changelog for PR #89483 [ci skip]

* Automated Announcement System refactor (#89276)

I standardized stuff in AASs code, and all current reference to it. Also
added interactions for bounty cubes, weather reports and request
consoles, all of it can be changed from AASs UI.
Also it's easier now to add new config entries for AAS to proceed, and
it's now downstream friendly.
Well, because kind of order in code and because it's funny to make
custom messages for... Almost everything?
BTW any entry can be blocked from ingame changes, by default you can't
change Broken Arrival shuttle and Security Officer arrival
announcements, how it was before. But may be we should allow it - it's
an open question.
:cl:
add: Many things now handles via AAS: Bounty Cubes, Request Consoles,
Brig Cells, Vending Machines and Orion Trails alerts, Weather Reports,
Cargo Order Console
code: Now anyone can make their own entry for AAS
refactor: AAS internals, also cleanup
/:cl:

* Automatic changelog for PR #89276 [ci skip]

* Introduces 6 New Heretic sideknowledges, 1 new spell to Blade Path. + changes to the Research Tree. (#89169)

## About The Pull Request

Introduces 6 new Heretic Sideknowledges.

**Warren King's Welcome:** Starting side-knowledge, Grants to the
Heretic's id Maints and External Airlock access.

**Phylactery Of Damnation:** T1 Knowledge, located between Imperfect
Ritual and Keykeeper's Burden, creates a bottle that can Siphon a small
quantity of blood from your victim, (they'll still feel a tiny prick).


![potion_red](https://github.com/user-attachments/assets/b000300a-2f2c-47f1-9fd3-b9d8e0f4f587)

**Ether Of The Newborn:** T2 knowledge, replaces Curse Of Paralysis slot
in the tree (Inbetween Mark of Madness and Moonlight Amulette).


![potion_green](https://github.com/user-attachments/assets/bc45c69f-4a16-4879-b788-661112e35638)

1 use potion, fully restores the inbiber to full health, removes any
sort of affliction,trauma,disease or implant at the cost of knocking the
user out for 1 minute.

**Codex Morbus:** T3 knowledge, located between Caretaker's Refuge and
Ringleader's RIse.


![codex
gif](https://github.com/user-attachments/assets/8a15dc78-30b9-4a21-93eb-bafbeebd59a4)


![Codex Morbius
Final](https://github.com/user-attachments/assets/04c8739c-5c65-4246-9408-3cbdbc57a164)


Upgrade of the Codex Cicatrix, draws and siphons runes and essences a
bit faster, can be used on a rune to curse a crewmember, provided their
blood is on the rune or on the Heretic.

**Greaves Of The Prophet:** T3 knowledge, located between Entropic Plume
and Wolves Among Sheep.



![Greaves](https://github.com/user-attachments/assets/287b592e-b771-40ed-99b3-25820550d6a0)

They work as magical magboots minus the slowdown; they confer full
immunity to slips (yes, even space lube).

**Rust Sower Grenade:** T2 knowledge, replaces curse of corrosion in the
tree (between Aggressive Spread and Star Blast).



![Rustsower](https://github.com/user-attachments/assets/297f045c-38c3-4ed0-9046-52d797610339)

Eldritch grenade, Releases a smoke that rusts all affected turfs, blinds
whoever doesn't have mask protection and utterly annihilates silicons,
mechs, augs and bots.

Video Showcase: https://www.youtube.com/watch?v=H1GeO7MYFek

**New Blade Path Spell: Wolves Among Sheep**

Video Showcase: https://www.youtube.com/watch?v=2LsmUiQzpzA

- Briefly transforms the surrounding the heretic into an arena.

- Both The Heretic and Crew members caught inside the spell cannot leave
or change z level until the spell expires.

- The arena is impassable to outsiders.

- Everyone caught inside the spell receives a special buff that makes
them immune to most enviromental hazards and all forms of Crowd Control
while blocking teleportation.

- Non Heretics are granted a temporary Heretic Blade and an antag datum.

- Scoring a critical hit grants the winner the ability to leave the
arena, Critting the heretic fully dissolves the spell.

- Critting yourself doesn't remove the debuff.

- The Heretic receives a heal upon critting someone.

- Breaking a blade while inside the arena will rip off your arm
regardless if you are crew or a Heretic.

- 2 minutes cooldown.

- Replaces Furious Steel as the last spell unlocked pre-ascension.


Lastly as you may have guessed, curses have been completely refactored,
they are now bound to the new item (Codex Morbus), are no longer
empowered by blood but require it as a reagent.

Curse of Corrosion and Paralysis have been rebalanced to be slightly
stronger than they were at their base value now that they can no longer
be empowered.

2 new curses have be introduced.

**Curse Of Indulgence:** tanks the target hunger, makes them a carnivore
and drastically increases their hunger decay rate, lasts 8 minutes.

**Curse Of Transmogrification:** Allows the Heretic to change the
target's Race(minus plasmamen for obvious reasons), lasts until the
Codex Morbus is destroyed.

Lastly the Blade Heretic tree has been shuffled a bit to introduce the
new spell.

Stance Of the Torn Champion has been **TEMPORARILY** Removed, it will
come back in a later PR.

Code by me and Xander

Sprites by INFRARED_BARON and OrcaCora.

Lore tibids by NecromancerAnne.

## Why It's Good For The Game

The following is an atomisation of The Heretic Knowledge Rework I'm
currently working on alongside Edge (Heretic's Grandaddy).

Given the whole PR was probably going to be impossibly big to review; I
asked Melbert If could introduce the new knowledges first, so here we
are.

Do not stress the locations of these knowledges in the tree; While they
do fill what few empty slots we still have, it doesn't change the fact
that the Heretic tree is an incomprehensible mess and will soon be
reworked.

**Warren King's Welcome:**

Not having mantainence access as an antag sucks.

Arguably it sucks even more for Heretics as they are required to find
some place discrete in order to be able to cast their rituals.

It's not unusual for the station to be so crowded, that setting up a
base in space is the only option, the external access helps with that a
little bit.

**Phylactery Of Damnation and Codex Morbus**

Explaining them in the same paragraph as they are intended to be used
together.

Curses might as well not exist in their current state.

The process of cursing a crewmember is way too machineous, annoying, and
nowhere near as affective as simply running to your victim and smacking
it with your blade.

All Curses have now been bundled to the new Codex, they no longer
require X reagents, only a drip of the victim's blood.

That's when the phylactery comes into play.

Victims still feel "a tiny prick" upon being juiced, so beware.

**Ether Of The Newborn:** The point of this knowledge is to serve as a
backup plan to "random bullshittery".


It's not really fun rolling one bad trauma or disease and have it
completely invalidate your Heretic round.

We already have potions that either heal or provide remedies against
wounds/limb loss, the Ether is supposed to be an extreme solution, hence
why it causes a 1 minute sleep upon consumption.

**Greaves Of The Prophet:** Heretic to this day is fairly lacking when
it comes to passive immunities or tools we grant to most of our core
antagonists.

Specifically, for a melee-focused antagonist, a total lack of antislip
is kinda lame, being one of the most common defense tools employed by
the crew against newbie antagonist players.

Given these cannot be concealed unlike the traitor counterpart and how
far down the tree they are, i felt like making them lube resistant was a
unique twist and sensible for what's essentialy our core progression
antagonist.

**Rust Sower Grenade:** directly inspired by the 40k Blight Grenades.

The Rust Sower nades serve a double purpose.

1) They introduce a new form of area Denial available to all heretic
paths.

2) They confer to non Rust Heretics a way to deal with the so hated
Silicon Menace.

I'm of the not-so-unpopular school of thought of "Mechs and Silicons
have had it too good for too long".

A massive chunk of our threat roster gets to this day completely shut
down by mechs.

I feel like it was about time to make everything Inorganic feel afraid
again.

To make it a bit more fair, these grenades have a fairly long detonation
timer and have been given a couple of unique SFX.


**Wolves Among Sheep**

Even after the last batch of Changes, Blade Heretic still felt a bit
uninspired to me.

The path is still essentialy just about running at people and stabbing
them in the face.

While that's part of the appreal, I'd reckon it's still lacking a bit on
the eldritch side of things.

Trapping opponents into an arena when they are forced to either engage
you or betray their friends to escape can create some potentially
interesting story-telling.

It also warps the ,oh, so beloathed stun meta we live in by forcing
participants to resort to lethal weaponry.

Ultimately, this is supposed to be a high risk/high reward spell, if you
trap 5 people arm them with heretic blades, and make them all fully stun
immune, you are likely gonna get lynched.

To free up a slot in the tree I **TEMPORARILY** Removed Stance of the
Torn champion, it will come back in my nextish pr, so don't worry about
it too much.

## Changelog

:cl:
add: New Heretic starting Side-Knowdge Warren King's Welcome
add: New Heretic T1 Side knowledge, Phylactery Of Damnation.
add: New Heretic T2 Side knowledge, Ether Of The Newborn.
add: New Heretic T3 Side knowledge, Codex Morbus.
add: New Heretic T2 Side knowledge, Rust Sower grenade.
add: New Heretic T3 Side knowledge, Greaves Of The Prophet.
add: New Blade Path Spell, Wolves Among Sheep.
balance: Heretic curses have been removed from the tree and bundled in
the new Knowledge, Codex Morbus.
balance: Blade Path tree has been shuffled a bit, all spells have been
moved up by one tier to make space for the new spell.
removal: Stance Of The Torn Champion has been removed.
/:cl:

---------

Co-authored-by: Xander3359 <[email protected]>
Co-authored-by: MrMelbert <[email protected]>
Co-authored-by: carlarctg <[email protected]>
Co-authored-by: Ghom <[email protected]>

* Removes some traitor item timelocks (#89472)

## About The Pull Request

It's been a while since the last time I did this in #78852 and I think
we can afford to be a little looser on some items.
This PR _has_ evidently been made with the context that I have another
PR open which removes the ability for you to fast-forward these timers,
however I also think that these changes should stand alone fine even if
we did not end up merging that other one.
This one I haven't pre-cleared with anyone else first though so I'm
prepared to be told my judgement is wrong and bad.

My basic philosophy when considering the reputation timelocks is that we
don't necessarily care considerably about items that are "good" or that
make you really good at killing specifically one person at a time,
winning duels is the expectation for a traitor and their gear.

The reasons we _might_ want to timelock something are instead:
- If it causes widespread destruction such that simply deploying it may
lead to the shuttle being called (Syndicate Bomb, Hacked AI module).
- If it makes you significantly more difficult to kill such that even a
group of people may have to try unusual tactics (Dual Esword, Sleeping
Carp).
- If it creates a second antagonist (allied or not), as another player
is a significant force multiplier (Holoparasites and Spider Toxin).
- If you buy something and it immediately effects the entire station,
even if the impact isn't that high, it might be kind of annoying if it
has no time limit (Blackout and Comms Blackout).

So applying those criteria, here are my proposed changes.

**Timer reduced to 15 minutes:**

- Station Blackout (was 20 minutes)

To be honest this is mostly just so that it matches the other global
service (Comms Blackout). If anything I think this one is actually
frequently _less_ useful than the other one which we made available
slightly earlier.

**Timer removed:**

- Energy Sword, Powerfist, Gloves of the North Star (Previously 20
minutes)

These function as "items that make you really good at killing one
person". They're very _scary_ but they don't turn you into a threat that
can take on a group of people by themselves.

The Energy Sword has a projectile deflection chance but it isn't so
reliable as to consistently overwhelm a group of people. Arguably it's
better _as_ a shield than a primary weapon. It's common pairing (the
ebow) is frankly more dangerous on its own than the esword is, but the
sword is the one with the timelock.
I'm not touching the _Dual_ esword because that one _does_ come with
enough of a block chance that by itself it can be very impactful to how
people need to approach you.

The powerfist is arguably the _best_ weapon for killing one guy, but
doesn't protect you from being shot by a group of people. Ditto north
star.
Plus it's sad that of the iconic traitor items, the revolver has no
timelock and the energy sword does...

- Concealed Mech Weapons Bay (was 30 minutes)

This doesn't give your mech a cool weapon, it only allows you to place
an existing mech weapon you already had onto a surprising mech. By the
time you have a cool mech weapon to use this with it may already have
been 30 minutes anyway, and also you will already be able to build a
mech which is better at combat and which this item is not useful for.
This is largely just an item for gimmicks where one person is caught
unaware that you had something in your back pocket, not a long-term plan
which makes you significantly more dangerous or durable (the most
durable and dangerous mechs don't need this item).

- Holoparasite (was 30 minutes)

While this summons another player, it costs basically your entire budget
and also comes with significant downsides. You could say that rather
than making you harder to kill this actually often makes you
significantly easier to remove from the round. This item is
self-balancing because the other player gets you round-removed after 5
minutes virtually all the time.

- Pizza Bomb (was 15 minutes)

I actually said I removed the timer from this in my last PR but I
didn't?
This is a bomb, but it's really only strong enough to kill and dismember
one person. Your best case requires a group of people to be crowded
around someone opening some pizza and even then a lot of the bystanders
will be heavily wounded but alive. The explosion isn't strong enough to
cause people to want to call the shuttle.

- Bag of X4 (was 20 minutes)

This provides three small bombs that are essentially breaching tools.
You'd have to buy a lot of these to cause enough damage to make someone
want to call the shuttle. C4 already has no timelock and X4 is just a
slightly more directed version of C4 which is more useful for breaking
through a series of walls.

- Combat Bakery Kit (was 15 minutes)

This is a mime-only item which gives you a dangerous baguette and some
throwing croissants, functionally a worse-but-stealthier eblade
basically. This is firmly in the category of "item you use to kill one
guy" and it's not even amazing for that.

- Reverse Revolver (was 30 minutes)

I think this one was just an oversight; we removed the timelock from the
revolver entirely but left a 30 minute one on the clown revolver.

- Kinetic Accelerator Upgrade Mod (was 15 minutes)

This gives miners a shorter-range but infinite ammo gun that they can
use to kill one guy. It's loud and has no defensive benefits. Another
revolver.

- Laser Arm Implant (was 20 minutes)

Being concealable, rechargeable, and difficult to disarm is a good
benefit over the revolver... but it's still basically another revolver
with the same use case as a revolver.
Again I don't think we want to timelock things because they are "good",
only because we think delaying their release into the round would have
some tangible benefit.

- Chemical Dart Gun (was 15 minutes)

This one I am actually the most scared of out of anything I listed here
purely because chems are a world of strange possibilites I don't quite
understand. Still, I am hesitantly classing this as a "cool revolver"
with the additional caveat that as you need time to prep your crazy chem
mixes I am not sure that the 15 minutes on it were really doing very
much anyway.

**Removed from the Uplink**
- Elite Syndicate Modsuit and various previously nukie-only costumes

It's so over.
Actually originally I was just going to remove the timelock from the
non-modsuit costumes but I was convinced while talking about it with
various maintainers that if there's no status symbol attached with
"unlocking" these then they shouldn't be there in the first place and
should return to being a silly team gimmick for nukies as originally
designed.
The Elite Suit itself sounds very cool, but it's functionally not really
much better than other suits you can buy immediately and is also way
more expensive. Removing it from selection is removing a noob trap from
the game.

## Why It's Good For The Game

Timelocks aren't fun, they're _useful_ as a tool for directing behaviour
but we should probably apply them as minimally as possible.
Given the principles outlined above I think these changes make sense.

## Changelog

:cl:
balance: The reputation "time locks" on various items in the Traitor
uplink have been reduced or removed. Effected items include the
holoparasite kit, energy sword, power fist, gloves of the northstar,
pizza bomb, bag of x4, combat bakery kit, reverse revolver, kinetic
accelerator modkit, laser arm implant, concealed weapon bay, chemical
dart gun, and stationwide APC check.
balance: The centcom inspector costume is now more expensive.
del: Several previously nukie-only wardrobe options in the traitor
uplink are now once more only available to nuclear operatives.
del: Spies can no longer receive an elite nuclear operative suit. 
/:cl:

* Automatic changelog for PR #89169 [ci skip]

* Automatic changelog for PR #89472 [ci skip]

* Replaces slowdown/FOV on space suits, rad/bio/bomb helmets with the new dirt component (#89497)

## About The Pull Request
#87102 introduced a new clothing dirt component, which increases tint
when you get spraypainted. This PR expands it to work when you are
spraypainted and applies it to space helmets, gas masks and rad/bomb/bio
helmets, and gives all items a fancy overlay when
spraypainted/peppersprayed.


![dreamseeker_AJf0C79SRv](https://github.com/user-attachments/assets/1e92806a-7f8f-4952-9dfe-7938b18fa2d2)

![image](https://github.com/user-attachments/assets/f4226e64-32a2-4655-8230-e0d338bc43cb)

Spraypainting a person wearing an item with this component randomly
applies 2-3 levels of tint, potentially blinding them until they wash
their helmet or mask.

Additionally, driscoll mask has lost its eye covering, and welding gas
mask gained it - doesn't make sense for former to have it, and for
latter to be missing it.

## Why It's Good For The Game

Bomb suits and bio hoods are already extremely weak, while rad suits are
super situational when there are MODsuits with none of the downsides. 90
degree FOV is extremely punishing and makes them essentially unusable.
Space helmet slowdown was added because they gave pepperspray protection
with no downside, which this PR brings, so there's no reason to keep it
around considering how bad slowdown feels in our game.

Also spraypainting someone's visor is just extremely funny to me.

## Changelog
:cl:
balance: Space helmets and bio/bomb/rad hoods have lost their
slowdown/FOV respectively, but now can have their visor covered by
spraypaint or pepper spray.
balance: Driscoll mask no longer protects your eyes, unlike welding gas
mask which received said protection.
/:cl:

* Automatic changelog for PR #89497 [ci skip]

* Big Manipulators: Little Fix, Wires and Monkey Hardworkers. (#88805)

## About The Pull Request

Returning Use Mode to manipualtors but now manipulator use not the power
of invisible guys but the power of monkey hardworkes. You now can
drug-drop monkey to the manipulator and buckle him to it. After that you
will unlock use mode and manipulator will use manipulated item on living
mob, structure or macinery with using monkey hands.


https://github.com/user-attachments/assets/277bca71-059f-4f59-8e0d-7d17575cf6cf

Also this pr adds wires to manipulator. You can open big manipulator
panel and manipulate with wires to: on/off manipulator, drop item that
manipulator uses, switch what take type, change manipulate mode, switch
only one priority button and calculate throw range.

![Снимок экрана 2024-12-29
203214](https://github.com/user-attachments/assets/b02894be-74f3-4f97-9046-614b4c5bac6e)

Also this PR also fix a bug in which the manipulator ignores objects on
the tile from which he should take them if the object appeared there
using spawn or other non-agreed methods (for example, when frying meat
on a campfire, manipulator does not want to touch the fried meat)

## Why It's Good For The Game

Returns Use Mode to the manipulator to create complex logistics systems.
Adds wires to control manipulators remotely and fixes the manipulator’s
reluctance to touch meat fried at the campfire.

## Changelog

:cl:
add: Big Manipulator now has use mode once again. You need buckle monkey
to unlock this future.
add: Big Manipulator now has wires.
fix: Big Manipualtor now sees objects that appeared on the tile using
spawn or any other means in which the object is not considered to have
moved
/:cl:

---------

Co-authored-by: SyncIt21 <[email protected]>

* Fixes issues with scar and unform examine_more code (#89511)

## About The Pull Request

Scar and uniform sensor examine_more was blocked by holding up a
newspaper or having any sort of mask, but not wearing a suit. Moved scar
examine code to carbon level (where the examine more hint for scars, and
scars themselves are) and made uniform sensor examine respect obscurity
flags.

## Changelog
:cl:
fix: Fixed scars not being examine-able if you wore a mask
fix: Fixed uniform sensors being examine-able even when worn under a
spacesuit.
/:cl:

* Automatic changelog for PR #88805 [ci skip]

* Automatic changelog for PR #89511 [ci skip]

* SecurEye now properly follows moving cameras (#89507)

## About The Pull Request

Port of a fix from
https://github.com/Monkestation/Monkestation2.0/pull/4995

Due to how modular computers worked with the nested tgui stuff, the
SecurEye app wouldn't properly autoupdate whenever a camera it was
watching moved (when there's not any tracking going on)

This "fixes" that issue by adding a new var, `always_update_ui`, to
modular computer programs, which will make the modpc call the active
program's `ui_interact` even after the UI is opened.

## Why It's Good For The Game

bugfix good. if the whole "watch broadcast camera streams on PDA" thing
ever gets ported here, this is a needed fix for that.

## Changelog
:cl:
fix: SecurEye now properly follows moving cameras.
/:cl:

* Automatic changelog for PR #89507 [ci skip]

* Fixes pyroclastic slime RRing ghosts (#89512)

## About The Pull Request

Closes #89501

## Changelog
:cl:
fix: Fixed pyroclastic slime RRing ghosts
/:cl:

* Automatic changelog for PR #89512 [ci skip]

* Moves Birdshot's tech storage to be between bridge and engineering, changes up bridge/morgue (#89444)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

Tech Storage is now located right under engineering, with a bridge
connecting EVA and secure tech storage.

![image](https://github.com/user-attachments/assets/d4158ab4-4d82-4b20-911d-81f9b75fffff)

To achieve this, EVA and council chamber swapped places, making the
bridge into a corridor (like on all other maps) instead of a dead end.
HoP also now has a way to enter their office without exiting the bridge
and entering from the public hallway (unless you count maintenance as a
way)

![image](https://github.com/user-attachments/assets/0366131b-3569-4220-b564-9a0cb25303c7)

In place of old tech storage we now have a remapped morgue and an
abandoned brewery with mechanical curtains (similar to ones on Delta,
they essentially act as shutters)

![image](https://github.com/user-attachments/assets/f780f4c5-78be-43ce-ba10-3b5453f7dc1c)

Closes #89422

## Why It's Good For The Game

Birdshot's layout is rather bad and tech storage is one of the top
offenders, having no right to be located near arrivals so far away from
engineering. Also the morgue is kinda scuffed.

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and its effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

:cl:
map: Moved Birdshot's tech storage to be between bridge and engineering,
with a brand old abandoned brewery in its former place.
/:cl:

<!-- Both :cl:'s are required for the changelog to work! You can put
your name to the right of the first :cl: if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
# Conflicts:
#	_maps/map_files/Birdshot/birdshot.dmm

* Automatic changelog for PR #89444 [ci skip]

* Fix map vote revert, add admin verb (#89505)

## About The Pull Request

Fixes revert_next_map() not actually reverting the map vote. Also added
an admin verb for it for ease of access.

## Why It's Good For The Game

Fix bug, revert map vote without having to poke around in the subsystem.

## Changelog

:cl: LT3
fix: Revert next map command actually reverts the map vote
admin: Admins now have a verb to revert the map vote
/:cl:

* Automatic changelog for PR #89505 [ci skip]

* DUPE_SOURCES is no longer just a fancier DUPE_ALLOWED (#89503)

## About The Pull Request
Small logical mistake where dupe sources would spawn a new component
everytime a source is being added. The code containing the correct logic
with the source being added to the old component is indented under a
check that it can never pass.

## Why It's Good For The Game
Fixing a backend issue with the component mode.

## Changelog
N/A

* [NO GBP] Fixes mapvotes spontaneously failing (#89514)

## About The Pull Request

I messed up caching

## Changelog
:cl:
fix: Fixed mapvotes spontaneously failing
/:cl:

* Automatic changelog for PR #89514 [ci skip]

* Having a strongarm installed into each arm lets you pry open airlocks (#89509)

## About The Pull Request

Using the organ set bonus system, having a Strongarm implant inserted
into each of your arms lets you pry open airlocks.

## Why It's Good For The Game

People don't often like getting these, since they're out of cargo and
not terribly exciting for the effort. To incentivize getting both
installed and add a bit of a thematic advantage if you do so, they
provide the very useful benefit of door prying ~~which may or may not
get you killed by security because you won't stop opening high-security
airlocks~~.

Engineers will love it!

(Also I want to expand the set bonus stuff beyond just infusions since I
think these kinds of interactions could be quite neat)

## Changelog
:cl:
balance: Having a strongarm implant installed into each arm now allows
you to pry open doors.
/:cl:

---------

Co-authored-by: Ghom <[email protected]>

* Automatic changelog for PR #89509 [ci skip]

* Cybernetic arm implants now automatically change insertion zones (#89479)

## About The Pull Request

Removes weird requirement to screwdriver arm implants to change them
into a specific configuration. Instead, they now automatically slot into
whichever zone the user has selected.

## Why It's Good For The Game

Its kinda unintuitive and a result of organs only being able to slot
into a single zone. I'm not generalizing this to organ layer because arm
implants are the only thing that does this, but if we ever get leg
enhancements it may be worth moving down into the base class.

## Changelog
:cl:
qol: Cybernetic arm implants now automatically change insertion zones
without the need to screwdriver them.
/:cl:

* Automatic changelog for PR #89479 [ci skip]

* Adds policy text for the evil quirk (#89517)

## About The Pull Request

Adds a text output to your chat (customisable via policy config) if you
take the quirk "Fundamentally Evil", similar to "Reality Dissociation
Syndrome", explaining that while your soul is filled with darkness you
also are still a space station employee. It's just that a lot of evil
people work for Nanotrasen.

## Why It's Good For The Game

At least one person has apparently attempted to tell an admin that
taking a quirk at roundstart lets them act as an antagonist, which it
obviously doesn't. The lack of this text doesn't prevent admins from
smiting anyone who tries to use this as an argument, but it doesn't hurt
to have it.
In a just world we would not need to add this but unfortunately players.

## Changelog

:cl:
add: Players who choose to be evil via the quirk menu will be reminded
at roundstart that this doesn't exempt them from server rules.
/:cl:

* Fixes circuit connections on 516 (#89523)

## About The Pull Request
Fixes circuit connections not being drawn outside their svg box on 516.
This also affects the Edit/Debug-Planes
## Why It's Good For The Game
Less bugs
## Changelog
:cl:
fix: fixed circuit connections not being drawn outside initial screen on
516
/:cl:

* Automatic changelog for PR #89517 [ci skip]

* Automatic changelog for PR #89523 [ci skip]

* [NO GBP] Fix channel announcements not working with multiple values (#89524)

forgot to remove the defaults, with those the configs get interpreted as
one big string instead of a list

* Bumps docker build action's ubuntu version (#89532)

## About The Pull Request

Github's nuking this runner next month.
Not tested, it's not as if this works rn anyway.

https://github.com/actions/runner-images/issues/11101

* Fix: fixed Access Checker null reference interface window (#89496)

## About The Pull Request
Fixes Access Checker component interface
Fixes #69970 

![image](https://github.com/user-attachments/assets/4af165ea-9c08-4e82-85f9-8482b6ee4a9d)
## Why It's Good For The Game
No more bluescreens
:cl:
fix: fixed bluescreen in Access Checker interface
/:cl:

Co-authored-by: Ez-Briz <[email protected]>

* Automatic changelog for PR #89496 [ci skip]

* Revert "Fixes Midi2Piano Tool (#85967)" (#89518)

## About The Pull Request
Reverts:
- #85967

Fixes:
- #87674

This did not in fact fix the Midi2Piano tool and instead broke it. Two
users reported it broken on the discord and I went and tested it myself
and could not get it to work either. Reverting the commit that
supposedly "fixed" it.

## Why It's Good For The Game
Tools that work.

## Changelog
:cl:
fix: Revert Midi2Piano fix (#85967) that broke the the midi converter
tool.
/:cl:

* Automatic changelog for PR #89518 [ci skip]

* The Organ Tree | New Exotic Seed  (#89310)

## About The Pull Request
99% of all code was stolen completely from @MrMelbert, like I spent more
time waiting for the plant to grow for the video than actually
contributing to this

Adds a new tree mutation to the shrub (from exo crate)
It has a High Complexity Gene, which halves the harvest and blocks
pollination benefits. It produces podperson organs and limbs. Limbs are
twice as likely to drop as organs (because there's a lot more organs).
It can also drop plant meat.


https://github.com/user-attachments/assets/88bb89dd-4cd7-4bc9-ac2f-f4c67a5ea9ff

(Yes the sprite is mine please don't bully Melbert for it)

Podpeople now also have their own set of organs, which are mostly just
standard organs but colored green.

## Why It's Good For The Game
Gives us another source of organs and limbs besides the limb grower,
exosuit fab and medical protolathe. Those only produce organic and
robotic organs and limbs, but now we can also produce plant organ and
limbs! (Without committing horrible crimes). This also synergizes well
with #89306 , which makes it so plant bodyparts have actual unique
benefits (more than just a fashion statement).

## Changelog
:cl: MrMelbert, Time-Green
add: Adds an organ tree as a mutation of shrubs (from the exotic seeds
crate)! Spare organs have never been so green!
/:cl:

---------

Co-authored-by: MrMelbert <[email protected]>
Co-authored-by: MrMelbert <[email protected]>

* Automatic changelog for PR #89310 [ci skip]

* Fix deprecated mob path from basketball map (#89539)

## About The Pull Request
Removes the robots from the basketball stadium. Even thou the path no
longer exists, adding the robots back would probably cause some AI
controller issues.

s
## Why It's Good For The Game
Broken path is gone.

## Changelog
:cl:
fix: Fix deprecated mob robot path from basketball stadium map
/:cl:

* Automatic changelog for PR #89539 [ci skip]

* You can no longer use cans of bait on fishing rods while fishing with them (#89528)

## About The Pull Request
Can of bait can be used on a fishing rod directly to quickly put a bait
into it's bait slot. However the proc that retrieves the bait from the
can is called before the code actually checks if you can put anything
into the fishing rod. This causes the can to go on cooldown and
decrement its bait count without it actually doing anything with the
bait.

This moves the bait retrieval from attackby into use_slot, after it
checks if it can use the item.

This also allows the can of bait to be used on the bait slot inside the
rod's UI, which works the same way as clicking on the rod.
## Why It's Good For The Game
Fixes #88216 and makes the use of fishing rod's UI and direct clicking
more consistent.
## Changelog
:cl:
fix: Can of fishing bait no longer evaporates its bait when used on an
active fishing rod
fix: Can of fishing bait's quick refill can be used with the fishing
rod's UI too
/:cl:

* Automatic changelog for PR #89528 [ci skip]

* slight nerfs to Jimmy W. Campbell's "The Thing" (©2025) (#89527)

## About The Pull Request
tweaks some stats of The Thing as a boss to make it slightly more
bearable to fight specially for people with higher ping.
more specifically increasing some of the telegraphs' time and reducing
some wound chances, also halved the charge's knockdown time (1s to 0.5s)

also (i think) fixed an issue where the spike walls that the thing
summons destroy items on the floor (sucks ass to have your pkcrusher
destroyed)
## Why It's Good For The Game

the thing is one of if not the most fun megafauna added so far, as it's
the first basic mob boss, but it's a bit hard to keep up with specially
if you're a high ping player, the boss itself is also not in a
depressurized enviroment so i think it's justified to make it a bit
easier to dodge since some of the healing items miners have only work in
low pressure
## Changelog
:cl:
balance: nerfed Icebox's "The Thing" boss
fix: fixed "The Thing" 's spike walls destroying items on the floor when
summoned
/:cl:

* Automatic changelog for PR #89527 [ci skip]

* [Tramstation] Makes the Evidence Storage nicer. (#89508)

## About The Pull Request
Every single locker is number 1.
Why is every single locker number 1.

Simple PR, updates Evidence Storage.
- Right-side lockers are numbered 1 thru 4
- Wall safe is now named "evidence safe"
- There are now Secure Evidence Lockers
- Added a security records filing cabinet

![image](https://github.com/user-attachments/assets/78bf7c1f-8b23-4cc0-a933-48c9bf667ffa)
## Why It's Good For The Game
Adds similar utility from other maps. Secure lockers, paper records, and
actual locker numbering.
## Changelog
:cl:
map: Tramstation Evidence Storage now has secure lockers, a security
records filing cabinet, and number labels on unsecure lockers
/:cl:

* Automatic changelog for PR #89508 [ci skip]

* [NO GBP] Prevents Cryogeledia trapping you in stasis hell...AGAIN (#89531)

## About The Pull Request

Foolishly, I thought stomachs at least respected reagent flags. They do
not.

However, if I use the previous proc and allow the stomach > bloodstream
trickling method, it will result in a different kind of stasis hell as
it will constantly reapply the stasis effects over and over again.

All in all, I'm just limiting this down to not ingest rather than
disentangling whatever is going on with stomach code.

Fixes https://github.com/tgstation/tgstation/issues/89525

## Why It's Good For The Game

I worked all this out but then, not testing it, I just assumed that flag
worked with stomachs and let any method of exposure work...

This is a lesson. Don't trust my gut.

## Changelog
:cl:
fix: Prevents Cryogelidia from putting you into a permanent stasis until
someone injects you with the reagent.
/:cl:

* Automatic changelog for PR #89531 [ci skip]

* Adds Film Studio space ruin (+ Actor/Director Space roles) (#89419)

## About The Pull Request
Adds a space ruin revolving around a studio where ghost roles can
provide entertainment to the station, the studio has a bunch of
construction stuff and costume vendors to create any set and portray any
character you'd want. Features 3 stages and a radio station (neutral
aligned syndie comms agent?) there's a total of 4 ghost roles, 3 actors.
1 director.

![image](https://github.com/user-attachments/assets/d78c3565-b5b1-494b-a566-7a6c451a62a3)
Studio also has a sizable living quarters and a mini-medbay for basic
provisions. a couple of paper fluff texts are strewn about on the
noticeboards

The cast:

![image](https://github.com/user-attachments/assets/5a56273e-8665-4daa-b8b0-77c8ede4d0f0)

In terms of things that can be balance-breaking, I can only name the gas
masks and agent ID actors/directors spawns in. But I think its a
necessary sacrifice for them to play "characters"
## Why It's Good For The Game
I think too many of the ghost roles have too little interactions with
the main station, this is for good reasons obviously, balance and
metagrudges and all that. But, say. what if we can have a ghost role
that interacts and give something to the station besides being their own
little isolated game? it can't be anything material of course. so what
if we have the ghost role centered around giving entertainment? which is
how this PR came to be
## Changelog
:cl:
add: After some light bit of restructuring, the local TV station,
serving SPACE SECTOR 13 has opened up again!
/:cl:
# Conflicts:
#	code/modules/mob_spawn/ghost_roles/space_roles.dm

* Delete empty file (#89546)

## About The Pull Request

Delete empty file
## Why It's Good For The Game
Delete empty file

## Changelog

Delete empty file

Co-authored-by: TiviPlus <[email protected]>

* Automatic changelog for PR #89419 [ci skip]

* Uses icon_exists in getflaticon instead of iconstates (#89547)

## About The Pull Request

This was missed in the new pr prolly cus it didnt use "in iconstates"

## Changelog
:cl:
code: optimized some icon code
/:cl:

---------

Co-authored-by: TiviPlus <[email protected]>
Co-authored-by: Lucy <[email protected]>

* Automatic changelog for PR #89547 [ci skip]

* Gives the Sakhno Precision Rifle and Sakhno M2442 Army a wooden finish rather than olive drab (#89556)

* Automatic changelog for PR #89556 [ci skip]

* Adds snowstorm sounds (#89463)

## About The Pull Request

Unfortunately, the sound only plays when you're outside, under the
storm. I would love for it to play when you're near a window or
something, but that would vastly over-complicate things. Maybe later.


https://github.com/user-attachments/assets/6ca4bdb8-b1da-4644-bb71-6ca18cf3daec

## Why It's Good For The Game

Some free immersion. And in particular in the dark sometimes I don't
notice a snowstorm is raging so it adds some nice feedback.

## Changelog

:cl: Melbert
sound: Snowstorms now have sounds associated.
/:cl:

* Automatic changelog for PR #89463 [ci skip]

* [NO GBP] A quick fix for the previous bait can pr (#89561)

## About The Pull Request
This should have GBP no update right?

Well as it turns out my previous pr #89528 made it so the bug it fixed
now appears in different circumstance, which I just now realised. The
bait can triggers no matter what slot in the fishing rod's UI is
clicked, which means that if you click on a slot which is not the bait
slot, it just wastes the bait.
This adds a slot check to the if statement for the bait retrieval.
## Why It's Good For The Game
Actually fixes the bug without causing a different one
## Changelog
:cl:
fix: You can no longer "use" can of bait on non-bait slots in fishing
rod
/:cl:

* Automatic changelog for PR #89561 [ci skip]

* Fixes a lot of procs not checking the return value of Life() when they should (#89542)

## About The Pull Request

![firefox_iLQqvDAiws](https://github.com/user-attachments/assets/d88c71ae-2f23-4799-865b-4b355c5bfe83)

Goal of this PR was to fix this annoying CI runtime that most likely
occurs on a Life() tick that happens on a dead or deleted mob. Ending up
finding more issues than I set out to fix.

The short of it is: the base call of `Life()` actually has a return
value of `1` if the mob is alive, or `null` if the mob is dead or
qdeleted. There are many procs which should be stopping operations once
the mob is either qdeleted or dead, but many procs were not even
checking the return value of `..()`.

This fixes that.

Note: For some procs, it _DOES_ actually matter to differentiate between
being qdeleted and being dead... `handle_organs()` comes to mind iirc.
So I was careful to respect that. That is why some are checking for `!.`
while others are checking for `QDELETED(src)`

## Why It's Good For The Game

Less spurious runtimes.

## Changelog

Not player facing

---------

Co-authored-by: SyncIt21 <[email protected]>
Co-authored-by: SmArtKar <[email protected]>
# Conflicts:
#	code/modules/mob/living/basic/slime/life.dm

* Add a new event we can use to trigger config syncing (#89536)

Better here than at the exact moment we actually reboot.

* Replaces the surplus rifle from the gang mode era with the Sakhno SKS semi-automatic rifle (#89453)

No. Not the Sakhno M2442 Army. It isn't the Sakhno Precision Rifle. I'm
talking about the dinky shitty rifle you find in the snow resort away
mission. The one with a 3 second cooldown between shots and fires 10mm.

The Sakhno SKS semi-automatic rifle fires at the same rate as standard
semi-automatic weapons, and fires .310 Strilka caseless rounds. It has a
x0.5 damage multiplier (so does 30 damage rather than 60 damage per
shot), and has 10 rounds in its internal magazine. Stripper clips come
in sets of 5, so you'll need two clips to fully load the rifle.

![image](https://github.com/user-attachments/assets/5de3752f-a664-4c8f-8d44-9f3ea6a3d8d1)

You can get the Chekhov version of the weapon from the resort, but you
can also acquire a parts kit from the black market. Put together with a
stock and receiver, you get yourself a (empty) fresh new SKS. You can
also acquire the ammo via the black market as well.

![image](https://github.com/user-attachments/assets/d5af5abd-3dba-463d-81dd-402291f534b6)

This gun is a travesty. It is so ancient that it can be carbon dated to
around when our codebase was moved to Github. It actively has the worst
statistic of any weapon in the game. And it exists in this strange
half-existence in a ruin as, I guess, some purpose that is barely
understood or remembered today.

The irony of it being called Chekhov's gun yet finding no functional use
in the map is either the joke itself, or a failing of the map.

Anyway, so I decided to go all out and replace it with an SKS. Because I
figured someone would like that.

:cl:
add: Replaces the 10mm semi-automatic surplus rifle with the Sakhno SKS
semi-automatic rifle.
add: You can acquire a SKS parts kit from the black market.
/:cl:

* Automatic changelog for PR #89453 [ci skip]

* Some Loadout Additions (#89500)

* Automatic changelog for PR #89500 [ci skip]

* Makes some admin prompts more clear (#89579)

## About The Pull Request

I saw some admins complaining that the prompts for these input fields
were not very clear so I made them clearer.

## Why It's Good For The Game

Makes it more obvious what the thing you are doing will actually do.

## Changelog

:cl:
spellcheck: Makes some VV input prompts clearer to read and use
/:cl:

* Automatic changelog for PR #89579 [ci skip]

* Fixes ChemMaster incorrectly lableling produced items (#89562)

## About The Pull Request

\>Patch (100u)
\>look inside
\>40u

## Changelog
:cl:
fix: Fixed ChemMaster incorrectly lableling produced items
/:cl:

* Automatic changelog for PR #89562 [ci skip]

* Adds a Config for Auto-Deadminning on Ready Up and Latejoining (#89522)

## About The Pull Request
Fixes #89458
Adds a config for auto-deadminning admins who ready up before the round
starts, or click join game after.
The deadminning happens as soon as the button is pressed, not when a job
is selected or the round starts. I figure it's better to do it straight
away since both have opportunities for metainfo to be posted in admin
chat. Before there's admins messing with dynamic config / plotting
events etc. and during the round there's basically everything that gets
posted to admin logs.

I've had to add a typecheck to the auto_deadmin proc, since the lobby
menu technically happens on the centcom Z-level, and there's a pref for
ignoring deadminning on centcom Z, so it checks to see if the admin is a
new player mob.

Changed the old config from auto_deadmin_player to auto_deadmin_always
to make it less deceptive.
Was suggested a pref could be added to do this. I can do that if people
want it maybe, but it's not in this PR at the time of posting it.

Is now a pref
<img src="https://i.ibb.co/211sBMYd/Deadmin-Prefs1.png">
<img src="https://i.ibb.co/r20Srbw4/Deadmin-Prefs2.png">

I dunno if the latejoin proccall is in the right spot in the click
sequence thing I can move it if people want.
## Why It's Good For The Game

Admins spawning themselves on station is very important for both
shenanigans and troubleshooting. It's annoying to have to click readmin
every time and I'm too lazy to figure out how to perms escalate my way
into disabling that config every round (Though I have tried).

This PR is marginally more likely to convince Timber to turn that off
than cussing him out in adminbus.
## Changelog
:cl:
admin: Added a new config to force admins to deadmin when readying up or
latejoining the round.
/:cl:

* Automatic changelog for PR #89522 [ci skip]

* [MDB Ignore] Adds "Red Alert Access" to EVA Doors and First Aid Supplies on all maps (#89424)

## About The Pull Request

Terminology:

- Red Alert Access allows airlocks and windoors to become all access if
the station has raised to Red Alert (or higher). This temporary all
access is reverted after the station returns to Blue Alert (or lower).
This mechanic isn't new, just not widely used.

Changes:

- Adds a mapping helper for assigning doors to "Red Alert Access"

- Gives "Red Alert Access" to EVA doors on every map

- Gives "Red Alert Access" to the first aid supply windoors in medbay
storage on all maps. Icebox already had this, which is why I thought I'd
expand it because it's a fun idea. (The doors leading INTO medbay
storage do NOT have this, meaning the CMO would likely have to set those
to emergency access.)

- Removes "Red Alert Access" from the secure storage windoor in Icebox's
medbay. Felt odd that it allowed anyone access to the syringe gun

## Why It's Good For The Game

Discussed in #89390 . 

I don't think this will be supremely impactful, but you never know. But
if anything, it may lead to people using Red Alert more appropriately
more often, which would be cool for roleplay.

The only problem is that they aren't telegraphed very well, only in
`examine`. Could probably make it more well known

## Changelog

:cl: Melbert
add: EVA doors become all access on Red Alert
add: First Aid Supplies (the compartments in Medbay Storage which hold
medkits) become all access on Red Alert (already present on Icebox).
Medbay Storage itself does NOT become all access.
/:cl:

* Automatic changelog for PR #89424 [ci skip]

* Team antags no longer hide all of someone's other antags from the roundend report (#89555)

## About The Pull Request

fixes https://github.com/tgstation/tgstation/issues/82128

if anyone was in an antag team, it'd remove _all of their antag datums_
from being listed in the roundend report - so if, say, someone was a
BB+traitor, they wouldn't appear as a traitor in the roundend report at
all.

this fixes that - instead, only antag datums associated with a team that
appeared in the report will be skipped.

* Minor entertainment monitor refactor (#89506)

## About The Pull Request

Partial port of the refactors in
https://github.com/Monkestation/Monkestation2.0/pull/4995

This gets rid of the hardcoded
`for(var/obj/machinery/computer/security/telescreen/entertainment/tv as
anything in
SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/computer/security/telescreen/entertainment))`,
and adds a new global signal, `COMSIG_GLOB_NETWORK_BROADCAST_UPDATED`,
which all entertainment monitors now register instead.

* Automatic changelog for PR #89555 [ci skip]

* Automatic changelog for PR #89506 [ci skip]

* Adds a recording set up to the Captain's office on all maps, Adds "The Captain Cast" (#89358)

On all maps, the captain will find a brand new green screen and camera
set up in their quarters

This is used to cast the captain's (or anyone's who breaks in) face to
all status displays across the station

(It will also relay your voice to them)

![image](https://github.com/user-attachments/assets/a2278873-c087-41eb-b5b9-d0a848588545)

NOTE: Some maps have a stunning lack of evac displays

Noticeably **Wawa** has like 10. So these will be less effective on
those maps.

Gives Captains a more personable way of addressing the crew for
impromptu announcements rather than resorting to the announcement
computer.

Also opens up shenanigans.

:cl: Melbert, Wallem
add: Adds recording setups to the Captain's office on all maps, allowing
them to project their face to all status displays on the station
add: Centcom now has a soundstage for broadcasting to the station. It's
besides the Thunderdome.
/:cl:

---------

Co-authored-by: Ghom <[email protected]>

* Automatic changelog for PR #89358 [ci skip]

* Adds a very simple admin verb to view everything in the policy json (#89541)

## About The Pull Request

Adds `Policy Panel` admin verb. It opens up a very plain, very simple
tgui that shows you a dropdown of all `policy.json` entries, allowing
you to refer to them if necessary.

There's also a search bar.


![image](https://github.com/user-attachments/assets/11e5c4b1-815b-488d-8566-943145c2d64c)

## Why It's Good For The Game

Half request, half something I thought would be useful.

While admins could VV into config and find the `policy.json`, they
generally appreciate something more user-facing.

## Changelog

:cl: Melbert
admin: Adds the Policy Panel verb, which shows you all the policy the
server has set.
/:cl:

* Automatic changelog for PR #89541 [ci skip]

* Fixes befriend related hard del (#89582)

## About The Pull Request

Attempts to fix this hard del.

![firefox_E7VrWp0AU3](https://github.com/user-attachments/assets/af3baaf3-892e-4a01-a67d-5f7fb6d0292a)

https://github.com/tgstation/tgstation/pull/74791 took care of most of
the AI blackboard hard dels by adding tracking but there is nothing to
stop something that's already been qdeleted from being added to some of
these lists. This PR makes sure nothing like that gets added to the
blackboard.

## Why It's Good For The Game

Less CI failures

* Add air alarm wire knowledge to the Engineer skillchip (#89587)

## About The Pull Request

Add air alarm wires to the list of things that the engineer skillchip
gives you knowledge of

## Why It's Good For The Game

Engineers have access to air alarms so there's no real problem with them
knowing these, and it's helpful for fixing them.

## Changelog

:cl:
qol: air alarm wires are now labeled if you have the engineering
skillchip
/:cl:

* Automatic changelog for PR #89587 [ci skip]

* [NO GBP] Fixes lobstrosities being able to fish other lobstrosities yet again. (#89580)

* Automatic changelog for PR #89580 [ci skip]

* Partially reverts the crusher "buff", making marks work instantly again (#89482)

## About The Pull Request

Reverts new crusher marks from #88171. Crusher marks now can be
instantly detonated, but firing one puts you on an attack cooldown
again.

I did, however, add a fancy animation to them.

https://github.com/user-attachments/assets/ff09084e-36a9-445e-bb27-d7ba4822e37d

## Why It's Good For The Game

This change caused two major issues:
A) Color-based animation doesn't provide you with a clear hint when the
mark is actually ready to be burst, as it can look green but be just a
tiny bit short. Before, mistimed clicks didn't punish you aside from
potentially getting attacked by entering melee range, while now doing so
puts you on another 0.8 second melee cooldown, which feels ***really***
bad as there's no way to see if a mark is actually ready or not.

B) It also removed the potential co-op nuking of mobs/megafauna that
crusher duos could do, switching betwen applying and bursting marks for
doubled DPS, which while rare, I was kinda fond of.

## Changelog
:cl:
balance: Crusher marks now can be instantly detonated, but firing one
puts you on an attack cooldown again
/:cl:
# Conflicts:
#	code/datums/status_effects/debuffs/debuffs.dm

* Automatic changelog for PR #89482 [ci skip]

* Fixes two chemmaster exploits (#89598)

## About The Pull Request

Closes #89530
Also prevents users from being able to swap types mid-print

## Changelog
:cl:
fix: You can no longer dupe reagents or swap types mid-print with
chemmaster
/:cl:

* Adds a flatpacker flatpack to birdshot (#89594)

## About The Pull Request
Closes #89575

## Changelog
:cl:
fix: Added a flatpacker flatpack to birdshot
/:cl:

* Automatic changelog for PR #89598 [ci skip]

* Automatic changelog for PR #89594 [ci skip]

* [NO GBP] Fixes scar overlays on eyes going out of sprite bounds (#89609)

## About The Pull Request

Forgot about this flag and couldn't bother fixing it for a while.

## Changelog
:cl:
fix: Fixed scar overlays on eyes going out of sprite bounds
/:cl:

* Automatic changelog for PR #89609 [ci skip]

* White canes need to be extended in order to allow you to examine faster with them (#89596)

## About The Pull Request
Closes #89519

## Changelog
:cl:
fix: White canes need to be extended in order to allow you to examine
faster with them
/:cl:

* Adds BZ back to birdshot's xenobio (#89608)

## About The Pull Request
Closes #89606

## Changelog
:cl:
fix: Added BZ back to birdshot's xenobio
/:cl:

* Automatic changelog for PR #89596 [ci skip]

* Automatic changelog for PR #89608 [ci skip]

* Fixes borgs not accepting encryption keys, converts them to balloon alerts (#89600)

## About The Pull Request

Closes #89553 as aftermath of #89274 changing radio interaction to
item_interaction despite radios still using attackby
Also converted them to balloon alerts, cleaned up the code and made
removing the key put it into user's offhand instead of dropping it on
the ground.

## Changelog
:cl:
fix: Fixes borgs not accepting encryption keys
qol: Borg encryption key interactions now use balloon alerts, and
popping out a key puts it in your hands instead of dropping it on the
ground.
/:cl:

* Automatic changelog for PR #89600 [ci skip]

* AI uplink brain can no longer give you free ghost from which you can return to your AI core (#89607)

## About The Pull Request

Closes #89605
Nor does it give you free xray anymore. Also fixed a bunch of runtimes,
yeah.

## Changelog
:cl:
fix: AI uplink brain can no longer give you free ghost from which you
can return to your AI core
/:cl:

* Automatic changelog for PR #89607 [ci skip]

* Fixes the ability to send mail to Research through disposals on Tram Station (#89574)

## About The Pull Request

Fixes https://github.com/tgstation/tgstation/issues/89571
…
raysan5 added a commit to raysan5/raylib that referenced this issue Mar 8, 2025
Previous runner `ubuntu-20.04` is deprecated and being removed soon: actions/runner-images#11101
rybakit pushed a commit to tarantool-php/client that referenced this issue Mar 8, 2025
This patch bumps the Ubuntu distro version up to 24.04 (noble) in the
aforementioned workflow, since the Ubuntu 20.04 (focal) image support
will be dropped soon in the GitHub actions.

See also: actions/runner-images#11101
rybakit pushed a commit to tarantool-php/queue that referenced this issue Mar 8, 2025
This patch bumps the Ubuntu distro version up to 24.04 (noble) in the
aforementioned workflow, since the Ubuntu 20.04 (focal) image support
will be dropped soon in the GitHub actions.

See also: actions/runner-images#11101
leleliu008 added a commit to leleliu008/ctags that referenced this issue Mar 9, 2025
The Ubuntu 20.04 Actions runner image is being deprecated and will be fully unsupported by 2025-04-01

Reference: actions/runner-images#11101

Signed-off-by: leleliu008 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests