CodeFizz
ToolsDemoDocsBlogRoadmapChangelogPricingFAQ
Get the plugin

Getting Started

  • Introduction
  • Quick Start
  • Requirements
  • Installing the CLI
  • License & Machines

Guides

  • Installing the Plugin
  • The AI Skill
  • CLI vs MCP
  • Multiple Editors
  • How It Works
  • Discovering Commands
  • The Editor Chat Panel

Walkthroughs

  • Build a Blueprint with AI
  • Author a Material Graph
  • Create a Niagara System
  • Rig a Character with AI
  • Build an Animation Blueprint
  • Build Sound with AI
  • Build a Modular Character
  • Grow a Tree with AI
  • Build a Gameplay Ability System
  • Generate a Landscape with AI
  • Work with World Partition

Reference

  • Reference
  • Audio
  • Mutable
  • Control Rig
  • Niagara
  • PCG
  • Procedural Vegetation
  • Materials
  • Gameplay Ability System
  • World Building
  • Behavior Trees
  • Environment Queries
  • StateTree
  • Sequencer
  • Level Actors
  • Project Settings
  • Blueprints
  • Blueprint Structs
  • Enhanced Input
  • Asset Management
  • Bulk Asset Ops
  • Data Assets
  • Object Properties
  • UMG Widgets
  • Data Tables
  • Curves
  • Animation
  • Console Commands
  • Profiling
  • Core
  • Debug
  • Mass Entity (ECS)

Help

  • FAQ
  • Troubleshooting
  • For AI Agents
  • Fix: Plugin failed to load, module could not be loaded (GetLastError 126)
  • Fix: bridge unreachable, editor not responding
  • Fix: cfa targeted the wrong Unreal editor
  • Fix: the CodeFizz panel does not show Active
  • Fix: Unknown command, or plugin version mismatch after an update
DocsReferenceCurves

Curves

Every Curves command in CodeFizz Editor Agent, with parameters and examples.

Loading…
PreviousData TablesNextAnimation
CodeFizz

A drop-in Unreal Engine 5 plugin that exposes the entire editor surface (Blueprints, Materials, Niagara, PCG, StateTree, Control Rig, Insights profiling, and more) over the Model Context Protocol. Connect Claude Code, Cursor, VS Code, or any MCP-compatible client and let your AI build inside the engine.

Product

  • Features
  • Docs
  • Tools
  • Blog
  • Demo
  • Roadmap
  • Changelog
  • Pricing
  • FAQ

Resources

  • Install guide
  • Discord
  • YouTube
  • Open-source edition
  • Manage subscription

Legal

  • Refund Policy
  • Privacy Policy
  • Terms of Service

© 2026 CodeFizz. All rights reserved.

CodeFizz Editor Agent is a CodeFizz product. Payments processed by Polar Software, Inc. (Polar), the Merchant of Record.

13 commands. Each shows its parameters and an example, and has a copyable deep link, so you (or an AI agent) can jump straight to one.

create_curve

Create a Curve asset (float, vector, or linear color)

Creates a Curve asset of the chosen type: float (CurveFloat, one value sub-curve), vector (CurveVector, x/y/z sub-curves), or linear_color (CurveLinearColor, r/g/b/a sub-curves). The curve starts empty; add keys with set_curve_keys. For an Ease Curve Library (UE 5.7+) use create_data_asset with class_name EaseCurveLibrary instead, it is a plain data asset.

ParameterTypeRequiredDescription
asset_pathstringYesContent path to create at (e.g. /Game/Curves/C_Speed)
curve_typestringYesfloat | vector | linear_color
saveboolNoSave the asset immediately
example
cfa create_curve --asset-path /Game/Curves/C_Speed --curve-type float
get_curve

Read a curve asset's keys, settings, and ranges

Returns each sub-curve's keys (time, value, interp, tangents), pre/post infinity extrapolation, and the asset's time/value ranges. Pass eval_times to also evaluate the curve at given times (handy for verifying results). Pass as_json true to get the engine's own full-fidelity JSON export instead, which round-trips through import_curve.

ParameterTypeRequiredDescription
asset_pathstringYesContent path of the curve asset
sub_curvestringNoRestrict to one sub-curve: value (float), x/y/z (vector), r/g/b/a (linear_color)
include_keysboolNoInclude per-key data (false = counts and settings only)
eval_timesjsonNoJSON array of times to evaluate each sub-curve at (e.g. [0,0.5,1])
as_jsonboolNoReturn the engine's full JSON export of the asset
example
cfa get_curve --asset-path /Game/Curves/C_Speed --eval-times '[0, 0.5, 1]'
set_curve_keys

