Shattered Codex

Wiki

Modules/SC - Jump Scare

SC - Jump Scare

Foundry v13-v14System AgnosticPremium

SC - Jump Scare

Overview

SC - Jump Scare is a system-agnostic Foundry VTT module for GMs who want to deliver a timed image-and-audio scare to selected player clients.

Each saved scare is a sequence of up to twelve visual steps. A step can fill the screen or appear from a position in a 3×3 grid, and has its own image, timing, opacity, motion, and visual settings. Audio can be timed independently on the same preview timeline.

The module is designed around player control. A player can opt out at any time, press Esc to end an active scare on their own client, choose a personal audio level, and disable flashing effects on their own screen.

Installation

This module is premium.

Install access is handled through the Shattered Codex Download Hub. See How to Download Premium Modules from the Download Hub for the complete access and installation flow.

After installing:

  1. Enable SC - Jump Scare in your Foundry world.
  2. Open Configure Settings > Module Settings and select SC - Jump Scare.
  3. Review the World safety controls before creating or triggering a scare.
  4. To open the GM library, use the ghost button in the Token tools on the left side of the canvas. You can also open it from the module settings or assign its keybinding.

The module supports Foundry VTT v13 through v14 and does not require a specific game system.

Create a Scare

Open the GM library and select New scare. Give the scare a recognizable name, then select who it can reach.

The target picker lists the world's players, including offline players. A player who has opted out remains visible but cannot be selected.

Build the visual sequence

In the Sequence tab, click a location on the preview stage to add a step. Choose Full screen for a classic full-canvas scare, or use one of the nine grid positions for an edge or corner reveal.

Every step has its own image, opacity, timing, position, reveal, lean, motion, and window-minimizing options.

Sequence controls in detail

The controls shown for a step depend on whether it uses a position in the 3×3 grid or Full screen.

Controls available for every step

ControlWhat it does
WhereSets where the step appears. Select one of the nine cells to anchor the image to that area of the screen, or enable Full screen to make it cover the entire viewport. Changing modes also changes which layout controls appear below.
ImageSets the media displayed by the step. Browse opens Foundry's file picker, and the × button clears the selected file. The step accepts still images, animated GIF or WebP files, and video files. Videos loop silently during the step; add sound separately in the Audio tab.
OpacitySets the step's maximum visibility, from fully transparent to fully opaque. The effective result cannot exceed the Maximum opacity limit configured in the module's World safety settings.
PoseMirrors the image without changing its screen position. The horizontal control flips it left to right, and the vertical control flips it top to bottom. A highlighted control and the flipped label indicate that the corresponding flip is active.
Wait beforeAdds a delay before the step begins. The image is not visible during this time. Use it to place the step later in the sequence without changing the preceding step.
On entrySets how long the image takes to enter and which motion effect plays during that phase. None applies no entry motion effect; the entry timing still controls the image's fade-in.
During holdSets how long the image remains on screen after entry and which motion effect plays while it is held. Choose None when the image should remain still.
On exitSets how long the image takes to leave and which motion effect plays during that phase. None applies no exit motion effect; the exit timing still controls the image's fade-out.
IntensityControls the strength of the selected entry, hold, and exit motion effects. It does not add an effect by itself, so changing it has no visible result when all three effect menus are set to None.
EasingControls how the motion accelerates and slows over time. For example, Ease out moves more quickly at the start and slows toward the end. It changes the feel of a motion without changing the phase's duration.
Minimize windowsMinimizes open Foundry application windows on the receiving client before the step plays, then restores them afterward. Enable it when sheets or dialogs could cover the image.
RemoveDeletes the selected step from the scare sequence.

All timing fields use milliseconds. A step's total timeline length is Wait before + On entry + During hold + On exit. For example, 300 + 2000 + 300 + 2000 produces a 4,600 ms step.

Controls for a positioned step

These controls appear when Full screen is disabled and the step uses one of the nine grid positions.

ControlWhat it does
SizeScales the image while keeping it anchored to the selected grid position. Lower values make it smaller; higher values make it occupy more of the screen.
RevealControls how much of an edge-anchored image extends into the visible screen. Lower values keep more of it beyond the edge; higher values reveal more of it.
LeanTilts the image relative to its anchored edge. 0% leaves it upright; increasing the value makes the edge reveal lean more strongly.
TurnRotates the image in degrees. Negative values rotate it counterclockwise and positive values rotate it clockwise.

