Team Cereustooling wiki

Browse ports interactively in DSAS

Partly checkedagainst the code on 2026-11-12 11:45

Use this when someone wants to look at a ported character's animations by hand. For pictures, use the batch mode instead.

Status partial: the two command-line features below were read from the code. The browse folder setup and the remaining dialog are team notes from 2026-11-07 and were not re-tested. Do not start DSAS for Stan unless he asks.

What the code gives you

Any command-line argument that starts with dsas:// is handled at startup. The form is:

dsas://open?t=chr&ani=<anibnd path>&chr=<chrbnd path>&suppress_prompts=1&anim=<id>
Part Meaning
open The only action.
t=chr Open a character: ani is the anibnd, chr the chrbnd.
t=parts Open a parts binder: part=<partsbnd path> and ani_id=<bind id>.
t=obj Open an object binder: obj=<objbnd path> and ani_id=<bind id>.
suppress_prompts Present with any value: skips the game folder prompt and the model override prompt for this open.
anim Optional. Jumps to this animation after loading. a and _ are stripped, so a000_003000 and 3000 both work.
no t Opens the first entry of the recent files list.

Paths must be URL-escaped (the batch mode builds the same link with Uri.EscapeDataString).

--use-workspace

Normally DSAS shows the "Setup Workspace" folder picker when it opens a file from a new place. With --use-workspace on the command line, the picker is skipped when both are true:

  • _DSAS_WORKSPACE.json exists in the same folder as the opened file;
  • its GameDirectory is not empty.

If the file is missing, the picker shows as usual.

Steps

  1. Make a browse folder that is its own mod root. DSAS resolves /chr/<id>.anibnd.dcx through ModEngineDirectory, not through the file you opened. So the folder needs its own chr\ with the character files.

    • Use real copies of the anibnds, not links into a release. A DSAS save rewrites the anibnd.
    • Team note: S:\_modding\dsas-eclipse-0082 is such a folder for the 0.0.82 ports. Its workspace file exists (chr\_DSAS_WORKSPACE.json) and points ModEngineDirectory at the folder itself.
  2. Put _DSAS_WORKSPACE.json in the chr\ folder, next to the anibnds. Fields: GameDirectory (the NR Game folder), ModEngineDirectory (the browse folder), LoadLooseParams, LoadUnpackedGameFiles, DisableInterrootDCX.

  3. Start DSAS with the link and the switch:

    "DS ANIM STUDIO.exe" "dsas://open?t=chr&ani=<escaped anibnd path>&chr=<escaped chrbnd path>&suppress_prompts=1" --use-workspace
    
  4. A "Choose Character Model" dialog may still show. Team note (2026-11-07): suppress_prompts did not skip it, and the launch script clicked its OK button. In the code, suppress_prompts does set the flag that this prompt checks, so this may differ by character. Not re-tested.

How to tell it worked

The character shows in the viewport with its animation list on the left. On load the fork's camera fits the narrower side of the viewport with a 1.6 margin, so the whole character with its weapon is in view.

What goes wrong

  • The folder picker shows anyway. The workspace file is not next to the file you opened, or GameDirectory is empty.
  • The wrong files load. ModEngineDirectory points somewhere else than the browse folder.
  • Animations do not play until the window is clicked. DSAS stops updating when it is not focused. The setting is "Stop Updating When Window Not Focused" in the Toolbox window. Team note: it was switched off in the saved config on 2026-11-07.
  • A batch run changed the window layout. See the last item in Take batch screenshots.
Source files this page documents (4)
  • modding:DSAnimStudio/DSAnimStudioNETCore/zzz_GameRootIns.cs
  • modding:DSAnimStudio/DSAnimStudioNETCore/DSASURILoader.cs
  • modding:DSAnimStudio/DSAnimStudioNETCore/Main.cs
  • modding:DSAnimStudio/DSAnimStudioNETCore/WorldView.cs

Changed one of these? Update this page: dsas/browse-ports-interactively.md (how).