RESOLVE FX · PROGRAMMABLE HOST · STUDIO

DCTL.

The host is only the socket.
The code is the effect.

Resolve FX DCTL is not one fixed image effect. It is a Studio-only host for custom DaVinci Color Transform Language code. Selection, Reload DCTL, and Global Blend belong to Resolve; math, optional UI, input assumptions, and output semantics belong to the selected script.

01 / HOST

DCTL List · Reload

02 / CODE

Math · Custom UI

03 / CONTRACT

Input → Output

Use the lab to switch between technical, creative, and diagnostic scripts. The same DCTL host becomes safe or unsafe depending on the signal entering it, the output transform downstream, and whether partial Blend is semantically valid.

DCTL / HOST × CONTRACT LAB
HOST · SCRIPT SELECTEDSEVERITY · CLEAN

Teaching model only. It classifies host state, input/output ownership, Blend semantics, and common pipeline risks. It does not execute DCTL code, reproduce Resolve GPU behavior, or predict a third-party script’s pixels.

COLOR / RESOLVE FX COLOR

Actual Resolve captures + contract model, never a fabricated third-party UI

3 HOST CONTROLS · 3 CAPTURES · STUDIO

01HOST × CODE × CONTRACT

Three layers explain DCTL cleanly: Resolve hosts it, the script computes it, and the signal contract tells you where it belongs.

Confusing these layers creates most bad DCTL workflows: treating Reload as list refresh, treating script UI as a fixed Resolve panel, or blending a technical transform like a creative look.

Host ≠ algorithm

Resolve FX DCTL is a Studio-only host for custom DaVinci Color Transform Language code. The host provides installed-DCTL selection, Reload DCTL, and common Blend; the actual math, purpose, and optional UI come from the selected script. There is therefore no meaningful answer to “what effect does DCTL make?” without the specific file and its documentation.

Code instead of a lookup table

Blackmagic describes DCTL as executable transformation code: unlike a 1D/3D LUT that stores sampled values and interpolates between them, a DCTL directly computes the result with mathematical functions and runs on the GPU. That enables transforms, utilities, diagnostics, and spatial operations that cannot be represented by a conventional 3D LUT alone.

The signal contract comes first

A filename and polished UI do not automatically tell you which gamut, gamma, range, or scene/display state a script expects, nor what it outputs. A technical DCTL may change color space, a creative DCTL may remain in the working space, and a diagnostic DCTL may turn the image into an analysis overlay. Node placement and whether Blend is valid are determined by that contract.

Resolve 21.1 manual boundary: Resolve FX DCTL is Studio-only; DCTL List selects installed scripts; Reload DCTL rereads the selected file and does not refresh the list. The advanced-workflows chapter describes DCTL as GPU-executed code rather than a sampled lookup table.

02REAL RESOLVE 21 CONTROLS

The host surface is small; the selected code can make the tool arbitrarily deep.

The three screenshots are actual Resolve captures in the NONE state. We do not fabricate a selected-script panel because custom controls vary by DCTL.

AHOST CONTROLS

What belongs to the Resolve FX host

DCTL / DCTL List

The dropdown selects one of the DCTLs already available to Resolve on the workstation. NONE means that no custom transform is selected. The manual calls this DCTL List while the visible Inspector label is DCTL.

VERIFYIf a new file is missing from the list, do not troubleshoot Blend or keep pressing Reload: verify the LUT folder and restart Resolve, because Reload DCTL does not rescan the list.

Reload DCTL

Rereads the content of the currently selected DCTL file. This is useful while authoring: edit the code in a text editor, save the file, press Reload DCTL, and test the updated version without rebuilding the host effect.

VERIFYThe manual explicitly states that Reload DCTL does not refresh the DCTL List. A newly installed file that was not already listed requires a Resolve restart.

BSCRIPT-DEFINED SURFACE

What the selected DCTL defines

Script-defined controls

Additional sliders, checkboxes, combo boxes, color pickers, and other controls appear only when the selected DCTL declares them. There is no universal control set below the dropdown; defaults, ranges, units, and semantics belong to the script author.

