Files
Bubberstation/code/datums/components
MrMelbert 9ceeb187b7 Spraying items with lube can make them slip out of people's hands (#95224)
## About The Pull Request

If you coat an item with lube, it becomes slippery. Not "clown pda"
slippery but "harder to handle" slippery.

Trying to pick up or use a slippery item has a chance of it falling out
of your hands
(Though there is another chance that you catch it, if you have an empty
hand)

"Use" includes arming grenades or firing guns. So if you try to arm a
lubed grenade it might slip right to your feet!

## Why It's Good For The Game

The clown can coat security's batons in lube. That's basically all I
need to say

## Changelog

🆑 Melbert
add: Spraying items with lube makes them slippery, causing them to fall
out of people's hands who try to pick them up or use them.
/🆑
2026-02-25 14:38:21 +13:00
..
2025-10-02 18:15:25 +02:00
2025-12-20 12:33:10 -05:00
2025-12-21 13:58:30 +01:00
2025-09-07 09:24:34 +02:00
2025-12-28 19:57:42 +01:00
2025-09-07 09:24:34 +02:00
2026-02-03 22:23:09 -05:00
2025-10-07 20:28:59 +02:00
2025-12-28 19:57:42 +01:00
2025-10-07 20:28:59 +02:00

Datum Component System (DCS)

Concept

Loosely adapted from /vg/. This is an entity component system for adding behaviours to datums when inheritance doesn't quite cut it. By using signals and events instead of direct inheritance, you can inject behaviours without hacky overloads. It requires a different method of thinking, but is not hard to use correctly. If a behaviour can have application across more than one thing. Make it generic, make it a component. Atom/mob/obj event? Give it a signal, and forward its arguments with a SendSignal() call. Now every component that want's to can also know about this happening.

HackMD page for an introduction to the system as a whole.

See/Define signals and their arguments in __DEFINES\components.dm