Effects properties
Every effect parameter a script can reach, from blurs and glows to the physics family and the particle system.
Every effect parameter, addressed by effect id and member name - blurs, shadows, colour tools, noise, distortion, glows, cloners and effectors, the loop's clock-remap members, the physics family (rigid bodies, colliders, deformables, forces and local gravity) and the particle system alike.
Every pattern below is readable from scripts through prop() and layer.prop(); ids in a pattern (like <effect_id>) stand for the entity's real id. Patterns marked drive set are the ones scripts may WRITE (every animatable pattern); the rest are statics that change through commands, and a write to one refuses with the typed type_mismatch ("the property is static").
| Pattern | Wire kind | Units | Reads | Writes |
|---|---|---|---|---|
effects.<effect_id>.affect_opacity | boolean | boolean | yes | drive set |
effects.<effect_id>.affect_position | boolean | boolean | yes | drive set |
effects.<effect_id>.affect_rotation | boolean | boolean | yes | drive set |
effects.<effect_id>.affect_scale | boolean | boolean | yes | drive set |
effects.<effect_id>.affects | enum | enum | yes | - |
effects.<effect_id>.align | boolean | boolean | yes | drive set |
effects.<effect_id>.align_to_motion | boolean | boolean | yes | drive set |
effects.<effect_id>.alpha_channel | enum | enum | yes | drive set |
effects.<effect_id>.alpha_gamma | scalar | gamma (0.1..10) | yes | drive set |
effects.<effect_id>.alpha_input_black | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.alpha_input_white | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.alpha_output_black | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.alpha_output_white | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.amount | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.angle | scalar | degrees | yes | drive set |
effects.<effect_id>.angular_damping | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.antialiasing | boolean | boolean | yes | drive set |
effects.<effect_id>.aspect | scalar | ratio (0.1..10) | yes | - |
effects.<effect_id>.behavior | enum | enum | yes | drive set |
effects.<effect_id>.bendiness | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.blacks | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.blend_mode | enum | enum | yes | drive set |
effects.<effect_id>.blend_with_original | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.blue_blue | scalar | percent (-200..200) | yes | drive set |
effects.<effect_id>.blue_const | scalar | percent (-200..200) | yes | drive set |
effects.<effect_id>.blue_exposure | scalar | f-stops (-20..20) | yes | drive set |
effects.<effect_id>.blue_gamma | scalar | gamma (0.1..10) | yes | drive set |
effects.<effect_id>.blue_green | scalar | percent (-200..200) | yes | drive set |
effects.<effect_id>.blue_input_black | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.blue_input_white | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.blue_offset | scalar | linear offset (-0.5..0.5) | yes | drive set |
effects.<effect_id>.blue_output_black | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.blue_output_white | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.blue_red | scalar | percent (-200..200) | yes | drive set |
effects.<effect_id>.blues | scalar | percent (-200..300) | yes | drive set |
effects.<effect_id>.blues_hue | scalar | degrees (-180..180) | yes | drive set |
effects.<effect_id>.blues_lightness | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.blues_saturation | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.border | scalar | px (0..2000) | yes | drive set |
effects.<effect_id>.bounce_variance | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.bounciness | scalar | coefficient (0..1) | yes | drive set |
effects.<effect_id>.break_enabled | boolean | boolean | yes | drive set |
effects.<effect_id>.break_force | scalar | impulse (0..1000000) | yes | drive set |
effects.<effect_id>.break_torque | scalar | impulse (0..1000000) | yes | drive set |
effects.<effect_id>.brightness | scalar | number (-150..150) | yes | drive set |
effects.<effect_id>.burst_count | integer | particles (0..1000000) | yes | drive set |
effects.<effect_id>.bypass_linear | boolean | boolean | yes | drive set |
effects.<effect_id>.cell_size | point2 | px point | yes | drive set |
effects.<effect_id>.center_subscale | boolean | boolean | yes | drive set |
effects.<effect_id>.channel | enum | enum | yes | drive set |
effects.<effect_id>.channels | enum | enum name (string) | yes | drive set |
effects.<effect_id>.clip_black | boolean | boolean | yes | drive set |
effects.<effect_id>.clip_hdr | boolean | boolean | yes | drive set |
effects.<effect_id>.clip_white | boolean | boolean | yes | drive set |
effects.<effect_id>.collide_enabled | boolean | boolean | yes | drive set |
effects.<effect_id>.collide_with | enum | enum | yes | - |
effects.<effect_id>.collision_detail | scalar | fraction (0..1) | yes | - |
effects.<effect_id>.collision_event | enum | enum | yes | - |
effects.<effect_id>.colorize | boolean | boolean | yes | drive set |
effects.<effect_id>.colorize_hue | scalar | degrees (-180..180) | yes | drive set |
effects.<effect_id>.colorize_lightness | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.colorize_saturation | scalar | number (0..100) | yes | drive set |
effects.<effect_id>.colour | colour | [r, g, b, a] 0..1 | yes | drive set |
effects.<effect_id>.colour_map_enabled | boolean | boolean | yes | drive set |
effects.<effect_id>.colour_over_life | gradient_stops | gradient stops (over life) | yes | drive set |
effects.<effect_id>.colour_variance | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.colourise_strength | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.complexity | scalar | octaves (1..10) | yes | drive set |
effects.<effect_id>.connected_anchor | point2 | px | yes | drive set |
effects.<effect_id>.connected_body | layer_ref | layer id | yes | drive set |
effects.<effect_id>.connector_damping | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.connector_kind | enum | enum | yes | - |
effects.<effect_id>.connector_stiffness | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.contrast | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.count | scalar | clones (1..1000000) | yes | drive set |
effects.<effect_id>.count_x | scalar | clones (1..1000000) | yes | drive set |
effects.<effect_id>.count_y | scalar | clones (1..1000000) | yes | drive set |
effects.<effect_id>.creative_look | asset_ref | asset id | yes | drive set |
effects.<effect_id>.curve_alpha | curve_points | curve point list ({x, y} 0..1) | yes | drive set |
effects.<effect_id>.curve_blue | curve_points | curve point list ({x, y} 0..1) | yes | drive set |
effects.<effect_id>.curve_green | curve_points | curve point list ({x, y} 0..1) | yes | drive set |
effects.<effect_id>.curve_red | curve_points | curve point list ({x, y} 0..1) | yes | drive set |
effects.<effect_id>.curve_rgb | curve_points | curve point list ({x, y} 0..1) | yes | drive set |
effects.<effect_id>.cyans | scalar | percent (-200..300) | yes | drive set |
effects.<effect_id>.cyans_hue | scalar | degrees (-180..180) | yes | drive set |
effects.<effect_id>.cyans_lightness | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.cyans_saturation | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.cycle | scalar | revolutions (1..30) | yes | drive set |
effects.<effect_id>.cycle_evolution | boolean | boolean | yes | drive set |
effects.<effect_id>.delay_mode | enum | enum | yes | drive set |
effects.<effect_id>.delay_strength | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.density | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.depth_fade | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.depth_range | scalar | px (0..2000) | yes | drive set |
effects.<effect_id>.depth_scale | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.depth_speed | scalar | px/s (-2000..2000) | yes | drive set |
effects.<effect_id>.detail | scalar | fraction (0..1) | yes | - |
effects.<effect_id>.dimensions | enum | enum | yes | drive set |
effects.<effect_id>.direction | enum | enum | yes | drive set |
effects.<effect_id>.displace_amount | scalar | px (0..1000) | yes | drive set |
effects.<effect_id>.displace_enabled | boolean | boolean | yes | drive set |
effects.<effect_id>.displace_map_amount | scalar | px (0..1000) | yes | drive set |
effects.<effect_id>.displace_size | scalar | px (2..1000) | yes | drive set |
effects.<effect_id>.displacement | enum | enum | yes | drive set |
effects.<effect_id>.distance | scalar | number (wire units of the key) | yes | drive set |
effects.<effect_id>.distribute | enum | enum | yes | drive set |
effects.<effect_id>.drag | scalar | coefficient (0..1) | yes | drive set |
effects.<effect_id>.drag_variance | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.drift | point2 | px/s pair (-10000..10000) | yes | drive set |
effects.<effect_id>.edge_cell_size | scalar | px (1..4096) | yes | drive set |
effects.<effect_id>.edge_colour | colour | colour | yes | drive set |
effects.<effect_id>.edge_definition | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.edge_sharpness | scalar | sharpness (0..10) | yes | drive set |
effects.<effect_id>.edge_type | enum | enum | yes | drive set |
effects.<effect_id>.emission_map_enabled | boolean | boolean | yes | drive set |
effects.<effect_id>.emission_over_parent_life | curve_points | curve (0..1 over parent life) | yes | drive set |
effects.<effect_id>.emission_rate | scalar | particles/s (0..1000000) | yes | drive set |
effects.<effect_id>.emit_direction | scalar | degrees (-3600..3600) | yes | drive set |
effects.<effect_id>.emit_from | enum | enum | yes | - |
effects.<effect_id>.emit_probability | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.emit_spread | scalar | degrees (0..360) | yes | drive set |
effects.<effect_id>.emitter_enabled | boolean | boolean | yes | drive set |
effects.<effect_id>.emitter_offset | point2 | px pair (-8192..8192) | yes | drive set |
effects.<effect_id>.emitter_size | point2 | px pair (0..8192) | yes | drive set |
effects.<effect_id>.emitter_type | enum | enum | yes | - |
effects.<effect_id>.enabled | boolean | boolean | yes | drive set |
effects.<effect_id>.end_angle | scalar | degrees (-3600..3600) | yes | drive set |
effects.<effect_id>.evolution | scalar | degrees (progressive revolutions) | yes | drive set |
effects.<effect_id>.expand_output | boolean | boolean | yes | drive set |
effects.<effect_id>.exposure | scalar | f-stops (-20..20) | yes | drive set |
effects.<effect_id>.exposure_offset | scalar | linear offset (-0.5..0.5) | yes | drive set |
effects.<effect_id>.fade_in_time | scalar | s (0..30) | yes | drive set |
effects.<effect_id>.falloff | scalar | number (0..400) | yes | drive set |
effects.<effect_id>.falloff_curve | enum | enum | yes | drive set |
effects.<effect_id>.falloff_feather | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.falloff_radius | scalar | px (0..16384) | yes | drive set |
effects.<effect_id>.field_angle | scalar | degrees (-3600..3600) | yes | drive set |
effects.<effect_id>.field_shape | enum | enum | yes | drive set |
effects.<effect_id>.field_size | point2 | px point | yes | drive set |
effects.<effect_id>.fill | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.flow_falloff | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.flow_softness | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.follow_strength | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.footage_type | enum | enum | yes | drive set |
effects.<effect_id>.force_falloff | enum | enum | yes | - |
effects.<effect_id>.force_kind | enum | enum | yes | - |
effects.<effect_id>.force_strength | scalar | per-kind units (-10000..10000) | yes | drive set |
effects.<effect_id>.form | enum | enum | yes | drive set |
effects.<effect_id>.fractal_influence | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.fractal_type | enum | enum | yes | drive set |
effects.<effect_id>.frame_rate | scalar | fps (0.1..120) | yes | drive set |
effects.<effect_id>.friction | scalar | coefficient (0..2) | yes | drive set |
effects.<effect_id>.friction_variance | scalar | fraction (0..2) | yes | drive set |
effects.<effect_id>.gamma | scalar | gamma (0.1..10) | yes | drive set |
effects.<effect_id>.get_phase_from | enum | enum | yes | drive set |
effects.<effect_id>.glow_amount | scalar | percent (0..1000) | yes | drive set |
effects.<effect_id>.glow_colorize | scalar | number (0..100) | yes | drive set |
effects.<effect_id>.glow_only | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.glow_vibrance | scalar | number (0..100) | yes | drive set |
effects.<effect_id>.grain_aspect | scalar | ratio (0.25..4) | yes | drive set |
effects.<effect_id>.grain_blend | enum | enum | yes | drive set |
effects.<effect_id>.grain_highlights | scalar | gain (0..2) | yes | drive set |
effects.<effect_id>.grain_intensity | scalar | number (0..10) | yes | drive set |
effects.<effect_id>.grain_midpoint | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.grain_midtones | scalar | gain (0..2) | yes | drive set |
effects.<effect_id>.grain_saturation | scalar | number (0..2) | yes | drive set |
effects.<effect_id>.grain_shadows | scalar | gain (0..2) | yes | drive set |
effects.<effect_id>.grain_size | scalar | number (0.1..10) | yes | drive set |
effects.<effect_id>.grain_softness | scalar | number (0..4) | yes | drive set |
effects.<effect_id>.grain_speed | scalar | number (0..10) | yes | drive set |
effects.<effect_id>.gravity_density | scalar | density (0.01..100) | yes | drive set |
effects.<effect_id>.gravity_fixed | boolean | boolean | yes | drive set |
effects.<effect_id>.gravity_scale | scalar | factor (-10..10) | yes | drive set |
effects.<effect_id>.gravity_softness | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.green_blue | scalar | percent (-200..200) | yes | drive set |
effects.<effect_id>.green_const | scalar | percent (-200..200) | yes | drive set |
effects.<effect_id>.green_exposure | scalar | f-stops (-20..20) | yes | drive set |
effects.<effect_id>.green_gamma | scalar | gamma (0.1..10) | yes | drive set |
effects.<effect_id>.green_green | scalar | percent (-200..200) | yes | drive set |
effects.<effect_id>.green_input_black | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.green_input_white | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.green_offset | scalar | linear offset (-0.5..0.5) | yes | drive set |
effects.<effect_id>.green_output_black | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.green_output_white | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.green_red | scalar | percent (-200..200) | yes | drive set |
effects.<effect_id>.greens | scalar | percent (-200..300) | yes | drive set |
effects.<effect_id>.greens_hue | scalar | degrees (-180..180) | yes | drive set |
effects.<effect_id>.greens_lightness | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.greens_saturation | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.grid_size | point2 | px point | yes | drive set |
effects.<effect_id>.highlight_blue | scalar | percent (-100..100) | yes | drive set |
effects.<effect_id>.highlight_green | scalar | percent (-100..100) | yes | drive set |
effects.<effect_id>.highlight_red | scalar | percent (-100..100) | yes | drive set |
effects.<effect_id>.highlight_rolloff | scalar | number (0..100) | yes | drive set |
effects.<effect_id>.highlights | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.highlights_only | scalar | percent (0..1000) | yes | drive set |
effects.<effect_id>.host_draw | enum | enum | yes | - |
effects.<effect_id>.hsl_exposure | scalar | stops (-10..10) | yes | drive set |
effects.<effect_id>.hsl_hue_centre | scalar | degrees (0..360) | yes | drive set |
effects.<effect_id>.hsl_hue_width | scalar | degrees (0..360) | yes | drive set |
effects.<effect_id>.hsl_luma_max | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.hsl_luma_min | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.hsl_sat_max | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.hsl_sat_min | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.hsl_saturation | scalar | percent (0..300) | yes | drive set |
effects.<effect_id>.hsl_softness | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.hsl_temperature | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.hsl_tint | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.ignore_collisions | boolean | boolean | yes | - |
effects.<effect_id>.inflation_time | scalar | seconds (0..10) | yes | drive set |
effects.<effect_id>.inherit_emitter_velocity | scalar | fraction (0..2) | yes | drive set |
effects.<effect_id>.inherit_velocity | boolean | boolean | yes | - |
effects.<effect_id>.inner_tint | colour | [r, g, b, a] 0..1 | yes | drive set |
effects.<effect_id>.input_lut | asset_ref | asset id | yes | drive set |
effects.<effect_id>.input_noise | enum | enum | yes | drive set |
effects.<effect_id>.intensity_blue | scalar | number (0..4) | yes | drive set |
effects.<effect_id>.intensity_green | scalar | number (0..4) | yes | drive set |
effects.<effect_id>.intensity_red | scalar | number (0..4) | yes | drive set |
effects.<effect_id>.interpolate_palette | boolean | boolean | yes | drive set |
effects.<effect_id>.invert | boolean | boolean | yes | drive set |
effects.<effect_id>.invert_map | boolean | boolean | yes | drive set |
effects.<effect_id>.iteration_scale | scalar | percent per iteration (100 = steady) | yes | drive set |
effects.<effect_id>.iteration_speed | scalar | percent per iteration (100 = steady) | yes | drive set |
effects.<effect_id>.iterations | scalar | count (1..1000) | yes | drive set |
effects.<effect_id>.kaleidospace_axes | enum | enum | yes | - |
effects.<effect_id>.kaleidospace_centre | point2 | px pair (-8192..8192) | yes | drive set |
effects.<effect_id>.kaleidospace_mode | enum | enum | yes | - |
effects.<effect_id>.kill_below_speed | scalar | px/s (0..10000) | yes | drive set |
effects.<effect_id>.life | scalar | s (0.01..300) | yes | drive set |
effects.<effect_id>.life_variance | scalar | s (0..150) | yes | drive set |
effects.<effect_id>.lift | scalar | coefficient (0..1) | yes | drive set |
effects.<effect_id>.lighting_enabled | boolean | boolean | yes | drive set |
effects.<effect_id>.limit_bounce | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.limit_lower | scalar | degrees (-360..360) | yes | drive set |
effects.<effect_id>.limit_upper | scalar | degrees (-360..360) | yes | drive set |
effects.<effect_id>.limits_enabled | boolean | boolean | yes | drive set |
effects.<effect_id>.line_offset | scalar | percent (-100..100) | yes | drive set |
effects.<effect_id>.linear_damping | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.linear_limit_lower | scalar | px (-16384..16384) | yes | drive set |
effects.<effect_id>.linear_limit_lower_y | scalar | px (-16384..16384) | yes | drive set |
effects.<effect_id>.linear_limit_upper | scalar | px (-16384..16384) | yes | drive set |
effects.<effect_id>.linear_limit_upper_y | scalar | px (-16384..16384) | yes | drive set |
effects.<effect_id>.linear_limits_enabled | boolean | boolean | yes | drive set |
effects.<effect_id>.local_angle | scalar | degrees (-360..360) | yes | drive set |
effects.<effect_id>.local_mode | enum | enum | yes | - |
effects.<effect_id>.local_strength | scalar | px/s^2 (0..100000) | yes | drive set |
effects.<effect_id>.loop | boolean | boolean | yes | drive set |
effects.<effect_id>.loop_start | scalar | layer frames | yes | drive set |
effects.<effect_id>.lumetri_curve_blue | curve_points | curve point list ({x, y} 0..1) | yes | drive set |
effects.<effect_id>.lumetri_curve_green | curve_points | curve point list ({x, y} 0..1) | yes | drive set |
effects.<effect_id>.lumetri_curve_hue_hue | curve_points | curve point list ({x, y} 0..1; x = hue, cyclic; y 0.5 = no shift) | yes | drive set |
effects.<effect_id>.lumetri_curve_hue_luma | curve_points | curve point list ({x, y} 0..1; x = hue, cyclic; y 0.5 = x1) | yes | drive set |
effects.<effect_id>.lumetri_curve_hue_sat | curve_points | curve point list ({x, y} 0..1; x = hue, cyclic; y 0.5 = x1) | yes | drive set |
effects.<effect_id>.lumetri_curve_luma_sat | curve_points | curve point list ({x, y} 0..1; x = luma; y 0.5 = x1) | yes | drive set |
effects.<effect_id>.lumetri_curve_red | curve_points | curve point list ({x, y} 0..1) | yes | drive set |
effects.<effect_id>.lumetri_curve_rgb | curve_points | curve point list ({x, y} 0..1) | yes | drive set |
effects.<effect_id>.lumetri_curve_sat_sat | curve_points | curve point list ({x, y} 0..1; x = saturation; y 0.5 = x1) | yes | drive set |
effects.<effect_id>.lumetri_exposure | scalar | stops (-10..10) | yes | drive set |
effects.<effect_id>.lumetri_saturation | scalar | percent (0..300) | yes | drive set |
effects.<effect_id>.magentas | scalar | percent (-200..300) | yes | drive set |
effects.<effect_id>.magentas_hue | scalar | degrees (-180..180) | yes | drive set |
effects.<effect_id>.magentas_lightness | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.magentas_saturation | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.map_black | colour | [r, g, b, a] 0..1 | yes | drive set |
effects.<effect_id>.map_channel | enum | enum | yes | - |
effects.<effect_id>.map_layer | layer_ref | layer id | yes | drive set |
effects.<effect_id>.map_tap | enum | enum | yes | drive set |
effects.<effect_id>.map_white | colour | [r, g, b, a] 0..1 | yes | drive set |
effects.<effect_id>.maps_enabled | boolean | boolean | yes | drive set |
effects.<effect_id>.mass | scalar | kg (0.001..100000) | yes | drive set |
effects.<effect_id>.mass_mode | enum | enum | yes | - |
effects.<effect_id>.mass_variance | scalar | kg (0..1000) | yes | drive set |
effects.<effect_id>.master_hue | scalar | degrees (-180..180) | yes | drive set |
effects.<effect_id>.master_lightness | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.master_saturation | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.max_horizontal | scalar | px (-4096..4096) | yes | drive set |
effects.<effect_id>.max_vertical | scalar | px (-4096..4096) | yes | drive set |
effects.<effect_id>.maximum | scalar | percent (-400..400) | yes | drive set |
effects.<effect_id>.midtone_blue | scalar | percent (-100..100) | yes | drive set |
effects.<effect_id>.midtone_green | scalar | percent (-100..100) | yes | drive set |
effects.<effect_id>.midtone_red | scalar | percent (-100..100) | yes | drive set |
effects.<effect_id>.minimax_radius | scalar | px (0..127) | yes | drive set |
effects.<effect_id>.minimum | scalar | percent (-400..400) | yes | drive set |
effects.<effect_id>.mode | enum | enum | yes | drive set |
effects.<effect_id>.monochromatic | boolean | boolean | yes | drive set |
effects.<effect_id>.monochrome | boolean | boolean | yes | drive set |
effects.<effect_id>.noise_brightness | scalar | number (-150..150) | yes | drive set |
effects.<effect_id>.noise_contrast | scalar | percent (0..400) | yes | drive set |
effects.<effect_id>.noise_direction | scalar | degrees | yes | drive set |
effects.<effect_id>.noise_opacity | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.noise_speed | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.noise_type | enum | enum | yes | drive set |
effects.<effect_id>.offset | point2 | [x, y] px | yes | drive set |
effects.<effect_id>.offset_direction | enum | enum | yes | drive set |
effects.<effect_id>.offset_turbulence | point2 | px | yes | drive set |
effects.<effect_id>.offset_variation | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.one_way | enum | enum | yes | - |
effects.<effect_id>.opacity | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.opacity_delta | scalar | percent (-100..100) | yes | drive set |
effects.<effect_id>.opacity_over_life | curve_points | curve (fraction over life) | yes | drive set |
effects.<effect_id>.opacity_step | scalar | percent (-100..100) | yes | drive set |
effects.<effect_id>.operation | enum | enum | yes | drive set |
effects.<effect_id>.outer_tint | colour | [r, g, b, a] 0..1 | yes | drive set |
effects.<effect_id>.output_channel | enum | enum | yes | drive set |
effects.<effect_id>.output_cycle | gradient_stops | gradient stop list | yes | drive set |
effects.<effect_id>.overflow | enum | enum | yes | drive set |
effects.<effect_id>.own_anchor | point2 | px | yes | drive set |
effects.<effect_id>.parent_rate_percent | scalar | percent (0..1000) | yes | drive set |
effects.<effect_id>.parent_system | effect_ref | effect id | yes | - |
effects.<effect_id>.parent_trigger | enum | enum | yes | - |
effects.<effect_id>.particle_blend | enum | enum | yes | - |
effects.<effect_id>.particle_colour | colour | colour | yes | drive set |
effects.<effect_id>.particle_drag | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.particle_enabled | boolean | boolean | yes | drive set |
effects.<effect_id>.particle_mass | scalar | kg (0.1..1000) | yes | drive set |
effects.<effect_id>.particle_opacity | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.particle_rotation | scalar | degrees (-3600..3600) | yes | drive set |
effects.<effect_id>.particle_seed | integer | seed (0..1000000) | yes | - |
effects.<effect_id>.path_end | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.path_layer | layer_ref | layer id | yes | drive set |
effects.<effect_id>.path_offset | scalar | percent (-200..200) | yes | drive set |
effects.<effect_id>.path_reverse | boolean | boolean | yes | drive set |
effects.<effect_id>.path_side | enum | enum | yes | drive set |
effects.<effect_id>.path_source | enum | enum | yes | drive set |
effects.<effect_id>.path_start | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.path_step | scalar | px (1..16384) | yes | drive set |
effects.<effect_id>.perpendicular_variation | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.perspective_offset | boolean | boolean | yes | drive set |
effects.<effect_id>.phase_shift | scalar | degrees | yes | drive set |
effects.<effect_id>.physics_enabled | boolean | boolean | yes | drive set |
effects.<effect_id>.pin_edge | enum | enum | yes | - |
effects.<effect_id>.pinning | enum | enum | yes | drive set |
effects.<effect_id>.position_delta | point2 | px point | yes | drive set |
effects.<effect_id>.position_relative_to_parent | boolean | boolean | yes | drive set |
effects.<effect_id>.pre_run | scalar | s (0..300) | yes | - |
effects.<effect_id>.preserve_luminosity | boolean | boolean | yes | drive set |
effects.<effect_id>.pressure | scalar | factor (-2..5) | yes | drive set |
effects.<effect_id>.pulse | scalar | factor (0.5..2) | yes | drive set |
effects.<effect_id>.push_bodies | boolean | boolean | yes | drive set |
effects.<effect_id>.quality | enum | enum | yes | drive set |
effects.<effect_id>.radial_offset | scalar | percent (-100..100) | yes | drive set |
effects.<effect_id>.radial_radius | scalar | px (0..8192) | yes | drive set |
effects.<effect_id>.radiate | scalar | number (0..100) | yes | drive set |
effects.<effect_id>.radiate_center | point2 | px point | yes | drive set |
effects.<effect_id>.radius | point2 | [x, y] px | yes | drive set |
effects.<effect_id>.radius_x | scalar | number (wire units of the key) | yes | drive set |
effects.<effect_id>.radius_y | scalar | number (wire units of the key) | yes | drive set |
effects.<effect_id>.rate | scalar | percent per second (-1000..1000) | yes | drive set |
effects.<effect_id>.rate_mode | enum | enum | yes | - |
effects.<effect_id>.rate_per_px | scalar | particles/px (0..1000) | yes | drive set |
effects.<effect_id>.rate_variation | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.red_blue | scalar | percent (-200..200) | yes | drive set |
effects.<effect_id>.red_const | scalar | percent (-200..200) | yes | drive set |
effects.<effect_id>.red_exposure | scalar | f-stops (-20..20) | yes | drive set |
effects.<effect_id>.red_gamma | scalar | gamma (0.1..10) | yes | drive set |
effects.<effect_id>.red_green | scalar | percent (-200..200) | yes | drive set |
effects.<effect_id>.red_input_black | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.red_input_white | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.red_offset | scalar | linear offset (-0.5..0.5) | yes | drive set |
effects.<effect_id>.red_output_black | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.red_output_white | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.red_red | scalar | percent (-200..200) | yes | drive set |
effects.<effect_id>.reds | scalar | percent (-200..300) | yes | drive set |
effects.<effect_id>.reds_hue | scalar | degrees (-180..180) | yes | drive set |
effects.<effect_id>.reds_lightness | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.reds_saturation | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.render_type | enum | enum | yes | drive set |
effects.<effect_id>.resize_layer | boolean | boolean | yes | drive set |
effects.<effect_id>.respect_mass | boolean | boolean | yes | drive set |
effects.<effect_id>.rest_length | scalar | px (0..16384) | yes | drive set |
effects.<effect_id>.rest_length_auto | boolean | boolean | yes | - |
effects.<effect_id>.rgb_gamma | scalar | gamma (0.1..10) | yes | drive set |
effects.<effect_id>.rgb_input_black | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.rgb_input_white | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.rgb_output_black | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.rgb_output_white | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.rotation | scalar | degrees | yes | drive set |
effects.<effect_id>.rotation_delta | scalar | degrees (-3600..3600) | yes | drive set |
effects.<effect_id>.rotation_locked | boolean | boolean | yes | drive set |
effects.<effect_id>.rotation_variance | scalar | degrees (0..360) | yes | drive set |
effects.<effect_id>.row_offset | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.row_offset_variation | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.sample_count | integer | integer (3..24) | yes | drive set |
effects.<effect_id>.sample_mode | enum | enum | yes | drive set |
effects.<effect_id>.sample_radius | scalar | px (0..200) | yes | drive set |
effects.<effect_id>.saturation | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.scale | scalar | percent (10..10000) | yes | drive set |
effects.<effect_id>.scale_delta | scalar | percent (-400..400) | yes | drive set |
effects.<effect_id>.scale_height | scalar | percent (10..10000) | yes | drive set |
effects.<effect_id>.scale_width | scalar | percent (10..10000) | yes | drive set |
effects.<effect_id>.seed | integer | integer (0..1000000) | yes | drive set |
effects.<effect_id>.self_collide | boolean | boolean | yes | drive set |
effects.<effect_id>.self_collision | boolean | boolean | yes | drive set |
effects.<effect_id>.shadow_angle | scalar | degrees (-3600..3600) | yes | drive set |
effects.<effect_id>.shadow_blue | scalar | percent (-100..100) | yes | drive set |
effects.<effect_id>.shadow_colour | colour | [r, g, b, a] 0..1 | yes | drive set |
effects.<effect_id>.shadow_distance | scalar | px (0..16384) | yes | drive set |
effects.<effect_id>.shadow_green | scalar | percent (-100..100) | yes | drive set |
effects.<effect_id>.shadow_opacity | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.shadow_red | scalar | percent (-100..100) | yes | drive set |
effects.<effect_id>.shadow_softness | scalar | px (0..512) | yes | drive set |
effects.<effect_id>.shadow_spread | scalar | px (-512..512) | yes | drive set |
effects.<effect_id>.shadowlet_angle | scalar | degrees (-3600..3600) | yes | drive set |
effects.<effect_id>.shadowlet_colour | colour | colour | yes | drive set |
effects.<effect_id>.shadowlet_distance | scalar | px (0..16384) | yes | drive set |
effects.<effect_id>.shadowlet_opacity | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.shadowlet_scale | scalar | factor (0..10) | yes | drive set |
effects.<effect_id>.shadowlet_softness | scalar | px (0..512) | yes | drive set |
effects.<effect_id>.shadows | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.shape_retention | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.size | scalar | px (0..4096) | yes | drive set |
effects.<effect_id>.size_affects_drag | boolean | boolean | yes | drive set |
effects.<effect_id>.size_affects_mass | boolean | boolean | yes | drive set |
effects.<effect_id>.size_affects_weight | boolean | boolean | yes | drive set |
effects.<effect_id>.size_blue | scalar | px (0..4096) | yes | drive set |
effects.<effect_id>.size_by_channel | boolean | boolean | yes | drive set |
effects.<effect_id>.size_green | scalar | px (0..4096) | yes | drive set |
effects.<effect_id>.size_map_amount | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.size_over_life | curve_points | curve (fraction over life) | yes | drive set |
effects.<effect_id>.size_red | scalar | px (0..4096) | yes | drive set |
effects.<effect_id>.size_variance | scalar | px (0..4096) | yes | drive set |
effects.<effect_id>.size_x | scalar | px (0..4096) | yes | drive set |
effects.<effect_id>.size_y | scalar | px (0..4096) | yes | drive set |
effects.<effect_id>.slider_axis_angle | scalar | degrees (-360..360) | yes | - |
effects.<effect_id>.smoothness | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.softness | scalar | number (wire units of the key) | yes | drive set |
effects.<effect_id>.source_1_layer | layer_ref | layer id | yes | drive set |
effects.<effect_id>.source_1_take | enum | enum | yes | drive set |
effects.<effect_id>.source_1_tap | enum | enum | yes | drive set |
effects.<effect_id>.source_2_layer | layer_ref | layer id | yes | drive set |
effects.<effect_id>.source_2_take | enum | enum | yes | drive set |
effects.<effect_id>.source_2_tap | enum | enum | yes | drive set |
effects.<effect_id>.source_3_layer | layer_ref | layer id | yes | drive set |
effects.<effect_id>.source_3_take | enum | enum | yes | drive set |
effects.<effect_id>.source_3_tap | enum | enum | yes | drive set |
effects.<effect_id>.source_4_layer | layer_ref | layer id | yes | drive set |
effects.<effect_id>.source_4_take | enum | enum | yes | drive set |
effects.<effect_id>.source_4_tap | enum | enum | yes | drive set |
effects.<effect_id>.source_end | scalar | layer frames | yes | drive set |
effects.<effect_id>.source_start | scalar | layer frames | yes | drive set |
effects.<effect_id>.speed | scalar | px/s (0..20000) | yes | drive set |
effects.<effect_id>.speed_variance | scalar | px/s (0..20000) | yes | drive set |
effects.<effect_id>.spherical_centre | point2 | px pair (-8192..8192) | yes | drive set |
effects.<effect_id>.spherical_feather | scalar | px (0..8192) | yes | drive set |
effects.<effect_id>.spherical_radius | scalar | px (0..8192) | yes | drive set |
effects.<effect_id>.spherical_strength | scalar | px (-1000..1000) | yes | drive set |
effects.<effect_id>.spin | scalar | deg/s (-36000..36000) | yes | drive set |
effects.<effect_id>.spin_variance | scalar | deg/s (0..36000) | yes | drive set |
effects.<effect_id>.spread | scalar | number (wire units of the key) | yes | drive set |
effects.<effect_id>.sprite_asset | asset_ref | asset id | yes | drive set |
effects.<effect_id>.sprite_comp | comp_ref | comp id | yes | drive set |
effects.<effect_id>.sprite_source | enum | enum | yes | drive set |
effects.<effect_id>.sprite_time | enum | enum | yes | - |
effects.<effect_id>.start_angle | scalar | degrees (-3600..3600) | yes | drive set |
effects.<effect_id>.start_spin | scalar | deg/s (-36000..36000) | yes | - |
effects.<effect_id>.start_velocity_angle | scalar | degrees (-360..360) | yes | - |
effects.<effect_id>.start_velocity_enabled | boolean | boolean | yes | - |
effects.<effect_id>.start_velocity_speed | scalar | px/s (0..20000) | yes | - |
effects.<effect_id>.step_amount | scalar | percent (0..200) | yes | drive set |
effects.<effect_id>.step_mode | enum | enum | yes | drive set |
effects.<effect_id>.step_position | point2 | px point | yes | drive set |
effects.<effect_id>.step_rotation | scalar | degrees (-3600..3600) | yes | drive set |
effects.<effect_id>.step_scale | scalar | percent (-400..400) | yes | drive set |
effects.<effect_id>.stiffness | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.streak_count | integer | samples (1..64) | yes | drive set |
effects.<effect_id>.streak_size | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.streak_spacing | scalar | s (0..0.5) | yes | drive set |
effects.<effect_id>.strength | scalar | percent (-400..400) | yes | drive set |
effects.<effect_id>.stretch | scalar | factor (-10..10) | yes | drive set |
effects.<effect_id>.stretch_to_fit | boolean | boolean | yes | drive set |
effects.<effect_id>.stretchiness | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.stroke_jitter | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.sub_influence | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.sub_offset | point2 | px | yes | drive set |
effects.<effect_id>.sub_rotation | scalar | degrees | yes | drive set |
effects.<effect_id>.sub_scaling | scalar | percent (10..100) | yes | drive set |
effects.<effect_id>.suspension_axis_angle | scalar | degrees (-360..360) | yes | - |
effects.<effect_id>.suspension_damping | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.suspension_rest | scalar | px (-16384..16384) | yes | drive set |
effects.<effect_id>.suspension_stiffness | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.swirl | scalar | degrees (-360..360) | yes | drive set |
effects.<effect_id>.take_alpha | enum | enum | yes | drive set |
effects.<effect_id>.take_blue | enum | enum | yes | drive set |
effects.<effect_id>.take_green | enum | enum | yes | drive set |
effects.<effect_id>.take_red | enum | enum | yes | drive set |
effects.<effect_id>.target_layer | layer_ref | layer id | yes | drive set |
effects.<effect_id>.targets.<target_id>.layer | layer_ref | layer id | yes | drive set |
effects.<effect_id>.targets.<target_id>.mode | enum | enum (add | subtract | multiply | divide) | yes | drive set |
effects.<effect_id>.temperature | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.thickness | scalar | px (0.5..50) | yes | drive set |
effects.<effect_id>.time_delta | scalar | frames (-120..120) | yes | drive set |
effects.<effect_id>.time_factor | scalar | factor (-10..10) | yes | drive set |
effects.<effect_id>.time_offset | scalar | frames (-120..120) | yes | drive set |
effects.<effect_id>.time_offset_variation | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.time_rate | scalar | percent per second (-400..400) | yes | drive set |
effects.<effect_id>.tint | boolean | boolean | yes | drive set |
effects.<effect_id>.tint_amount | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.tint_blend | enum | enum | yes | drive set |
effects.<effect_id>.tint_colour | colour | [r, g, b, a] 0..1 | yes | drive set |
effects.<effect_id>.transform_mode | enum | enum | yes | drive set |
effects.<effect_id>.trigger | enum | enum | yes | drive set |
effects.<effect_id>.trim_end | scalar | number (wire units of the key) | yes | drive set |
effects.<effect_id>.trim_offset | scalar | number (wire units of the key) | yes | drive set |
effects.<effect_id>.trim_start | scalar | number (wire units of the key) | yes | drive set |
effects.<effect_id>.turbulence_affect | enum | enum | yes | - |
effects.<effect_id>.turbulence_amount | scalar | px (0..1000) | yes | drive set |
effects.<effect_id>.turbulence_evolution | scalar | Hz (0..10) | yes | drive set |
effects.<effect_id>.turbulence_frequency | scalar | Hz (0..10) | yes | drive set |
effects.<effect_id>.turbulence_map_amount | scalar | fraction (0..1) | yes | drive set |
effects.<effect_id>.turbulence_octaves | integer | octaves (1..4) | yes | - |
effects.<effect_id>.turbulence_scale | scalar | px (1..2000) | yes | drive set |
effects.<effect_id>.turbulence_speed | scalar | number (0..500) | yes | drive set |
effects.<effect_id>.uniform_scaling | boolean | boolean | yes | drive set |
effects.<effect_id>.uniform_size | boolean | boolean | yes | drive set |
effects.<effect_id>.use_horizontal | enum | enum | yes | drive set |
effects.<effect_id>.use_vertical | enum | enum | yes | drive set |
effects.<effect_id>.vertical_bias | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.vibrance | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.vignette_amount | scalar | number (-5..5) | yes | drive set |
effects.<effect_id>.vignette_feather | scalar | number (0..100) | yes | drive set |
effects.<effect_id>.vignette_midpoint | scalar | number (0..100) | yes | drive set |
effects.<effect_id>.vignette_roundness | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.visibility_threshold | scalar | percent (0..100) | yes | drive set |
effects.<effect_id>.vortex_centre | point2 | px pair (-8192..8192) | yes | drive set |
effects.<effect_id>.vortex_falloff | scalar | px (1..8192) | yes | drive set |
effects.<effect_id>.vortex_strength | scalar | deg/s (-3600..3600) | yes | drive set |
effects.<effect_id>.wb_tint | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.weight | scalar | factor (0..10) | yes | drive set |
effects.<effect_id>.weight_variance | scalar | factor (0..10) | yes | drive set |
effects.<effect_id>.wheel_highlights | colour | colour | yes | drive set |
effects.<effect_id>.wheel_hinge | boolean | boolean | yes | drive set |
effects.<effect_id>.wheel_midtones | colour | colour | yes | drive set |
effects.<effect_id>.wheel_shadows | colour | colour | yes | drive set |
effects.<effect_id>.whites | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.wind | point2 | px/s^2 pair (-10000..10000) | yes | drive set |
effects.<effect_id>.wobble_amount | scalar | px (0..200) | yes | drive set |
effects.<effect_id>.wobble_scale | scalar | px (8..2000) | yes | drive set |
effects.<effect_id>.wrap_pixels | boolean | boolean | yes | drive set |
effects.<effect_id>.yellows | scalar | percent (-200..300) | yes | drive set |
effects.<effect_id>.yellows_hue | scalar | degrees (-180..180) | yes | drive set |
effects.<effect_id>.yellows_lightness | scalar | number (-100..100) | yes | drive set |
effects.<effect_id>.yellows_saturation | scalar | number (-100..100) | yes | drive set |
Worked examples
An effect member's address is the owning layer's id, a colon, then effects.<effect_id>.<member> - the id comes from the effect's own row (hover it in the timeline), the member names come from the table above. Scalars, points, colours and booleans in the drive set all take per-frame writes; the enum and seed statics (kind pickers, emitter shapes, collision events) change through the panel instead, and a write to one refuses with the typed type_mismatch.
Driving a PHYSICS member feeds the simulation itself: the fold samples the driven value at every substep, so a scripted force ramps exactly as smoothly as a keyframed one. Driving a LOOP member re-shapes the layer's local clock, which every keyframed track on that layer then reads through - the three examples below walk one of each.
Worked example: A gust of scripted wind
The scene. A physics yard: a crate drops onto a floor collider while a fan at the left edge waits to blow, its wind force authored at strength zero so a script owns the gust.
- The comp Yard: 640 by 360 at 25 fps, 100 frames (4 seconds), with gravity switched on.
- Crate: a solid layer, at [160, 120], 48 by 48, filled 2ec4b6.
- The effect gravity rigid body (
effects.effect_1in scripts): a gravity rigid body effect, at its defaults.
- The effect gravity rigid body (
- Floor: a solid layer, at [320, 336], 640 by 24, filled 3a4048.
- The effect gravity collider (
effects.effect_2in scripts): a gravity collider effect, at its defaults.
- The effect gravity collider (
- Fan: a solid layer, at [24, 288], 20 by 72, filled ffd166.
- The effect Wind machine (
effects.effect_3in scripts): a gravity force effect, at its defaults.
- The effect Wind machine (
The script. Add a project script named Gust and paste:
export const outputs = ["layer_3:effects.effect_3.force_strength"];
export function frame({ frame: now }) {
return linear(now, 20, 40, 0, 4000);
}
Line by line:
- Line 1: The output addresses the fan's wind force by effect member: the Fan layer's id, then effects.effect_3.force_strength - the same key its timeline row carries. The force is authored at strength 0, so the script owns the gust entirely.
- Line 3: The clock arrives destructured because a function named frame shadows the frame global inside its own body.
- Line 4: linear() clamps at both ends: strength holds at 0 until frame 20 (the crate falls and lands in calm air), ramps to 4000 by frame 40, then holds. The simulation samples the driven strength every substep, so the shove builds as smoothly as any keyframe.
What you see. The crate drops, lands square on the floor and rests; from frame 20 the fan's gust rises and shoves it skidding right, tumbling out of frame.
Worked example: Sparks on a throttle
The scene. A small amber nozzle near the bottom of a dark stage carrying a particle system named Sparks, its emitter pointing straight up at the family defaults.
- The comp Night: 640 by 360 at 25 fps, 100 frames (4 seconds), with gravity switched on.
- Nozzle: a solid layer, at [320, 300], 16 by 16, filled ffd166.
- The effect Sparks (
effects.effect_1in scripts): a gravity particles effect, set to size 6, particle_colour ffd166.
- The effect Sparks (
The script. Add a project script named Throttle and paste:
export const outputs = ["layer_1:effects.effect_1.emission_rate"];
export function frame({ frame: now }) {
return linear(now, 0, 64, 20, 340);
}
Line by line:
- Line 1: One declared output: the particle system's emission rate, addressed as effects.effect_1.emission_rate on the Nozzle layer that carries it.
- Lines 3-4: The rate opens the comp at 20 particles per second and climbs to 340 by frame 64 - a throttle, not a switch. Particle birth is an integral of the rate over time, so a driven ramp thickens the plume smoothly, and the seeded particle streams stay identical on every scrub and every render.
What you see. A thin amber sparkle from the nozzle thickens into a dense fountain as the scripted emission rate climbs from 20 to 340 particles per second.
Worked example: Re-cut a loop from a slider
The scene. A coral square keyframed to sweep the stage left to right over 20 frames, wrapped in a Loop effect whose window a Beat frames slider will re-cut.
- The comp Metronome: 640 by 360 at 25 fps, 100 frames (4 seconds).
- Square: a solid layer, at [80, 180], 40 by 40, filled ff5d73.
- The effect loop (
effects.effect_1in scripts): a loop effect, set to source_start 0, source_end 20, iterations 1000. - Keyframe transform.position at frame 0: [80, 180] (linear).
- Keyframe transform.position at frame 20: [560, 180] (linear).
- An expression control: Beat frames, a slider (4 to 20, step 1), set to 10.
- The effect loop (
The script. Add a project script named Recut and paste:
export const outputs = ["layer_1:effects.effect_1.source_end"];
export function frame() {
return control("Beat frames").value;
}
Line by line:
- Line 1: The output is a loop member: effects.effect_1.source_end on the Square layer, in layer frames - the authored window replays frames 0 to 20 of the sweep.
- Lines 3-4: The script simply hands the Beat frames slider through, so the loop's window is whatever the slider says - 10 by default. Scrub the slider and the beat re-cuts live: a driven loop member re-shapes the layer's local clock, and every keyframed track on the layer reads through the re-shaped clock.
What you see. Instead of one 20-frame sweep repeating, the square snaps back every 10 frames - twice the tempo - and dragging the Beat frames slider re-times the loop live.