VERIFYA blank area after selection does not necessarily indicate a failure: a DCTL may define no custom UI. Compare expected controls with the documentation for that specific tool.

RGB / alpha behavior

A modern Transform DCTL in Resolve FX is not limited to a simple RGB mapping: the developer surface supports alpha-channel handling, and spatial DCTL forms can access coordinates/texture data. It is therefore more accurate to treat DCTL as a programmable pixel-processing language rather than an “advanced LUT.”

VERIFYDo not assume alpha passthrough or spatial behavior by default. For a DCTL used in a compositing/key workflow, verify its alpha contract and matte edges on real material.

CFINAL MIX

Common mix after the script

Global Blend → Blend

Mixes the computed output of the selected DCTL with the node input state. In creative tools this can be a useful intensity control. Blend does not change the script input assumptions and cannot repair an incorrect transform order.

VERIFYFor a technical conversion, first decide whether an intermediate mix has physical or colorimetric meaning. If a DCTL converts DWG/Intermediate → Rec.709, Blend=0.5 is usually not “half of the correct transform.”

03DISCOVERY ≠ RELOAD

Installing a new file and reloading an edited file are two different operations.

This distinction is explicitly documented and prevents a very common troubleshooting loop.

1 · Put the script in the active LUT location

The manual lists the workstation LUT locations used by DCTL: macOS Library/Application Support/Blackmagic Design/DaVinci Resolve/LUT/, Windows C:\ProgramData\Blackmagic Design\DaVinci Resolve\Support\LUT, and Linux /home/resolve/LUT. The version-safe practical route is to open the active LUT folder from Resolve when available.

2 · Restart for a new DCTL List entry

Resolve 21.1 states that Reload DCTL does not refresh DCTL List. If you install a new DCTL that was not already listed, restart Resolve so the list is rebuilt.

3 · Reload only the current file while authoring

Once the script is selected, edit and save its source, then press Reload DCTL to reread that file. If the DCTL fails to build, modern Resolve can surface a build error dialog; detailed authoring documentation is shipped under Help → Documentation → Developer.

04SIGNAL OWNERSHIP

Node placement follows the selected script contract, not the .dctl extension.

Technical, creative, and diagnostic DCTLs may all use the same host while requiring completely different positions and Blend semantics.

COLOR / DCTL SIGNAL CONTRACT
Interactive DCTL signal-contract workflow graph00 · CONTRACTASSUMPTIONS01 · INPUTSIGNAL STATE02 · DCTLHOST + CODE03 · OUTPUTTECHNICAL04 · BLENDSEMANTICS05 · VERIFYQCSCRIPT CONTRACT OWNS PLACEMENT · NOT THE .DCTL EXTENSION
03 / 06

Select and configure the script

Choose the DCTL entry, start from author defaults, and treat Reload DCTL as a current-file reload rather than list discovery.

This is a decision graph, not a required node count. The durable rule is contract → input state → selected code → output ownership → valid mix semantics → verification.

05BUILD IT IN RESOLVE

Four exercises cover installation, a technical transform, a creative look, and a diagnostic utility.

These are workflow exercises, not universal presets. The third-party code itself must still be validated in the exact Resolve build and signal pipeline where you plan to use it.

01

Install a new DCTL without a false refresh

Separate new-file discovery from reloading the current script.

PrepareUse a test .dctl whose purpose and expected input are known. Open the active LUT folder from Resolve or use the documented LUT location for your system.

  1. 01

    Copy the .dctl into the LUT folder or a suitable subfolder; do not merely rename an archive or text file so the extension only appears correct.

  2. 02

    If the file is new and missing from DCTL List, fully restart Resolve. Do not expect Reload DCTL to add a new entry.

  3. 03

    Add Resolve FX DCTL to a node, select the script, and confirm that NONE changes to the intended entry.

  4. 04

    Now edit the content of the already selected .dctl, save it, and use Reload DCTL: this is the case that control is designed for.

Acceptance check

A new file appears after restart; edits to the already selected file are picked up with Reload DCTL without confusing the two mechanisms.

02

Use a technical DCTL as a transform contract

Place a technical transform in the correct signal state without double transforms or meaningless Blend.

