## About The Pull Request
it's - conjunction of "it" and "is"
its - possessive form of "it"
grammar is hard, and there were a lot of places where "it's" was used
where it shouldn't have been. i went and painstakingly searched the
entire repository for these instances, spending a few hours on it. i
completely ignored the changelog archive, and i may have missed some
outliers. most player-facing ones should be corrected, though
## Why It's Good For The Game
proper grammar is good
## Changelog
🆑
spellcheck: Numerous instances of "it's" have been properly replaced
with "its"
/🆑
* Handful of missed mirrors (#3739)
* fix duplicate traits
* Adds a Contraband trait, and implements contraband as a mechanic to security bounties. (#84003)
This PR does a few things but centrally it's all centered around
mechanically enforcing what items are and are-not considered contraband
in-game.
Contraband items are visually indistinguishable from non-contraband. If
an item is Contraband, it can only be detected in two ways:
* After being scanned by an N-Spect scanner, which is a standard item
security item, assuming it still has a charge to do so.
* Via a scanner gate, which can now be upgraded with an N-spect scanner
to allow for it to scan a person and all their contents for contraband.
Contraband items are intended to be determined both logically and
through other relevant examine text. However, here's the short list of
items that are considered contraband, reserving the right to expand the
list.
<details>
<summary>In hindsight it's kind of a long list.</summary>
* Items that have "contraband" or "illegal" in the name or description.
* Items that allow for the player to obtain other illegal items, that
are NOT particularly stealthy.
* This means that a syndicate uplink is NOT considered contraband, as
they're typically hidden on your person as something else.
* Stealth items under the syndicate uplink, the revolutionary flash, and
some mapped in dangerous items that can come from both syndicate and
company-aligned resources are not considered dangerous.
* Items that are purchased from cargo after emagging or switching to
extended cargo range.
* Items purchased FROM syndicate uplinks, the wizard knowledge scroll,
or other antagonist shops.
* Cursed artifacts/tools magically produced by cultists or heretics.
* Items purchased from the blackmarket.
* Items purchased from the contraband section of vending machines.
* Some drugs and overtly dangerous or criminal byproducts.
</details>
Well, primarily, this is an aid for in-game enforcement of space law.
Based on the length of the above list, we have a LONG, LONG list of
items in-game that are technically considered, in one way or another,
illegal to have on the station, and yet without either metaknowledge of
what those items are, or how they're used, security officers lack some
of the certainty of how to deal with these kinds of encounters.
Additionally to the knowledge aspect of this trait, security officers
may now receive a new civilian bounty to collect items that are
considered contraband, also giving them an incentive to look for and
confiscate contraband that's been found across the station while
upholding space law.
Security has a bounty for 3 different rechargers, and considering access
limitations, most security players aren't going to make this exchange,
so I've lowered the required amount down to 1.
Adjusted the N-spect scanner's description to match it's new
functionality.
The Civilian bounty TGUI now has an additional 1 point of padding to
make it feel less cramped.
https://github.com/tgstation/tgstation/assets/41715314/c3cd4752-b03a-4e0b-959e-1252fcc2369d
**Updated as of 6/19/2024:**
Additionally, some storage items will block the presence of contraband
when going through a contraband aligned scanning gate. These items
include the infiltrator modsuit core, storage implant, void cloak, the
aptly named smuggler's satchel, and the chameleon kit's backpack.
**Updated as of 6/23/2024:**
N-spect scanner now has contextual screentips.
**Updated as of 6/29/2024:**
Scanner gates are now available in all lathes that have a feature
specific to how scanner gates function. So, includes cargo (contraband),
security (weapons), and medbay (diseases).
Originally, this started out as a way to be able to provide more
in-character and in-flavor bounties for security officers, because they
suck! Most security bounties as they exist right now do the worst
possible things from all respective bounties:
* They detract away from a job's actual responsibilities as opposed to
working with them.
* They're best completed while sitting next to your lathe and running
items back to the bounty pad.
* They exist with such esoteric rarity of high quantity of items that
it's miserable to fulfil.
As a result, I started work on this as a framework to allow security
officers to be further incentivized to collect contraband across the
station, either as a result of the gamemode or just through routine
patrols across the station.
Implementing it as a learning tool for security as well just happened to
work out as an additional bonus, and having a function in-game allowing
newer or less experienced players to know if an item is considered
dangerous or conspicuous also works as a particularly good way to
provide information where a player may not know what they're up against.
If nothing else, this might be interesting to try, and if not, I'll just
snip out the QOL changes from it and we'll see how it goes.
Going forward, I am a bit hesitant about the contraband scanner gate
mode, and as such, will try working with the admin team to determine if
that's a good feature to keep around for game health, while hoping to
give it a chance in the fullness of time.
🆑
add: Items spawned via traitor uplinks or are known illegal contraband
on the station can now be scanned and identified as such by the N-spect
scanners in security. These only applies to overt traitor or antagonist
items, and "stealth" items will not be seen as such.
add: Scanner gates can now be upgraded by using an N-spect scanner on it
to unlock "contraband scanning" mode.
add: Security officers can now be offered a bounty to turn in pieces of
contraband.
add: Some stealthy storage items like storage implants, smuggler's
satchels, void cloaks, the infiltrator modsuit, and the chameleon
backpack will block the presence of contraband on your person when
placed inside.
qol: N-spect scanner contextual screentips.
balance: Recharger security bounties ask for a quantity of 1, down from
3.
qol: security, cargo, and medbay have access to scanner gate boards.
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Adds six new strange object powers! (#84775)
DESIGN CONCEPT: Strange Devices are at their best when they're odd tools
which can help a department out, with some strange drawbacks that make
them interesting and unique. Foam for the Janitor, Flashbang for
Security, Teleporter for tiders, Corgimaker for the chef. They're also
ambiguous enough that they can really be used by anyone for silly
hijinks.
Drink Dispenser: Creates a glass, then fills it up with a random drink.
Bioscrambler: After a noticeable warning, bioscrambles people nearby.
33% chance to be used up on use.
Recharger: Shocks you, but recharges one random item to max battery.
Hugger: Hugs everyone in range as if you had the friendly trait.
DImensional: Converts the surroundings to a random material-theme. Each
use increases cooldown by two seconds.
Disguiser: Drops your clothing to the ground and replaces it with a
delete-on-drop costume and a randomly assigned cardboard ID.
Removed an unused and unusable shock flag.
Removed an unused dumb ghost item.
Added a proc that returns a hex color with the # attached.
> DESIGN CONCEPT: Strange Devices are at their best when they're odd
tools which can help a department out, with some strange drawbacks that
make them interesting and unique. Foam for the Janitor, Flashbang for
Security, Teleporter for tiders, Corgimaker for the chef. They're also
ambiguous enough that they can really be used by anyone for silly
hijinks.
Request by ArcaneMusic! He wanted new abilities to go along with the new
sprites, and approved these.
> Removed an unused dumb ghost item.
please stop using costume subtypes for OP items. whats the damn point of
the subtype if youre just going to screw with it
> Added a proc that returns a hex color with the # attached.
idk why it didnt have this tbh
🆑
add: Adds six new strange object powers! Drink dispenser, bioscrambler,
recharger, hugger, dimensional, disguiser.
code: Removed some unused code and items, and added a proc that returns
a random #colorstring.
/🆑
* [NO GBP] the random spawner loot weight config is not an integer (#84814)
Sets `integer` to false.
Also a tidbit about the `skew_loot_weight` proc, though loot lists with
uneven weights all tend to add a value to all entries so it isn't an
issue.
The config isn't an integer.
N/A
* The techweb no longer erroneously refers to MODsuits as exosuits (#84800)
At some point, some of the techweb node descriptions were changed, so
that it referred to certain modsuits as exosuits. This just changes it
back.
The term "exosuit" is generally used for mechs, not modsuits. The
techweb descriptions should refer to modsuits as modsuits.
🆑
spellcheck: The techweb no longer erroneously refers to MODsuits as
exosuits.
/🆑
* Adds new hairstyle - Short Bangs 2 (#84804)
Adds a new hairstyle called Short Bangs 2.
The hairstyle is basically an edit of the existing double buns, except
the hair buns themselves are removed.
https://github.com/tgstation/tgstation/assets/66234359/38fe3b09-c42b-43e6-9e30-949428aab506
More customization, variety and character flavor is great. Double buns
itself is a good hairstyle but some may not like the hair buns out of
personal preference or that it can look weird on non-human species like
felinids.
🆑 Hardly3D
add: Added new hairstyle: Short Bangs 2
/🆑
* Offset render relays for non-offsetting planes to match highest matching render plane (#84184)
**Alternate title: "Fix blind people getting so blind they become deaf
when going down a flight of stairs"**
So 'bout half a week to a week ago I overheard a friend complaining
about blind people not seeing runechat on lower multi-z levels. Asked a
bit, apparently they'd reported this about half a year ago, and it's
still an issue.
So in my never-ending hubris I decided to just go and fix it!
Now, admittedly? I really _really_ do not get the rendering system we
use.
The simple options were right out: we can't allow the fullscreens plane
to be offset, as this causes issues with looking up/down, or disallow
runechat from being offset, which causes issues with runechat from other
levels.
After poking our very cool and smart rendering guy several times over
the course of the last week, this is what we got to:
We simply make the rendering relays for non-offsetting plane masters
point to the highest rendering plane that matches the target.
We do this by offsetting the rendering relays in place, by adjusting
their plane and layer values to match the new offset, with a new
`offset_relays_in_place(new_offset)` proc called in
`/datum/plane_master_group/proc/transform_lower_turfs(...)`.
Importantly, we compare the current layer values to what they should've
been, so we don't accidentally override relays with custom-set layers.
This fixes our issue (as tested on wawastation):
<details>
<summary>Images</summary>



</details>
Fixes#80376.
🆑
fix: You can see runechat above fullscreen overlays on lower multi-z
levels again. Rejoice, blind players. Please report any weird rendering
layering issues.
/🆑
* illegal tech flag got changed
* Automatic changelog for PR #84003 [ci skip]
* Automatic changelog for PR #84775 [ci skip]
* Automatic changelog for PR #84800 [ci skip]
* Automatic changelog for PR #84804 [ci skip]
* Automatic changelog for PR #84184 [ci skip]
* Makes the smoking pipe sprite not give you a phantom stache. (#84898)
The smoking pipe currently gives you a phantom stache. Observe, note the
black background and know this character has no facial hair.

I basically adjusted the pixels so it'd look better from different
directions.
This is the new look - approximately.

Smoking pipe is cool for RP but the sprite's fucked.
🆑
image: the smoking pipe's directional looks have been altered to make it
less ugly
/🆑
(cherry picked from commit c499c51bb3)
* Automatic changelog for PR #84898 [ci skip]
(cherry picked from commit 1e80a72dee)
* Revert "Automatic changelog for PR #84898 [ci skip]"
This reverts commit 1ddc7d43de30bb7ef029d1ddd39f86ded94e110c.
* Revert "Makes the smoking pipe sprite not give you a phantom stache. (#84898)"
This reverts commit b66b9d634e5f28e40e800586d4642468049767e6.
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: GPeckman <21979502+GPeckman@users.noreply.github.com>
Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com>
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: orange man <61334995+comfyorange@users.noreply.github.com>
Co-authored-by: NewyearnewmeUwu <70115628+NewyearnewmeUwu@users.noreply.github.com>
Co-authored-by: SomeRandomOwl <2568378+SomeRandomOwl@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
* Another batch of missed mirrors :) (#3811)
* Fixes bookshelf attackby (#84929)
Closes#84884
Adds early returns, cleans up and fixes whatever was going in bookshelf
attackby code due to lack of early returns and state weirdness.
🆑
fix: You can attack bookshelves in a variety of states once more
/🆑
* You can no longer move chairs as a ghost (#84972)
Partially handles #84971🆑
fix: Ghosts can no longer move chairs
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Split security gloves from black gloves, gave sprites to those and tackling gloves, moves tackling to right-click (#84909)
Added security gloves, which have the fast cuff trait. Normal black
gloves no longer have them.
Adds sprites for security and tackling gloves, moves tackling to
right-click!
Also added blue security gloves for the blue sec PR. Whoever merges it
first will, assumedly, add it then.
Sprites here:

Moved tackling to right click.
> Added security gloves, which have the fast cuff trait. Normal black
gloves no longer have them.
Didn't make any sense that normie gloves had these. It was an
undocumented feature! Why can jannies fast cuff!
> Adds sprites for security and tackling gloves, moves tackling to
right-click!
Really smells that these don't have sprites so I quickly slapped some
up, edited from tackler and CE insuls.
> Also added blue security gloves for the blue sec PR. Whoever merges it
first will, assumedly, add it then.
We can't have blue sec with red gloves!!!
> Moved tackling to right click.
It's so fuckin annoying to accidentally tackle when you're trying to
throw something. It's the biggest thing that prevents me from putting on
gloves. Now it'll rarely, if ever, be a problem: Pressing right click
while thowing mode is on is unlikely to ever happen accidentally.
🆑
add: Added security gloves, which have the fast cuff trait. Normal black
gloves no longer have them.
imageadd: Adds sprites for security and tackling gloves, moves tackling
to right-click!
imageadd: Also added blue security gloves for the blue sec PR. Whoever
merges it first will, assumedly, add it then.
qol: Moved tackling to right click.
/🆑
* Lavaland raptor barn improvements (#84967)
This PR re-maps the lavaland raptor barn to:
1. Have bridge access from public and regular mining so people are not
forced to build one themselves
2. Give the area a bit of spice to look more visually interesting
3. Gives anyone working on raptors less of a giant walk to go eat

<details><summary>In game screenshots</summary>





</details>
It seems like a major oversight that there was no reliable walkway to
and from the barn. Additionally, the barn currently looks out of place.
This PR makes it a cohesive themed area, making it more comfortable and
attractive to interact with while fitting better into the overall "on
lavaland" theme.
🆑 Thedragmeme
qol: re-maps the raptor barn to not stick out like a sore thumb
fix: Miners and the public both can access the raptor barn without
having to make a bridge themselves
/🆑
* Human AIs get a portable crew monitor, loses borg costume and implant (#84965)
Removes Human AI's teleport blocker implant and borg costume and gives
them a portable crew monitor in their bag instead.
I originally gave human AIs a teleport blocker so it would be a little
harder to leave the SAT, but I don't think it should be impossible. With
enough effort and determination, it should be possible for a human AI to
go get their own food or go interact with crew and whatnot. Their
slowness is meant to be a deterrent and I think it is a fine one that
doesn't need this extra implant, not to mention that I'd like to keep
cybernetics on the human AI to a minimum.
In the original Human AI PR, I had given them a borg costume before they
got their own custom outfit. Now that I gave them that, the borg costume
is now just outdated. They shouldn't look like a borg to their borgs,
they should stand out.
As for the portable crew monitor, I thought it would be the best way to
give human AIs the ability to see people's vitals like AIs could, but
only if their sensors are maxed. AIs can only see people's medhuds if
the person's sensors are on so they don't necessarily need one, they
just won't see things like diseases and such, which I think is fine.
🆑
balance: Human AIs no longer have a teleport blocking implant or borg
costume, but now has a portable crew monitor.
/🆑
* You can fire PKAs/plasma cutters point blank at turfs (#84974)
Due to point blank checks in guncode you weren't able to fire PKAs or
plasma cutters at turfs point blank, requiring you to aim at least 1
tile away - making mining with those annoying without mesons.
If you click at a turf in front of you with a mining tool, you expect it
to actually work.
🆑
qol: You can fire PKAs/plasma cutters point blank at turfs.
/🆑
* fixes a big harddel source (#83987)
this hard delete would happen everytime a player joins/observers the
round. upon using the ref tracker i discovered this problem was caused
by movable/screens not cleaning up after their owning huds if it gets
deleted. i didnt weakref it was cause it meant id have to resolve it in
so many places, but if weakrefing is preferable i will do it

fixes a hard delete
* Automatic changelog for PR #84929 [ci skip]
* Automatic changelog for PR #84972 [ci skip]
* Automatic changelog for PR #84967 [ci skip]
* Automatic changelog for PR #84965 [ci skip]
* Automatic changelog for PR #84974 [ci skip]
* Adds Missing Icon States
This should shutup CI
* This nonsense
* Update sec_clothing_overrides.dm
---------
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
Co-authored-by: Thedragmeme <81540056+Draggeru@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: orange man <61334995+comfyorange@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: SomeRandomOwl <2568378+SomeRandomOwl@users.noreply.github.com>
---------
Co-authored-by: FlufflesTheDog <piecopresident@gmail.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: GPeckman <21979502+GPeckman@users.noreply.github.com>
Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com>
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: orange man <61334995+comfyorange@users.noreply.github.com>
Co-authored-by: NewyearnewmeUwu <70115628+NewyearnewmeUwu@users.noreply.github.com>
Co-authored-by: SomeRandomOwl <2568378+SomeRandomOwl@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Thedragmeme <81540056+Draggeru@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
* Fixes hulks being able to activate dualsabers despite not being able to actually do anything with them (#85005)
## About The Pull Request
Closes#85002
This order change shouldn't cause any issues with other uses of on_wield
## Changelog
🆑
fix: Fixes hulks being able to activate dualsabers despite not being
able to actually do anything with them
/🆑
* Fixes hulks being able to activate dualsabers despite not being able to actually do anything with them
---------
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
* Gives a speaking mob megaphone text when standing on top of a closed crate (#84942)
## About The Pull Request
Gives you loudmode when you speak while standing on top of a crate (it
does not apply to comms or open mics)
## Why It's Good For The Game
The assistants have trouble finding megaphones sometimes, now they can
bug command who are in ear shot more effectively
## Proof of Testing

## Changelog
🆑
add: standing on a closed crate now gives loud mode
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Odairu <mdesisto610@ gmail.com>
Co-authored-by: Odairu <39929315+Odairu@ users.noreply.github.com>
* Gives a speaking mob megaphone text when standing on top of a closed crate
---------
Co-authored-by: Odairu <mdesisto510@gmail.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Odairu <mdesisto610@ gmail.com>
Co-authored-by: Odairu <39929315+Odairu@ users.noreply.github.com>
* Adjusts style meter fonts to not be blurry, fixes text overlapping with meter/shifting up when you gain actions (#84979)
## About The Pull Request
Currently the fonts are blurry due to using wrong sizes and also overlap
with the style bar above them. Also they move upwards when actions are
gained due to wrong length coefficient.
Here's how it looks now:

## Changelog
🆑
fix: Style meter text is no longer blurry and doesnt overlap with UI
anymore.
/🆑
* Adjusts style meter fonts to not be blurry, fixes text overlapping with meter/shifting up when you gain actions
---------
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
* Dead raptors no longer get happy when petted or groomed (#84959)
## About The Pull Request
I have noticed that when I petted a raptor corpse I have found, it
started spinning and hearts appeared above it. Apparently, the same
happens if you wash them. This PR makes sure that dead raptors stop
spinning in their graves.
I decided to not to disable the happiness component's processing on
death, as the idea that the raptor's ghost looms over you, patiently
waiting to be revived is funny, and also encourages their revival to be
a priority.
This PR also removes a duplicate animal petting proc that has not
actually been hooked into anything.
## Why It's Good For The Game
Dead animals should consistently act as dead animals.
## Changelog
🆑
fix: Fixes dead raptors getting excited when petted or groomed
/🆑
* Dead raptors no longer get happy when petted or groomed
---------
Co-authored-by: Profakos <profakos@gmail.com>
* Adds 9 wizard perks (#83262)
## About The Pull Request
Add new spells category for wizards: Perks. perks are not really spells,
but useful (and not so useful) improvements for your wizard which
provide more variety for builds.
https://youtu.be/eeVvUkVE3xQ
All perks cost 2 points, they work without wizard’s uniform, cannot
refund, effect start only at the station (perks will not work at the
wizard’s base). Perk can only be purchased once.
9 added perks:
1. Four Hands - gives you 2 extra hands.
2. Worm Born - on death, wizard turns into a large worm and can no
longer return to his previous form.

3. Dejavu - every 60 seconds returns wizard to where he was 60 seconds
ago and restores his health to the amount he had 60 seconds ago.
4. Sale Off - When buying something from a book of spells, wizard has a
chance not to spend points for the purchase, depending on the purchase
price. 1/2/3/4 price chance 50/25/15/10%. You can no longer refund
purchases.
5. Gamble - Give wizard 2 random perks.
6. Heart Eater - By eating someone's heart, the wizard has a chance to
either increase his maximum HP and stamina by 25 or lose 10 percent of
his maximum HP but get a random mutation.
7. Slime Friends - Slimes is your friends now. Every 20 Seconds you
spend 50 nutriments to spawn random big angry slime.
8. Transparence - wizard becomes half transparent, any projectiles pass
through, but you loses 25% of max HP and you get a stalker who will
follow you to the station to kill you.
9. Magnetism - Wizard gain gravitational anomaly that orbit around him,
which attracts objects and people.
https://youtu.be/gp6ZtTrZu7I
## Why It's Good For The Game
Gives the wizard more options to create a fun and interesting builds
## Changelog
🆑
add: new wizard spells category - perks.
add: adds 9 wizard perks.
/🆑
---------
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* Adds 9 wizard perks
---------
Co-authored-by: Xackii <120736708+Xackii@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* Holy skateboard improvement + actually fixing space movement with hoverboards. (#84790)
## About The Pull Request
Added anti-magic support for things that mob can buckle to, so that we
don't have to add the anti-magic component to the mob riding the holy
skateboard but the skateboard itself.
Also, made it possible for the holy skateboard to soar space and open
space with no support without falling, at the cost of a moderate
slowdown.
## Why It's Good For The Game
It's a first-time contributor that added this skateboard to the game,
and it looked like he couldn't find a solution to some of the issues I
brought on in my review. Plus the holy skateboard being usable in spess
has some real Space Jesus vibes to it.
## Changelog
🆑
fix: ACTUALLY fixed hoverboards being able to be used in space.
balance: However, you can soar space with the holy skateboard. at a
slower speed.
/🆑
* Holy skateboard improvement + actually fixing space movement with hoverboards.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Compact Airlock Pump (#84365)
## About The Pull Request
Adds a craftable airlock pump that is an atmos device with distro &
waste nodes on a single side.
When wrenched down, looks for airlocks and sets up a cycling airlock
chamber.
A more compact and flexible alternative to the current binary DP Vent
Pumps.
https://github.com/tgstation/tgstation/assets/3625094/a799b3e8-3425-43fc-9c17-2bdde63ec194
Can also skip cycling when a shuttle is docked with one of the external
airlocks:
https://github.com/tgstation/tgstation/assets/3625094/37054bc0-b8c5-4556-aa2c-0fa5bc3c7c5b
**Set up from scratch**: https://youtu.be/22PDfmJKC7g
## Why It's Good For The Game
Provides an easy to map and setup alternative to DP Vents that doesn't
require any map helpers, var editing and can even be crafted in the
game.

You just need to extend the disto/waste pipes to the place where you
want your airlock to be.
When built, it automatically considers the first found airlock in the
direction of incoming pipes as an internal one, and the opposite -
external.
Cycling is controlled by the airlocks. When you click/bump an internal
airlock, it starts pressurizing. When external one - depressurizing.
When unable to complete the cycle in 10 seconds, unbolts the door
automatically to avoid stucking due to issues with pipes or slow atmos.
TODO:
- [x] Hook up to the power and figure out the logic when unpowered
- [x] ~Make it work with a directly connected layer manifold~
- [x] Make unwrenching require unpowered state and forbid mapspawn pump
unwrenching
- [x] Support airlock arrays and double airlocks
- [x] An option to open airlocks instead of just bolts
- [x] Check for the presence of airlocks and crash if not set up
properly on map
## Changelog
🆑
add: Added airlock pump atmos device to create cycling airlocks
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Compact Airlock Pump
---------
Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Fixes broken icons in the crafting menu for good (#84788)
## About The Pull Request
- Continuation of #75649
Even after that PR some icons that are not 32x32 still appear broken
under the requirement sections

Now all icons are cached away into its own list and we look it up. To
reduce this list size we only store icons that are not the standard
32x32(from debugging there are only 20 items as of now). Icons that are
of standard size can be inferred from the cooking mode & the atom id.
Basically we now get correct icons for everything

Sometime soon i do plan to follow up on
https://github.com/tgstation/tgstation/pull/75649#issuecomment-1562767046
& remove all `preview_icons` but not today
## Changelog
🆑
fix: all icons in the crafting menu (some that you missed) are now fixed
permanently
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Fixes broken icons in the crafting menu for good
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Remote materials don't block multitool on failure (#84797)
## About The Pull Request
- Fixes#84794
`/datum/component/remote_materials` blocks the tool act from continuing
when linking with ore silo fails. We don't want that for stacking
machines
## Changelog
🆑
fix: stacking machines can be linked with its console via multitool
/🆑
* Remote materials don't block multitool on failure
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
* Bloody footprints no longer share their blood when you step on them (#84747)
## About The Pull Request
Closes#84727
This stops you from picking up blood from existing bloody footprints
which could result in a huge mess.
## Why It's Good For The Game
Bloody footprints are extremely messy after being fixed and then buffed,
and while you could argue about it, picking up blood from the footsteps
you made a second ago just by going in circles don't make a whole lot of
sense.
## Changelog
🆑
fix: Bloody footprints no longer bloody your shoes even more when walked
over.
/🆑
* Bloody footprints no longer share their blood when you step on them
---------
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
* Hydroponic trays take in reagents proportionally from plumbing mech (#84714)
## About The Pull Request
- Fixes#84699
The issue isn't with reagents getting transferred one at a time. Yes
this happens inside plumbing machinery and it isn't an issue there
because they are not processed but simply stored(until all reagents can
get there) until it is transferred to another machine that requests it.
This however is a problem with hydroponic trays which both store &
process those reagents. So when 1 reagent comes into the tray & if the
tray gets full before the other reagents can get there it leads to
missing fertilizers/nutrients in the tray causing problems in plant
growth & such.
For e.g. if your ducts have reagents like 3u sodium, 7u ash & 5u water &
the tray has space for only 10u reagents. Using round robin it takes in
3u sodium + 7u ash = 10u reagents. The 5u water is left out cause the
10u request is complete causing the plants to dehydrate & die.
Now trays are reverted to use the old "proportional method" of
transferring reagents leading to trays getting all their nutrients from
plumbing ducts. So using the old technique we get sodium + ash + water =
10u i.e. all reagents in the tray so the plants are happy
Additionally bottler also uses the old "proportional method" of
transferring reagents so it pumps out all reagents into the beaker
## Changelog
🆑
fix: hydroponic trays take in all reagents "proportionally" from
plumbing ducts without leaving any behind
fix: plumbing bottler pumps out all reagents "proportionally" into
output beakers
/🆑
* Hydroponic trays take in reagents proportionally from plumbing mech
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
* [no gbp] fixes watchers making raptors freak out (#84719)
## About The Pull Request
i meant for these changes to be station-side only
## Why It's Good For The Game
closes#84655
## Changelog
🆑
fix: raptors don't easily stress out in lavaland environments
/🆑
* [no gbp] fixes watchers making raptors freak out
---------
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
* [NO GBP] Fixes hoverboard being able to be used in space. (#84533)
## About The Pull Request
Apparently I've left out that `isopenspaceturf(A)` returns false on
normal (not multi-z) space turfs because they're of a different path.
This should fix the fact you can use hoverboards as a substitute
jetpacks, which wasn't intended. You can still use them in space if
there's lattice/catwalk underneath, or another kind of turf on the
z-level below however.
## Why It's Good For The Game
Unintended bit from the skateboard buff PR I had made months ago.
## Changelog
🆑
fix: Hoverboards properly dysfunction in space without any kind of
support underneath them.
/🆑
* [NO GBP] Fixes hoverboard being able to be used in space.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Refactors embedding to use datums instead of storing data in bespoke elements (#84599)
## About The Pull Request
This refactors embedding elements to make them use singleton datums
(similarly to armor) instead being bespoke and creating a new element
every time armor values are supposed to be adjusted.
Default values have been removed from defines due to now being declared
in base class itself.
Additionally fixes vending machines and tackling gloves setting
generated shards (which they instantly embed into their victim) embed
properties to null after running the embedding code, despite said shards
having non-null embedding values by default, making them not be able to
embed into anyone else, also potentially breaking the pain/jostling code
if they somehow get updated.
## Why It's Good For The Game
Current embedding system is an unnecessarily complicated mess as bespoke
elements are hard to work with, and creating a new element every time
you change values is hacky at best. This change should make it easier to
read and work with.
## Changelog
🆑
fix: Fixed glass shards generated from falling vending machines or
tackling windows not being able to embed into anyone.
refactor: Refactored embedding code to use datums instead of bespoke
elements and ugly associated lists.
/🆑
* Refactors embedding to use datums instead of storing data in bespoke elements
* modular fixes
* fix c14
* paint -> pain ugggh
---------
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
* Aquariums now influence area beauty based on their contents. (#84677)
## About The Pull Request
Aquariums now have a beauty element based on their contents. Props give
a fixed beauty value, while for fish it depends on whether they're alive
or not. Some fishes have a better score than others. A few, like the
ratfish, even have negative beauty.
Mobs with the morbid trait now get a positive moodlet when admiring an
aquarium full of dead fish, and a negative one when fish are alive.
Also, this brings a few improvements to bits of aquarium code. Namely
the removal of a GetComponent call and a few balloon alert calls.
## Why It's Good For The Game
Aquariums can be quite decorative at times.
## Changelog
🆑
add: Aquariums now influence the beauty score of an area based on their
contents.
add: Morbid people now get a positive moodlet when admiring an aquarium
full of dead fish, and a negative one when fish are alive.
/🆑
* Aquariums now influence area beauty based on their contents.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Rewrites `GetExactComponent` to be more readable (#84656)
## About The Pull Request
Rewrites `GetExactComponent` to be 1641 compliant, and more readable
## Why It's Good For The Game
This proc was quite unreadable, and less work to make the server run on
1641
## Changelog
🆑
refactor: refactored `GetExactComponent` to be 1641 compatible
/🆑
* Rewrites `GetExactComponent` to be more readable
---------
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
* Fisherman's Discernment show list of fish properly (#84670)
## About The Pull Request
For some reason fish spot examine use fish_counts instead of fish_table
and only show limited fishes. (if there were any at all). So I change it
## Why It's Good For The Game
Bug fix I guess
## Changelog
🆑
fix: Examining a fishing spot twice with sufficiently high fishing skill
(or the skillchip) will get you a list of fishes that can ACTUALLY be
caught
/🆑
* Fisherman's Discernment show list of fish properly
---------
Co-authored-by: homexp13 <52973135+homexp13@users.noreply.github.com>
* Crafting accepts machine subtypes (#84680)
## About The Pull Request
- Fixes#84664
## Changelog
🆑
fix: you can craft the singulo hammer with either a supermatter
engine/shard again
/🆑
* Crafting accepts machine subtypes
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
* Removes stupid listlike var access code (#84648)
## About The Pull Request
[Removes all other listlike var
accesses](4c5996b5c8)
Also fucking dumpsters an unused proc that allowed for arbitrary
variable modifcation. Bad juju
This is undefined behavior and errors in later 515 versions. also it's
stupid as hell
* Removes stupid listlike var access code
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Converts slapcrafting into a bespoke element (#84226)
## About The Pull Request
Converts slapcrafting into a bespoke element, used to be ac omponent
## Why It's Good For The Game
Noticed this was a big C and realized there was no real reason for that.
It's the same recipe shared across different items.
## Changelog
N/A
---------
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Converts slapcrafting into a bespoke element
---------
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Tones down the settler speeds by a considerable margin (both slowdown and speedup) (#84639)
## About The Pull Request
Reduces the upper and lower speed adjustments of the Settler's
Roughrider trait.
## Why It's Good For The Game
I added this to settler as a suggestion from goof, but I promised myself
that should this get overused to the point that it is abused on a
regular basis, I was putting a bullet straight into the back of its
head.
Unfortunately, because of this quirk, raptors had to get super nerfed
just to account for the extra speed because people wouldn't stop
bringing them up to the station to outspeed everyone on foot. People
have since moved onto different mounts. This is going to keep
continuing, so unfortunately for everyone this can no longer persist.
I brought it into this world, and now I'm...limiting it because I would
like people to not worry about a quirk ruining the balance of their cool
mount additions.
## Changelog
🆑
balance: Settlers are a bit slower on their steeds.
/🆑
* Tones down the settler speeds by a considerable margin (both slowdown and speedup)
---------
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* Attempts to put out the CI fires (#84277)
## About The Pull Request

A lot of this all of a sudden, I am going to assume it's related to the
recent spark changes, which are most likely causing (literal) fires in
the testing area.
Fixes https://github.com/tgstation/tgstation/issues/84161
Fixes https://github.com/NovaSector/NovaSector/issues/3123
I'm still testing this one with a few CI runs but the timelines match up
with roughly around the time of the spark PR; it's most likely the
culprit.
EDIT: 8 CI runs so far and the issue has not come up, I am fairly
confident it was the sparks + fuel puddle combination that was the
problem.
EDIT EDIT: Found one more issue with /datum/material/plasma that needs
to be dealt with.
EDIT EDIT EDIT: Issue resolved
## Why It's Good For The Game
Save the burninating for in-game please!
## Changelog
Not player facing
* Attempts to put out the CI fires
---------
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
* Mind links won't highlight your own messages (#84625)
## About The Pull Request
Linked speech now prevents messages from highlighting if its a message
you sent, or if you are the owner of said link.
Also, linked speech messages are now marked as radio messages, for chat
tab purposes.
## Why It's Good For The Game
Because when you have your own name highlighted, it's annoying having
every message with `[Shion Rosenthal's Slime Link]` highlighted, even if
it's _my own_ message.
## Changelog
🆑
qol: Linked speech now prevents messages from highlighting if its a
message you sent, or if you are the owner of said link..
qol: Linked speech messages are now marked as radio messages, for chat
tab purposes.
/🆑
* Mind links won't highlight your own messages
---------
Co-authored-by: Lucy <lucy@absolucy.moe>
* Adds a new anomaly core item to Illumination technology, the photon cannon. (#84368)
## About The Pull Request
This PR adds a new gunkit to the **Illumination Applications** tech node
acquired via BEPIS techs. For years, this funny little tech node has
been one of the lamer results from the BEPIS tech pool, only offering
constructable unique hardhats and access to a micro RLD. Well, lets just
say, badda bing
https://github.com/tgstation/tgstation/assets/41715314/bd869d7f-449a-4563-871a-b90f550e0bda
The photon cannon is craftable via a lathed gunkit obtained from the
security lathe, which fires 4 shots per recharge. Each shot, on direct
contact with a mob, acts like a severity 3 flash. The shot also
distinctly slows down after traveling, so you can more effectively gauge
where it's going to stop moving, as when it reaches it's travel
distance, it will perform a weaker AOE severity 1 flash. Direct hits
will effect silicons, while the AOE flash will not. Direct hits only
deal 5 ***STAMINA* damage.
The Gunkit requires a flux anomaly core to be crafted, completing with
the tesla gun in this respect.
## Why It's Good For The Game
There's been some discussion about how we've hoping to offer higher
power features and options to the game at large using anomaly cores, and
flux anomalies are currently only used for guns, which is rather
unfortunate. The bigger issue, I'd suppose, is that every gun that flux
anomalies can produce are considered lethal, with the event horizon gun
and tesla gun. And honestly, by comparison, the tesla is not lethal
enough to use to any real effect, or practical enough to bother science
enough for the core.
The photon cannon, however, works as a rather effective crowd control
weapon for breaching and incapacitating crewmates, making it ideal for
wardens dealing with large tides of crewmates, officers breaking into
bases, or ~~the captain trying to burn down your library dnd game,
DOUGLAS~~
Overall, it's still a fairly low power weapon, and sits in a niche place
somewhere between a dragNET, flashbang-loaded grenade launcher, the
flash, and the ion-cannon, with it's versatility coming from core rarity
and requiring a BEPIS tech.
**I have since updated this PR so that this gun deals stamina damage
instead of energy damage, and contact with the energy ball deals a short
period of confusion.**
## Changelog
🆑
add: The Illumination Applications technode now includes a gunkit for a
new gun, the Photon Cannon.
/🆑
* Adds a new anomaly core item to Illumination technology, the photon cannon.
---------
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
* Allows for proxy atoms in object melee attack chain (#83860)
## About The Pull Request
1. Objects now have an `get_proxy_for()` proc. This returns an atom that
will participate in the object melee attack chain on behalf of your
atom. Allows for general purpose polymorphism per object interaction
2. Cleaned up some multitool acts to accommodate proxy behaviour
3. You can pry tiles as an Engiborg with crowbar in hand & do other
similar behaviour with crowbar
5. Improves & Depends on #83880. We don't need a hidden omni toolbox &
can create the tools directly in the omnitool and pass them in the
attack chain as a proxy rather than calling the attack chain manually.
All tools are on the borg directly
- Fixes#84355
- Fixes#84359
- Fixes#84393
## Changelog
SyncIt21,zxaber
🆑
fix: omni crowbar tool interaction for replacing tiles has been fixed
fix: techfab screentip does not runtime when you hover over it with an
omnitool multitool
fix: medi borgs can do brain surgery again
code: improved multitool & general tool code for some machines
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Allows for proxy atoms in object melee attack chain
* Update bsa_cannon.dm
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
* fixes mansus grasp not removing runes (#84570)
## About The Pull Request
fixes mansus grasp not removing runes
## Why It's Good For The Game
closes#84289
## Changelog
🆑
fix: fixes mansus grasp not clearing runes
/🆑
* fixes mansus grasp not removing runes
---------
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
* Fixes instruments enhanced by the portable tuning rite not being able to cast any rites (#84362)
## About The Pull Request
The string path that has been passed to `perform_rite` has not been
converted to an actual type path. This meant that religious tools that
had a whitelist of rites they could perform, could not actually perform
these rights, as a string path does not equals with a typepath. This PR
fixes that.
## Why It's Good For The Game
Makes a mechanic work, allowing the chaplain to store up rite slots as
intended.
Fixes#83997
## Changelog
🆑
fix: Instruments enhanced with portable tuning can perform the rites
that have been granted
/🆑
* Fixes instruments enhanced by the portable tuning rite not being able to cast any rites
---------
Co-authored-by: Profakos <profakos@gmail.com>
* [NO GBP] Fixes floating point errors in plumbing machinery (#84405)
## About The Pull Request
- Fixes#84361
This brings back the round robin method of transferring reagents I
removed in #78884 but in a more miniaturized & light weight form. It
should speed up cpu performance of plumbing as a whole
**The Downside**
The reason i was hesitant about bringing it back is because this
technique can result in **missing reagents**
For example let's say our plumbing pill press has only space for 10u
more of reagents but in the ducts we have say 3 reagents i.e 3u copper,
7u Aluminium, 4u iron(Order of reagents in the ducts is important)
When the pill press makes the request for 10u of reagents from the ducts
we get 3u copper + 7u Aluminium = 10u. **We completely leave out iron**
because the 10u request has been fulfilled.
This happens when the below 2 conditions are met
- When there are a large number(different types) of reagents or large
volume of one type of reagent in the ducts
- When there isn't enough space in the machinery to take in all these
reagents
This is why the plunger was made so you can flush out reagents from
machines and can make space to take in those missing reagents
**The Upside**
You don't get any floating point errors. Also given that this code has
been around for years before i removed it, It should be ok to bring it
back. Assuming players have always been sensible to only create the
exact volume of reagents they need without making excess & quickly push
out these reagents (either through output gate, pill press etc) from the
ducts you should not see any problems. Plus this code is only exclusive
to plumbing so no outside usage

**Other changes**
- Plumbing IV Drip now only accepts reagents i.e. it only has a input
pipe no output pipe just like your output gate & smoke machine. This was
done because it is not an instance of `obj/machinery/plumbing` & so it
won't use the round robin transfer technique leading to again
re-introducing errors in the plumbing system.
Also it makes sense as in we only need it to accept reagents from the
ducts & inject it into the connected mob/whatever. We don't need it to
pump out reagents back into the system
- Output gate still uses the regular "proportional" method of
transferring reagents. This is so if you use a beaker or something to
take reagents out from it, it gives you all reagents without "missing
any"
## Changelog
🆑
fix: plumbing machinery should have consistent volumes throughout the
course of its operations
fix: plumbing iv drop now only accepts reagents from ducts but won't put
reagents back into it i.e. it only has a input pipe
/🆑
* [NO GBP] Fixes floating point errors in plumbing machinery
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
* You no longer need to reach the very edge of the game screen to reach the maximum zoom range when scoped (#84544)
## About The Pull Request
This PR multiplies, by 1.1, and caps the x and y offset coords of the
zoom cursor catcher to make it humanly beareable to reach the maximum
zoom range without slipping the cursor out of the game screen.
## Why It's Good For The Game
The scope component is nice but it can be annoying at times.
## Changelog
🆑
qol: You no longer need to reach the very edge of the game screen to
reach the maximum zoom range when scoped.
/🆑
* You no longer need to reach the very edge of the game screen to reach the maximum zoom range when scoped
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Some material container patches (#84553)
## About The Pull Request
- Fixes#84517. material container won't consume the contents of an item
if that item itself is rejected for any reason(lack of mats, not
suitable for redemption etc)
- You can use any storage medium (not just bags, boxes but anything that
has `atom_storage`) to dump stuff into an material container
## Changelog
🆑
fix: material container won't consume the contents of an item if that
item itself is rejected for any reason
qol: you can use any storage medium & not just bags/boxes to dump stuff
into material containers
/🆑
* Some material container patches
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
## About The Pull Request
nerfs on station raptors. now raptors will freak out if hit by an energy
gun of any kind, or if they recieve any form of stamina damage (for
example from a baton) and will knock their rider off rendering them
disabled for a few seconds. im open to other suggestions and feedback
## Why It's Good For The Game
i was a bit saddened to learn these are still being brought up station
and some being abused for on-station combat as meatshields. they were
primarily balanced around the lavaland tower defense minigames which
might make them too tanky of a vehicle on station and unfair for whoever
has to deal with them. this pr hopefully restores them to only serve
their original purpose, which was to be super nieche mining tools
## Changelog
🆑
balance: raptors will now knock off their rider and disable them if hit
by any energy projectiles or if they recieve any stamina damage
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
## About The Pull Request
There were some tiles and wallframes in lathe designs, while most of
these are already in the crafting menu. Moved all of them into the
crafting menu to avoid confusion, when you can't find some wallframe in
the menu because it must be built in lathe.
Made the light tile craftable in menu, instead of slap-crafting, and
made the circuit tiles use similar recipe (since they both are emissive
tiles). And the circuit tiles can now be cycled in-hand:

## Why It's Good For The Game
Centralized place for tiles and wallframes.
## Changelog
🆑
qol: Made light tiles available in the crafting menu
qol: Circuit tile variants can be cycled in-hand
add: Moved loose tiles and wall frames from lathe designs to other tiles
and frames in the crafting menu
/🆑
---------
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* basic firebots refactor (#83861)
## About The Pull Request
this refactors firebots into basic bots. also this adds a small addition
of emagged firebots giving out (extremely dubious) fire safety hazard
tips!

## Why It's Good For The Game
refactors firebots into basic bots and makes them alot more responsive
and helpful
## Changelog
🆑
refactor: firebots are now basic bots
/🆑Fixes#83568
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Afevis <ShizCalev@ users.noreply.github.com>
* basic firebots refactor
---------
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Afevis <ShizCalev@ users.noreply.github.com>