Section for guides which did not fit any other section
Loading...
Loading...
Loading...
Exporting locations to Blender
The original exporter was based on some posts by @123321 in the Discord #world-editing channel back in May, so all credit to him for working it out in the first place.
Theres a video which outlines this process Here.
This guide was initially written with game version 1.6 of Cyberpunk 2077.
Blender 3.3 or newer
To export a location, you need to know its files — you can either pick them from our list or go and find them (and add them to the list, please).
Open Export_Sector.wscript
by double-clicking on the file name
You may get a pop-up: "Trying to open a system file. Should a local copy be created?" If so, click Yes.
Optional: Check What else the script can do for you below if you want to get fancy.
Click "Run" (it's on the top left of the script editor)
This will export all your .streamingsector files to glb/json for the later import into Blender.
Depending on your computer and the number of sectors, this script takes time. Wolvenkit will be mostly unresponsive while it's exporting.
Don't worry, it's normal.
You might see a bunch of error messages about files that couldn't be found in the Wolvenkit log. Those usually only affect materials, your mesh should still show up in Blender.
The script will find and import all streamingsector .json files under your project's raw
directory. Make sure to delete those that you don't want, or change their extension from .streamingsector.json
to .bkp.
Depending on your hardware, the script can take a long time – from minutes to hours. During this time, Blender will be unresponsive. If you can't cope with that, check Step 2 in the list below.
Import your streamingsector with the Cyberpunk Blender IO Suite. For full instructions, check the corresponding wiki page - the documentation below might be outdated.
Open Blender
Optional: Turn on the Blender console so you can watch the pot boil (unnecessary, but psychologically reassuring). It's under Window -> Toggle System Console
Select File
-> Import
-> Cyberpunk Streaming Sector
Open the .cdmodproj
file in the root of your Wolvenkit project directory
Optional: Check the "With Materials" box in the side panel This will make the process take four times longer!
Wait (see the orange warning box below)
Optional: As the meshes will be scaled and positioned according to the map coordinates, they're probably off-screen. You can center the camera by completing the following steps:
One or more meshes should still be selected. If not, do that now.
Move the cursor to your selection (Hotkey: SHIFT+S
)
Select View → Align View → Center View to Cursor
With ArchiveXL >= 1.8.0, this process is outdated. Check the other guides in this section for how to generate .xl files to add, edit or delete objects in sectors.
Created by @Simarilius Updated 19 March 2023 ~ Updated 7 May 2023 ~ Script updated 1 June 2023 ~
Add all sector files that you want to edit to your project by and double-clicking them.
Open the
Created by Misoru
This guide will teach you how to turn a world object into a lootable container.
Working .streamingsector with the object you want to make lootable (if you haven't done this yet, follow this guide)
Before making your object lootable, we first need to create the lootTable
that we'll later reference in our .streamingsector
, and add it to our Tweak .yaml
. Below is an example:
Search "LootTables" in Tweak Browser for more examples and methods.
Open the .ent
for the object you want to make lootable and verify its components
include entries like gameInventory
, gameinteractionsComponent
, and GameplayRoleComponent
. These components
are all commonly included in .ent
files for base game containers and
Open the .streamingsector
containing your object and find its nodes
entry.
If you're having difficulty determining which nodes
entry corresponds to the object you want to make lootable, use World Inspector to identify.
Under instanceData
, create handles for LootContainerObjectAnimatedByTransform
, then add the lootTable
we created in Step 1 and define the persistentState
to LootContainerObjectAnimatedByTransformPS
. Leave everything else default.
Notice that lootTables
is an array, so you can add multiple lootTables
if needed!
Your object should now be a lootable container. Load up your mod and test it out. If it's not working, verify you defined your lootTable
correctly (or use a base game lootTable
for testing) and edited the correct .streamingsector
nodes
.
Activate an existing collisions in a mesh
This guide shows you how to enable an object's embedded collision for entities without (items that you can walk through).
It's a direct follow-up to Adding Objects to the World.
As of today (Jan 20 2024), you need a collision-enabled mesh for this. We can create our own collisions with the Wolvenkit Blender IO Suite, but the tutorial for this isn't ready yet.
If you want to create AMM: Custom Props for AMM, check the corresponding guide. Note that this mechanism applies for them as well!
You know how to Archived: Merging World Additions via ArchiveXL
allmeshes.archive and updated allpaths file created by KeanuWheeze - this will help us to edit new ent files with embedded collisions.
Not every object contains an embedded collision, so we first need to check if your desired mesh has one.
Once in-game, search for the item you want to spawn; I'll be using base\meshes\base_environment_decoration_furniture_industrial_industrial_table_industrial_table_g.ent
In the Spawned
menu, click on Copy Path to clipboard
to get the current .ent
path.
After you added it, turn off the Mod Browser option; otherwise, you won't be able to get the mesh file in the next step.
Open the .ent file and look for the mesh component in its components array.
If the selected entity is from allmeshes (starts with base\meshes\
), then there is probably only 1 entPhysicalMeshComponent called custom_mesh
If not, it means your entity is from the vanilla game; in this case, search for the component that has Mesh in its type (entPhysicalMeshComponent, entMeshComponent, etc...)
In the mesh, click on the blue arrow to open the mesh in a new tab (we don't need to add the file)
Decisive moment: Open parameters and look for a meshMeshParamPhysics
What if there is no meshMeshParamPhysics parameter in the mesh ?
It means that there is no collision with it. But other solutions exist for you:
You can create your own collision through Blender (no modding ressource is available at this time)
You can fake the collision by using another small entity which already has collision embedded, and hide the small entity inside your item (this technique is a work-around, that does not always fit or give satisfaction, but most of the time it does the job)
You can try to find another similar item that has embedded collisions (and go back to the first step of this page)
Turning it on is pretty simple; we only have 2 things to change, all in the .ent file previously added:
Update the filterData
and change the values like in the screenshot. Those values determine which entities can collide with, and how to simulate the collision.
This information is not well-researched as of Jan 2024 - if you know anything more about this, please get in touch via Discord or update the wiki!
Change the navigationImpact
setting to Blocking
. (Other values exist; they haven't been documented, but you may have fun with them.)
Optional: depending on the item, you may want to enable (or not) lighting-based shadows. You can do so by setting these 3 properties to Always
.
I strongly suggest you to change the .ent name and folder to a custom one, so it doesn't interfere with the rest of the game.
In our test case, I renamed the file as mod\embedded_collision_test\decoration\industrial_table_g.ent
.
If the path of your ent changed, don't forget to add it to the allPaths.txt file used by Object Spawner.
Published: January 20, 2024 by Last documented update: January 25, 2024 by
Object Spawner 1.5 (screenshots say 1.4, but it's the mod title that wasn't updated in 1.5 )
You need a
Back in WolvenKit, create or open
Open the , turn on the option, paste the path and add the ent to your project.
Have you found it ? Amazing ! It means the mesh has a native collision that we can toggle on. Let's do this now.
That's it! All you have to do now is to .
Once in-game, open and load the new entity with the new path and verify that collision is enabled.
weapon_case_medium.ent
).streamingsector
lootTable
and persistentState