Write keys on one sub-curve of a curve asset

Writes keys on one sub-curve: value (float curves), x/y/z (vector), or r/g/b/a (linear color). Mode replace (default) rebuilds the sub-curve from the given keys; merge updates-or-adds by time and leaves other keys alone. Each key: time and value required, plus optional interp (cubic default, linear, constant), tangent_mode (auto default, smart_auto, user, break; explicit arrive/leave tangent slopes apply with user/break), and weighted tangents (weight_mode + weights). Also sets pre/post infinity extrapolation and the no-keys default value.

ParameterTypeRequiredDescription
asset_pathstringYesContent path of the curve asset
sub_curvestringNoTarget sub-curve: value (float, default), x/y/z (vector), r/g/b/a (linear_color)
keysjsonNoJSON array of key objects: [{time, value, interp?, tangent_mode?, arrive_tangent?, leave_tangent?, weight_mode?, arrive_weight?, leave_weight?}]
modestringNoreplace | merge
pre_infinitystringNocycle | cycle_with_offset | oscillate | linear | constant | none
post_infinitystringNocycle | cycle_with_offset | oscillate | linear | constant | none
default_valuestringNoValue returned when the sub-curve has no keys (number)
saveboolNoSave the asset after editing
example
cfa set_curve_keys --asset-path /Game/Curves/C_Speed --keys '[{"time":0,"value":0},{"time":1,"value":100,"interp":"linear"}]'
delete_curve_keys

Delete keys from one sub-curve

Deletes keys from one sub-curve by their times (nearest key within a small tolerance), or clears the whole sub-curve with all=true.

ParameterTypeRequiredDescription
asset_pathstringYesContent path of the curve asset
sub_curvestringNoTarget sub-curve: value (float, default), x/y/z (vector), r/g/b/a (linear_color)
timesjsonNoJSON array of key times to delete
allboolNoDelete ALL keys on the sub-curve
saveboolNoSave the asset after editing
example
cfa delete_curve_keys --asset-path /Game/Curves/C_Speed --times '[0.5]'
import_curve

Replace a curve asset's data from JSON or CSV

Replaces the whole curve from text data using the engine's own importers. Format json takes the engine curve JSON (exactly what get_curve --as-json returns, full fidelity including tangents). Format csv takes rows of time,value (one value column per sub-curve: 1 for float, 3 for vector, 4 for linear color); CSV keys import as linear.

ParameterTypeRequiredDescription
asset_pathstringYesContent path of the curve asset
formatstringYesjson | csv
datastringYesThe JSON or CSV text
saveboolNoSave the asset after importing
example
cfa import_curve --asset-path /Game/Curves/C_Speed --format csv --data '0,0\n1,100'
create_curve_table

Create a Curve Table (or Composite Curve Table)

Creates an empty Curve Table. Whether it stores rich curves (per-key interpolation, like the Cubic option in the editor dialog) or simple curves (one interpolation per row, the Linear/Constant options) is fixed by the FIRST row added, pass curve_type on set_curve_table_row, or by import_curve_table's interp. With composite true it creates a Composite Curve Table that stacks the given parent tables instead.

ParameterTypeRequiredDescription
asset_pathstringYesContent path to create at (e.g. /Game/Curves/CT_Damage)
compositeboolNoCreate a Composite Curve Table that stacks parent tables
parent_tablesstringlistNoComposite only: parent curve table paths, in stack order
saveboolNoSave the asset immediately
example
cfa create_curve_table --asset-path /Game/Curves/CT_Damage
get_curve_table

Read a curve table's rows and keys

Returns the table mode (rich, simple, or empty) and its rows with key counts. Filter narrows rows by name substring; include_keys adds per-key data; eval_times evaluates each matched row at the given times. Pass export json or csv to instead get the whole table in the engine's export format (round-trips through import_curve_table).

ParameterTypeRequiredDescription
asset_pathstringYesContent path of the curve table
filterstringNoCase-insensitive substring filter on row names
include_keysboolNoInclude per-key data for matched rows
eval_timesjsonNoJSON array of times to evaluate each matched row at
exportstringNoReturn the whole table as an engine export instead: json | csv
example
cfa get_curve_table --asset-path /Game/Curves/CT_Damage --include-keys --eval-times '[1, 10]'
set_curve_table_row

