9.6 KiB
Settings, keyboard shortcuts, auto-save and crash recovery
Settings (Preferences)
EffectCraft ▸ Settings (macOS) or Edit ▸ Preferences (Windows/Linux), Cmd+Alt+;. The dialog has
After Effects 2026's pages (General, Startup & Repair, Project, Composition, Previews, Appearance,
Grids & Guides, Labels, Type, Import, Export, Audio, Disk, Memory & CPU, Video, 3D, Scripting &
Expressions) with OK, Cancel, Previous and Next. Older page names still open the right page
(prefs.open {"page": "Auto-Save"} opens Project, Media & Disk Cache opens Disk, Memory & Performance opens Memory & CPU).
The model is effectcraft_engine::prefs::Prefs: serde, versioned (version), addressed by dotted
keys (general.undoLevels, autoSave.intervalMinutes, labels.3.name). It is stored as
prefs.json through the session's ConfigStore (the desktop app uses the platform config
directory: ~/Library/Application Support/EffectCraft on macOS, %APPDATA%\EffectCraft on
Windows, $XDG_CONFIG_HOME/effectcraft on Linux; the web app can back the same trait with
localStorage). Loading migrates older layouts, keeps unknown keys (from newer versions) and
falls back to defaults for values that don't parse.
Commands (CLI, MCP, control channel):
| Command | Parameters |
|---|---|
prefs.get |
{key?} (omit for everything) |
prefs.set |
{key, value} or {values: {key: value}} |
prefs.reset |
{page?} (omit for everything) |
prefs.open |
{page?} opens the Settings dialog |
prefs.pages |
the page schema: every row, its key, type, range and whether it is wired |
Settings that change behaviour
general.undoLevels: Levels of Undogeneral.pathPointSize: Path Point and Handle Sizegeneral.recentItems: Recent Projects Showngeneral.showToolTips: Show Tool Tipsgeneral.createLayersAtCompStart: Create Layers at Composition Start Timegeneral.defaultSpatialLinear: Default Spatial Interpolation to Linearstartup.showHomeOnLaunch: Show Home Screen When Launchingstartup.offerCrashRecovery: Offer to Open the Latest Auto-Save After a Crashproject.useTemplate: New Project Loads Templateproject.templatePath: Template ProjectautoSave.enabled: Automatically Save ProjectsautoSave.intervalMinutes: Save EveryautoSave.maxVersions: Maximum Project VersionsautoSave.location: Auto-Save LocationautoSave.folder: Custom LocationautoSave.saveOnRenderStart: Save When Starting Render Queuecomposition.showRenderingProgress: Show Rendering Progress in Info Panel and Flowchartpreviews.adaptiveResolutionLimit: Adaptive Resolution Limitpreviews.cacheFramesWhenIdle: Cache Frames When Idlepreviews.fastPreviews: Fast Previews (Draft 3D, Faster Effects)appearance.theme: Themeappearance.brightness: Brightnessappearance.useLabelColorForHandles: Use Label Color for Layer Handles and Pathsgrids.gridColor: Colorgrids.gridSpacing: Gridline Everygrids.gridSubdivisions: Subdivisionsgrids.guideColor: Colorgrids.actionSafe: Action-safegrids.titleSafe: Title-safeimport.stillFootage: Still Footageimport.stillSeconds: Still Durationimport.sequenceFps: Sequence Footageaudio.outputDevice: Default Output (device list from the desktop host)audio.outputLeft: Left (Audio Output Mapping)audio.outputRight: Right (Audio Output Mapping)memory.layerCacheMb: Layer Cachememory.mediaCacheMb: Footage Frame Cachememory.previewCacheMb: Preview (RAM) CachethreeD.defaultRenderer: Default 3D Rendererlabels.N.name/labels.N.color: the 16 label names and colours, used by the Label menu, the timeline, project panel, render queue and viewer handles
Not wired yet (TODO)
These rows are in the dialog for After Effects parity and are stored, but nothing reads them yet.
prefs.pages reports them with "live": false. A test keeps this list in step with the schema.
general.switchesAffectNestedComps: Switches Affect Nested Compsgeneral.preserveConstantVertexCount: Preserve Constant Vertex and Feather Point Count when Editing Masksgeneral.syncTimeRelatedItems: Synchronize Time of All Related Itemsgeneral.expressionPickWhipCompact: Expression Pick Whip Writes Compact Englishgeneral.createSplitLayersAbove: Create Split Layers Above Original Layergeneral.useSystemColorPicker: Use System Color Pickerstartup.showHomeOnOpenProject: Show Home Screen When Opening a Projectcomposition.motionPath: Motion Pathcomposition.motionPathSeconds: Secondscomposition.motionPathKeyframes: Keyframescomposition.hardwareAcceleratePanels: Hardware Accelerate Composition, Layer and Footage Panelspreviews.showInternalWireframes: Show Internal Wireframespreviews.zoomQuality: Viewer Zoom Qualityappearance.useLabelColorForTabs: Use Label Color for Related Tabsappearance.cycleMaskColors: Cycle Mask Colorsappearance.useGradients: Use Gradientsgrids.gridStyle: Stylegrids.proportionalHorizontal: Horizontalgrids.proportionalVertical: Verticalgrids.guideStyle: Styletype.textEngine: Text Enginetype.fontPreview: Show Font Previewtype.recentFonts: Number of Recent Fonts to Displaytype.fontNamesInEnglish: Show Font Names in Englishimport.reportMissingFrames: Report Missing Framesimport.unlabeledAlpha: Interpret Unlabeled Alpha Asimport.dragImportAs: Default Drag Import Asexport.defaultOutputFolder: Default Output Folderexport.segmentSequences: Segment Sequencesexport.segmentSequenceFiles: Files per Segmentexport.segmentMovies: Segment Movie Filesexport.segmentMovieMb: Segment Sizeexport.appendBitsToName: Append Bit Depth to File Nameaudio.previewSampleRate: Preview Sample Ratedisk.diskCacheEnabled: Enable Disk Cachedisk.diskCacheMaxGb: Maximum Disk Cache Sizedisk.diskCacheFolder: Disk Cache Folderdisk.mediaCacheFolder: Database and Cache Folderdisk.conformedMediaFolder: Conformed Audio Foldermemory.ramReservedGb: RAM Reserved for Other Applicationsmemory.reduceCacheWhenLow: Reduce Cache Size When System Is Low on Memoryvideo.enableOutput: Enable Video Preview Outputvideo.device: Video Devicevideo.outputDuringPlayback: Video Output During Playbackvideo.mirrorOnMonitor: Mirror on Computer Monitorvideo.disableWhenBackground: Disable Video Output When in BackgroundthreeD.showReferenceAxes: Show 3D Reference AxesthreeD.extendedViewer: Extended ViewerthreeD.realtimeShadows: Realtime Shadows in Draftscripting.allowScriptsWriteFiles: Allow Scripts to Write Files and Access Networkscripting.warnExecutingFiles: Warn User When Executing Filesscripting.enableJsDebugger: Enable JavaScript Debuggerscripting.editorFontSize: Font Sizescripting.syntaxHighlighting: Syntax Highlightingscripting.lineNumbers: Line Numbersscripting.autoComplete: Auto-completescripting.bracketMatching: Bracket Matchingscripting.wordWrap: Word Wrapscripting.errorBanner: Show Expression Error Banner
Keyboard shortcuts
Edit ▸ Keyboard Shortcuts (Cmd+Alt+') opens the shortcut editor: an on-screen keyboard showing
which keys are assigned for the held modifiers (purple: application-wide, green: panel-specific,
both: split), modifier toggles, a searchable list of every command (all engine commands, menu
entries with bound parameters and the frontend's tool / panel commands), and a preset menu.
- Presets. "EffectCraft Default" is After Effects' default layout and is read-only; editing it creates a "Custom" copy. Custom presets store only their differences from the default and can be duplicated, renamed, deleted, exported and imported (JSON). The active preset is what the menus show and what the shortcut dispatcher runs.
- Assigning. Select a command, then press keys in the shortcut field (or type them), or click a key on the keyboard with the modifiers toggled. Conflicts with other commands in an overlapping scope are listed before you assign.
- Scope. Menu and engine commands are application-wide; timeline commands work in the Timeline and viewer commands in the Composition panel.
Commands: shortcuts.list {query?, keys?, assigned?}, shortcuts.set {command, params?, keys},
shortcuts.reset {command?}, shortcuts.preset {op: select|new|duplicate|delete|rename, name?, from?, newName?}, shortcuts.export {preset?, path?}, shortcuts.import {path? | preset?},
shortcuts.conflicts.
Auto-save and crash recovery
- Every n minutes (Settings ▸ Project ▸ Auto-Save) a project with unsaved changes is written
to an
EffectCraft Auto-Savefolder next to it (or the custom folder) as<name> auto-save N.ecproj. Slots rotate through 1…maximum versions, overwriting the oldest. Untitled projects go to the custom folder, or toAuto-Savein the config directory. - Every project and auto-save write is atomic: a temporary file is written and flushed, then renamed over the target, so a crash mid-write leaves the previous file intact.
- While the app runs,
session.lockin the config directory records the open project and its latest auto-save. A clean quit removes it. If it is still there at the next launch, the app offers to open the latest auto-save (Settings ▸ Startup & Repair can turn this off). - File ▸ Open Recent lists recent projects (stored in the settings), File ▸ Revert reloads the
saved project, File ▸ Increment and Save saves
Intro.ecprojasIntro 2.ecproj.
Commands: file.autoSave (now), file.recoveryInfo, file.openRecent {index? | path?},
file.clearRecent, file.revert, file.incrementAndSave.