Layers and undo¶
See how the two parts of a projector's mask — painted coverage and vector paths — fit together, and exactly what undo can and cannot take back.
One mask per projector¶
A projector has exactly one mask. It is sized to that projector's resolution, it is stored with the project, and it holds two kinds of work:
| Part | Made with | What it is |
|---|---|---|
| Painted coverage | The brush | A single painted surface at the projector's resolution — every stroke you have ever painted or erased, flattened into one image |
| Paths | The pen | Any number of separate shapes, each still editable point by point |
Both are saved together, and both come back when you re-open that projector's mask.
There is no layer list to manage
Moonshine does not have a stack of mask layers with visibility switches and a drag-to-reorder list. There is one painted surface and a set of paths, and they cannot be reordered relative to each other because nothing about the result depends on their order.
How the two combine¶
Paths do not sit on top of the painting and hide parts of it. Their job in the editor is to constrain the brush:
- A path that is selected and closed acts as a stencil. Brush strokes — paint or erase — land only inside it. Several selected closed shapes stencil several regions at once.
- A path that is open, or not selected, restricts nothing. The brush paints freely.
- Painting never damages a path. You can paint across a shape, then move its points afterwards.
So the working order is yours to choose: stencil first and paint into it, or paint roughly and draw a shape later to clean up an edge with erase.
Opacity¶
There is no per-layer opacity control, because there are no layers to give one to. Partial coverage comes from the brush instead:
- Opacity in the Properties sidebar sets how much coverage a single stroke lays down. Release and stroke again to build it up.
- Hardness sets how the coverage falls away at the brush's edge.
Both are covered in Brush masking.
Switching projectors¶
Selecting a different projector swaps the whole mask: your work on the previous one is saved first, then that projector's painting and paths load in its place. Each projector's mask is stored separately, under that projector, so there is no shared mask to keep track of.
What is saved, and when¶
There is no save button in the Mask tab. The painting and the paths are written together, as one mask for that projector, and they go out:
- a moment after you stop painting or stop dragging a point — edits are batched, so a long working pass is not a stream of writes;
- when you select a different projector; and
- when you leave the editor.
Because the two parts travel together, you never have to think about saving paths separately from paint. It also means the last thing you did is on the show computer a second or two after you finish it, which is what makes it safe to walk away from a browser mid-session.
Undo¶
Ctrl+Z steps back through mask work. Two things decide what it takes back.
Undo follows the selected tool. On Brush, it removes the last stroke. On Pen, it takes back the last path edit — a point placed, a point or handle dragged, a deletion, a shape closed. Switching tools switches which history you are stepping through; it does not merge them. If Ctrl+Z seems to be doing nothing, check which tool is selected.
Each history holds up to 50 steps. One stroke, from the moment you press to the moment you release, is one step. So is one drag of a point or a handle. Erasing counts as a stroke like any other, so undo takes an erase back the same way it takes back paint.
What clears the history¶
Mask undo is short-lived by design. The history is emptied whenever a mask is loaded, which happens when you:
- open the Mask tab for the first time after loading Moonshine,
- switch to a different projector, or
- receive another operator's saved changes to the mask you are watching.
After any of those, there is nothing behind you to step back to — even though the mask itself is intact.
There is no redo, and no crossing over
Ctrl+Shift+Z does not redo mask work; undo in the Mask tab is a one-way step backwards. Mask undo is also separate from undo everywhere else in Moonshine — it is not in the same history as scene, alignment or playback edits, and stepping back here never reaches into those.
Reset Mask¶
Reset Mask, below the brush controls in the Properties sidebar, clears both parts of the mask at once. The confirmation dialog is explicit: it clears all brush strokes and vector paths, and the action cannot be undone. Use it when you want a blank mask for that projector, not as a way out of a mistake.
For a mistake, step back with Ctrl+Z before you do anything else.
Working with other operators¶
Only one person can edit a given projector's mask at a time — opening it takes the lock. Undo history is yours alone; it is never shared, and taking over a mask from another operator does not give you their history. See Locks.
Where to go next¶
- Brush masking — the brush, its controls, and its shortcuts.
- Vector masks — drawing and editing paths, and using them as stencils.
- Keyboard shortcuts — everything in one list.