Settings reference

Updated October 2026

Describes the project settings that a project admin edits in the Dousen web portal, how they reach the DCC addons, and the separate settings that DousenDesktop keeps on each workstation.

Project settings control the pipeline behavior that every artist on a project shares. They live in the web portal at /portal/, and only admins can edit them. DousenDesktop reads what the portal publishes. Its own settings apply to one workstation.

Change a project setting and verify it

  1. Sign in to the portal as an Admin and open Projects → your project → Pipeline settings. Check the project name before you change shared defaults.
  2. Copy the current YAML so you can roll back.
  3. Change one group at a time. Use the Form tab for the fields it shows, and the Raw YAML tab for a missing DCC block or a key the form doesn’t show. For example, to triangulate Maya exports, set export_presets.maya.triangulate to true.
  4. Click Save (Form tab) or Save raw YAML (Raw YAML tab). If the editor shows a YAML error, fix it and save again. Save raw YAML replaces the whole document, so keep the blocks you aren’t changing. Reopen the editor and check the saved value.
  5. Relaunch the test DCC, or wait up to 5 minutes for the addons' cached settings to expire. Startup scripts and the OCIO path need a new launch. See How changes reach a running DCC.
  6. Publish a small test instance and check the behavior you changed. For the Maya example, open the exported FBX and confirm that the mesh is triangulated.
  7. If the test breaks, restore the YAML you saved and check it again before you ask the team to refresh.

You set up material catalogs in Unreal instead. Author the Data Asset and configure the plugin, then check the portal’s read-only Materials tab. See Materials and textures.

Pipeline settings Form view with a Sections list at the left and four cards: Blender export (axis settings and Apply Modifiers), Textures (allowed formats), Custom validators (extra validator paths), and Startup scripts (Maya), with Save and Cancel below.
The Form view groups settings into cards. The Sections list jumps to each group.

Where settings live

Each project has several YAML documents and a few single-value fields, all edited from the project view in the portal.

SettingWhat it controls
Pipeline settings Export and import behavior, texture rules, custom validator paths, OCIO, and the Jira transition on submit. This page covers them.
Naming conventionsAsset naming rules. See Naming conventions.
Validators Pre-export and admin asset checks. See Asset validation.
Jira config Base URL, project key, account email, and a write-only API Token field for server-side actions such as the Jira transition on submit. Leave the token blank to keep the saved one, or enter a new value to rotate it. See Jira.
Perforce depot path The depot path that onboarding uses to create artist workspaces. See Perforce.

Workstation settings in DousenDesktop

DousenDesktop keeps a few local settings for each workstation in a config.ini file (see Where logs and config live for its location). It reads them at launch and never sends them to DousenCore, so two artists on the same project can have different DCC launch arguments or Jira accounts. You edit them in DousenDesktop’s Settings dialog.

Desktop Settings dialog on the Connection tab, with tabs for Support, DCC Apps, Projects, Unreal, and Jira.
Local settings are edited in this dialog.
Local setting Where you edit it What it controls
Launch Arguments and Environment Variables Settings → DCC Apps, for each app entry Extra command-line arguments and environment variables for launching one DCC on this machine. See Loading studio tools.
Jira base URL and email (jira_base_url, jira_email) Settings → Jira This machine’s Jira connection, used to fetch tasks directly from Jira. The API token is stored separately, in obfuscated form. See Jira tasks.
Headless import (ue_auto_import_when_closed, ue_editor_cmd_path) Settings → Unreal, in the Headless Import (UE Closed) group Whether DousenDesktop imports assets with UnrealEditor-Cmd when the Unreal editor isn’t running (the Auto-import via UnrealEditor-Cmd when UE is not running checkbox), and the path to that executable. See Unreal Engine.
Cloud storage mounts (gdrive_mount_path, onedrive_mount_path) Settings → Connection, in the Cloud Storage Mounts group Local mount points for source assets stored on Google Drive or OneDrive instead of Perforce.
Perforce connection (default_p4_port, default_p4_user, default_p4_workspace, default_p4_local_root) Setup wizard The Perforce server, user, workspace, and local root that this machine uses. See Perforce.

Pipeline settings

Pipeline settings are one YAML document per project. Dousen ignores keys it doesn’t recognize, so you can keep studio-specific notes in the same document.

