Backup Script
home
Setup

Getting Started

With Serpens, you can create one addon per blend file. You can have multiple node trees to make up one addon. Use these node trees to separate different parts of your addon.
To create an addon, go to the Visual Scripting Editor.
This is a node editor like the shader or geometry nodes editor.
Create a new addon by clicking the new button at the top of the editor. This is the first node tree for your addon.
You will find a couple of options in the header of the node editor:
Start Tutorial: This lets you start a built-in tutorial inside the node-editor. This will walk you through the basics of Serpens, but you can also follow this documentation for detailed explanations.
Blend Data: This will open a blend data browser window. This will be important later in Blend Data.
Console: This will open the system console. This is useful to see error messages from your addon. You will also see the output of the print node here. You can use the delete button to clear the console.
Preferences: This lets you open the preferences window
Settings: This contains settings for the viewport
Compile Button: This will hard compile your addon. It will regenerate the code for every node in your addon so it might be slow for large addons. You shouldn’t need to use this as Serpens automatically compiles your addon. If you have issues or disable compile on start use this button
Unregister Button: You can use this button to unregister your addon
Discord Button: You can join the discord server to ask questions, report bugs, or share your work
Manual Button: This takes you to this documentation
Compile Time: You can see how long your addon takes to compile. This is shown in milliseconds. If you find that your addon is taking a long time to compile (long enough that it affects your workflow), please mention this in the discord server so we can improve this
Pause Compile: This pauses autocompile. When you disable pause it will compile again. This is useful if you want to develop addons for serpens that add or change nodes which breaks during development if this is not enabled

Workflow

Create node trees for your addon
Add nodes to create interfaces or programs
Add properties, variables, assets, and more in the Serpens N-Panel
Export your addon and share it with others
An alternative workflow for Serpens 3.x could be to use an addon only in one file. If you have a specific file that you need a quick tool for or need a few buttons often, simply create the addon in that file and let it exist in the background. You can keep using your blend file as normal.
An important aspect that differentiates serpens node trees from something like shader nodes is that parts of the node tree are completely separate. This is because some data only exists in a specific context. You will encounter this when using operator properties, the outputs of functions or for loops. This might not make too much sense right now, but it should become clear if you think about these parts of the node trees as a program. The nodes are running operations after each other starting at some point. If you now start one of these branches at a certain point and then take data coming from a separate tree that tree never got to that point and this data doesn’t exist in the context of the other tree.
Again, you might encounter this, but generally just keep different interfaces and programs separate and don’t try to connect data across them.

Node and socket types

Serpens node trees are separated into Interfaces and Programs:

Interface

Interfaces are anything that is displayed in the blender UI. This includes panels, menus, buttons, and more. Interfaces are represented with the yellow diamond socket. These sockets can’t be connected with any other type of socket!

Execute / Program

Execute nodes are nodes that do actions. This is usually triggered by something like a button press, a keyboard shortcut, or an event like the file being opened or a render finishing. Execute sockets are represented by a white diamond socket and can also only be connected to other execute sockets.

Data

Apart from Interface and Execute sockets/nodes, there is data. This is represented by round or square sockets.
Round sockets represent different data like strings, numbers, or blender data like properties.
Square sockets represent a list of some kind of data. You can index that list either with a number or for blend data collections you can also use a name. Indices start at 0, so the first element in a list has the index 0.
Data sockets are different than Interface and Execute as you can connect them with each other. Serpens will try to convert the data. If you for example connect a number to a string input the number will be represented as text. If the connection turns red that means that the data can’t be converted.
Dark grey data sockets can accept any type of data. Outputs of this type need to be defined in order for Serpens to be able to convert the different data types properly. Some outputs will have a dropdown to choose the correct data type, otherwise, you can use the Define Data Type node.

N-Panel

The Serpens N-Panel holds information about your addon. It also allows you to add things like properties, variables, or more node trees. Here you can also export your addon.
The Node tab of the N-Panel lets you set extra settings for some nodes. These are usually python related.
This concludes the getting started section of the documentation. From here you can start adding nodes to your addon to find out what they do or explore more of the documentation. It’s especially important to understand Blend Data and Properties.
As a final note, it might be useful for you to watch the following video. It gives a good overview of the way you will need to think when getting into the program part of Serpens. While you can create interfaces and display existing options without any knowledge of code and by just adding nodes, when you start getting into making your own operations you won’t get around following a specific thought process. While with Serpens you still won’t have to follow syntax rules and have nodes as abstractions, this remains the same and is explained here quite well:
TOP