Settings reference
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
- Sign in to the portal as an Admin and open Projects → your project → Pipeline settings. Check the project name before you change shared defaults.
- Copy the current YAML so you can roll back.
- 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.triangulatetotrue. - 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.
- 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.
- 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.
- 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.
Where settings live
Each project has several YAML documents and a few single-value fields, all edited from the project view in the portal.
| Setting | What 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 conventions | Asset 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.
| 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.
| Key | Meaning |
|---|---|
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_painter | format | The file format of the exported textures. The default is tga. |
substance_designer | format | The file format of the exported textures. The default is tga, including for Send to Unreal. |
- Blender’s FBX exporter has no version option, so the
blenderblock ignoresfbx_version. Blender also always exports baked animation without curve simplification, whatever the preset says. - Maya always exports without the constant key reducer, so held keys and hand-shaped tangents survive. No preset
key changes this, and
apply_modifiershas no effect in Maya.
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.
fbx_version(Maya and 3ds Max):FBX202000,FBX201900,FBX201800axis_forward:-Z,Z,-Y,Y,-X,Xaxis_up:Y,Z,X,-Y,-Z,-Xup_axis(3ds Max):Y,Zalembic_format:Ogawa,HDF5format(Substance):tga,png,exr,tif,jpg
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:
- Form shows typed fields: dropdowns for the fixed-value keys listed under
Export presets, checkboxes for booleans, and comma-separated or one-per-line lists
for
texture.allowed_formatsandvalidators.extra_paths. It builds a section for each DCC block (export presets and startup scripts) that already exists in the YAML. Save merges the fields into the existing document, so keys the form doesn’t show, such as studio comments or experimental settings, stay as they were. - Raw YAML edits the full document. Save raw YAML replaces the whole document with the editor’s content. Use it to add or restructure keys that the form doesn’t show.
Both tabs reject text that doesn’t parse as YAML and show an inline error.
API endpoint
| Method | Endpoint |
|---|---|
| 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
- Export presets, allowed texture formats, and custom validator paths: each DCC addon caches them in memory for 5 minutes, like the naming conventions. A change reaches an artist who’s already working within about 5 minutes, without a relaunch.
ocio.config_path: applied when the DCC starts, so a change takes effect the next time the artist launches that DCC.app_paths.<dcc>.startup_scripts: DousenDesktop resolves it once, when it launches the DCC, so a change also takes effect on the next launch. See Loading studio tools.jira.on_submit_transition: read from the database on every changelist submit, without caching, so a change applies to the next submit.
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.