Sync
Watches the sync folder, reads MOGRT controls, and updates online template metadata.
Learn how to publish After Effects MOGRTs, shape the browser editor your team will use, and render their finished versions on your own machine.
Publish your first working template
Start with one simple MOGRT. Once the full loop works, add logic and automation.
Create your MoDeck account, then install the desktop app on a Mac or Windows computer with After Effects.
Open App settings and choose an installed After Effects version, or use Select custom folder… to locate your installation. Stop background After Effects before changing versions. Note the sync folder. The default is a folder named MoDeck Sync in your user folder.
Create a folder inside the sync folder and put one or more After Effects MOGRT files inside it. The folder name becomes the online template name.
MoDeck Sync/└─ Social Posts/ ├─ Headline.mogrt └─ End Card.mogrtMOGRTs can sit in subfolders. The same folder structure appears in the browser. Rename the template folder whenever you want to rename the online template. MOGRT files placed directly in the sync-folder root are not treated as a template.
Keep the desktop app running, open the browser editor, create an edit, change an option, fetch a preview, and request a render.
Invite editors by email, add a user group, or create a Magic Link from User management.
Your source AEPs and locally referenced template assets stay on the render machine. MoDeck syncs the MOGRT's editable metadata and template settings. Browser-uploaded media and completed renders use MoDeck's file service when upload is enabled, so they can move between the editor and the render machine.
Turn on Auto export mogrts from aeps in sync folder in App settings, then save an AEP inside a template folder. MoDeck exports comps with Essential Graphics that are either at the project root or inside an After Effects project folder named (or commented) modk-export.
This is useful while developing a template because saving the AEP refreshes its MOGRT files automatically.
The bridge between the browser and After Effects
The desktop app is both the template manager and the local render worker.
Use the template dropdown at the top of the desktop app, then open the tab for the job you want to do: Edits, Template settings, Template logic, User management, Render settings, or Render log. The controls in those tabs apply to the selected template.
Watches the sync folder, reads MOGRT controls, and updates online template metadata.
Stores editor behavior, template logic, sharing, local paths, and render settings.
Asks After Effects for still previews that reflect the editor's current choices.
Claims queued work, assembles an AEP, renders locally, and handles the finished files.

MoDeck can keep a separate background instance of After Effects ready for previews and assembly. The AE indicator in the app shows its state. You can disable launching it at startup to save memory; the first preview or render will then take longer to begin.
Template metadata remains visible online, but a connected desktop app is needed for fresh After Effects previews and final renders. If no eligible render machine is online, requests cannot be completed until one connects.
Closing the app, signing out, letting the machine sleep, or losing access to After Effects stops that machine from processing work. The app includes startup, sleep-prevention, and operating-system notification options for render stations.
Choose how much freedom your editors get
Both editor types use the same exposed MOGRT properties. The difference is how the experience is presented.
In the desktop app, select the template, open Template settings, then find Online editor. Choose Journey editor (simple) or Sequence editor (advanced). MoDeck saves the choice for that template, so it controls which experience opens in the browser; you can change it later without editing or re-exporting the MOGRTs. Use Open this template in online editor at the bottom of the tab to test it.
Best when editors should build, reorder, and reuse scenes.

Best for a single scene or a tightly controlled, form-like workflow.

The MoDeck online editor is capable of providing live previews of your edits, drag the playhead at the top of the timeline in order to see your edits at that point. To configure previews, select the template in the desktop app and open Template settings → Preview behavior. There you can set its maximum width and height, and show After Effects comp markers in the browser.
Hover over a freshly generated still preview to show boxes around editable text. Click a box to focus and select its text input, then type a replacement. This works in both Sequence and Journey. Hidden inputs and values supplied by a spreadsheet, JSON, or hidden expression are excluded.
Focusing a text input moves the preview to the midpoint of that text layer's in/out range, unless the current preview time is already inside it. Global text inputs use the first linked text layer. Timing becomes available from a generated preview and is approximate for nested compositions; stretching, time remapping, opacity and position animations are not taken into account.
Visible media replacement layers also show bounds on hover, with a Select media button in the center. Click it to open the same media picker as the option panel. This works in Sequence and Journey, including linked global media options; data- or expression-driven inputs remain controlled by their source.
In the advanced Sequence editor, hovering over a fresh still preview also shows targets for editable 2D Number position controls. Drag a target and release it to update its X/Y values and generate a new preview. You can still enter the numbers directly.
In Journey, place a preview comment before the options that should use that frame. Selecting a named preview frame moves the playhead to that moment in its MOGRT and loads it through the same preview system as the scrubber. The frame buttons and Journey frame menu remain shortcuts to those times.
Google Sheet previews may reuse data fetched in the previous 10 seconds. Refresh the sheet manually when you need a change immediately. Final renders fetch the current data again.
Share a template without sharing After Effects
Access is managed per template from the desktop app's User management tab.
Each link has its own name, assigned editors, and render-request settings:
Enterprise accounts can upload a compact logo and set the editor colors from browser account settings. Your branding is used whenever an editor opens one of your templates.

