halo-unit-variant-add-on.py
This is a python script that installs an add-on that lets you pick the colours of your Halo units. You can pick: Minor or Major or SpecOps colours.
You can download the latest version here.
It is very natural to distrust any script that someone asks you to run on your computer.
Fortunately you can upload the file to ChatGPT at chatgpt.com and ask it what the script does and if it contains any nasty surprises.
I did that and it told me what the script does. It said this,
Yes. I reviewed the whole add-on, and I don’t see any obvious malicious or “nasty surprise” behavior in it.
What it does is fairly narrow: it adds a “Halo Unit Variant” panel to Blender’s 3D Viewport sidebar. At the moment it only defines Halo: Combat Evolved Grunt variants — Minor, Major, SpecOps, and SpecOps Air Defense — and associates each with preset colour values.
When you initialize it, it creates four custom properties on the current Blender scene:
hce_change_color_a,hce_change_color_b,hce_change_color_c, andhce_change_color_d.Those properties are stored in the
.blendfile and configured as colour values.When you choose a variant, it calculates the display colour from the midpoint of the variant’s lower/upper RGB values and writes that into the corresponding scene property. For the Grunt data currently present, only Colour A is actually used.
The apparent intention is that materials elsewhere in your
.blenduse drivers referencing those scene properties. After changing a variant, the add-on forces Blender to refresh the scene, material node trees, view layer, and current frame so those drivers update immediately.
It also said this,
Security-wise
I specifically checked for the things I’d worry about in a Blender Python add-on. This one has:
- No network access
- No HTTP requests or sockets
- No filesystem reads/writes
- No shell commands or subprocesses
- No
exec()/eval()or dynamically loaded code- No obfuscated/base64 payloads
- No startup handlers or persistent timers
- No modification of Blender preferences/keymaps
- No object deletion
- No downloading or executing other programs
Its imports are only Blender’s own
bpymodule andEnumProperty.There are, however, a few harmless-but-worth-knowing behaviours.
First, its scene colour properties are deliberately persistent. Initializing the add-on puts those custom properties in the
.blend, so disabling/uninstalling the add-on won’t inherently remove the storedhce_change_color_*values from files you’ve already saved. That’s not suspicious; it’s explicitly what the add-on claims to do.Second, changing a variant can overwrite the current value of a used colour channel. For example, if you manually altered
hce_change_color_a, selecting another Grunt variant replaces it with that variant’s scripted colour. There is actually code to detect manually edited colours (_edited_channels), but nothing in this version appears to use that function to warn you before overwriting them.Third, every variant change loops across all materials in the file and calls
update_tag()on node-based materials, followed by a view-layer update and a same-frameframe_set(). That’s not dangerous, but in a very large Blender project it could make switching variants somewhat heavier than necessary.One minor code-quality point: several refresh operations use broad
except Exception: passblocks. That means if a refresh operation fails, the error is silently swallowed. Again, not malicious — it just makes debugging failures harder.Bottom line: based on the Python file you uploaded, I’d rate it low risk. It looks like a straightforward Blender UI/colour-driver helper rather than anything trying to escape Blender, phone home, touch your files, or execute arbitrary code. Its main side effect is modifying custom properties inside the active
.blendand refreshing material drivers.
It rates the add-on as low risk.
Anyway, you don’t have to take my word for any of this, just send the file, or paste its contents into ChatGPT and ask it yourself.
Note:
This add-on expects certain properties to be in the blender file. Disable it or Uninstall it or simply don’t use it in any other blender project file. It has a single purpose: to change some colours used to display a Halo character.
Installing the add-on
Click Edit / Preferences… in the menu.

The Preferences window will be displayed.
You want Add-ons to be selected, its in the pane on the left of the Preferences… window.

Click the dropdown on the righthand corner and select: Install From Disk…

You will get a file open dialog. Navigate to the folder where you extracted the zip file and select halo-unit-variant-add-on.py.
Make sure that Enable on Install is checked. The checkbox is on the top right.

Then click the Install from Disk button on the lower right of the dialog.

If all goes well then you should see it in your preferences window.

There is a dropdown arrow to the left of the add-on name. If you open it you can see info about it and an Uninstall button.
The tick box beside the arrow lets you disable the add-on.
If you use Blender for other projects, you can simply disable the add-on when you have finished viewing the Grunt animations. Disabling it does not uninstall it, so you can easily enable it again later
Note:
This adds a tab to the left of the 3D View. To see the tab: hover your mouse over the 3D view on the Animation workspace and click n.
If you already have lots of tabs then look for the on labelled: Unit Variant and click on it.
You can now turn your Grunt into a Shellback Major.