PrepareDocument the expected input, expected output, and project color-management ownership. For the exercise, assume the script expects DWG/Intermediate and outputs display-referred Rec.709.

  1. 01

    Trace upstream decode/RCM/CST stages and confirm that the DCTL actually receives DWG/Intermediate.

  2. 02

    Place the DCTL at the point where the technical transform belongs, and keep Blend=1.000 unless the script documentation says otherwise.

  3. 03

    Inspect downstream stages: a second output CST/RCM/ODT after an already display-referred DCTL creates a double transform.

  4. 04

    Verify neutrals, primaries, highlights, and out-of-range behavior with scopes/reference imagery rather than only a pleasing picture.

Acceptance check

The DCTL receives its expected input, performs its technical role once, and hands downstream exactly the output state expected there.

03

Run a creative DCTL inside the working space

Use a script-defined look as a creative operation without breaking the technical pipeline.

PrepareChoose a creative DCTL documented for your working space, such as DWG/Intermediate, that does not perform its own output transform.

  1. 01

    Place it after technical normalization/base balance but before the single output transform.

  2. 02

    Start from author defaults and change script-defined controls one at a time, recording which parameter owns which job.

  3. 03

    Compare the full effect and Global Blend only after the core setup is correct; partial mixing can be semantically valid here.

  4. 04

    Review the entire shot and difficult frames: highlights, noise, negative/out-of-range values, skin, and saturated colors.

Acceptance check

The look remains inside the declared working space, does not duplicate technical transforms, and holds up on difficult frames.

04

Use a diagnostic DCTL as a temporary analysis layer

Use a false-color/gamut/clipping utility without letting diagnostic output reach the final render.

PrepareChoose a diagnostic DCTL with a known expected input state and documented meaning for its displayed colors/thresholds.

  1. 01

    Place the diagnostic DCTL at the pipeline point you want to measure: before or after the output transform according to its contract.

  2. 02

    Confirm that its custom controls/defaults match the author documentation.

  3. 03

    Use the overlay for the specific analysis task, then bypass/remove the diagnostic node before delivery.

  4. 04

    Perform final QC without the diagnostic DCTL and confirm that no analysis colors/labels remain in the render chain.

Acceptance check

The diagnostic script measures the intended signal state but never becomes an accidental part of the master.

06CHOOSE THE SIMPLEST OWNER

DCTL is powerful because it is programmable; that does not make it the best owner for every color task.

Tool choice by responsibility
ToolWhat it ownsUse it when
DCTLExecutable GPU code with script-defined math and optional UI; it can be a transform, look, utility, diagnostic, or spatial effect.When you need a custom operation unavailable in native tools and its signal contract is known.
1D / 3D LUTA lookup table stores discrete input→output mappings and interpolates between sample points.When a fixed color mapping/look is sufficient without programmable spatial/state logic or custom controls.
Color Space TransformNative Resolve color-management math with explicit Input/Output Color Space/Gamma, tone/gamut mapping, and advanced options.When the job is a standard known color-space conversion and there is no reason to introduce third-party custom code.
Native Resolve FX / palettesFixed Blackmagic tools with documented controls and predictable project integration.When a native tool already solves the problem; this is usually simpler for portability, support, and collaboration.

07SYMPTOM → CONTRACT → FIX

Most DCTL failures become predictable when you separate list discovery, code compilation, signal state, and output ownership.

01A new .dctl was copied but is missing from DCTL List

Verify the actual LUT folder and file extension, then restart Resolve. Reload DCTL does not refresh the list; it rereads only the currently selected file.

02Reload DCTL still does not reveal a newly installed script

That is expected: the control is for reloading the content of an already selected file. The manual ties discovery of a new entry to restarting Resolve, not to this button.

03Selecting the DCTL causes extreme saturation or broken contrast

Suspect the input contract first: the script may expect a different gamut/gamma/range or scene/display state. Inspect upstream RCM/CST/LUT stages and the author documentation before trying to “fix” the result with Blend.

04The DCTL looks correct alone but becomes double-transformed with RCM/CST

Determine ownership of the output conversion. If the DCTL already performs a display transform, downstream RCM/CST/ODT must not repeat it. If the DCTL is creative and remains in the working space, the output transform should stay as the single downstream owner.

