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

# D3NetManager

See also: [D3Net Guide](/plugins/guides/d3net)

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

## Nested Classes

-   [MachineStatus](/python-api/docs/d3netmanager.machinestatus#machinestatus)

## Properties

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

#### **actors** : _List\[[Machine](/python-api/docs/machine#machine)\]_

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

#### **director** : _[Machine](/python-api/docs/machine#machine)_

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

#### **director\_type** : _bool_

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

#### **localMachine** : _[Machine](/python-api/docs/machine#machine)_ _(Read-Only)_

#### **machines** : _List\[[Machine](/python-api/docs/machine#machine)\]_ _(Read-Only)_

Get all machines in the session, including Understudies and Editors.

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

#### **multicastConfigs** : _List\[[MulticastConfig](/python-api/docs/multicastconfig#multicastconfig)\]_

The project’s pool of multicast destinations. A network head streams to one of these; one that no head has taken yet is kept here until it is assigned.

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

#### **normal\_preset** : _str_

_Category: Failover  
UserName: Normal preset_

#### **outputMachines** : _List\[[Machine](/python-api/docs/machine#machine)\]_ _(Read-Only)_

Get all session machines that currently have an output role. Only includes Understudies if they have taken over another machine.

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

#### **thisMachine** : _[Machine](/python-api/docs/machine#machine)_ _(Read-Only)_

#### **timeout** : _float_

Automatic failover timeout - 0 is disabled

_Category: Failover  
UserName: Timeout_

#### **understudies** : _List\[[Machine](/python-api/docs/machine#machine)\]_

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

## Variables

#### **UNDERSTUDY\_STATE\_NON\_OUTPUT\_TARGET** : _Final\[[UnderstudyConfigStatus](/python-api/docs/understudyconfigstatus#understudyconfigstatus)\]_ = UnderstudyConfigStatus.NonOutputTarget

#### **UNDERSTUDY\_STATE\_NO\_TARGETS** : _Final\[[UnderstudyConfigStatus](/python-api/docs/understudyconfigstatus#understudyconfigstatus)\]_ = UnderstudyConfigStatus.NoTargets

#### **UNDERSTUDY\_STATE\_NO\_VALID\_TARGETS** : _Final\[[UnderstudyConfigStatus](/python-api/docs/understudyconfigstatus#understudyconfigstatus)\]_ = UnderstudyConfigStatus.NoValidTargets

#### **UNDERSTUDY\_STATE\_OK** : _Final\[[UnderstudyConfigStatus](/python-api/docs/understudyconfigstatus#understudyconfigstatus)\]_ = UnderstudyConfigStatus.OK

#### **UNDERSTUDY\_STATE\_TARGET\_OVERLAP** : _Final\[[UnderstudyConfigStatus](/python-api/docs/understudyconfigstatus#understudyconfigstatus)\]_ = UnderstudyConfigStatus.TargetMachineOverlap

## Methods

#### **adoptMulticastConfigsFromHeads**(self)

Takes into the pool any multicast config a head references but the pool does not hold, so a project  
whose pool and heads disagree keeps the destination the head is configured with. Trashed configs stay deleted.

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

True iff the current (acting) director is an X0; false in all other cases

#### **dispatchCommandAll**(self, cmd: _RemoteCommand_, sessionOnly: _bool_)

#### **dispatchCommandDirect**(self, hostname: _str_, cmd: _RemoteCommand_, sessionOnly: _bool_) -> _bool_

#### **findMachineByHostname**(self, hostname: _str_) -> _[Machine](/python-api/docs/machine#machine)_

#### **getDirectorUnderstudy**(self) -> _[Machine](/python-api/docs/machine#machine)_

Get the first listed (if there are multiple) understudy for the current acting Director, if we have one

#### **getUnderstudyConfigStatus**(self, understudy: _[Machine](/python-api/docs/machine#machine)_) -> _[UnderstudyConfigStatus](/python-api/docs/understudyconfigstatus#understudyconfigstatus)_

#### **isUnderstudy**(self, machine: _[Machine](/python-api/docs/machine#machine)_) -> _bool_

#### **licenseCapabilitiesForMachine**(self, machine: _[Machine](/python-api/docs/machine#machine)_) -> _optional\[LicenseCapabilities\]_

Returns the shared LicenseCapabilities for the given machine, or None if it is not currently reporting status (i.e. it is not in session).

#### **machineCanBeAddedToSessionAs**(self, newMachine: _[Machine](/python-api/docs/machine#machine)_, role: _[MachineRole](/python-api/docs/machinerole#machinerole)_) -> _bool_

Whether the given machine would be allowed to be in the current session in the given role.  
Takes into account current state of the machine, so may return true for E.G EX in a normal session  
if the machine is currently not connected.

#### **machineIsValidUnderstudyTargetFor**(self, understudy: _[Machine](/python-api/docs/machine#machine)_, target: _[Machine](/python-api/docs/machine#machine)_) -> _bool_

Whether the given machine is allowed to understudy the given target in the current session  
Only checks for session configuration violations, I.E it’s ‘valid’ to target another Understudy,  
or an Actor which is already targeted by a different Understudy. These are warned about separately.

#### **machineIsX0**(self, machine: _[Machine](/python-api/docs/machine#machine)_) -> _bool_

True iff the given machine exists, is in session, and is an X0; false in all other cases

#### **machineStatus**(self, nodeId: _int_) -> _[D3NetManager.MachineStatus](/python-api/docs/d3netmanager.machinestatus#machinestatus)_

#### **removeMulticastConfig**(self, config: _[MulticastConfig](/python-api/docs/multicastconfig#multicastconfig)_)

Takes a config out of the pool, leaving the config itself alone: heads streaming to it carry on.

**Parameters**:

-   config: The config to remove.

#### **sendMatrixRouting**(self, machine: _[Machine](/python-api/docs/machine#machine)_, feed: _[FeedScene](/python-api/docs/feedscene#feedscene)_)

#### **understudyAvailableFor**(self, machine: _[Machine](/python-api/docs/machine#machine)_) -> _bool_

## Static Methods

#### **allMachinesConnected**(machines: _List\[[Machine](/python-api/docs/machine#machine)\]_) -> _bool_

Check whether all specified machines are connected to the session.

#### **anyMachineNeedsDisplaySettingsApplied**(machines: _List\[[Machine](/python-api/docs/machine#machine)\]_) -> _bool_

Check whether any of the specified machines needs to Apply Feed Settings.

#### **notifyIfAnyMachineNeedsDisplaySettingsApplied**(machines: _List\[[Machine](/python-api/docs/machine#machine)\]_) -> _bool_

Notify user if any of the specified machines needs to Apply Feed Settings.