With custom SMTP enabled in the desktop app, you can change email subjects and buttons or provide full HTML templates for invitations and completed renders.
Custom links and HTML can use {{ deckName }}, {{ editName }}, {{ deckID }}, {{ editID }}, {{ magicLinkHash }}, {{ hashPass }}, and {{ hashVisitor }}. Values that do not apply to that email are removed.
Prepare MOGRTs for a good browser experience
Any MOGRT made in After Effects can be read by MoDeck. The quality of the editor depends on how deliberately you expose and name its controls.
Every Essential Graphics control becomes work for the editor. Hide implementation controls and use Modk commands for MoDeck-only behavior.
Name controls for the person supplying content, “Headline” is clearer than “Source Text 2.” Use groups and comments to add structure and guidance.
Set sensible defaults, limits, and required fields. Test long text, missing media, unusual aspect ratios, and the maximum intended duration.
Preview frames should show the option clearly. Add more than one named frame when a single moment cannot represent the whole MOGRT.
Drag a supported footage or comp layer into Essential Graphics. Replacements keep the bounds of the original layer and follow its Default Scaling setting. To expose audio, precompose the audio layer and add that precomp instead.
Editors can upload or select images, video, and audio; crop images; and trim video or audio. They can also enter a filename from _modk-data/User media or an additional media folder. Use forward slashes for subfolders, including on Windows. Browser uploads are downloaded automatically into a folder for that editor.
Media values can come from the browser, CSV, Google Sheets, or JSON. An HTTPS file URL, or a supported video-platform page such as YouTube, Vimeo, or Instagram, is downloaded by the desktop app before assembly.
In the media picker, choose Generate speech audio file from text, select a voice, and enter the script. The script can also be linked to spreadsheet or JSON data to generate different speech for each version.
When exporting from After Effects 24.2 or later, enable Include video preview. The browser can play that clip when an editor hovers over the MOGRT.

Place an MP4 with the same name as the template folder beside the folder in the sync root. You can also override an individual MOGRT's online thumbnail from Template logic.

Modk commands
Commands are specially named Essential Graphics comments, controls or comp markers that are used to define specific functionality on the MoDeck editor. MoDeck reads them during sync and hides the command controls from editors. Add an Essential Graphics comment from the panel's Add Formatting menu.

