This is the repository that accompanies the YouTube video series on writing add-ons for Blender.
It contains the source code for the add-ons that were shown in the videos, as well as for someof the snippets that are shown in some of the videos.
Add-ons that require multiple files and need to be distributed as a .zip file are each in their own folder. Currently that is just one addon, render_done, which is a refactored version from the single file version. For instructions on how to create a .zip file you can distribute, see Installing the add-ons
Table of contents
- Videos
- Introduction video [Released: 14 january 2026]
- Module: Getting started [Released: 14 january 2026]
- Module: Adding mesh objects [Released: 21 & 28 january 2026]
- Module: Skinning an armature [Released: 4 february 2026]
- Module: Rigging a curve [Release date: 11 february 2026]
- Module: Overlays and preferences [Release date: 18 february 2026]
- Module: App handlers and presets [Release date: 25 february 2026]
- Module: Multi file add-ons [Release date: 4 march 2026]
- Installing the add-ons
- Notes and issues
- License
- Contributions and suggestions
In order of appearance (click to follow the link to the relevant video, some add-ons are discussed in multiple videos and some videos present more than one bit of code/snippet):
Video: Blender add-on development
(click to go to relevant video)
- move_x.py Video: How to move a cube
- move_x_menu.py Video: Getting started
- move_x_poll.py Video: Your first add-on
- move_x_property.py Video: Your first add-on
- About IDEs, no code Video: external editors
(click to go to relevant video)
- add_star_basic.py Video: Adding mesh objects
- add_star.py Video: A mesh from scratch
- add_star_with_operators.py Video: A mesh from operators
- add_star_with_modifiers.py Video: Adding a modifier
(click to go to relevant video)
- Intro, no code Video: Skinning an armature - Intro
- skin_armature.py Video: Skinning an armature - Geometry
- skin_armature.py Video: Skinning an armature - Modifiers
- change_vertex_radii.py Video: Skinning an armature - Tips
(click to go to relevant video)
(click to go to relevant video)
- overlay_cube.py Video: Overlays and preferences - Overlays
- overlay_text.py Video: Overlays and preferences - Overlays
- distance_overlay.py Video: Overlays and preferences - The overlay add-on
- user preferences in distance_overlay.py Video: Overlays and preferences - User preferences
- tip to improve distance_overlay.py Video: Overlays and preferences - Tips
(click to go to relevant video)
- app_handers.py Video: App handlers and presets - App handlers
- mail_something_plain_password.py Video: App handlers and presets - Preferences
- mail_something.py Video: App handlers and presets - Sending email
- render_done.py Video: App handlers and presets - Completing the add-on
- render_done.py Video: App handlers and presets - Presets
(click to go to relevant video)
In each module we create several versions of the same addon, each time with the same name, so before installing a new version make sure to check if there already is a version installed in Preferences > Add-ons, and if so, uninstall it.
Then install the add-on by going to Preferences > Add-ons > Install from disk (at the top right corner), and then locate the add-on to install.
If you are unfamiliar with GitHub, you can either click on the green Code button and select Download Zip to get all code as one zip file, or you can go to one of the individual files in the add-ons directory and
download one of them by clicking on it and then selecting Download raw file (upper right).
If you are familiar with GitHub and git, you can of course choose to clone the repository instead.
Some add-ons, for example the refactored version of render_done contain multiple files. Such a package needs to be distributed as a .zip file.
You can create such a zip file from the command line with:
zip -r render_done.zip render_doneIn Windows (or a graphical file browser on your OS of choice, like Dolphin) you can also go to the folder in the file explorer and select all files and any subfolders and then right-click -> Add to compressed archive (or similar). Make sure not to include the top level folder itself. The .zip file can then be installed like any other add-on.
Note
The repository only contains the final version shown in the videos, but often enhanced with extra comments.
Note
If you use an IDE like Visual Studio Code, you might want to create a virtual environment and install the fake-bpy-module from pypi. We discuss that briefly in the Video: external editors
When an operator has been registered it will probably not appear right away at the top of the search menu (F3). You might have to type in the name of the operator first. Once used it will appear at the top, and that is why you see it there in the video, because the recording required several trial runs.
All source code and documentation in this repository is released under a GPL license.
The logo is (c) 2025, 2026 varkenvarken, All rights reserved.
If you have a suggestion for a topic you´d like to see in the series, create an issue in this repo, or add a comment to one of the videos in the series.

Consider leaving me a tip on Ko-Fi (if you can afford it)