Follow-up bugfixes after 0.5.1 (Blender 5.x compatibility)
This update finalises the Blender-5 path behaviour introduced in 0.5.1 and fixes the last inconsistencies between scan → map → relink.
compat/v5/normalize() is now the only normalisation used in:.resolve() calls removed from Blender-5 logic.Effect: mapping keys now match exactly between scanner, operator and relinker.
src_key_str = normalize(str(src))
src_path derived from this normalised key ensures subpath computation and duplicate detection behave consistently.
Critical Blender-5.0 compatibility bugfix release
This update is essential for anyone using Blender 5.0 or newer.
Blender’s VSE and file-path handling changed in 5.0, which caused several types of external media to fail to relink or relink incorrectly in earlier versions.
v0.5.1 restores correct behaviour in Blender 5 while keeping Blender 4.5 behaviour completely unchanged.
A single normalize() helper is now used consistently in:
This ensures all components generate matching keys and prevents silent relink failures.
.resolve() usage in Blender-5 logicPath.resolve() previously caused directory collapsing and mismatched absolute paths.
Blender-5 logic now uses only:
bpy.path.abspath()Path.absolute()This stabilises keys across scanner, operator and relinker.
Movie strips in Blender 5 now follow the required update sequence:
//textures/...)This avoids Blender rejecting updated paths or rewriting them internally.
Sound datablocks now follow the same absolute-then-relative procedure, ensuring consistent relinking for all audio strips.
Blender 5 requires stricter handling for image-sequence strips.
The relinker now:
strip.directory to an absolute path firstThis restores proper sequence playback and portability in 5.0.
Standalone image datablocks (not VSE strips) now always store:
//textures/...
after relinking, ensuring clean and portable project files.
All code under compat/v4_5 remains untouched.
Blender 4.x continues to behave exactly as before.
v0.5.1 resolves all known relinking issues introduced by Blender 5.0, including problems with:
This release is recommended for all Blender-5.x users.
__init__.py into a structured module layout:compat/v4_5/scanner.py, compat/v4_5/relink.pycompat/v5/scanner.py, compat/v5/relink.pyapi.py)copier.py, utils.py)bpy.app.versionsequence_editor.strips_all replaces deprecated sequences_all"//" path assumptionspathlib.resolve()strip.filepath)strip.sound.filepath)strip.directory + element filenames)strip.clip.filepath)strip.mask.filepath)iter_vse_strips() (cross-version safe)_abs(), _abs_from_path())textures/Images are not linking properly here, I'm racing to fix it very soon.
This release establishes the foundation for ongoing support across Blender 4.5 LTS, Blender 5.x, and future versions without breaking legacy installations.
textures/)textures/)Please note you will need a later version in order to have compatibility with Blender 5.0.
FIXED: Videos were not being correctly pathed for VSE strips in 4.5.6 LTS.
Long pause when processing all strips. This will be the focus on the following releases. I'll potentially address this with a combo of loading bar quality of life features and try to optimise this as best as possible.
Release type: Stable (Submission for review). Released: 2025
blender_manifest.tomltextures/textures folder creationSequencer, Pipeline, User InterfaceReleased: 2024-10-22
Released: 2024-10-22
Released: 2024-10-22
textures/ directory next to the .blend fileThreadPoolExecutor for concurrent copying"Helps people get their shit together while using Blender."