05At Blend 0.5 a technical transform looks “between worlds”

Global Blend mixes the script output with the original node state, but that does not guarantee a valid intermediate color space. For technical transforms, normally validate the full transform and use Blend only when the documentation explicitly supports it.

06No extra sliders or checkboxes appear after selecting a DCTL

Not every DCTL declares custom UI. If the tool is supposed to expose controls, check version compatibility, build errors, and its documentation; if it is a pure transform with no UI, an empty area can be correct.

07A diagnostic false-color view ended up in the final render

A diagnostic DCTL needs explicit ownership and an exit condition: use it for analysis, then bypass/remove it before delivery. Perform final QC on a render chain with no diagnostic overlays.

Installation & portability

A project can retain a DCTL reference, but a collaborator or render workstation still needs the compatible script in an accessible LUT location. For team workflows, keep an approved DCTL package/version with the project documentation and do not assume that a filename guarantees identical code.

Authoring & validation

Blackmagic ships detailed developer documentation under Help → Documentation → Developer. Static syntax checks are useful, but final validation of your own DCTL means loading/compiling it in the target Resolve build and testing a real signal, because the host, GPU backend, and DCTL parser are part of the actual runtime environment.

.dctl vs encrypted DCTL

A plain .dctl contains readable source. Resolve also supports encrypted DCTL distribution; encryption hides the source and can include expiry metadata, but it does not remove the need to understand the signal contract. Closed source is a distribution/security choice, not proof of transform quality.

08BEFORE YOU DELIVER

Treat the DCTL file as a dependency and the signal contract as part of the grade.

A project that looks correct only on the workstation where an undocumented script happens to be installed is not production-safe.

SELF-CHECK0 / 8

Your marks apply to this visit; nothing is sent to a server.

09FAQ

The distinctions that prevent DCTL from turning into a black box.

What does DCTL stand for?

DaVinci Color Transform Language. In practice it is a C-like language/executable transform code for custom image processing in Resolve. Resolve FX DCTL is one host for running that code inside the grading pipeline.

Is a DCTL the same as a LUT?

No. A LUT stores discrete input→output samples and uses interpolation; DCTL executes mathematical code on the GPU and can include conditions, spatial access, alpha logic, and custom UI. Some use cases overlap, but the execution model is different.

Why does the panel only show NONE and Blend?

NONE means no custom script is selected. After selecting a DCTL, additional controls may appear if that script declares them; a pure transform can also have no custom UI at all.

What does Reload DCTL do?

It rereads the content of the currently selected DCTL file, which is useful while editing code. It does not refresh DCTL List and is not intended to discover a newly installed file.

How do I make a newly installed DCTL appear in the list?

Put the valid .dctl in the active LUT folder and restart Resolve. The manual explicitly identifies restart as the way to refresh DCTL List; Reload DCTL is not a substitute here.

Can I reduce any DCTL with Global Blend?

The host can technically mix the output, but that is not always semantically safe. A creative look can often be mixed; a partial color-space conversion can create an undefined intermediate signal. Follow the script contract.

Where should a DCTL sit in the node tree?

There is no universal position. It depends on the specific script expected input and output: a scene-referred creative look, a display transform, and a diagnostic overlay require different placement. Describe the signal state first, then choose node placement.

Does Resolve FX DCTL work in the free edition?

The Resolve 21 manual marks the DCTL Resolve FX as Studio Version Only. Treat this page and workflow as a Studio feature even though other LUT/DCTL-related mechanisms in Resolve have separate application points.

Sources and verification boundaries

Visible host controls and defaults were checked against the three actual Resolve captures in the site archive. Host behavior, list/reload semantics, Studio-only status, install paths, and DCTL-vs-LUT execution model were cross-checked against the current Resolve 21.1 manual and Blackmagic DCTL documentation. The interactive contract lab does not execute a third-party DCTL.

This web pass does not claim live compilation/render certification for arbitrary DCTL files. Final production acceptance belongs to the exact DCTL version, target Resolve build, real footage, scopes, GPU/runtime environment, and delivery chain.