In Template logic, open a MOGRT's settings to adjust overlap, editable duration, start delay, base-MOGRT behavior, and preview frames. These saved settings override values read from the MOGRT file and can be reset later.
modk-preview-[name]Defines a still-preview frame. For a comment, put the frame number in the comment value. For a marker, place the marker at the desired time. The optional name lets editors switch between several frames.
Without a preview command, MoDeck uses the midpoint.
modk-renderDefines a frame for JPG or PNG output. Add one marker for each still you want rendered.
A marker can contain comma-separated commands, for example: modk-render, modk-preview-End.
modk-setDurationSets the assembled MOGRT comp duration in seconds from the slider's evaluated value. Drive the slider with an expression when duration depends on another option or replaceable media.
After Effects calculates this value, so the browser timeline updates its displayed duration after a fresh preview.
modk-setStretchLike modk-setDuration, but time-stretches the MOGRT layer to the evaluated number of seconds. Use this when protected regions make changing the source comp duration unsuitable.
modk-dimensionsDefines named output sizes that editors can preview and select when rendering. Each selected size becomes a separate output file.
Add a Dropdown Menu Control, format its items like 1080x1920-Story, then expose its Menu property as modk-dimensions. See the setup guide below.
modk-durationEditableLets editors change a MOGRT's duration. Put an initial duration in frames in the comment value. The source comp duration is the maximum.
Ignored when the MOGRT also uses modk-setDuration or modk-setStretch.
modk-stretchEditableAdds the same editable-duration control, but time-stretches the MOGRT layer rather than changing its comp duration.
modk-startEditableLets editors add a delay before the MOGRT starts. Put the initial delay in frames in the comment value.
modk-overlapStarts this MOGRT early so it overlaps the previous one. Put the overlap length in frames in the comment value.
Overlap shortens the total sequence duration by the same amount.
modk-transcribeAdds the option to transcribe audible speech into online timeline markers. Leave the value blank for all audio layers or enter comma-separated AE layer indexes.
modk-baseMarks the MOGRT as a persistent layer behind the sequence. Optional values are always, stretch, and fixed; combine them with spaces when needed.
modk-indexReceives the zero-based position of this MOGRT in the sequence. A base MOGRT receives -1. Use it in AE expressions for first-, middle-, or last-scene behavior.
modk-countReceives the total number of MOGRTs in the sequence. A last item has index equal to count minus one.
modk-editNameReceives the edit name entered in the browser or sent through the API.
modk-dimensions lets one MOGRT support several output sizes, such as landscape, square, and vertical. Editors can preview a size while working, then select one or several sizes when they request a render. MoDeck produces a separate output for every selected size.
widthxheight-name, with width first and height second. For example: 1920x1080-Wide, 1080x1080-Square, and 1080x1920-Story. The text after the first dash is the name shown in MoDeck, so give each size a unique name. If you omit it, the dimensions themselves are used as the name. modk-dimensions. MoDeck recognizes it during the next sync and hides the command control from editors. modk-dimensions to the matching menu item. Use responsive layout expressions and, when needed, the dropdown value to reposition, resize, or show different layers for each format. The responsive-size expressions below are a useful starting point. MoDeck changes the comp dimensions and centers the assembled MOGRT, but the artwork still needs to be authored responsively. Test text wrapping, media crops, safe areas, and layer positions in every supported aspect ratio.

1920x1080-Wide and 1080x1920-Story become named dimension choices in the render dialog. Add specific text at the beginning of your MOGRT option name to alter how that option works.
| Pattern | Use |
|---|---|
*Headline | Make a text, media, or dropdown input required. Editors cannot preview or render until it has a value. |
multiline-Body copy | Show a multi-line text area instead of a single-line input. |
limit-80-Headline | Limit a text input to the stated number of characters. |
direct-Volume | Apply the value directly to the source property as well as the Essential Property. Useful for properties such as audio volume. |
For a required multi-line or limited text field, put * first, for example *multiline-limit-200-Description.
Apply these to a layer's Scale property when the MOGRT may be rendered at several sizes.
var r = sourceRectAtTime(time);
var sx = thisComp.width / r.width;
var sy = thisComp.height / r.height;
var s = 100 * Math.min(sx, sy);
[s, s];var r = sourceRectAtTime(time);
var sx = thisComp.width / r.width;
var sy = thisComp.height / r.height;
var s = 100 * Math.max(sx, sy);
[s, s];var limitW = 500;
var limitH = 500;
var r = sourceRectAtTime(time);
var s = Math.min(
100 * limitW / r.width,
100 * limitH / r.height,
value[0]
);
[s, s];These help animations survive a duration change. Use the first for an outro or fade that must stay at the end; use the second when all animation should scale across the new duration.
var dur = thisComp.duration;
var lastKeyTime = thisProperty.key(thisProperty.numKeys).time;
valueAtTime(time - dur + lastKeyTime);var dur = thisComp.duration;
var lastKeyTime = thisProperty.key(thisProperty.numKeys).time;
valueAtTime(time / dur * lastKeyTime);Connect template-wide choices to MOGRT controls and scene structure
Every MOGRT has its own local options, such as its headline, color, or media. Template logic lets you create global options that belong to the template as a whole, then use those values to control options across several MOGRTs and decide which MOGRTs may appear in an edit.
Select the template in the desktop app and open Template logic. The page has two main areas: Global options at the top and MOGRTs below. Changes remain a draft until you choose Save and apply logic; Cancel changes reloads the last saved version.

