## Interface Science
You know what the problem is with our features? They're all too easy,
too optimized to use. Look at Genetics; we went from a confusing UI that
a 14 year old hardcoded with html into byond to a polished UI using
tgui, optimized for player comfort, and gameplay has suffered. Too long
we have coddled players with fun and easy content, no more I say!!!
To fix ss13, I have added a feature with the most awful, unusable UI
ever. It's just wires with random sequences that may or may not do
something. And yet, you will use it till your fingers bleed and your
eyes go white, and you will be grateful. "Thank you coder daddy", you
say as you sacrifice yourself to a display of unending, procedurally
generated dogshit.
<img width="563" height="294" alt="image"
src="https://github.com/user-attachments/assets/e56c947f-a40c-4df9-beed-672812357576"
/>
Or maybe you're a sick little deviant, and you don't respect me. Instead
of using my awful UI, you start optimizing. You've forced the secret
pulse code, and you're not going to pulse them again and again. You make
your own interface by connecting it with signallers, or integrated
circuits. Ahhh, you beat me! Damn it, and you're gonna get away with it
too.
## About the Pull Request
Adds new job content to science. Science spawns with a few "gizmo"
devices and can order more through cargo. These gizmo's have random
functionalities, like the strange objects you can find in maintenance.
These functionalities come with different settings to change how they
operate.
However, there are no buttons, just wires or a voice interface. You need
to solve, for example, a wire puzzle. You just pulse the wires, and if
you hear ping the sequence is good, if you hear buzz its bad. Just keep
going till you hear a creak sound.
If you do a sequence correctly, there are a bunch of randomly generated
ways this interacts with the functionality, mimicking real life settings
and interactions. Imagine a TV remote with randomized buttons, and you
have to map them out again.
Once you've mapped the sequences, you can make an interface. For simple
ones, you can just make some signaller assemblies. For the best control,
you could connect it with a bunch of integrated circuit signallers, and
program sequences into an integrated circuit machine.
Below is a short video of how the puzzle solving works. (I can't be
arsed to figure out how to record tgui, here's a video I made with my
phone. Also I had the sequences written down, which I STRONGLY recommend
you do.)
https://github.com/user-attachments/assets/93f79f0f-df14-4ff9-8096-f079ebae7e91
<details>
<summary>Actual details</summary>
I have hidden the details to make exploring the feature itself more fun.
The whole thing was written to be convoluted, but intuitive. You should
be able to hit it with a multitool, and figure out everything from
there. It will take a bit to get the gist of it.
Nonetheless, for review purposes I have written down the details here.
If you're reading this for non-review purposes, you should know I have
embedded an internet curse that will at some point in 2026 teleport you
2 meters in a random direction. Continue reading at your own discretion.
The gizmo objects is usually generated with 1 or 2 'gizmodes'.
'Gizmodes' contains the fun-ctionality, and holds different operating
modes (so dubbed 'gizpulse'). You can't directly select a gizpulse, but
instead it generates a bunch of mode selections.
For example, a function that toggles lights has two gizpulses: toggle_on
and toggle_off. There are four different mode selects:
Cycle mode: Adds signal to cycle to the next gizpulse, and to activate
the current gizpulse
Select mode: Adds a signal for selecting every gizpulse, and a signal to
activate whatever the activate gizpulse is
Direct activate mode: Adds a signal for selecting every gizpulse, and
also immediately activates that gizpulse
Cycle-active mode: Cycles to the next mode, and activates it
(inconvenient but only has 1 signal to worry about)
So a light gizmode with the randomly selected 'select mode' has three
signals: select toggle_on, select toggle_off and trigger the currently
selected gizpulse.
Currently implemented gizmodes:
- Lights: toggle on, toggle off
- Move: start moving, stop moving
- Food printer (its filled with the spongebob grey goop thing): print
food (donut or burger)
- Mood pulser (AOE): happy pulse, sad pulse, radiation pulse
- Mopper: select different reagent, dump onto tile (1/2/3 range), make
smoke cloud
- Teleporter (5 to 15 tiles, random dir): Teleport self, teleport mobs
in range 1, do both
- Electric: charge from nearest cell (looks into objects and stuff),
magically gain some charge, make lightning, make emp, charge nearby
object, defibrillate in an area
- Copier (makes fake copies of mobs and objects, visual copy only): scan
objects, print objects, erase all copies
- Sputter: dump oil and shake, throw self
- Bad: explode, explode, explode harder, explode with fire, stab you,
warning, make robot spider, breaks your bones, throws a grenade at you,
radiation pulses
- Some behind the scenes gizmodes (language toggle for voice interface,
for example)
The voice interface starts with wires, with signals to toggle the
language or dump the code words. After that, you can talk to it using
the code words similarly to the wire sequence to solve the rest of the
gizmodes.
</details>
I've added two to every map, somewhere in or near the experimentor room.
They may ocassionally spawn from a maintenance crate spawner
<img width="611" height="331" alt="image"
src="https://github.com/user-attachments/assets/3782700f-57d3-4591-9282-e0de590056e1"
/>
## Why It's Good For The Game
It's really difficult to have "experimentation" type features in the
game. It all has to fit into 1h rounds, and people get used to it real
quick. The experimentor and strange objects kinda try, but it's just one
button and praying a bear doesnt spawn you explodes you.
I don't claim to have solved this perfectly, but I think this is fun.
You truly have to start experimenting, be systematic and write things
down. If you figure out how something works, you can go to the next
stage of making it more convenient to use. I think it's really fun to
mess around with integrated circuits and USB's, and make, for example, a
BCI controlled bluespace launchpad.
So I lean into it! There's different settings to account for, and its up
to you to make it usable! If you like integrated circuits, you'll love
this (maybe).
The gizmo functions are aimed at benefiting the station as a whole in
some ways, to motivate people to make some fun systems for these to get
maximum benefit! A mood pulser near a busy area will make everyone
happier! (I do need to add more like these, I got distracted doing
stupid shit.)
## About The Pull Request
Refactor the majority of the current gasmix mole change use cases into a
proc called adjust_gas which simply adds the designated mole count of
the species into the gas mix while also handling asserting the gas and
garbage_collect()
I also added adjust_multiple_gases and convert_gas() for modifying
multiple gases and within a gasmix
## Why It's Good For The Game
Lemon wanted this to be done as part of the air group refactor
## Changelog
🆑
refactor: refactored majority of gas_mix mole change into adjust_gas()
proc
/🆑
## About The Pull Request
from the closed snowdin pr that was closed due to apathy.
everything on the table is up for discussion and subject to change
## Why It's Good For The Game
As of the itme of writing this for something called antag gear spawner
the best thing you can hope to get is a syndicate toolbox or 15 raw
diamonds, this changes that by adding instead just actual antag gear but
not real antag gear- more so just loot in general.
## Changelog
massive change just look at changed files
🆑
add: added more things to the antag gear spawner
/🆑
## About The Pull Request
This fixes a random spawner issue where objects could spawn outside
windows because the pathing determined that window spawners are not
considered dense.
See the code below:
```dm
/obj/effect/spawner/random/proc/has_unblocked_line(destination)
for(var/turf/potential_blockage as anything in get_line(get_turf(src), destination))
if(!potential_blockage.is_blocked_turf(exclude_mobs = TRUE))
continue
return FALSE
return TRUE
/turf/proc/is_blocked_turf(exclude_mobs = FALSE, source_atom = null, list/ignore_atoms, type_list = FALSE)
if(density)
return TRUE
for(var/atom/movable/movable_content as anything in contents)
// We don't want to block ourselves
if((movable_content == source_atom))
continue
// don't consider ignored atoms or their types
if(length(ignore_atoms))
if(!type_list && (movable_content in ignore_atoms))
continue
else if(type_list && is_type_in_list(movable_content, ignore_atoms))
continue
// If the thing is dense AND we're including mobs or the thing isn't a mob AND if there's a source atom and
// it cannot pass through the thing on the turf, we consider the turf blocked.
if(movable_content.density && (!exclude_mobs || !ismob(movable_content)))
if(source_atom && movable_content.CanPass(source_atom, get_dir(src, source_atom)))
continue
return TRUE
return FALSE
```
## Why It's Good For The Game
Random spawners will now respect window boundaries.
## Changelog
🆑
fix: Fix window spawners not being dense, which affected random spawners
LOS boundaries.
/🆑
## About The Pull Request
Roundstart xeno egg no longer sends a second report if it rolls, now
instead adding an addendum to the roundstart report
<img width="409" height="111" alt="image"
src="https://github.com/user-attachments/assets/14a62737-4d01-4240-8d3f-975e409d1fc2"
/>
## Why It's Good For The Game
I never really liked how meta-game-able the second alert is, the moment
you hear `Secure command report created` 2 minutes into the round you
know it's an egg round. Combining the roundstart alerts give the command
staff the option of trying to hide it which could be fun.
## Changelog
🆑 Melbert
qol: Roundstart xeno egg is now mentioned in the roundstart report as an
addendum, rather than as a second report (usually) following the
roundstart report.
/🆑
## About The Pull Request
This PR takes the improvements from:
- #95313
And builds on it quite a bit. Slots now have:
- New symbol icons based on SS13 objects instead of Font Awesome icons
- Several new slot machine subtypes for every department
- New slot machine random spawner that is used to replace all slot
machines on all maps
- ~~Greyscaled the slot machine sprite and replaced it with GAGs (to
color them by department)~~
- New rare trap/hazard abilities depending on symbols (syndiebomb =
flashbang, handcuffs = cuff, singulo = shock, etc.)
- Syndie slot machine that comes preinstalled in all syndie
outposts/nuke bases
- Slot machines circuits can be configured with a screwdriver to change
the type and emagging results in the syndicate version
- Tweaked the pixel offset for the jackpot flashing icon so it is in the
correct position
- Improved the name generator with more adjectives and nouns for all
subtypes (ex. clown slot machine = "Lucky Giggles")
- IDs and Department budget cards can be linked as the owner of the slot
machine, however NT takes a 40% cut off the profits since jackpots/bonus
spins are paid out by NT
##### And yes... there is a clown and mime subtype... honk
## Why It's Good For The Game
<img width="1503" height="791" alt="dreamseeker_t8lLODECva"
src="https://github.com/user-attachments/assets/597355be-aee0-483a-82a4-7f8d6fa9ae90"
/>
Better slot machine icons and code.
## Changelog
🆑
add: To help cover budget expenses, NT has redesigned and installed new
slot machines that are themed by department. Slot machines can also be
linked to bank accounts via ID cards or department budget cards. NT
takes a 40% cut of profit to payout major jackpots and bonus spins.
Please gamble responsibly.
map: Replaced all slot machines with slot machine random spawners. Added
syndicate slot machines to Syndicate bases and nuke outposts.
/🆑
---------
Co-authored-by: Lucy <lucy@absolucy.moe>
## About The Pull Request
1. Refactors gauze
Removes gauze var from `/stack`, adds a shared parent between tape and
gauze.
Behavior of "sticking thing on limb" is now a bit more generic, with
there being a component to facilitate it and a framework on `/bodypart`
Closes#92990
2. Adds Tourniquets
A first aid item, when attached to a limb it reduces blood loss from
that limb by 90%.
However while attached you walk slower (if on a leg), interact slower
(if on a arm), and yes, you rapidly die if you put it on your head
Paramedic belts have their starting equipment changed again for the
500th time.
Surgical tape -> Tourniquet
Bone gel -> Bonesetter
<img width="604" height="224" alt="image"
src="https://github.com/user-attachments/assets/443dd5c0-44a3-4ccb-9f6a-c561bbf2fba9"
/>
## Why It's Good For The Game
Adds some more variety for field treatment of bleeding wounds, and in
the future we can add things like "improvised tourniquets" or
"improvised splints" with wooden planks.
## Changelog
🆑 Melbert
add: Adds Tourniquets. While attached to a limb, reduces blood loss from
that limb by 90%, but makes you walk / interact slower. (Or if you put
it on your head, you die.)
add: You can purchase Tourniquets from the premium section of the
medical vendor
add: Paramedic belt setup has changed yet again: Surgical tape replaced
with Tourniquet, Bone gel replaced with Bonesetter.
add: You can use all forms of tape as splint - like Gauze. Will secure a
fracture but won't stop your blood from exiting.
refactor: Refactored gauze entirely, report any strangeness with it (or
tape, or tourniquets)
/🆑
## About The Pull Request
This PR refactors ``effect_system``s to be a bit easier to use by
getting rid of ``set_up``, allowing ``attach()`` to be chained into
``start()`` and refactoring most direct system usages in our code to use
helper procs.
``set_up`` was unnecessary and only existed to allow ``New``'s behavior
to be fully overriden, which is not required if we split
sparks/lightning/steam into a new ``/datum/effect_system/basic`` subtype
which houses the effect spreading behavior. This allows us to roll all
logic from ``set_up`` into ``New`` and cut down on code complexity.
Chaining setup as ``system.attach(src).start()`` also helps a bit in
case no helper method exists
I've added ``do_chem_smoke`` and ``do_foam`` helpers, which respectively
allow chemical smoke or foam to be spawned easily without having to
manually create effect datums and reagent holders.
Also turns out we've had some nonfunctional effect systems which either
never set themselves up, or never started, so I fixed those while I was
at it (mostly by moving them to aforementioned helper procs)
## Why It's Good For The Game
Cleaner code, makes it significantly easier for users to work with. Also
most of our effect system usage was copypasta which was passing booleans
as numbers, while perfectly fine helper procs existed in our code.
## Changelog
🆑
refactor: Refactored sparks, foam, smoke, and other miscellaneous effect
systems.
refactor: Vapes now have consistent rigging with cigs using the new
system.
fix: Fixed some effects never working.
/🆑
## About The Pull Request
Some full barricades still managed to crop up in places they shouldn't
due to unnoticed barricade spawners, these have now been replaced by new
crude barricade spawners(so it keeps 20% chance to not be there) where
relevant and the maplint has been updated to keep them out of where they
don't belong
## Why It's Good For The Game
If a door is barricaded it should be visible
## Changelog
🆑
map: The last full wooden barricades on top of dense objects have been
excised
/🆑
## About The Pull Request
As title says, skin butchered from humans (currently only applies to
lizardskin) now inherits their owner's skin color, and so do items
(lizardskin boots and hats) made from it.
Also this PR gagsifies lizardskin hats and boots for this very reason.
## Why It's Good For The Game
Consistency, when you butcher a purple lizard you should get purple
lizard boots.
## Changelog
🆑
add: Made lizard skin and lizardskin items inherit their "donor's" skin
color
/🆑
## About The Pull Request
Void stamp added to bureaucracy loot spawners, a new box that contains a
granted, denied, and void stamp found in the lawdrobe, hop locker,
bureaucracy crate, mod stamper module, and the paperwork implant gets a
stamp that can cycle between 3 different ones like the mod stamp.
## Why It's Good For The Game
Finally the void stamp is obtainable
## Changelog
🆑
add: The void stamp is now obtainable
add: The lawdrobe now sells a box of stamps
add: The head of personnel's locker now contains a box of stamps
fix: The mod stamper module is now visible
/🆑
---------
Co-authored-by: Fghj240 <fakeemail@notrealemail.com>
## About The Pull Request
Floppy disks received a sprite upgrade, as well as unique wraps:
<img width="364" height="150" alt="image"
src="https://github.com/user-attachments/assets/0ac433e3-7432-4c06-bec2-aeae00b6852f"
/>
<img width="786" height="527" alt="image"
src="https://github.com/user-attachments/assets/0f36bd0d-0362-4431-8131-49060a2fe348"
/>
You can now stack floppy disks! They also scatter around when thrown.
The video also showcases new styling options with a selection of
stickers! You can also write something on the disk instead of selecting
an icon:
https://github.com/user-attachments/assets/ff0a8542-9d79-4108-ae46-672ca5d620a2
MOST disks now inherit the `/item/disk` type to properly stack and do...
stuff. An updatepaths script included.
## Why It's Good For The Game
Old school is cool. Stacking disks makes them feel more authentic, while
styling allows for more crearivity!
## Changelog
🆑
add: New unique wraps for floppy disks
qol: Floppy disks can now be stacked
image: New sprites and stickers for floppy disks
map: Added and ran an updatepaths script
refactor: Most disks are now under the base disk item type
/🆑
---------
Co-authored-by: The-Tyrant <tyrantofgaming@gmail.com>
## About The Pull Request
Looks over all offstation map files save for shuttles & bitrunning
domains for piping & cabling defects, inefficiencies, & deviations from
standard design. Any defects explainable as the result of damage have
been ignored, obviously. As usual, no pieces of equipment other than
piping & cabling were moved.
A few gameplay-effecting issues were addressed:
The Icebox Thing ruin's medical section had a scrubber disconnected from
the main line.
The Lavaland Beach Biodome had an injector for its scrubber line into
the outdoors, but as the outdoors are unpowered it has been replaced
with a passive vent.
The Lavaland Surface Gas Station's oxygen tank was on the incorrect
piping layer. This tank has also become an air tank, instead.
The Lavaland Surface Gas Station's central air vent was disconnected.
The Film Studio's crew's bedroom's vents were disconnected.
The Haunted Trading Post(space donk co ruin with the AI chamber) was
surrounded by electrical grille spawners, but these spawners spawn
yellow cables while the ruin uses red cables. They have been replaced
with a new layer 1 electrified grille spawner.
The Waystation ruin was hotwired due to electrical grille spawners.
The "Research" gateway's Dorms & Medbay APCs were disconnected.
A few maps have an incredibly large amount of useless cables, these
being the Icebox gas station & comms agent outpost, & the interdyne
space ruin. These cables are being left in under presumption of intent.
One map, the "the_outlet" space ruin, has air pipes leading to all of
its air alarms, for an indiscernible reason. These pipes are also being
left in under presumption of intent.
## Why It's Good For The Game
Just because they're all dead or criminals doesn't mean they like
wasting credits on piping, or that they don't have standards.
Solves the issues mentioned above.
## Changelog
🆑
map: A great deal of offstation structures have been given more
efficient piping & cabling.
map: Several offstation structures have had piping & cabling issues
resolved.
/🆑
## About The Pull Request
There is technically an `/obj/item/stamp/granted` in that one traitor
objective refers to it and tries to override a proc on it thus making it
a valid type, but not really. This changes the base `/obj/item/stamp`
from being the granted stamp to being an abstract type, and creates a
proper subtype for the granted stamp.
## Why It's Good For The Game
Base types being concrete outside of scenarios where its intuitive are
very annoying
## Changelog
🆑
code: makes /obj/item/stamp abstract, creates /obj/item/stamp/granted
/🆑
## About The Pull Request
replaced seed plum item on actually grown plum
## Why It's Good For The Game
pr #92519 introduced new grown food spawner and i believe acidentally
placed plum seeds instead of grown plum
## Changelog
🆑
spellcheck: Plant produce spawner now correctly spawns plum instead of
plum seeds.
/🆑
## About The Pull Request
Repaths the green captain suit and its skirt version to be costumes
instead of real captain clothing, as this is in line with how they're
used and makes them not have the armour of real captain clothing.
Deleted an unused identical copy of the same suit.
Fixes#93972
## Why It's Good For The Game
These are costumes and it's inconsistent for them to have armour values.
## Changelog
🆑
fix: The captain suit costume (green suit) no longer has the same armour
as real captain outfits.
/🆑
## About The Pull Request
Updates the laser gun into four proper subtypes: Standard, Pistol, Rifle
and Carbine.
<img width="229" height="210" alt="image"
src="https://github.com/user-attachments/assets/12c03076-8ebf-4d87-8c98-6a8cce6821db"
/>
Current sprites are pending a palette change.
**Standard:** Functions as you would expect. Same as ever.
**Pistol**: Lower charge, 20 force, normal sized, recharges faster.
**Carbine**: 15 force, 26 mag, two round burst. Projectiles flight
slightly faster. Cannot dual-wield.
**Rifle**: 20 force. 40 mag. Two round burst. EMP resistant (not
immune). Projectiles fly slightly faster. Cannot dual-wield (not that
you need to).
All but the rifle can be sourced from cargo. You can also buy the sovl
version of the laser gun if you're especially nostalgic.
### Armory Changes
The Armory now can potentially spawn either pistols, carbines or
standard. The weighting leans closer to spawning carbines and standard
as opposed to pistols.
### Lore Dump
The laser line of weapons now all have lore. That rich, deep lore that
every game needs and is totally not important at all to the meat and
potatoes of the game. I'm paid by the hour ($0.00)
### Code Tidying
Lasers are old and a total mess code-wise so we've tidied up while we're
here.
## Why It's Good For The Game
Variety is the spice of life and also some of these weapons could have
used a face lift. Especially the laser carbine. Both functionaltiy wise
and appearance wise.
A bit of randomness in the armory means some rounds might have unique
outcomes compared to others. Sometimes, items in cargo don't see
particularly much use, so peppering in a few random potential deviations
can maybe nudge people to utilize variant gear on future rounds.
I'm obsessed with writing too much information. I blame Hatterhat.
## Changelog
🆑
add: Three variants of the laser gun; Carbine (replacing the existing
one), Pistol and Rifle! Find it (possibly) in your armory today!
balance: The armory laser guns might be different variants of the laser
gun, rather than always being the standard. The standard is the same as
ever, even if it looks different.
add: If you care, the sovl version is available as a goodie. And in the
hands of pirates...
spellcheck: Lore! LORE FOR LASER GUNS! LOOOORE! Examine laser guns
closely and you might learn more about them.
balance: The new set of laser guns come with brand new sprites.
/🆑
---------
Co-authored-by: StaringGasMask <62149527+Exester509@users.noreply.github.com>
## About The Pull Request
This adds more trash:
- Paper
- Empty cigarette packs
- Empty lighters
- Empty food containers from snacks
- Empty can containers
- Unarmed mousetraps
- Cut wire
- Broken plates
- ~~Empty bowls~~
This slightly tweaks some existing values to make things feel fresh.
Also adds a unit test to enforce trash food types to be added to the
trash spawner.
## Why It's Good For The Game
The more trash we have, the less we'll feel bad about being garbage
players.
## Changelog
🆑
qol: More types of garbage (empty lighters, empty cigarette packs, empty
food, etc.) have been added to the trash spawner.
qol: Paper plane added to the paper spawner, which is now used in the
trash spawner.
/🆑
## About The Pull Request
This is was created because I found several rare and exciting canisters
in game and then finding out there is no way to actually construct the
vendor they belong to!...
<img width="768" height="385" alt="image"
src="https://github.com/user-attachments/assets/70261cea-daaf-41df-a212-21cef6d6bd0c"
/>
### This PR:
* Makes all noteable vendors constructable, if you have the canister.
* Adds canisters to syndismokes, syndiechem, liberation station,
magivend, shambler's juice and bombuddy
* Replaces the old tptally random canisters spawner, with a variety of
spawners weighted for power and split according to different themes.
* Adds the new main canister spawner to maint.
### Spawner weights
The random canister spawner from maintenance has a:
* **93,5%** chance to spawn a common station vendor refill(with weights
for wardrobes being somewhat reduced.)
* **6%** chance to spawn a rare and special vendor refill.
* **0.5%** chance to spawn a oddity level., super powerful vendor
refill.
## Why It's Good For The Game
One must never place a filled canister in maint if it isn't going to be
constructed It's wrong to make promises you don't mean to keep.
## Changelog
🆑
add: Nearly all notable vendors are now constructable if you have the
canister.
add Added refill canisters for syndiesmokes, liberation station,
magivend, bombuddy 3000, shambler's juice and syndichem.
add: Random vending refill canisters now have a chance to spawn in
maint.
image: Robco Toolmaker and Centdrobe canisters have new sprites.
/🆑
## About The Pull Request
Gets, yet again, more granular with multiload capabilities, by
introducing `AMMO_BOX_MULTILOAD_OUT_LOADED`; ammo boxes flagged with
this can speed-load ammo boxes that are currently inside another gun,
like revolver cylinders or internal magazines.
To accomodate for this, the previous flag that covered this,
`AMMO_BOX_MULTILOAD_OUT` can no longer speedload into currently loaded
magazines (e.g. internal magazines, including revolver cylinders).
Also implements a base type for speedloaders, moving .38 and .357
speedloaders along with .310 stripper clips to this type, instead of
being ammo boxes. Also features an UpdatePaths script for mappers, which
is why there's so many files touched - repathing is a pain.
Also also adds fancy types for ammo boxes, magazines, and speedloaders,
which isn't particularly player-facing.
Also also also makes the lionhunter ammo strip for the lionhunter rifle
visually three rounds only instead of being perpetually half-full (or
half-empty, depending on your pessimism).
## Why It's Good For The Game
The hypothetical case of "ammo box that holds shotgun ammo" should
probably... not... teleport as much of its ammo as possible into a
tube-fed shotgun, but should probably still be okay at reloading
magazines that actually go into shotguns. Or something.
More relevant, reloading BR-38 magazines with speedloaders, while funny,
probably also shouldn't be teleporting in six fresh rounds.
## Changelog
🆑
balance: General ammo boxes (not speedloaders, not stripper clips) can
no longer multiload into currently loaded magazines (revolver cylinders,
internal magazines).
balance: Speedloaders are now a separate type from ammo boxes, and can
only multiload into currently loaded magazines e.g. revolver cylinders.
qol: Ammo boxes, magazines, and speedloaders now have fancier types for
spawning in by admins.
sprite: Lionhunter ammo clips are visually smaller now.
/🆑
---------
Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
## About The Pull Request
moves all implementations (im aware of) for "Im a parent type dont spawn
me please" to the datum layer to standardized behavior
adds a standerized proc for filtering out "bad" items that we dont want
spawning. applies to it the subtype vendor, gifts, and a new spawner and
mystery box for a random gun (neither playerfacing)
"port" of https://github.com/shiptest-ss13/Shiptest/pull/4621https://github.com/user-attachments/assets/22f6f0b2-b44e-411a-b3dc-6b97dc0287aa
small warning: I dont have EVERY abstract type defined right now but,
ive done a good enough job for now. Im tired of data entry rn
## Why It's Good For The Game
standardizing behavior. Might be a micro hit to performance however
having this lets us not rely on icon state to determine whether
something is a parent type and makes it much easier to tell something is
a parent type (could be applied further to things like admin spawning
menus and things like that).
need feedback on if this is actually good for the game.
## Changelog
🆑
add: Soda cans show up in the silver slime drink table.
add: Examine tag for items that are not mean to show up ingame.
refactor: Standardizes how gifts rule out abstract types.
fix: gifts no longer check if something has an inhand, massively
expanding the list of potential items.
/🆑
## About The Pull Request
sand blocks existed for the only purpose of making sand available as a
material. However, the only method to get them was pretty whimsical and
the existence of the feature wasn't really conveyed to the player, which
involves rinsing regular sand in a sink... and before you ask, we also
have sandstone, which can be crafted just by using the sand in hands, no
water involved. In fact, the sand blocks use the same sprites for
regular sandstone, except they have no recipes associated to them,
nothing! Nada!
Let's address the elephant in the room: We already have sand, however
said sand already has the glass material attached to it even before
being smelted, so if you put sand into the Autolathe, you get glass,
yay. Sand blocks really only existed to make up for the shortcoming of
whoever coded the sand material at the time.
But enough ranting. As the title says, sand is now made of sand, sand
blocks are kill. I've been careful enough to give the ORM the ability to
smelt gathered sand into glass beforehand, so miners won't curse me for
making them _actually_ use the smelter for once, "I will rather die to a
goliath than have anything to do with that". However, this still means
you cannot shove sand directly into lathes and expect glass out of it.
Get a welder.
## Why It's Good For The Game
## Changelog
🆑
balance: sand is now made of sand and not glass. Get a welder if you
plan to shove it into a protolathe.
del: Removed now useless sand blocks.
/🆑
## About The Pull Request
- Fixes#88595
Cargo's gift giving was so bad it landed them on Santa's _very_ naughty
list. The ~cargo techs~ elves in charge were handing out game breaking
equipment.
This closes a loophole that allowed players to spam dumpsters during the
Christmas event for gifts that could contain admin tools and other debug
loot. I've removed Christmas presents (and holiday items) from the
dumpster spawns to put a stop to this.
## Why It's Good For The Game