Add or update one curve table row

Adds or updates one row (curve) in a curve table. While the table is EMPTY, curve_type picks rich (per-key interpolation, extrapolation) or simple (one interpolation for the whole row via interp); after that the table's mode applies to every row, an engine rule. Mode replace (default) rebuilds the row from the given keys; merge updates-or-adds by time. Rich rows take the same key objects as set_curve_keys.

ParameterTypeRequiredDescription
asset_pathstringYesContent path of the curve table
row_namestringYesRow (curve) name to add or update
keysjsonNoJSON array of key objects: [{time, value, interp?, tangent_mode?...}] (simple rows use only time/value)
curve_typestringNorich | simple; only honored while the table is empty
interpstringNoSimple rows: whole-row interpolation (linear, constant, cubic)
modestringNoreplace | merge
pre_infinitystringNoRich rows: pre-infinity extrapolation
post_infinitystringNoRich rows: post-infinity extrapolation
saveboolNoSave the asset after editing
example
cfa set_curve_table_row --asset-path /Game/Curves/CT_Damage --row-name Turret --keys '[{"time":1,"value":10},{"time":10,"value":250}]'
delete_curve_table_row

Delete a row from a curve table

Deletes one row (curve) from a curve table by name.

ParameterTypeRequiredDescription
asset_pathstringYesContent path of the curve table
row_namestringYesRow (curve) name to delete
saveboolNoSave the asset after editing
example
cfa delete_curve_table_row --asset-path /Game/Curves/CT_Damage --row-name Turret
rename_curve_table_row

Rename a row in a curve table

Renames one row (curve) in a curve table, keeping all of its keys.

ParameterTypeRequiredDescription
asset_pathstringYesContent path of the curve table
row_namestringYesCurrent row name
new_namestringYesNew row name
saveboolNoSave the asset after editing
example
cfa rename_curve_table_row --asset-path /Game/Curves/CT_Damage --row-name Turret --new-name HeavyTurret
import_curve_table

Replace ALL rows of a curve table from CSV or JSON

Rebuilds the whole curve table from text using the engine's own importers, exactly like importing in the editor. CSV: first row is a header whose columns are key times, each following row is name,value,value... JSON: the engine's curve table JSON (what get_curve_table --export json returns). interp picks how keys import: linear or constant produce simple curves, cubic produces rich curves. This REPLACES all existing rows.

ParameterTypeRequiredDescription
asset_pathstringYesContent path of the curve table
formatstringYescsv | json
datastringYesThe CSV or JSON text
interpstringNolinear | constant (simple curves) | cubic (rich curves)
saveboolNoSave the asset after importing
example
cfa import_curve_table --asset-path /Game/Curves/CT_Damage --format csv --data 'Name,1,10\nTurret,10,250'
create_curve_atlas

Create a Curve Atlas from linear color curves

Creates a Curve Atlas (CurveLinearColorAtlas), a texture whose rows are gradients baked from CurveLinearColor assets, for use with the CurveAtlasRowParameter material node. Width sets the texture width (per-curve sample count). Curves can be added now or later with set_curve_atlas.

ParameterTypeRequiredDescription
asset_pathstringYesContent path to create at (e.g. /Game/Curves/CA_Gradients)
widthintNoTexture width in pixels (also the per-curve sample count)
gradient_curvesstringlistNoCurveLinearColor asset paths to add as gradient rows, in order
saveboolNoSave the asset immediately
example
cfa create_curve_atlas --asset-path /Game/Curves/CA_Gradients --width 256 --gradient-curves /Game/Curves/C_Heat,/Game/Curves/C_Cool
set_curve_atlas

Edit a Curve Atlas (resize, add/remove/replace curves)

Edits a Curve Atlas: width resizes the texture, add_curves appends gradient rows, remove_curves removes them, and set_curves replaces the entire list in one go (do not combine set_curves with add/remove). Textures rebuild and dependent materials refresh automatically, the same path the editor's details panel uses.

ParameterTypeRequiredDescription
asset_pathstringYesContent path of the curve atlas
widthintNoNew texture width (0 = keep current)
add_curvesstringlistNoCurveLinearColor paths to append
remove_curvesstringlistNoCurveLinearColor paths to remove
set_curvesstringlistNoReplace the ENTIRE gradient list with these paths, in order
saveboolNoSave the asset after editing
example
cfa set_curve_atlas --asset-path /Game/Curves/CA_Gradients --add-curves /Game/Curves/C_Toxic