These come from the MOGRT's Essential Graphics properties. They only affect that MOGRT and normally appear whenever an editor adds or reaches that scene. Two MOGRTs can each have a separate option named “Headline.”
These are created in Template logic and appear once for the whole edit, independently of any single scene. One global value can drive options in several MOGRTs and can be used to keep or remove scenes.
Create a global dropdown named Style with “Light” and “Dark.” Link it to the color options in an intro, body scene, and end card. The editor makes one choice and all three MOGRTs receive the appropriate values. You can also add a condition so a dark-only end card is available, or included in a predefined sequence, only when Style is “Dark.”
Add the global text, dropdown, media, and guidance fields that an editor should set once for the entire edit.
Let editors build their own sequence, or define the exact scene order they will start with.
Link each relevant MOGRT option to a global option, using mapping or an expression when a direct value is not enough.
Use global values to control which MOGRTs are available or retained in the sequence, and which inputs remain relevant.
Use the add button below Global options, then choose the option's type, name, and default value. Global options are displayed in their own area in the browser editor and are saved with the edit.
Under MOGRTs, choose one of the two sequence modes. This is separate from choosing the Sequence or Journey editor: the editor type controls how choices are presented, while this setting controls who determines the scene order.
Every permitted MOGRT is available in the browser for editors to add, reorder, and reuse. You can still link its local options to global options and add conditions that decide whether the MOGRT is available.
If a condition hides a MOGRT in this mode, MoDeck removes it from the MOGRT browser and removes any instances already placed on the timeline.
Use the add button to choose MOGRTs, then arrange them in the required order. Editors supply values but cannot add, remove, or reorder scenes themselves. Show/hide rules can still remove individual sequence items according to global choices.
Each position is configured separately. This means the same MOGRT can be used more than once with different links or conditions at each point in the sequence.
Open a MOGRT's logic panel with the control at the lower-right of its card. The dialog lists that MOGRT's local options. Use the link button beside an option, then select the compatible global option that should drive it.
Once a local MOGRT option is directly linked, it no longer appears as a separate browser input because its value now comes from the global option. Use Auto link options by name when global and local option names already match. If their values do not map directly, use dropdown mapping or an option expression as explained below.
In the same MOGRT logic dialog, add a show if or hide if rule and compare one or more global options with the values that should keep or remove that MOGRT. Conditions can be grouped with AND and OR rules for more specific behavior.
The condition controls whether that MOGRT may be used at all. When hidden, it disappears from the browser and any copies already on the timeline are removed.
The condition controls one specific item in the predefined sequence. If it evaluates as hidden, that item is omitted while the remaining scene order stays intact.
You can also conditionally show global inputs based on other global values, or show a local MOGRT option based on another local option in that same MOGRT. These input-level rules remove irrelevant questions without changing the sequence itself.

Journey shows visible global options first, followed by the visible local options from each MOGRT in the predefined sequence. If a condition removes a sequence item, that MOGRT and its questions are omitted from the journey.
When you link a global dropdown to a local MOGRT option, the link dialog shows one mapping row for every global dropdown choice. Enter the value that the local option should receive for each choice. This is useful even when the local option is not a dropdown, for example, “Light” and “Dark” can map to two colors, checkbox states, media files, or numeric values.
The global and local dropdowns do not need to contain the same choices. For text and multiline-text options, use Populate all with dropdown option names when the displayed dropdown labels are already the text values you need. Save and apply the logic after completing every mapping row.

Use an option expression instead of a direct link when a local value must be calculated from several global options or transformed with more specific rules. Open the MOGRT's logic dialog and choose the expression button beside the local option. The JavaScript expression's result becomes that option's value.
Right-click in the expression editor to insert an available global option, then use Evaluate expression to check the result. The final result must match the local option's expected type, for example, text for a text option or a valid numeric value for a slider.
if (globalOption("Global dropdown").value === "Custom") {
globalOption("Custom text").value;
} else {
globalOption("Global dropdown").value;
} This expects global options named Global dropdown and Custom text. Add a show/hide condition so the custom field only appears when the dropdown is set to “Custom.”

How browser timelines become an After Effects comp
MoDeck assembles the selected MOGRTs into a comp named modk-sequence. Expressions inside a MOGRT can reference that comp to react to the surrounding sequence, for example, a base MOGRT can respond while a named scene is playing.

MOGRTs are placed in editor order.
Each new MOGRT is layered above the previous one.
Durations, start delays, overlap, options, logic, and media are applied.
An optional base MOGRT is moved behind the sequence.
Put the incoming transition at the start of a MOGRT and use modk-overlap so it begins before the previous MOGRT ends. For an outgoing animation on editable-duration MOGRTs, use protected regions with stretch behavior or drive the end keyframes from comp duration. Use modk-index and modk-count when the first or last scene should behave differently.
A base MOGRT sits behind the entire sequence and is useful for a continuous background, music bed, watermark, or other persistent layer. Add modk-base or enable it in the MOGRT settings panel. By default editors can choose the base; always makes it mandatory, stretch time-stretches it, and fixed makes its duration determine the edit duration.
Create one video, or hundreds, from data
In the Sequence editor, data sources can populate MOGRT options and global options. One row or array item becomes one output version.

Upload a CSV or build a sheet in MoDeck, then link each column to an option. Editors can also put media filenames or URLs into cells.
Connect an authorized sheet or a sheet available to anyone with the link. Data is fetched again on the render machine before output.
Fetch HTTPS JSON, choose values with JSON paths, use request bodies and headers when needed, and select an array for multi-video output.
CSV, Google Sheets, and JSON edits can run on a schedule. Keep a render machine online at the scheduled time.
Skip rows based on a spreadsheet column and value, or use template show/hide logic to remove scenes per version.
Options automatically link to spreadsheet columns with exactly matching names, including options in newly added scenes. This sets the initial link; you can choose any other column in the option's spreadsheet link menu, or choose none to keep its value independent of the sheet.
Build filenames from edit data, date and time, dimensions, global options, spreadsheet values, and other render context. Each completed batch is also saved in the configured completed-renders folder (by default, _modk-data/Renders).
The sheet supports searching, editing cells, pasting a tab-separated range, adding rows below the Row column and columns at the right end of the header, and clicking a row number to preview that version. The dialog expands with the sheet up to the screen edges, then scrolls to show additional rows and columns. Double-click a cell to edit longer text. Only the visible rows are drawn, keeping large sheets responsive. Automatic linking preserves your chosen column mappings and explicit none choices when you reopen an edit or render it. This also applies to global options, base scenes, and Google Sheets.
CSV files can be up to 50 MB. Free templates support 3 rows, Pro templates 30, and Enterprise templates up to 100,000. A row may contain up to 256 KB, with at most 1,000 columns and 128 MB of expanded data in a batch. Ambiguous column names and invalid CSV are reported before importing; extra rows are never silently discarded. These are input limits, not a guarantee of render throughput on a particular computer.
You can open Renders from the editor or by clicking the edit's play button in the template list. While a batch is running, click its rendering indicator to open the same panel.
The batch view lists one item per spreadsheet row: Video 1, Video 2, and so on. Each item groups all selected output sizes and formats, with one status and progress indicator for the row. Expand it to see its source data and choose an output to preview or download. Three rows with three sizes and one format produce three list items, each containing three files. A row completes when all its outputs have been delivered.
Pause after current video preserves remaining work. Resume batch continues it. If a video fails, the other videos continue and Retry failed videos retries the failures using the same captured data. To change source values or edit settings, request a new batch. Cancel stops further videos; files already completed stay available.
If the connection drops or MoDeck restarts, reopen the desktop app on the same render machine and sign in. It resumes from saved row and output-size checkpoints. An interrupted output may render again; verified completed outputs and uploaded file parts are reused. Keep the batch job folder under _modk-data/Temp/Renders intact until the batch finishes. A disconnected batch is not automatically handed to another computer.
Google Sheets and JSON are fetched when a new batch starts. That captured data is reused for retries. Videos that need rendering use the latest local MOGRTs, including on retry. Presets are copied for the run; replacement media is captured when each row is prepared. Completed local checkpoints are retained for seven days, then removed when another batch starts. Incomplete checkpoints are retained for recovery and protected from Clear temporary files. Each job uses a readable template/edit folder with a short suffix; each video and size has one working folder directly inside it. Finished videos are moved individually to the configured Render Output Path, with their filenames and any output subfolders preserved. Batch delivery adds no extra batch/row folders and creates no ZIP, whether cloud upload is enabled or disabled. This lets existing watch-folder ingest workflows pick up the media.
Extracted MOGRT assets are shared by previews and renders in Temp/Assets, with one folder named after each MOGRT plus a short suffix. Updated MOGRTs get a fresh extraction. There are no separate preview or batch asset copies. Save as AEP includes its own asset copies alongside the exported project.
Import a CSV into an After Effects project, add it to a comp, open the CSV layer's Data property group, and drag that group into Essential Graphics. MoDeck uses it as the default spreadsheet for every new edit made from the template.
With JSON connected, right-click supported text, media, and JSON URL inputs to insert values from a response. You can combine fetched data with other text, or use one response to build a later request URL.
From browser request to delivered file
The server coordinates the work; the desktop app and After Effects do the creative processing.
In the desktop app, select the template and open Render settings. Enable at least one output format, choose the completed-renders folder, and decide whether finished files should be uploaded for browser download and email delivery. Then open the template in the browser, finish an edit, and use its render button to submit the job.
MoDeck saves the latest choices and creates a render request. A Magic Link may hold it for your approval first.
The server assigns an eligible connected desktop app and prevents another machine from taking the same request.
It fetches current data and media, extracts the MOGRT projects, applies logic, and builds the modk-sequence comp.
AE or Media Encoder creates every requested version, dimension, and enabled output format on the local machine.
The app moves files to the completed folder, optionally uploads them, updates status, sends webhooks, and triggers notification email.
| Setting | What it controls |
|---|---|
| Output formats | MP4, MOV, JPG, PNG, GIF, and one or more Adobe Media Encoder EPR presets. |
| Allow editors to select formats | Shows the enabled format choices when an editor requests a render. |
| Upload after render | Uploads completed files so editors can view or download them and receive a delivery email. |
| Completed-renders folder | The final local destination after files leave the temporary working folder. |
| File naming | Separate conventions for single and multi-version output, with dynamic fields and optional subfolders. |
| Render webhook | POSTs render-status changes to another service. Completed status includes file links when available. |
| Expression engine | Must match the engine used when authoring the MOGRTs: JavaScript or Legacy ExtendScript. |
For JPG or PNG, add modk-render markers to the MOGRT's main comp. MoDeck outputs a still for each render marker; without one it uses a midpoint fallback. One marker can serve both purposes, for example modk-render, modk-preview-Hero.
Place JSX files in the template folder to run them after MoDeck assembles the project and before the AEP is saved. This is an advanced escape hatch for custom AE processing. The script runs in the assembly scope, where config.editName, config.moseq, config.globalProperties, and the assembled project are available.
Sign in to the same MoDeck account on several computers to distribute separate jobs. The server assigns work to an available app; it does not split one render across machines. Every machine must have compatible After Effects, fonts, media, presets, MOGRT files, template folder names, and the same hidden .modeck file so the folders point to the same online template.
When you add or update a MOGRT, the desktop app collects the necessary locally available font files into _modk-data/Fonts inside your sync folder. Only font names, file hashes, sizes, and scan status are stored with the online template; font files stay on your computer.
If a compatible copy is both installed locally and available through Adobe Fonts, MoDeck prefers the installed copy.
Successful MOGRT font scans are saved in the template's hidden .modeck file and reused after refreshes and app restarts. MoDeck checks the MOGRT's content hash before reusing saved results; changed files are scanned again. Refresh templates still checks for newly available fonts and retries incomplete scans.
To ensure clean font handling, before a preview or render, MoDeck prepares uniquely named copies of the required fonts in Adobe's shared Fonts folder and prepares a local copy of each extracted After Effects project that uses those fonts. Different MOGRTs can use different versions of the same font. Source MOGRTs and your installed fonts stay unchanged. The prepared fonts appear only in Adobe apps, grouped under names beginning with z_modeck. Initial setup may request administrator access once; subsequent font additions normally reuse the folder's saved permissions. See the "Font management" section in the desktop app for details.
Saved AEP exports also reference MoDeck's prepared Adobe fonts. Opening them on another computer requires preparing the same font files there.
If using multiple render machines, it is your responsibility to ensure each render machine shares the same mogrts files. This can be done using your own shared storage or deployment process to synchronize files across different render machines.
When a preview or render fails
Work through these checks in order. They solve the most common local-render problems.
Check that the desktop app is signed in, the template is active, After Effects is found, and the app shows no sync warning.
Open the template's Render log. It records the edit, machine, status code, and error detail for each stage.
For custom Media Encoder presets, MoDeck checks the encoder if no progress is reported and output files do not grow for five minutes. If the job remains inactive, it reports a failure and asks the encoder to stop. Longer renders continue while progress or output activity is detected. If MoDeck cannot confirm that the encoder stopped, close and reopen Media Encoder before retrying. A paused encoder also needs attention on the render machine.
Make sure the temp and output drives have space and all MOGRTs, media, fonts, and Encoder presets are available on this machine.
Let renders, previews, syncing and media downloads finish, then stop background AE using the AE indicator. Use the desktop app setting to clear temp files, then retry. Cached extracted MOGRT projects are rebuilt.
Close Media Encoder, stop background AE from the app, close any stranded After Effects processes, then start background AE again.
For visual or timing errors, inspect the AEP in the temp folder. The root modk-sequence comp shows exactly what MoDeck assembled. For a preview-only problem, enable Save preview AEP for troubleshooting (slower) in the desktop template's Preview behavior settings, request another preview, then open Temp/Previews/latest_preview.aep on the render machine handling that request. This setting also saves latest_preview_diagnostics.json in the same folder, with preview settings, AE environment, assets, effects, fonts and any captured failure details. Include this file alongside desktop logs when reporting a preview problem; Submit logs does not attach it automatically. Draft previews do not save these troubleshooting files. The requested modk-sequence comp is inside its preview folder. Disable this setting afterward to avoid saving a project on every preview.
Native-bridge versions of MoDeck use a C++ After Effects plug-in to prepare previews, export templates and assemble renders. On first launch after discovering After Effects, MoDeck installs or verifies the bundled plug-in without starting AE. It also verifies the plug-in before starting background AE. If administrator permission is required, MoDeck explains why and opens the operating system's permission prompt. Approve it (enter an administrator's credentials if requested); MoDeck finishes installation and verifies the files automatically. No manual file copying, commands or Adobe SDK installation are needed. The plug-in only connects from the background AE instance launched by MoDeck.
Update or reinstall MoDeck, and try starting background AE again. If you declined the administrator prompt, retry and approve it. Keep the full bridge error from MoDeck's log when contacting support.
The bridge file is MoDeckBridge.aex in Adobe's shared MediaCore folder, typically C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore. MoDeck obtains this location from the selected AE installation's registry settings. AE versions share this copy. Standard Windows installations require administrator approval for installation, updates and repair. Already-current bridge files are verified without another prompt. A custom installation in a writable folder may not need approval. If another running AE instance locks a bridge file during an update, save your work and close that instance, then retry setup.
The bridge bundle is installed in your user Library at ~/Library/Application Support/Adobe/Common/Plug-ins/7.0/MediaCore/MoDeckBridge.plugin. This normally needs no administrator rights and is shared by AE versions on your Mac. Use the MoDeck build for your processor architecture.
Drive MoDeck from another application
Use the API to inspect templates, create previews, queue renders, manage media and editors, and connect MoDeck to your own interface or workflow.
Generate it in browser account settings. Treat it like a password; creating a new key replaces the old one.
Prefer Authorization: Bearer YOUR_API_KEY. The API also accepts an apiKey field in the JSON body.
/render, /preview, and local-media routes need a connected desktop app. Read-only template routes do not.
The examples below place apiKey in the request object. Omit that field when you authenticate with the recommended Bearer header instead.
/listdecksList templatesReturns the account owner's templates, sanitized MOGRT data, editor addresses, and whether a render machine is online.
{
"apiKey": "YOUR_API_KEY"
}/getdeckGet one templateReturns one template with its global options, predefined sequence, MOGRTs, editors, and online state.
{
"apiKey": "YOUR_API_KEY",
"deck": "NAME_OF_TEMPLATE"
}/getmogrtGet one MOGRTReturns a sanitized MOGRT and its available options. For a MOGRT in a subfolder, include its key path.
{
"apiKey": "YOUR_API_KEY",
"deck": "NAME_OF_TEMPLATE",
"mogrt": "NAME_OR_PATH_OF_MOGRT"
}/renderQueue a renderCreates a new edit or rerenders an existing edit, applies supplied sequence and global values, and assigns an online desktop app. When template logic uses a predefined sequence, MoDeck builds that sequence automatically. Otherwise include the MOGRTs in mogrtSeq. Omitted options keep their template defaults.
{
"apiKey": "YOUR_API_KEY",
"deck": "NAME_OF_TEMPLATE",
"name": "NAME_OF_THIS_EDIT",
"editId": "OPTIONAL_EDIT_ID",
"notificationEmail": "editor@example.com",
"waitForRender": false,
"mogrtSeq": [
{
"name": "MOGRT_NAME",
"options": [
{
"name": "OPTION_NAME",
"value": "OPTION_VALUE"
}
],
"duration": 10
}
],
"globalOptions": [
{
"name": "GLOBAL_OPTION_NAME",
"value": "GLOBAL_OPTION_VALUE"
}
]
}Returns editId and requestId. Reuse editId for high-volume recurring work to avoid creating unnecessary saved edits.
/previewRender a still previewRenders one MOGRT with supplied option values and returns preview data from an online desktop app.
{
"apiKey": "YOUR_API_KEY",
"deck": "NAME_OF_TEMPLATE",
"size": "OPTIONAL_NAME_OF_SIZE",
"frame": "OPTIONAL_NAME_OF_PREVIEW_FRAME",
"mogrt": {
"name": "MOGRT_NAME",
"options": [
{
"name": "OPTION_NAME",
"value": "OPTION_VALUE"
}
]
}
}/renderstatusCheck render statusReturns current status for one edit, or ordered results for up to 50 edits. Data-driven batches include a requestId and paged batchstatus/batchfiles endpoints; ordinary renders include completed-file URLs.
{
"apiKey": "YOUR_API_KEY",
"editId": "EDIT_ID"
}/batchstatusInspect batch rowsReturns up to 100 row statuses, the batch state, total rows and nextOffset. Use the requestId returned by renderstatus. Requires the template owner's API key.
{
"apiKey": "YOUR_API_KEY",
"deckID": "TEMPLATE_ID",
"editID": "EDIT_ID",
"requestId": "RENDER_REQUEST_ID",
"offset": 0
}/batchfilesDownload a completed batch rowReturns short-lived download URLs for a completed row's uploaded outputs. The index is zero-based. Local-only renders remain on the render machine.
{
"apiKey": "YOUR_API_KEY",
"deckID": "TEMPLATE_ID",
"editID": "EDIT_ID",
"requestId": "RENDER_REQUEST_ID",
"index": 0
}/listrendersList completed rendersLists ordinary completed-render URLs and the latest 100 batchRuns for a template, optionally filtered to an edit name or ID. Batch files are fetched by row through batchfiles; moreBatchRuns indicates older batch history.
{
"apiKey": "YOUR_API_KEY",
"deck": "NAME_OF_TEMPLATE",
"editName": "OPTIONAL_NAME_OF_EDIT",
"editId": "OPTIONAL_EDIT_ID"
}/listmediaList local mediaAsks an online desktop app for files in its user-media folder, optionally filtered to one editor.
{
"apiKey": "YOUR_API_KEY",
"userEmail": "OPTIONAL_EDITOR_EMAIL"
}/uploadmediaCreate a media uploadCreates a time-limited upload URL. PUT the file bytes to the returned URL with the same Content-Type, then refresh connected apps.
{
"apiKey": "YOUR_API_KEY",
"deck": "NAME_OF_TEMPLATE",
"filename": "Picture.jpg",
"filetype": "image/jpeg",
"userEmail": "OPTIONAL_EDITOR_EMAIL"
}The returned upload URL expires after 30 minutes.
/deletemediaRemove uploaded mediaRemoves a media entry from the online library. It does not delete copies already downloaded to a render machine.
{
"apiKey": "YOUR_API_KEY",
"deck": "NAME_OF_TEMPLATE",
"filename": "Picture.jpg",
"userEmail": "OPTIONAL_EDITOR_EMAIL"
}/refreshappsRefresh desktop appsAsks every currently connected desktop app on the account to refresh and download newly uploaded media.
{
"apiKey": "YOUR_API_KEY"
}/getshowcaseclipsGet showcase clipsReturns signed URLs for the template showcase and individual MOGRT preview clips or still thumbnails.
{
"apiKey": "YOUR_API_KEY",
"deck": "NAME_OF_TEMPLATE",
"mogrt": "OPTIONAL_NAME_OF_MOGRT"
}/getusersList template editorsReturns direct editor addresses and addresses inherited from user groups.
{
"apiKey": "YOUR_API_KEY",
"deck": "NAME_OF_TEMPLATE"
}/getuserGet API-key ownerReturns the authenticated account's email, first name, and last name.
{
"apiKey": "YOUR_API_KEY"
}/inviteusersInvite editorsAdds one or more editor email addresses to a template and can send invitation emails.
{
"apiKey": "YOUR_API_KEY",
"deck": "NAME_OF_TEMPLATE",
"emails": [
"editor@example.com"
],
"notify": true
}/updatelogicUpdate global optionsAdds or updates global options by name while preserving their existing links where possible.
{
"apiKey": "YOUR_API_KEY",
"deck": "NAME_OF_TEMPLATE",
"globalOptions": [
{
"name": "OPTION_NAME",
"type": 13,
"value": "OPTION_DEFAULT_VALUE",
"menucontent": [
"OPTION_MENU_ITEM"
]
}
]
}/statusAPI healthReturns the public API health state. No API key is required.
1 Checkbox2 Number3 Angle4 Color5 2D number6 Text7 Multiline text8 Comment9 2D scale13 Dropdown menu14 Media replacementStart simple, then add the controls you need
Template, MOGRT, editor, versioning, API, and collaboration limits vary by plan. Magic Links, editor branding, and custom notification email delivery are Enterprise features.
Subscriptions can be purchased in MoDeck account settings or through aescripts. If you use an aescripts license, enter or refresh its key in account settings.