Players were using the cargo system to purchase and dumpster dive
endlessly for OP shit. During the Christmas event, these dumpsters had a
high chance of spawning the special `/anything` gifts, which can contain
literally any item in the game, including admin tools and debug
equipment. This exploit bypassed the intended rarity of these items,
which were meant to be one-time, limited gifts from Santa's bag or the
Christmas tree.
## Changelog
🆑
fix: Santa has put cargo in his very naughty list for spam producing his
presents by dumpster diving. This fixes Christmas presents (and other
holiday items) from spawning inside dumpsters.
/🆑
## About The Pull Request
<img
width="612" height="185" alt="dreamseeker_SNMvxqCRiR"
src="https://github.com/user-attachments/assets/1d3103e9-edc1-4e50-8793-c8c2ace53aea"
/>
This is a small expansion to narcotics, their production, and presence
in the game! For my esteemed Terry and Manuel/Sybil sector colleagues
I've added:
- 2 new solid drug items: **crystal meth and opium**!
- A **precipitation reaction** for meth after it's been cooled,
producing a solid crystal form, 2u sulfuric acid, 10u meth. **Above 90%
purity, the meth will gain an increasingly blue tint!**
- A production method for opium! Slice a well developed poppy pod with
any sharp item, **before it's fully mature and flowered** to extract a
small amount of opium to enjoy! It's a small container for morphine. Can
be pressed together to combine the concentrations up to 10u, as each
extraction contains trace amounts. Scales off poppy's potency.
- Populated narcotics/contraband spawners with new items, and items that
really should have been on there.
- Added a brand new smoking apparatus, the glass pipe! Can be crafted.
Fixed the transparent pixel.
- **Fixed methsplosions so that now spacemen can finally smoke meth
without exploding!!!** Omegaweed too. Normal methsplosions are
untouched!
- **Expanded the ability for players to insert all drug items into
pipes**, so now players can smoke moon rocks, SaturnX, and my new items!
Previously, only 'dried' items were.
- Fentanyl patch box for narcotics spawner, also for a new ruin I've
made.
- **Expanded these changes to the black market uplink.**
<img width="640" height="256" alt="demo"
src="https://github.com/user-attachments/assets/c8a0eb2c-b0fa-4e70-b6c1-2e741cd170a2"
/>
Now, players can precipitate meth into a solid form, and produce opium.
I added a lot of these substances and the ones that didn't exist into
spawners that they were partially in, or could reasonably be in. The
opium poppy extraction required a new variable that can be used for
similar interactions too. Crystal sprites are transparent, smoked sprite
has a nice little animation and glow.
These items are now on the black market uplink, in both expensive dealer
shipments of varying rarities for different narcotics, as well as
personal use quantities on a different rotation, at a steeper price.
Expanded randomized spawners to give the black market and ruins more
teeth and edge, without adding another weapon.
Credit to the moon rock guy, I'm just happy I made your stuff smokable!!
<img width="219" height="201" alt="dreamseeker_N8x9bsN3kS"
src="https://github.com/user-attachments/assets/64d23c27-92b9-423b-91ac-903b8476d0b4"
/>
tl;dr added opium and meth
## Why It's Good For The Game
For **too long**, narcotics, chems and stims have been mere integers or
buffs/debuffs in pills or syringes, so I introduced two new methods for
making them and populated niche, criminal vectors with them. These are
real items now, with more interactions. Allowing these to be smoked also
allowed moon rocks and SaturnX to be smoked too, including them into
this and enticing players to have another reason to make them as well.
Buffs with drawbacks, addictions and problems are actually great.
It's a new venue for flavor. I've put thought into the balance for
addition and quantity. It'll add a criminal, or exotic tone to a round,
provide new business opportunities, and new access to stims and chems
without going over the top. Perhaps something peaceful antagonists can
do. More proverbial floor pills give security or command something to
selectively enforce, and absolutely provide novel opportunities for
medical staff!
Also, methsplosions now don't happen in cigarette items! You can smoke
omegaweed without fucking dying!
## Changelog
🆑
add: Added meth, opium, and their production! Also added to black market
uplink.
add: Added a craftable glass pipe.
add: Added to contraband spawners.
qol: Can now insert any drug item into a pipe.
fix: Spacemen can now smoke meth without exploding!!
/🆑
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
## About The Pull Request
Fixes#92188
1. The Accounting console now has a new UI
<img width="757" height="486" alt="image"
src="https://github.com/user-attachments/assets/0c6ce73f-ae1c-4a54-b6ba-bcc3b3232d13"
/>
2. The Accounting console can now dish out advances on paychecks, giving
you for full paycheck early. You can give up to 3 advances. This of
course means your next paycheck is not paid out when relevant.
3. The Accounting console can now change paycheck sizes of crewmembers -
up to 1.5x and down to 0.5x.
## Why It's Good For The Game
- Gives the HoP some more duties, now being able to dish out money on
request, reward good behavior, or punish bad behavior.
## Changelog
🆑 Melbert
add: Accounting Console: New UI!
add: Accounting Console: Now can give advances to crewmembers
add: Accounting Console: Can now give pay raises or pay cuts
add: Accounting Console: Now only printable in the security lathe
add: Accounting Console: A spare board is now now found in secure tech
storage.
fix: Fix vending machines adding payments to audit log twice.
fix: Non-crewmembers are no longer shown in the accounting console
/🆑
---------
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
## About The Pull Request
Adds a number of new capabilities to glitter.
- It can be any colour.
<img width="657" height="398" alt="image"
src="https://github.com/user-attachments/assets/60e80c04-8eee-470c-8953-47f6eda9f83e"
/>
- It can be made in chemistry and dyed by combining it with acetone and
other reagents to give it the average colour of the non-glitter,
not-acetone reagents.
- Multiple colours can be mixed into one reagent datum, randomly
depositing a colour from those in the datum on the floor.
<img width="554" height="507" alt="image"
src="https://github.com/user-attachments/assets/9cc7d1d5-9bec-4b28-af06-310ffb24de49"
/>
- Anyone with glitter reagent in them will cough glitter onto the floor
- Glittery crates will leave a trail of appropriately coloured glitter
when moved
<img width="960" height="259" alt="image"
src="https://github.com/user-attachments/assets/71cc1176-23f9-4ae7-b500-1744b752c014"
/>
Resprited glitter to support these changes and make it not look like gas
(or ass).
## Why It's Good For The Game
It looks cool and raises the bar for chemists maximally pissing off the
janitor as they fill a room with multicoloured glitter and all the
occupants run off to cough more up all over the surrounding area.
## Changelog
🆑
add: Glitter can now be made from plastic polymers and aluminium.
add: Plastic polymer can be made at any temperature, and then heated to
produce sheets.
add: Glitter can now be made any colour, mix 10 units each of glitter
and acetone to change its colour to that of the other reagents in the
beaker.
add: Mixing different colours of glitter will cause a random selection
of those colours to appear on the floor when released.
add: Being exposed to glitter in reagent form causes you to cough up
more glitter onto the floor
add: Dragging glittery crates will now spread a trail of glitter and
angry janitors behind them.
image: Added new glitter sprites (that don't look like gasses)
/🆑
## About The Pull Request
Adds a number of new capabilities to glitter.
- It can be any colour.
<img width="657" height="398" alt="image"
src="https://github.com/user-attachments/assets/60e80c04-8eee-470c-8953-47f6eda9f83e"
/>
- It can be made in chemistry and dyed by combining it with acetone and
other reagents to give it the average colour of the non-glitter,
not-acetone reagents.
- Multiple colours can be mixed into one reagent datum, randomly
depositing a colour from those in the datum on the floor.
<img width="554" height="507" alt="image"
src="https://github.com/user-attachments/assets/9cc7d1d5-9bec-4b28-af06-310ffb24de49"
/>
- Anyone with glitter reagent in them will cough glitter onto the floor
- Glittery crates will leave a trail of appropriately coloured glitter
when moved
<img width="960" height="259" alt="image"
src="https://github.com/user-attachments/assets/71cc1176-23f9-4ae7-b500-1744b752c014"
/>
Resprited glitter to support these changes and make it not look like gas
(or ass).
## Why It's Good For The Game
It looks cool and raises the bar for chemists maximally pissing off the
janitor as they fill a room with multicoloured glitter and all the
occupants run off to cough more up all over the surrounding area.
## Changelog
🆑
add: Glitter can now be made from plastic polymers and aluminium.
add: Plastic polymer can be made at any temperature, and then heated to
produce sheets.
add: Glitter can now be made any colour, mix 10 units each of glitter
and acetone to change its colour to that of the other reagents in the
beaker.
add: Mixing different colours of glitter will cause a random selection
of those colours to appear on the floor when released.
add: Being exposed to glitter in reagent form causes you to cough up
more glitter onto the floor
add: Dragging glittery crates will now spread a trail of glitter and
angry janitors behind them.
image: Added new glitter sprites (that don't look like gasses)
/🆑