Search Tips

Search is based on keyword.

`Ex: "Procedures"`

Do not search with natural language

`Ex: "How do I write a new procedure?"`

Give Feedback Support Portal

# OpScript Nodes

The OpScript node allows you to use the Lua scripting language to manipulate attributes at a single location, or at multiple locations. Technically, the OpScript node provides Lua bindings for the C++ Op API, so what you can do with the Op API, you should also be able to do with the OpScript node. Lua is also multi-threaded, which makes it very fast.

The OpScript node has many exciting features that make it very powerful:

• Overwrite, create, and delete attributes at any scene graph location.

• Accept multiple inputs.

• Create and delete child scene graph locations.

• Copy scene graph locations.

• Use Lua bindings for Op API C++ functions.

The OpScript node uses CEL (Collection Expression Language) to specify the locations where the script runs. The OpScript node can be used to read attributes on any scene graph location, edit attributes at the specified scene graph locations, create child locations, delete child locations, and copy scene graph locations. When running on multiple locations, a script runs separately at each location, so targeting 100 locations means that your OpScript runs 100 times.

Since there are Lua bindings for the Op API, you may only need the Op API if you really need the speed and efficiency of C++, meaning many powerful tools can be written with the OpScript node, and potentially wrapped up inside a macro for other users. If you do need to use the Op API, then the Lua interface allows for easier prototyping before fully committing to C++, which is especially useful for proof of concept.