---
title: "FieldSequence"
description: "API documentation for FieldSequence"
url: https://developer.disguise.one/python-api/docs/fieldsequence/
---

# FieldSequence

See also: [Track & Sequencing Guide](/plugins/guides/track-and-sequencing)

Base class (inherits properties and methods): _[Resource](/python-api/docs/resource#resource)_

## Nested Classes

-   [ControlState](/python-api/docs/fieldsequence.controlstate#controlstate)

## Properties

#### **containerClass** : _str_

#### **defaultValue** : _Any_ _(Read-Only)_

#### **disableSequencing** : _bool_

#### **expression** : _[Expression](/python-api/docs/expression#expression)_

#### **isConnected** : _bool_ _(Read-Only)_

Checks whether this field sequence is currently connected to a module field.

True if the sequence is connected to a specific field on a module,  
False if it’s not connected (e.g. after Layer::disconnect() has been called,  
until it’s reconnected via setDestOffset() or setVariableMode()).

#### **isPatched** : _bool_ _(Read-Only)_

#### **layer** : _[Layer](/python-api/docs/layer#layer)_ _(Read-Only)_

#### **name** : _str_

#### **noSequence** : _bool_ _(Read-Only)_

#### **notSequencable** : _bool_

#### **sequence** : _[KeySequence](/python-api/docs/keysequence#keysequence)_

#### **type** : _type_ _(Read-Only)_

#### **typeName** : _str_ _(Read-Only)_

#### **userName** : _str_

## Methods

#### **eval**(self, t: _float_, ttl: _int_) -> _float_

⚠️

FieldSequence.eval() will be restricted from plugins in a future Designer release. Please update your plugins to switch to FieldSequence.getSequencedValue().

#### **evalString**(self, t: _float_, ttl: _int_) -> _str_

Evaluate the sequence as a string at the given time

**Parameters**:

-   t: The time in seconds at which to evaluate the sequence
-   ttl: The maximum depth to follow indirections to

**Returns** The sequence value at time t, as a string

#### **expressionControlled**(self) -> _bool_

Returns True if FieldSequence is controlled by expression, False otherwise

#### **externallyControlled**(self, t: _float_) -> _bool_

#### **getControlState**(self) -> _[FieldSequence.ControlState](/python-api/docs/fieldsequence.controlstate#controlstate)_

Get the highest-priority source currently controlling this field

**Returns** The current control state of the sequence

#### **getSequencedValue**(self, t: _float_) -> _[SequencedValue](/python-api/docs/sequencedvalue#sequencedvalue)_

Preferred method to retrieve the sequenced value at the specified time.

If the FieldSequence is expression or sockpuppet-controlled, this does not represent the external control value, only sequencing.

**Parameters**:

-   t The time at which to obtain the sequence value.  
    **Returns** The sequence value corresponding to the given time.

#### **isExposedOnLook**(self) -> _bool_

Returns True if FieldSequence is exposed on Look, False otherwise

#### **notifyEdit**(self)

#### **options**(self) -> _List\[str\]_

#### **setExpression**(self, expr: _str_)

#### **setRange**(self, min: _float_, max: _float_, gran: _float_)

#### **setSockpuppetDisabled**(self, disable: _bool_)

Disable or enable this field for sockpuppet control.

**Parameters**:

-   disable: When True, disables the field, when False enables the field.

#### **setSockpuppetIsolated**(self, isolate: _bool_)

Isolate or deisolate this field when the layer is driven by sockpuppet.

When isolated, no other fields in this layer will respond to sockpuppet control.  
If a field is both isolated and disabled, isolated takes precedence and the field  
will be driven by sockpuppet.

**Parameters**:

-   isolate: When True, isolates the field, when False disables isolate on the layer.

#### **sockpuppetCanOutput**(self) -> _bool_

Returns whether this field can be output by sockpuppet, taking disabled and isolated fields into account.

**Returns** True if the field can be output, else False.

#### **sockpuppetControlled**(self) -> _bool_

Returns whether this field is controlled by sockpuppet taking disabled and isolated fields into account.

**Returns** True if the field is controlled, else False.

#### **sockpuppetDisabled**(self) -> _bool_

Returns whether this field can be controlled by sockpuppet.

Note: This does not account for an isolated field, use sockpuppetControlled instead.

**Returns** True if this field is disabled, else False.

#### **sockpuppetIsolated**(self) -> _bool_

Returns whether this field is isolated.

**Returns** True if field is isolated, else False.

#### **sockpuppetSuppressedByIsolate**(self) -> _bool_

Returns whether sockpuppet would control this field if not for a different field’s isolate.

True when this field is patched, another field in the layer is currently isolated, and this field is  
neither isolated nor locally disabled. UI uses this to distinguish “configured but currently  
suppressed” from “actively controlled” or “not configured for sockpuppet”.

**Returns** True if this field is suppressed by another field’s isolate, else False.