KeyMeaning
export_presets.<dcc>.<key> Per-DCC export defaults. The supported DCCs are blender, maya, 3dsmax, houdini, substance_painter, and substance_designer.
texture.allowed_formats The texture file formats that artists may export. tga is the recommended default. png, exr, and tif are also accepted. See Texture rules.
validators.extra_paths Folders to load custom validators from. Each entry can be a Perforce path (//depot/...), a path relative to the source root, or an absolute path. See Asset validation.
app_paths.<dcc>.startup_scripts Studio scripts that run after Dousen’s own DCC initialization, so you can load your existing pipeline tools without disturbing the addon. See Loading studio tools.
jira.on_submit_transition The Jira transition that Dousen applies when a linked changelist is submitted. The match isn’t case-sensitive. Leave it blank to turn the feature off. See Jira tasks and Perforce.
ocio.config_path A shared OCIO config for every DCC. If it’s blank, each DCC keeps its own default color setup.

Export presets

Presets are keyed by DCC, then by setting name. Each addon reads only its own DCC’s block and applies the keys below as native export options. It skips any other key without an error, so up_axis has an effect only under 3dsmax.

DCC Keys under export_presets.<dcc> Applied as
blender apply_modifiers, embed_textures, use_armature_deform_only, bake_anim, bake_anim_use_all_bones, bake_anim_step, axis_forward, axis_up Keyword arguments to bpy.ops.export_scene.fbx().
maya fbx_version, embed_textures, smoothing_groups, hard_edges, tangents, smooth_mesh, triangulate FBXExport* MEL commands that run before FBXExport.
3dsmax fbx_version, smoothing_groups, tangents, triangulate, embed_textures, preserve_instances, up_axis FBXExporterSetParam calls through pymxs.
houdini alembic_format, flatten_hierarchy, save_attributes Parameters on the Alembic ROP node (format, flatten, savealiases).
substance_painterformatThe file format of the exported textures. The default is tga.
substance_designerformatThe file format of the exported textures. The default is tga, including for Send to Unreal.

In the Form tab, these keys have a dropdown with a fixed set of values. The API doesn’t validate them, so the Raw YAML tab or a direct PUT accepts any string.

Texture rules

Substance Painter and Substance Designer refuse to export a texture whose format isn’t in texture.allowed_formats when Dousen starts the export, for example with Publish or Export Textures. The reason appears in the Publish results, and on the Designer Export tab. If you export with Painter’s own export command, the addon prints a console warning for each file whose extension isn’t on the list but doesn’t block the export.

Use TGA for source textures. The Substance Painter addon exports TGA, and so does Export Baked Textures in Substance Designer. The source format never ships, because Unreal recompresses every texture to a GPU block format (BC or ASTC) when it cooks. TGA has no color-management metadata, so data maps such as normal, roughness, metallic, and masks stay linear. Tools handle PNG’s optional gamma, sRGB, and ICC chunks inconsistently, which can gamma-correct a linear map by mistake, and PNG leaves RGB values under fully transparent pixels undefined. For linear data above 8 bits, such as heightmaps and HDR, use exr or 16-bit tif, because 8-bit linear data bands.

On import, the Dousen plugin sets each map’s sRGB flag by channel, whatever the format: BaseColor and Emissive are sRGB, and Normal, Roughness, Metallic, AO, ARM, Mask, Height, and Opacity are linear. So the PNG problems matter mainly when you exchange files with other tools. PNG files are smaller in source control.

The texture size limits texture.max_resolution and texture.resolution_power_of_2 are validator rules that you set in the Validators tab. See Asset validation.

Example

YAMLexport_presets:
  blender:
    axis_forward: -Z
    axis_up: Y
  maya:
    fbx_version: FBX201900
    smoothing_groups: true
  3dsmax:
    up_axis: Z
  houdini:
    alembic_format: Ogawa

texture:
  allowed_formats: [tga, png, exr, tif]

validators:
  extra_paths:
    - //depot/pipeline/dousen/validators
    - ./tools/validators

jira:
  on_submit_transition: In Review

ocio:
  config_path: //depot/color/aces/config.ocio

Who can view and edit

Any signed-in member of the project’s tenant can read the current YAML, and so can the DCC addons, which use the same server-issued token. Only admins can save, in the portal or through the API: PUT /api/projects/:id/settings returns 403 Forbidden for any other role.

Editing in the portal

The project’s Pipeline settings page has two tabs over the same document:

Both tabs reject text that doesn’t parse as YAML and show an inline error.

API endpoint

MethodEndpoint
GET/api/projects/:id/settings
PUT/api/projects/:id/settings

The body is the settings YAML. If a project has never saved custom settings, GET returns the built-in defaults instead of an error. If the body doesn’t parse as YAML, PUT returns 400 Bad Request and the previous settings stay in place.

How changes reach a running DCC

Asset versions

Dousen keeps an immutable version of each published asset. A version records the Perforce changelist, the Jira key, the publisher, and the version’s file representations and dependencies. The history is read-only, is available through the API, and has nothing to configure.