Skip to content

Chemical Dispenser Mk .5#654

Open
Ossa88 wants to merge 6 commits intoPentestSS13:masterfrom
Ossa88:chemdisp
Open

Chemical Dispenser Mk .5#654
Ossa88 wants to merge 6 commits intoPentestSS13:masterfrom
Ossa88:chemdisp

Conversation

@Ossa88
Copy link
Copy Markdown
Collaborator

@Ossa88 Ossa88 commented Apr 9, 2026

About The Pull Request

Shiptest chemistry is primarily performed using what players commonly call "ghetto chem"—mixing reagents manually using jugs, beakers, and other handheld tools. Unlike upstream implementations, access to traditional chemical dispensers capable of generating reagents on demand is intentionally limited due to their effectively unlimited reagent supply (bounded only by power availability and refill rate).

This PR introduces a jug-based chemical dispenser, designed as a middle-ground between manual jug chemistry and full reagent-generation systems.

Instead of creating chemicals from nothing, this machine consumes physical reagent jugs supplied by players, similar to how a printer uses colored ink cartridges. This preserves resource logistics while improving workflow usability.

Core Functionality

  • Accepts standard reagent jugs as input.
  • Uses inserted jugs as the source of available chemicals.
  • Allows players to dispense reagents directly into containers.
  • Jugs can be:
    • Purchased from cargo.
    • Inserted into the dispenser as supply sources.
  • Maintains the logistics-focused chemistry style as intended.
  • Ability to eject jugs via right clicking inside the TGUI interface.
  • Accepts any single reagent in a jug.

Additional Change:

  • Chem Jugs now come with 200 units of chem, instead of the 150. This means they are worth more than before.

This system keeps chemistry resource-based while reducing the repetitive manual pouring currently required in jug-based workflows.

Upgrade Path (Matter Bin Scaling)

The dispenser scales with installed matter bins, allowing gradual improvement rather than immediate high-capacity availability.

Base Scaling Model:

  • 2× Tier 1 Matter Bins
    • Up to 8 unique chemicals
    • Up to 200 units per chemical
  • 2× Tier 4 Matter Bins
    • Up to 32 unique chemicals
    • Up to 800 units per chemical

This progression allows the machine to remain useful at early stages while rewarding investment into higher-tier components.

Design Goals

  • Preserve logistics-driven chemistry
  • Avoid introducing true infinite reagent generation
  • Reduce repetitive manual jug transfer workflow
  • Provide a scalable, infrastructure-based solution
  • Maintain compatibility with cargo supply chains

Why It's Good For The Game

Traditional dispensers fundamentally alter chemistry balance by introducing effectively unlimited reagents. Shiptest intentionally restricts these systems to preserve logistical gameplay.

This dispenser provides quality-of-life improvements without bypassing the intended supply economy, reinforcing cargo dependency and encouraging infrastructure upgrades rather than removing material constraints.

Changelog

🆑
add: Jug Based Chemical Dispenser
/:cl:

@Constellado Constellado added Balance enhancement New feature or request labels Apr 9, 2026
@Ossa88 Ossa88 added the TM Candidate This PR is approved for TM label Apr 10, 2026
@github-actions
Copy link
Copy Markdown
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@Ossa88
Copy link
Copy Markdown
Collaborator Author

Ossa88 commented Apr 15, 2026

Small notes:

Currently removing chemicals will go back into its jug if one exists. Meaning you can separate chemicals using the machine.
IF, a chemical does not have a jug then it is deleted like it would be in the normal SS13 Chem Dispenser system.

I will consider making a catch all that will prevent you from deleting the chemicals... but that is not right now.

Also, Jugs require at least 1 unit of a chemical to be accepted.
So if you wanted to make Table Salt Jug, take any jug (with any name) and add at least 1 unit of salt to it... As long as the jug is a single reagent, the system will auto accept it and correctly id its reagent.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants