/tg/ Station 13 - Modules - Types — Var Details - Proc Details

custom_sprite_salon

One artist's custom work for one recipient and drawing target.

Hair work covers one drawing. Tattoo work covers every region of the body, and only the regions the draft changes are proposed, checked and applied. States: drafting -> awaiting approval -> applying -> completed. Declining, interruption or a stale approval returns to drafting and keeps the draft. Approval binds to an immutable copy of the exact reviewed revision, and every step checks the participants again.

Vars

artist_ckeyAccount allowed to edit and resume this draft.
artist_refWeak reference to the artist's current body.
drawing_ambienceSteady tattoo-machine ambience, separate from the varied needle bursts.
drawing_soundA single brush-triggered clip, stopped when the editor closes.
drawing_sound_cooldownEarliest time another brush movement may start a work clip.
dress_timerPending rebuild after the recipient's clothing changed.
editorRetained drawing editor owned by this session: the salon hair editor, or the whole-body tattoo canvas.
mirrorCurrent recipient approval window, if any.
originalStyle key -> list("package", "hash", "bodypart", "taur", "signature") for each drawing as it was when work started.
proposallist("token", "revision", "packages") for the reviewed revision. Packages map style key -> package.
rebuild_preview_bodyA body-owned appearance changed; worn items alone can reuse the existing preview body.
recipient_ckeyAccount allowed to approve the finished design.
recipient_emissivesRecipient's master emissive permission captured for the draft.
recipient_nameRecipient's display name captured when work starts.
recipient_refWeak reference to the original recipient body.
restorationA restoration proposes these packages, by style key, instead of a draft.
save_on_completionRecipient requested a permanent save after this exact proposal is successfully applied.
self_workWorking on your own body: no consent step, and views you can't see need a mirror.
stateConsent and application phase of this salon session.
targetDrawing kind: hair, facial_hair or markings. Markings cover the whole body.
tool_refWeak reference to the tool used to start the work.
tool_typeRequired tool family when checking or resuming the work.
trimming_stageHow big the pile under the recipient has grown so far.
trimming_timerPending timer for the next lot of clippings to hit the floor.
uniform_refThe recipient's jumpsuit, watched because adjusting it changes what it covers without taking it off.
watched_refArtist currently watched for mirror and movement changes.

Procs

acceptRecipient approval. Binds to the exact reviewed token and revision, then starts the timed action.
application_validWhether the timed application for token is still the current one.
apply_proposalRuns the timed action and applies the approved package once. Duplicate or stale calls do nothing.
artistThe artist's body, or null once it's gone or another player controls it.
awardGives a player an achievement, when they have a client.
changed_packagesThe packages that differ from the look their drawing had when work started.
close_mirrorCloses the mirror without treating the close as a decision.
complete_applicationApplies the approved packages after the timed action. Every check runs again first.
context_actWindow actions the salon owns, shared by the hair editor and the tattoo canvas.
context_ui_dataWindow data the salon owns, shared by the hair editor and the tattoo canvas.
declineThe recipient (or the timeout) turns the proposal down; the draft is kept.
draft_changedAn edit withdraws a proposal the recipient is still reviewing.
drawing_activityBrush activity is sent during a stroke; validate it without changing pixels or pushing UI data.
drawing_problemWhy one drawing can't be changed: its part's problem, or a look that changed on the body since work started.
export_draftSends the draft as a style file: the hair drawing, or the whole body as the tattoo canvas holds it.
export_proposalSends the reviewed proposal as a style file: the hair drawing, or the regions a tattoo changes.
finish_problemWhy the draft can't be proposed as drawn, such as a tattooed region over its own color limit, or null.
hair_problemScissors and tattoo machines change the haircut and its color, not the rest of the look.
held_toolReturns the held tool of this session's type, preferring the one work started with.
labelWhat this work is called, such as "hairstyle".
locked_directionsViews this artist can't work on right now. Only self-styling restricts anything.
locked_view_problemRefuses changes to views the artist can't see, in case the mirror is gone by the time they finish.
on_artist_changedThe artist moved: self-styling locks may have changed.
on_recipient_changedThe recipient's equipment changed: locks and the watched jumpsuit follow.
on_recipient_overlay_changedA worn or body overlay changed: guides, previews and the mirror redraw shortly.
on_uniform_adjustedRolling a jumpsuit up or down changes what it covers and how it looks, without taking it off.
part_problemWhy a drawing's part can't take work right now, or null.
participant_problemReturns why the work can't proceed, or null when it can.
proposeSends the current revision to the recipient's mirror.
proposed_packagesStyle key -> each package finishing would apply, before unchanged ones are dropped.
recipientThe recipient's body, or null once it's gone or another player controls it.
refresh_editor_bodyRebuilds the editor's resources after clothing or body changes settled.
region_problemWhy a tattoo region can't take paint right now, or null. Cheap enough for every region on every stroke.
return_to_draftingReturns an awaiting or interrupted proposal to drafting. Restorations end instead.
schedule_preview_refreshGroups a second of changes into one refresh, without postponing it while changes continue.
schedule_trimmingsQueues the next lot of clippings.
shed_trimmingsDrops or grows the pile under the recipient, then queues the next one.
stop_drawing_ambienceStops the tattoo machine's ambience once drawing has gone quiet.
stop_drawing_soundsClosing keeps the draft but silences both channels.
watch_artistSelf-styling locks depend on what the artist is holding and where they stand, so follow both.
watch_recipientObserve the live body, never its preview, so redraws cannot schedule themselves.
watch_uniformFollows whichever jumpsuit the recipient wears: rolling it down or up changes what it covers.
work_keysStyle keys of the drawings this work would change as it stands: a hair target's own, or each changed tattoo region.
work_phraseHow a retained draft is described to the artist it belongs to.

Var Details

artist_ckey

Account allowed to edit and resume this draft.

artist_ref

Weak reference to the artist's current body.

drawing_ambience

Steady tattoo-machine ambience, separate from the varied needle bursts.

drawing_sound

A single brush-triggered clip, stopped when the editor closes.

drawing_sound_cooldown

Earliest time another brush movement may start a work clip.

dress_timer

Pending rebuild after the recipient's clothing changed.

editor

Retained drawing editor owned by this session: the salon hair editor, or the whole-body tattoo canvas.

mirror

Current recipient approval window, if any.

original

Style key -> list("package", "hash", "bodypart", "taur", "signature") for each drawing as it was when work started.

proposal

list("token", "revision", "packages") for the reviewed revision. Packages map style key -> package.

rebuild_preview_body

A body-owned appearance changed; worn items alone can reuse the existing preview body.

recipient_ckey

Account allowed to approve the finished design.

recipient_emissives

Recipient's master emissive permission captured for the draft.

recipient_name

Recipient's display name captured when work starts.

recipient_ref

Weak reference to the original recipient body.

restoration

A restoration proposes these packages, by style key, instead of a draft.

save_on_completion

Recipient requested a permanent save after this exact proposal is successfully applied.

self_work

Working on your own body: no consent step, and views you can't see need a mirror.

state

Consent and application phase of this salon session.

target

Drawing kind: hair, facial_hair or markings. Markings cover the whole body.

tool_ref

Weak reference to the tool used to start the work.

tool_type

Required tool family when checking or resuming the work.

trimming_stage

How big the pile under the recipient has grown so far.

trimming_timer

Pending timer for the next lot of clippings to hit the floor.

uniform_ref

The recipient's jumpsuit, watched because adjusting it changes what it covers without taking it off.

watched_ref

Artist currently watched for mirror and movement changes.

Proc Details

accept

Recipient approval. Binds to the exact reviewed token and revision, then starts the timed action.

application_valid

Whether the timed application for token is still the current one.

apply_proposal

Runs the timed action and applies the approved package once. Duplicate or stale calls do nothing.

artist

The artist's body, or null once it's gone or another player controls it.

award

Gives a player an achievement, when they have a client.

changed_packages

The packages that differ from the look their drawing had when work started.

close_mirror

Closes the mirror without treating the close as a decision.

complete_application

Applies the approved packages after the timed action. Every check runs again first.

Only the drawings the proposal changes are applied, and each keeps its previous look as round history. Achievements are awarded once per application.

Returns:

context_act

Window actions the salon owns, shared by the hair editor and the tattoo canvas.

context_ui_data

Window data the salon owns, shared by the hair editor and the tattoo canvas.

decline

The recipient (or the timeout) turns the proposal down; the draft is kept.

draft_changed

An edit withdraws a proposal the recipient is still reviewing.

drawing_activity

Brush activity is sent during a stroke; validate it without changing pixels or pushing UI data.

drawing_problem

Why one drawing can't be changed: its part's problem, or a look that changed on the body since work started.

export_draft

Sends the draft as a style file: the hair drawing, or the whole body as the tattoo canvas holds it.

export_proposal

Sends the reviewed proposal as a style file: the hair drawing, or the regions a tattoo changes.

finish_problem

Why the draft can't be proposed as drawn, such as a tattooed region over its own color limit, or null.

hair_problem

Scissors and tattoo machines change the haircut and its color, not the rest of the look.

held_tool

Returns the held tool of this session's type, preferring the one work started with.

label

What this work is called, such as "hairstyle".

locked_directions

Views this artist can't work on right now. Only self-styling restricts anything.

locked_view_problem

Refuses changes to views the artist can't see, in case the mirror is gone by the time they finish.

on_artist_changed

The artist moved: self-styling locks may have changed.

on_recipient_changed

The recipient's equipment changed: locks and the watched jumpsuit follow.

on_recipient_overlay_changed

A worn or body overlay changed: guides, previews and the mirror redraw shortly.

on_uniform_adjusted

Rolling a jumpsuit up or down changes what it covers and how it looks, without taking it off.

part_problem

Why a drawing's part can't take work right now, or null.

The part must be the one work started on: the same bodypart, and the same taur organ for the taur region. It must also be reachable: not missing, covered, husked or hidden. This is cheap enough to run for every region on every stroke.

participant_problem

Returns why the work can't proceed, or null when it can.

This covers both participants and their controlling players, consciousness, the held tool and reachability, then each drawing it checks: the part it's on, whether that can be reached, and its look since work started.

Arguments:

propose

Sends the current revision to the recipient's mirror.

Returns:

proposed_packages

Style key -> each package finishing would apply, before unchanged ones are dropped.

recipient

The recipient's body, or null once it's gone or another player controls it.

refresh_editor_body

Rebuilds the editor's resources after clothing or body changes settled.

region_problem

Why a tattoo region can't take paint right now, or null. Cheap enough for every region on every stroke.

Answers exactly as drawing_problem() does, but only compares the full look once the region's fingerprint has changed.

return_to_drafting

Returns an awaiting or interrupted proposal to drafting. Restorations end instead.

schedule_preview_refresh

Groups a second of changes into one refresh, without postponing it while changes continue.

schedule_trimmings

Queues the next lot of clippings.

Only hair work sheds, and only a real cut rather than a restoration. Cutting your own hair still drops it. Mid-cut the pile stops growing at SALON_TRIMMING_WORKING_MAX; completion takes it the rest of the way.

shed_trimmings

Drops or grows the pile under the recipient, then queues the next one.

stop_drawing_ambience

Stops the tattoo machine's ambience once drawing has gone quiet.

stop_drawing_sounds

Closing keeps the draft but silences both channels.

watch_artist

Self-styling locks depend on what the artist is holding and where they stand, so follow both.

watch_recipient

Observe the live body, never its preview, so redraws cannot schedule themselves.

watch_uniform

Follows whichever jumpsuit the recipient wears: rolling it down or up changes what it covers.

work_keys

Style keys of the drawings this work would change as it stands: a hair target's own, or each changed tattoo region.

work_phrase

How a retained draft is described to the artist it belongs to.