# ISceneManager Interface for scene composition and playback. Scenes group multiple recordings with individual time delays and position offsets. --- ## Source ```java package gg.lode.recap.api.scene; import org.bukkit.Location; import java.util.Collection; public interface ISceneManager { boolean createScene(String name); boolean addRecordingToScene(String sceneName, String recordingName, int startDelay, double offsetX, double offsetY, double offsetZ); boolean removeRecordingFromScene(String sceneName, String recordingName); String playScene(String sceneName, Location origin); boolean stopPlayback(String playbackId); void stopAllPlaybacks(); Collection<String> getSceneNames(); boolean deleteScene(String name); } ``` --- ## Methods | Method | Description | |---|---| | `createScene(String)` | Create a new empty scene. Returns `false` if the name is taken. | | `addRecordingToScene(...)` | Add a recording with a tick delay and XYZ offset. Returns `false` if the scene or recording doesn't exist. | | `removeRecordingFromScene(...)` | Remove a recording from a scene by name. | | `playScene(String, Location)` | Play all recordings in the scene at the given origin. Returns a session ID, or `null` on failure. | | `stopPlayback(String)` | Stop a specific playback session by ID. | | `stopAllPlaybacks()` | Stop all active playback sessions. | | `getSceneNames()` | List all saved scene names. | | `deleteScene(String)` | Delete a scene file by name. | --- ## Related Pages - [[Recap/API/RecapAPI]] — accessor class - [[Recap/API/IRecordingManager]] — recording management - [[Recap/Developers/Overview]] — usage examples