About this mod
This mod adds an spell and/or a passive to remove broken objects (like crates, chairs, doors...etc) which normally can't be interacted with once their broken.
The spell/passive is automatically added when a save is loaded or when a companion joins the party.
- Requirements
- Permissions and credits
-
Translations
- French
- Mirrors
- Changelogs
Did you ever broke that sitting tree on your camp or some crates trying some new spell and you were stuck with it? Are you annoyed with that clipping sound from the piece of crate you just broke trying to melt with the floor? Well, me too. So, after looking for a way to remove those broken objects through forums and mods with no luck, I decided to make my own.
Now uses Osiris Scripting to remove the dependency of the Script Extender and the logic has been reworked to optimize the code (now iterates over DB_Destroyed instead of all loaded entities).
And seeing that nobody have still shared something similar I decided to go ahead and share it, so I hope you'll find it useful!
Demo

Versions
There are two versions of the mod and both are standalone and independant, so you can use one or both of them at the same time.
- The spell version adds a spell called Remove Broken Objects to the Common - Class Actions. The spell has a target radius of 18m and an area radius of 9m, and it costs nothing to cast.
- The passive version adds a toggleable passive that casts an invisible aura of 9m and removes every broken object inside each second.
How to acquire the spell/passive
It's automatically added to all party characters (not including summons) on a
save load or when a companion is added to the party.
As it uses native scripting (Osiris) it has no requirements and should be compatible with any mod.
What is the difference between this version and the Mod.io one?
None, they're the same. But, as mod.io don't support optional files, they're splitted into two mods.
How to install the mod
In-game mod menu
Extract the .pak file into "%UserProfile%\AppData\Local\Larian Studios\Baldur's Gate 3\Mods", open the game, go to the Mod Management window and tick the mod in the list.
BG3 Mod Manager
Just import it using the Mod Manager and add it to the active list. The order shouldn't matter.
Manual Install
If you really want to install it manually, drop the PAK file into "%UserProfile%\AppData\Local\Larian Studios\Baldur's Gate 3\Mods"
Open "%UserProfile%\AppData\Local\Larian Studios\Baldur's Gate 3\PlayerProfiles\Public\modsettings.lsx" and add this to the ModOrder childs:
<node id="Module">
<attribute id="UUID" value="e9a47cc1-2919-4936-a9b6-2adf6f495394" type="FixedString" />
</node>
<node id="Module">
<attribute id="UUID" value="45ca0fd0-4238-4962-b059-e62a066daf04" type="FixedString" />
</node>
And this to the Mods childs:
<node id="ModuleShortDesc">
<attribute id="Folder" value="RemoveBrokenObjects" type="LSString" />
<attribute id="MD5" value="" type="LSString" />
<attribute id="Name" value="Remove Broken Objects" type="LSString" />
<attribute id="UUID" value="e9a47cc1-2919-4936-a9b6-2adf6f495394" type="FixedString" />
<attribute id="Version64" value="36310271995674654" type="int64" />
</node>
<node id="ModuleShortDesc">
<attribute id="Folder" value="RemoveBrokenObjectsPassive" type="LSString" />
<attribute id="MD5" value="" type="LSString" />
<attribute id="Name" value="Remove Broken Objects (Passive)" type="LSString" />
<attribute id="UUID" value="45ca0fd0-4238-4962-b059-e62a066daf04" type="FixedString" />
<attribute id="Version64" value="36310271995674654" type="int64" />
</node>
So it looks something like this:
<?xml version="1.0" encoding="UTF-8"?>
<save>
<version major="4" minor="0" revision="9" build="331" />
<region id="ModuleSettings">
<node id="root">
<children>
<node id="ModOrder">
<children>
<node id="Module">
<attribute id="UUID" value="28ac9ce2-2aba-8cda-b3b5-6e922f71b6b8" type="FixedString" />
</node>
<node id="Module">
<attribute id="UUID" value="e9a47cc1-2919-4936-a9b6-2adf6f495394" type="FixedString" />
</node>
<node id="Module">
<attribute id="UUID" value="45ca0fd0-4238-4962-b059-e62a066daf04" type="FixedString" />
</node>
</children>
</node>
<node id="Mods">
<children>
<node id="ModuleShortDesc">
<attribute id="Folder" value="GustavDev" type="LSString" />
<attribute id="MD5" value="9a704697f3b8d390347f0aea21d02074" type="LSString" />
<attribute id="Name" value="GustavDev" type="LSString" />
<attribute id="UUID" value="28ac9ce2-2aba-8cda-b3b5-6e922f71b6b8" type="FixedString" />
<attribute id="Version64" value="144820164012315624" type="int64" />
</node>
<node id="ModuleShortDesc">
<attribute id="Folder" value="RemoveBrokenObjects" type="LSString" />
<attribute id="MD5" value="" type="LSString" />
<attribute id="Name" value="Remove Broken Objects" type="LSString" />
<attribute id="UUID" value="e9a47cc1-2919-4936-a9b6-2adf6f495394" type="FixedString" />
<attribute id="Version64" value="36310271995674654" type="int64" />
</node>
<node id="ModuleShortDesc">
<attribute id="Folder" value="RemoveBrokenObjectsPassive" type="LSString" />
<attribute id="MD5" value="" type="LSString" />
<attribute id="Name" value="Remove Broken Objects (Passive)" type="LSString" />
<attribute id="UUID" value="45ca0fd0-4238-4962-b059-e62a066daf04" type="FixedString" />
<attribute id="Version64" value="36310271995674654" type="int64" />
</node>
</children>
</node>
</children>
</node>
</region>
</save>
How to uninstall the mod
The spell is removed each time a character lefts the party
If your using the passive version, toggle off the passive and save before uninstalling/updating.
In-game Mod Menu
Open the game, go to the Mod Management window and untick the mod in the list. If you want, you can also click on the mod and click on the Uninstall button at the right to completly remove the .pak file.
BG3 Mod Manager
Just delete it using the Mod Manager and don't forget to export the new mod order.
Manual Install
Remove the PAK file from the Mods folder and remove the corresponding lines of the install section from the modsettings.lsx file.
Supported Languages
Currently it supports english and spanish languages.
Extra
Remove all broken objects loaded:
for _, ent in ipairs(Ext.Entity.GetAllEntitiesWithComponent("ServerItem")) do if ent.ServerItem.Destroyed then RequestDelete(ent.Uuid.EntityUuid) end end
Remove all broken objects in a 100 meter radius from the current player:
local max_distance = 100 local player_uuid = GetHostCharacter() for _, ent in ipairs(Ext.Entity.GetAllEntitiesWithComponent("ServerItem")) do local distance = Osi.GetDistanceTo(ent.Uuid.EntityUuid, player_uuid) if ent.ServerItem.Destroyed and distance ~= nil and distance < max_distance then RequestDelete(ent.Uuid.EntityUuid) end end
My other mods
Special Thanks
- Norbyte for the Script Extender and lsib tool.
- ShinyHobo for the BG3 Modders Multitool.
- Pradoxal for the aura idea and the timer snippet.
- Everyone who enjoys this mod!