World Object Removal with Blender

Remove world objects with Blender

Summary

Published: July 2025 by mana vortex Last documented update: July 2025 by mana vortex

This guide will show you how to remove items from the world via Blender.

Difficulty: Easy, but not trivial. If you want the idiot-proof way, please see Removing world objects with Removal Editor.

Estimated completion time: Depending on how much you have to fuck around and find out, 1-2 hours.

Requirements

Blender version

Plugin version

Wolvenkit version

1. Prerequisites: Deleting the objects

  1. Hit up Editing locations in Blender and follow the instructions to import your sectors into Blender.

  2. Optiona, but recommended: Save the blend file. There's no real way to undo stuff right now other than deleting them from the list by hand, and re-importing is tedious. If you save the file, you can use File -> Revert to undo all your changes.

  3. Select and delete the objects that you want to get rid of.

Now it's time to get exporting.

Adjust the sector collections' properties

This step will be made obsolete in a future update of the Wolvenkit Blender IO Suite (currently 1.5.0). The guide will tell you at which point you can skip ahead if that's the case.

Why do we need this?

ArchiveXL deletes nodes from the sector files by numeric index - it doesn't know if node #123 is a rotten banana peel or Adam Smasher. Checking the number of nodes is a security feature; if your mod is trying to alter a sector with a different number of items than the one you are expecting, it will break.

  1. In the Scene Collection (usually at the top right of your Blender viewport), select a sector collection.

  1. Below the viewport in the right side panel, switch to the Collections tab and expand the Custom Properties header. You need a property with the name of expectedNodes (green box). If you have one, you can proceed to World Object Removal with Blender. If you don't have one, keep reading.

First, you need to find out the number of nodes in your sector. We will do that in Wolvenkit.

  1. Find the correct sector file and open it in Wolvenkit. (You can copy the name from the filepath field in Custom Properties — the file should be in your project from your earlier export.)

  2. In the CR2W editor, find the nodes property and look at the count. That number needs to go into your new property in Blender.

  3. Click New to add a new property. It will be called prop and have a value of 1.000.

  4. Click the gear and add the property's properties: Type should be Integer Property Name shoudld be expectedNodes Default Value, Min, and Max should be the number of nodes from your sector file. After you have made those changes, click OK.\

  1. The value of your new property will probably still be 1 until you click in the field - then it will be updated with the only value possible.

  2. Repeat this step for every sector file.

2. Generating an .xl file

  1. Switch to Blender's Scripting perspective and create a new file.

  2. Open this link (mana's github) and copy the contents into Blender's editor.

  3. Edit the value of output_filename — it has to be a valid path (and can even be your Cyberpunk mod directory).

  1. When you're done, click the ▶ button in the toolbar to run the script.

You now have an .xl file. If you put it into archive/pc/mod, the game should load it. Otherwise, check the Troubleshooting section of this guide.

Removing potential false positives

This step is optional, but recommended, as the script might add nodes to the deletion list that you want to keep.

  1. Open the generated .xl file in a text editor such as Notepad++.

  2. Search for worldEntityNode &#xNAN;Keyboard shortcuts to find all in document in Notepad++: Ctrl+F - Alt+D

  3. Check the comment on top of a block to find out what it is.

  4. If you want to keep something, remove the entire block from the .xl file (see screenshot).

Testing

  1. Put the .xl file into archive/pc/mod and start the game. (Do not pack your Wolvenkit project, you don't need all that sector garbage!).

  2. Start the game - you should now see your changes!

That's it! You changed the world - literally! Happy modding, choomba!

Packing a Wolvenkit project

To add the .xl file to a Wolvenkit project, simply put it into the source/resources folder and pack. Your mod will include only text files and be really tiny - ArchiveXL does all the heavy lifting.

If your zip for Nexus contains an .archive file, you've done something wrong here!

Converting older node removals

You can convert node removal scripts from ArchiveXL 1.8 format to 1.9 format by running this Python script on the file.

You need:

  • a Wolvenkit project with the sectors exported to .json

  • an .xl file

Change the following lines in the script:

# the wolvenkit project with your sector json files
wolvenkit_project="F:\\CyberpunkFiles\\world_editing\\apartment_glen_cleaned_up"

# the file that you want to convert
original_file="C:\\Games\\Cyberpunk 2077\\archive\\pc\\mod\\apartment_glen_cleaned_up.archive.xl"

# the file that you want to write to
output_file="C:\\Games\\Cyberpunk 2077\\archive\\pc\\mod\\apartment_glen_cleaned_up.converted.archive.xl"

While you can write directly to your output file, you really should not.

After running the conversion script, search your new .xl file for INVALID_NODE to filter out any entries that could not be resolved.

Troubleshooting

My edits aren't showing up!

Check the ArchiveXL log (you can find it in Cyberpunk 2077\red4ext\plugins\ArchiveXL\ArchiveXL.log). For every block in your .xl file, you should see an entry like this:

[info] |Streaming| Patching "base\worlds\03_night_city\_compiled\default\quest_2467054678ccf8f6.streamingsector"...

If you don't see those entries:

  • Make sure that your file

    • has the extension .xl

    • is located in archive/pc/mod or loaded as part of a REDmod (why are you doing this to yourself? You're testing. Put it in archive/pc/mod!)

  • Check if the syntax is valid by running it through yamllint

  • Make sure that ArchiveXL is up-to-date and working

If you see "failed to patch" entries instead:

Check the expectedNodes entry inside your .xl file against the sector files inside Wolvenkit as per Adjust the sector collections' properties.

Last updated