Controls for a full-screen step

These controls replace Size, Reveal, Lean, and Turn when Full screen is enabled.

ControlWhat it does
FitChooses how the image is scaled inside the viewport. Cover screen fills the entire screen and may crop the image's edges. Fit inside preserves the whole image and may leave empty space around it.
EntryChooses the full-screen image's entrance preset. None starts it in its final full-screen position; the separate On entry field still controls its entry duration and optional motion effect.
Lock inputBlocks interaction with Foundry behind the full-screen image while the step is active. The receiving player can still press Esc to end the scare on their own client.

Click a numbered step in the timeline to edit it, or drag within its row to move it to a different location. Use Preview to me to test the complete scare on your own client before sending it to players.

The stage preview and timeline make it possible to check an edge reveal before the scare is triggered at the table.

Add Audio and Preview

Open the Audio tab to add sound to the scare. A scare can contain up to six sounds. Each sound appears as a separate lane below the visual timeline.

Drag a sound clip to choose when it starts, then trim or extend its edges to control playback and looping.

You can set a sound's volume, cut it when the image sequence ends, or use Duck the music to lower Foundry's music and ambience while the scare plays. The player’s own scare-volume setting still applies on their client.

Use Preview to me whenever you change timing, visuals, or audio. It plays the scare locally without targeting another player.

Trigger a Scare

When the scare is ready, a GM can use any of these module workflows:

  • select Trigger Now in the library window
  • use the trigger button on a saved scare in the library
  • select Create Macro to place a hotbar macro for that scare
  • run the module API from a GM-owned script

The macro can use the scare's saved targets or prompt the GM to select connected players when it runs.

js
const api = game.modules.get("sc-jump-scare").api;
api.play("scare-id");

The API can also prompt for targets with api.play("scare-id", { promptTargets: true }). Triggering and library access are GM-only. The module’s comfort controls still apply to every trigger.

Trigger Scares from Regions

You can attach a saved scare to a Foundry Region.

  1. Create or select a Region on the scene.
  2. In Foundry's Create Region Behavior list, add Jump scare.
  3. Select a saved scare, the audience, and the Region events that should trigger it.
  4. Optionally set only once, once per token, or a cooldown in seconds.

The audience can be the player who triggered the event, everyone currently in the Region, or every connected player. If you install or update the module while a world is running, relaunch that world before looking for Jump scare in the behavior list; Foundry reads the behavior type from the module manifest when the world starts.

Safety and Player Controls

Discuss the use of jump scares with your table before enabling them. The module’s safety controls are safeguards, not a substitute for informed player consent.

GM world controls

The World tab is GM-only and sets rules for every scare in the world.

World controls can cap opacity, suppress flashing effects for the whole table, show a safety notice on login, and stop all triggers through the global kill switch.

  • Maximum opacity limits the peak opacity of every scare.
  • Allow flashing effects removes the module's flashing effects from every scare when disabled.
  • Global kill switch stops all triggers without deleting saved scares.
  • Safety notice on login presents every user with information about the module and its flashing-effects controls.

GM visibility without control over player choice

The The Table tab lets a GM see who is receiving scares and who has opted out.

The roster is read-only. A GM can see an opt-out, but cannot change it for a player.

Player controls

Players can open Options from the module settings and use the This Client tab to manage their own experience.

A player controls their own opt-out, flashing-effects preference, and scare-volume scale on this client.

  • Opt out of jump scares prevents every scare from reaching that player. It always overrides GM targeting.
  • Allow flashing on my screen removes flashing effects on that client, even if the world allows them.
  • Scare volume scale adjusts the volume of every scare received on that client.
  • Pressing Esc ends a scare immediately on the receiving client, including a full-screen scare with input lock enabled.

The module also respects the browser's reduced-motion preference by disabling its motion presets and using cuts instead of fades.

Notes and Limits

  • A saved scare library belongs to its Foundry world. Use Export and Import to move the full library between worlds; media paths are retained, but the files themselves are not copied.
  • Importing a library does not transfer hotbar macros, and player targets that do not exist in the destination world are removed.
  • If a Region behavior points to a scare that has been deleted from the library, Foundry warns that the link is broken. Select another saved scare in the behavior configuration.
  • SC - Puzzle Engine can trigger a saved Jump Scare from a puzzle consequence when both modules are active.