/tg/ Station 13 - Modules - Types — Define Details

modular_aphelion/modules/graffiti/code/registry.dm

GRAFFITI_COMPOSITE_SHAREOf each second, how many ms every painter's composites together may take, freehand sessions' and paint job steps alike. Past it they wait their turn in SSgraffiti's composite line, so with many painters each one's come further apart rather than time dilating. A typical one-tile composite takes 11-15 ms, so about ten painters keep the full spacing. Measured on one build (2026-10-20), it took a hundred freehand painters at the topic limit from 670 to 102 ms/s of composites and +57.2% to +3.0% time dilation, and twenty adversarial ones from +16.0% to +0.8%.
GRAFFITI_LOAD_SHAREPercent of each tick the background load of the map's graffiti takes at most (load_yield()), so it spreads over the lobby without the server feeling it: a full map of adversarial art took about 22 s of work, about 90 s at this share.
GRAFFITI_COMPOSITE_LINE_GRACEHow long a painter waiting in SSgraffiti's composite line keeps its place without asking again, as one no longer due stops asking. SScustom_sprite_work asks for every waiting painter each tick it gets through its queue.
GRAFFITI_SAVE_DEBOUNCEHow long a map's graffiti file waits after a change before it is written. A full map of dense art takes about 300 ms to write (measured), so a minute; the round-end save and Shutdown() still write the last changes.
GRAFFITI_SHEET_STATESTile composites packed into one sprite sheet at load: of the packings whose sheet files stay within 256 KiB, the one with the fewest bytes a state, measured on worst-case art: 32 a sheet takes 1,791 bytes a state, largest sheet 113 KB; 64 takes 1,811, largest 225 KB; 128 reaches 448 KB.
GRAFFITI_CKEY_UNIQUE_CAPMost unique arts one account keeps on one map: a tenth of GRAFFITI_MAP_UNIQUE_CAP.
GRAFFITI_MAP_READ_VERSIONSThe map file versions this server reads. Version 1's anchors may record wall rather than their surface, and its placements the piece's name and description: loading converts the one and drops the other, and the next save writes the file as GRAFFITI_MAP_VERSION.
GRAFFITI_DECODE_BUDGETMost bytes, estimated, of decoded art a map's load keeps at once for its merges and sheets: about 400 dense one-tile arts. Art past it is decoded again where it is needed. Freed memory stays with the process, so this bounds what a load adds to the server's high-water mark.
/datum/json_savefile/custom_sprites/graffiti/mapA map's graffiti file, held to GRAFFITI_MAP_MAX_BYTES.
/var/SSgraffitiThe graffiti on the current map: the art and placements its file keeps, which of them show this round, and the sheet files they show from.

Define Details

GRAFFITI_CKEY_UNIQUE_CAP

Most unique arts one account keeps on one map: a tenth of GRAFFITI_MAP_UNIQUE_CAP.

GRAFFITI_COMPOSITE_LINE_GRACE

How long a painter waiting in SSgraffiti's composite line keeps its place without asking again, as one no longer due stops asking. SScustom_sprite_work asks for every waiting painter each tick it gets through its queue.

GRAFFITI_COMPOSITE_SHARE

Of each second, how many ms every painter's composites together may take, freehand sessions' and paint job steps alike. Past it they wait their turn in SSgraffiti's composite line, so with many painters each one's come further apart rather than time dilating. A typical one-tile composite takes 11-15 ms, so about ten painters keep the full spacing. Measured on one build (2026-10-20), it took a hundred freehand painters at the topic limit from 670 to 102 ms/s of composites and +57.2% to +3.0% time dilation, and twenty adversarial ones from +16.0% to +0.8%.

GRAFFITI_DECODE_BUDGET

Most bytes, estimated, of decoded art a map's load keeps at once for its merges and sheets: about 400 dense one-tile arts. Art past it is decoded again where it is needed. Freed memory stays with the process, so this bounds what a load adds to the server's high-water mark.

GRAFFITI_LOAD_SHARE

Percent of each tick the background load of the map's graffiti takes at most (load_yield()), so it spreads over the lobby without the server feeling it: a full map of adversarial art took about 22 s of work, about 90 s at this share.

GRAFFITI_MAP_READ_VERSIONS

The map file versions this server reads. Version 1's anchors may record wall rather than their surface, and its placements the piece's name and description: loading converts the one and drops the other, and the next save writes the file as GRAFFITI_MAP_VERSION.

GRAFFITI_SAVE_DEBOUNCE

How long a map's graffiti file waits after a change before it is written. A full map of dense art takes about 300 ms to write (measured), so a minute; the round-end save and Shutdown() still write the last changes.

GRAFFITI_SHEET_STATES

Tile composites packed into one sprite sheet at load: of the packings whose sheet files stay within 256 KiB, the one with the fewest bytes a state, measured on worst-case art: 32 a sheet takes 1,791 bytes a state, largest sheet 113 KB; 64 takes 1,811, largest 225 KB; 128 reaches 448 KB.