Home/Blog/How to Write a Maya cmds Python Script from a Scene Brief
Blog

How to Write a Maya cmds Python Script from a Scene Brief

P
promptstudio
How to Write a Maya cmds Python Script from a Scene Brief

Maya scripts duplicate a cube on second run and wander into bpy. objExists first. Lock 2024. Paste into the Script Editor.

The matching generator is the Maya cmds Python Script from a Scene Brief (Version-Locked, Idempotent, Paste-into-Script-Editor) (Maya Cmds Python Script From Scene Brief Version Locked Idempotent Script Editor) prompt. Browse related cards in the PromptDig library (Browse more prompts). When a filled run survives, share the version you actually use (Share a prompt).

Lock Maya version at the top of the script

Write a Maya cmds Python script from a scene brief. Version-locked, idempotent, paste into the Script Editor. Not a Blender bpy card. Start by filling Inputs, not by asking the model to remember last week's run. If a field is blank, write NONE or NOT IN INPUTS and leave it blank through Generate. The card is built so the model cannot honestly invent a number, owner, URL, or command that you did not paste.

Paste these fields before you hit run:

Scene brief (what to build, node names I allow): [Brief]
Maya version I lock (2024 / 2025 / UNKNOWN): [Version]
API I lock (cmds / cmds+PyMEL or UNKNOWN): [API]
Node names I allow: [Names]
Words I must not use: [Banned]
What I must never invent: [Never]
Output format: [Format]
Language for comments: [Lang]
Idempotent rule I lock: [Idempotent]
What this is not: [Not]

That inventory is the honesty ledger. Anything that does not appear there is forbidden in the draft. If you catch yourself adding a nice-to-have after the run, you are no longer using the card. You are ghostwriting. Put the extra fact in Inputs and run again.

objExists before every create

Generate is numbered on purpose. Do not skip a step because the first paragraph looked done. The early steps exist to stop later prose from smuggling claims.

Walk the Generate list in order:

  1. Honesty ledger: Brief, Version, API, Names, Idempotent, Lang. Forbidden: extra node names, Blender bpy, invented Maya 2026 flags.
  2. Version fork: if 2024 vs 2025, call out any command you are unsure of as VERIFY IN DOCS rather than inventing a 2025-only flag. If UNKNOWN, write VERSION UNKNOWN at the top of the script.
  3. Script: import maya.cmds as cmds (or API as locked). Paste-into-Script-Editor. No GUI plugin class unless Brief asks.
  4. Idempotent: before create, cmds.objExists on Names; delete or skip per Idempotent. Running twice must not duplicate.
  5. Only Names. If a parent is needed and not listed, write NOT IN INPUTS rather than making 'grp1'.
  6. Refuse: bpy., Blender operators, pymel if API is cmds-only.
  7. Never: invent a license path, an Arnold flag not in Brief, or a shelf button.
  8. Compliance pass: quote Banned and Never hits. Print Version. Format as Format.

If a step asks for a version lock, quote the version from Inputs in the output. If a step asks for a refuse list, keep the refuse list in the published artifact, not in a sidebar you delete. Reviewers should see what the model was not allowed to do.

Only node names from Inputs

Most failures are the same shape: a missing field gets a confident fill. A conversion rate appears. A Gradle task appears. A flash point appears. A caption appears on a job that asked for slide text only. Your review is to search the draft for numbers, names, and commands, then grep Inputs. No match means cut.

Honor the constraints as hard stops, not vibes:

  • Maya cmds script from Brief. Not Blender bpy and not a plugin.
  • Version-locked. Idempotent.
  • Paste into Script Editor.
  • No emojis.

When the card says not legal advice, not certification, not an exam dump, or not a caption engine, that sentence belongs at the top of the output. Deleting it to look more finished is how you inherit risk.

Refuse Blender bpy and PyMEL if cmds-only

Finish with the compliance pass the prompt already asks for. Quote the banned-word hits. Cut them. Print character counts when the job has a cap. Print word counts when the job has a budget. List gaps as gaps. Five missing facts are more useful than one smooth paragraph.

Tags on the card (maya cmds python script, maya version-locked idempotent, paste into maya script editor) are a reminder of the job shape, not an invitation to wander into a neighboring cluster. If you need a different surface, open a different PromptDig card rather than stretching this one.

Fill the card, then run

Replace every bracket. Run on ChatGPT, Claude, or Gemini. Read the ledger first, then the artifact. If the model invents a commit, KPI, DOI, PEL, bid, or logo, discard the run. Tighten Inputs. Run again. Share the filled card that survived, not the first draft that sounded done.