# 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