hi i am looking for help understanding how exactly i would go about making a toml file for an addon, i just got blender 4.2 and i tried to install wiggle bones and it gave me a missing manifest error, so i read a different thread and from what i understand is that i need to edit a toml file and put all the addons details in it then zip it up with the addon. but i have no idea how to do this or what software to edit the file with and also i have never done coding before so any help would be greatly apreciated
You can still install non-extension addons in old-fasion manner afaik.
Use Add-ons tab in preferences
thank you for replying. you see i just donât know or understand how to Add a manifest.toml file with all the required meta-data.
i tried that but the same thing happened. thank you for your help though.
The .toml file example is on the doc page, just tweak the top part, and remove all that you donât need.
One thing is that for the â__init__.py
â file thatâs the addon itself, be sure to remove the whole bl_info
part at the top, or you will get errors.
Or just show your code here, and weâll see whatâs happening
This is the complete text of a blender_manifest.toml
file from an addon that is currently under review to be included with Blender:
schema_version = "1.0.0"
id = "right_mouse_navigation"
version = "2.3.7"
name = "Right Mouse Navigation"
tagline = "Game Engine-style Viewport & Node Navigation"
maintainer = "Spectral Vectors"
type = "add-on"
website = "https://github.com/SpectralVectors/RightMouseNavigation"
tags = ["3D View", "Node", "User Interface"]
blender_version_min = "4.2.0"
license = ["SPDX:GPL-2.0-or-later"]
You can check out the full repository to see how itâs all structured.
A .toml
file is just a plain text file, you can create it with any text editor, and instead of saving the file as .txt
or .py
you would choose .toml
- itâs all still regular plain text, but Blender knows to look for a file called blender_manifest.toml
, so we just have to make sure that it sees a file with that name in the repository.
Like you can see above, all this does is give some information about who created the addon, what it does and where to find it.
This is a new system for Blender, they used to keep this information inside the __init__.py
file, like @RobWu mentioned. Usually at the very top of the file you would find something called bl_info
.
In the case of Wiggle Bones, it will look something like this:
bl_info = {
"name": "Wiggle 2",
"author": "Steve Miller",
"version": (2, 2, 4),
"blender": (3, 00, 0),
"location": "3d Viewport > Animation Panel",
"description": "Simulate spring-like physics on Bone transforms",
"warning": "",
"wiki_url": "https://github.com/shteeve3d/blender-wiggle-2",
"category": "Animation",
}
You can delete all of that from the __init__.py
file after copying all the correct info into a blender_manifest.toml
file.
I feel like sometimes I need to see a real-world example to understand how its all supposed to be set up, hope this helps you out!
Iâm not experienced with posting, so hopefully the formatting of my post remains
as intended.
The file âinit.pyâ has to have 2 underscores on each side of the name âinitâ, but
the forum software changes it to âinit.pyâ, so be aware of it.
I donât know whether you already found a solution to your problem.
In short:
- Most probably in your case the solution to your problem is a correct formatting of the zip file.
It has to be:
add-on-wiggle2-v2.2.4.zip
- The zip file MUST contain at least the files
âinit.pyâ and
âblender_manifest.pyâ (for the required content see below)
Since I myself had to muddle through this, Iâd like to share what I found, if you are interested.
Iâll try to elaborate a bit in order to cover as much questions as possible.
The answers I found may not all be completely true down to an atomic level, but it works.
If there would be to clarify some explanations of mine, just ask.
In essence, if I delve into fundamental information, it might be
beneficial for novice lurker visitors who are not yet part of our
community here on the forum.
The Basics (which most probably are not new to you)
After a fresh installation of a newer version of Blender-4.2+
youâll find the âcoreâ addons at
"c:\Program Files\Blender-4.2\4.2\scripts\addons_core"
Another species of extensions/addons can be found at
"c:\Program Files\Blender-4.2\4.2\extensions\system"
When starting Blender-4.2 for the first time, it creates, as you
know, the folder â4.2â in the following (configuration/addon)
directory:
"c:\Users\username\AppData\Roaming\Blender Foundation\Blender\4.2"
which at this time contains only the âconfigâ folder.
By installing your first legacy addon (e. g. wiggle_2.py) via
Preferences -->Add-ons -->Install from DiskâŚ,
Blender will create a new folder named âscriptsâ inside this
configuration directory with the subfolder âaddonsâ.
When you install your first extension from disk, Blender
creates the folder âextensionsâ containing the subfolder
âuser_defaultâ.
The path to this folder can be found in
Preferences -->Get Extensions (on the left side)
â>Header (right side) -->drop down menu âRepositoriesâ
â>mark âUser Defaultâ -->Advanced.
Itâs also possible to create there new repositories (folders)
as the target of your addons. (Image 1)`
When you install your first extension online, Blender
creates the folder âextensionsâ (if it not already exists)
with the subfolder âblender_orgâ which then contains the addons
of the repository âextensions.blender.orgâ.
Installing a Legacy Addon
If you want to install a legacy addon, you can do as follows:
If the folder ââŚscripts/addons/â doesnât exist in your
addons/config directory (âŚBlender Foundation\blender\4.2),
create it manually beforehand.
"c:\Users\username\AppData\Roaming\Blender Foundation
Blender\4.2\scripts\addons"
- Copy your unzipped file âwiggle_2.pyâ into your addons
directory âŚ\4.2\scripts\addons
This works too, if your addon consists of a folder and
not a mere file.
or
- If you like it more, go to
Preferences -->Add-ons (on the left side) -->Header
â>on the far right side of the Header open the drop-down
menu (the downwards pointing arrow) -->âInstall from DiskâŚâ
But donât try to install the zipped file, cause this throws
the error âMissing manifestâŚâ
So, when you used the unzipped file, then you should find
the file âwiggle_2.pyâ in the folder
"âŚ\4.2\scripts\addons" which Blender in this case created
automatically.
This doesnât work, if your addon is a directory/folder.
It did work only with one-file-addons, when I tried it.
Converting a Legacy Addon
And now the thing with the manifest file or
how to convert a legacy addon into an extension:
Create a temporary folder somewhere and name it
what you want to, e. g. âWgl2_extâ.
Move your file âwiggle_2.pyâ into this folder and
rename this file to âinit.pyâ
The so-called dictionary âbl_infoâ inside the file âinit.pyâ
(former wiggle_2.py) provides most of the information
needed to create the manifest file. Information of the
license can be found on the addons website.
The âbl_infoâ files then can be deleted, but thatâs
not mandatory.
Then create/add a new text file in the âWgl2_extâ folder.
Name it âblender_manifest.tomlâ. This name is mandatory.
The addon âWiggle2â consists of only one file.
If (another) legacy addon consists of more than one file
and possibly subfolders too, then an âinit.pyâ file
already exists in the root of this addon directory.
In this case itâs sufficient to just add the file
âblender_manifest.tomlâ to the diretoryâs root].
Open now the empty file âblender_manifest.tomlâ with a
text editor e. g. Windowsâ Notepad.
Write or copy and paste the following code:
schema_version = â1.0.0â
id = âwiggle_2â
version = â2.2.4â
name = âWiggle2â
maintainer = âSteve Millerâ
tagline = âSimulate spring-like physics on Bone transformsâ
type = âadd-onâ
tags = [âAnimationâ]
blender_version_min = â4.2.0â
website = âhttps://github.com/shteeve3d/blender-wiggle-2â
license = [âSPDX:GPL-3.0-or-laterâ]
With the exception of âwebsiteâ these informations
are mandatory.
The required and optional details are listed in the
Blender-4.20 manual -->Advanced -->Creating Extensions
â>Getting started -->Manifest.
Assuming you have gathered information about the addon
âwiggle2â from various sources like manuals, tutorials,
YouTube videos, website copies, stored locally on your
computer, replace the target of the item âwebsiteâ in the
âblender_manifest.tomlâ with your local path.
E. g. if your storage is located at âd:\tuts_wiggle2â,
copy this path and replace the URL of
website = âhttps://github.com/shteeve3d/blender-wiggle-2â with
website = âd:/tuts_wiggle2â
On Windows pay heed to replace the backslashes with slashes,
because the path is an URL now.
After saving and closing this file, your folder âWgl2_extâ
should look like this:
Wgl2_ext (folder = believable name)
|_ init.py (file = mandatory name)
|_ blender_manifest.toml (file = mandatory name)
Zip the two files together into one zip file
(for the special naming scheme for the zip file see below).
You can also create a folder within the folder âWgl2_extâ
and give it an appropriate name, such as âWiggle_2â
Move the files âinit.pyâ and âblender_manifest.tomlâ into
this new folder.
You can add as many files/folders as you want.
Wgl2_ext (folder = believable name)
|_Wiggle_2 (folder = believable name)
|_ init.py (file = mandatory name)
|_ blender_manifest.toml (file = mandatory name)
|_ âŚ
Now zip the the folder âWiggle_2â with its content inside of
the folder âWgl2_extâ.
Rename the resulting zip file using the following scheme.
This is important!
The format is:
âadd-on-â
name-of-the-addon-
âvâ
version.of.the.addon
â.zipâ
The name of the addon should be recognizable, but to make
it more identifiable, e. g., in a list of addon files,
take it from the blender_manifest.toml file, as Blender does.
For the âWiggle2â addon, this would look like:
add-on-wiggle2-v2.2.4.zip
No spaces, no underscores in the name of the zip file allowed.
Replace them with â-â.
Please note that the version number should match the one
specified in your blender_manifest.toml file.
Now go to Preferences -->Get Extension âŚâ>âInstall from DiskâŚâ
Navigate to your file âadd-on-wiggle2-v2.2.4.zipâ and install it.
After installation you can convince yourself in Preferences,
that the promotion of the legacy addon to an extension actually
has happend. Look under âGet Extensionsâ, where it should appear
now and to âAdd-onsâ where the âTypeâ of the Addon now is
âExtensionâ (Images 2 and 3).
âWheelsâ
If you should stumble upon a legacy addon you want to convert,
but get troubles because it needs some additional
Python site-packages Blender Python doesnât provide,
and you need help to overcome this obstacle, just ask.
Try installing the addon by copying the âwiggle_2.pyâ file from the .zip to %appdata%\Blender Foundation\Blender\4.2\scripts\addons. Then, press the âRefresh Localâ button in Preferences->Add-ons, or restart Blender.