-
Notifications
You must be signed in to change notification settings - Fork 0
The Bounds Patcher (or 'help, stuff do be invisible!')
The Bounds Patcher tab has three tools:
One-Click Patcher-
LSF Patcher(legacy) -
Bounds Calculator(really legacy)
Use these when a mesh has bad or missing bounds and appears invisible, hard to click, or otherwise wrong in-game. Literally why I started this little tool in the first place because oh my god Larian let me calculate bounds in the Toolkit you cowards. Also constantly opening Blender then LsLib and converting everything one by one is PAINFUL and I am NEVER doing that again, you can't make me.
One-Click Patcher is the main VisualBank bounds workflow. It converts selected LSF files, resolves their related GR2 meshes, calculates bounds, patches the VisualBank entries, and converts the files back.
Use Batch when you want to patch one or more specific .lsf files. Use Whole Folder when you want Toolkit Assistant to scan a folder and patch every valid VisualBank .lsf it finds.
- Open
Bounds Patcher>One-Click Patcher. - Set mode to
Batch. - Click
Select File(s). - Choose one or more target
.lsffiles. - Check the selected file list.
- Keep
Backup originalon if needed. - Click
Patch. - Review the console log, especially resolved GR2 paths and any failed files.
Batch mode can be used for one file or several files. Each selected LSF still needs a clear usable .GR2 reference in the converted LSX. If a selected file has no GR2 references, several possible references, or a missing mesh path, Toolkit Assistant will log the failure. Consider using the manual (legacy) tools for the remaining selected files instead.
- Set mode to
Whole Folder. - Choose the Content folder for the current project.
- Keep
Backup originalon if needed. - Click
Patch. - Confirm the folder patch when prompted.
- Review skipped files and resolved GR2 paths in the console log.
Whole Folder mode scans .lsf files under the selected folder. It skips files that are not valid VisualBank files. When Keep edited LSX is enabled, only patchable VisualBank .lsx files are kept.
Whole Folder mode can take a while on large projects. Like 50+ pride flags not that anyone is insane to make a mod with 50+ pride flags lmao what, or you just want to give all your weapons BoundsMax of 1 1 1 because you are also v lazy (and honestly, valid. I'm not gonna judge you. Live your best life).
Use this manual patcher when you already have bounds XML from Blender, the Bounds Calculator, or another source.
- Open
Bounds Patcher>LSF Patcher. - Set mode to
Single file. - Choose the target
.lsf. - Paste the bounds XML into the
Boundsbox. - Keep
Backup originalon. - Click
Patch LSF(s). - Review the console log.
Use UUID batch mode when you want to patch matching LSF files under a folder.
- Set mode to
UUID batch. - Choose the Content folder for the current project.
- Paste UUIDs into the
UUIDsbox. - Paste the bounds XML into the
Boundsbox. - Keep
Backup originalon. - Click
Patch LSF(s). - Confirm the batch patch when prompted.
- Review the console log.
UUIDs can be separated by new lines, commas, or semicolons. Blank entries and lines beginning with # are ignored.
If UUID batch mode has no UUIDs entered, Toolkit Assistant will ask whether to apply the bounds to every valid VisualBank entry under the selected folder. Choose No unless you deliberately want that. (I'm assuming if you click Yes you're patching a bunch of weapons. Go for it, champion.)
Keep edited LSX:
Keeps the edited .lsx beside the source .lsf.
Backup original:
Creates a timestamped backup of the original .lsf before replacing it.
Use this helper when you want bounds XML from a mesh, but you want to patch the LSF yourself, and you can't be bothered installing a plogon for Blender. can you tell this was written first?
- Open
Bounds Patcher>Bounds Calculator. - Choose a
.gr2or.daemesh file. - Click
Get Bounds. - Review the output.
- Click
Copy Bounds. - Paste the copied XML into
LSF Patcheror wherever you need it.
For .gr2 files, Toolkit Assistant uses Divine to convert the mesh to a temporary .dae, then reads the vertex positions from that file. .dae files are read directly.
-
So you wanna use my little tool
Lmao it's an innuendo -
The Bounds Patcher
(or 'help, stuff do be invisible!') -
Import Repair
(or: 'I forgot to uncheck that box again...') -
Project Tools
(or 'Stuff that didn't deserve its own tab') -
Troubleshooting
(or: 'My PC is on fire help')