Guide made by Forsentio - Quest Team member working on WolvenKit at RED Modding Tools.
CP77_CR2W.bt (Thanks to alphaZomega for his great work)
Some basic knowledge of what are you doing (Seriously)
First and foremost you need to have the raw files of the game extracted If not, use the latest release of CP77 Tools and extract the archive. You also need to extract and unbundle the lang_eng_text archive for this tutorial.
Now that you have the raw files, head to the "quest" folder (found here: [...]\basegame_4_gamedata\base\quest) then chose a quest from one of the sub folders:
main_quests (the main story quest, internally labled as qxxx)
minor_quests (minor activites such as psycho sighting... etc, internally labeled mqxxx)
side_quests (the side gigs such as Judy's quest, River's story... etc, internally labled as sqxxx)
For this guide, we're going to use the one named MQ041, also known as "War Pigs", avaialable only for the Corpo lifepath. You should find it here: [...]\basegame_4_gamedata\base\quest\minor_quests
We want to make the main character say a different line then the one he is supposed to. For example replacing "Hey, yeah, sure. Damn, you ol' bastard, been a while since..." with "Fuuuck!" when the holocall starts.
You should have also unbundled and uncooked the lang_eng_text archive.
Okey, now that everything is clear, let's start. 1. Open the scenes folder inside MQ041, and then open the file named mq041_corpo_01_deadmans_switch.scene in 010Editor with alphaZomega's CP77_CR2W.bt template already installed.
2. Go to struct Data, open scnSceneResource, then scnscreenplayStore; inside you're going to find an array named scnscreenplayDialogLine 3. We're going to associate each entry with the line we see on screen; to do so we need the locstringIds and another file you can get from the lang_eng_text archive 4. Next, open the lang_eng_text archive and search for mq041 here: [...]\lang_en_text\base\localization\en-us\subtitles\quest 5. Once found the quest folder open the .json named mq041_corpo_01_deadmans_switch 6. Open struct Data, then JsonResource, handle:iSerializable, localizationPersistenceSubtitleEntry and finally array:localizationPersistenceSubtitleEntry 7. Here in the value column you're going to see lots of stringId; remember the locstringIds from point 3? Good! They're the same 8. We now know that stringId = 1822802647440039936 is responsible for "Hey, yeah, sure. Damn, you ol' bastard, been a while since...", and that stringId = 1874801294016040960 is the same as "Fuuuck!" 9. Let's go back to the the array mentioned in point 3; first thing we do is swap the two the locstringIds 10. Once that is done we need to swap the names we see on the left; in this case m_194BE559A84E2000 with m_1A04A1D80244D000; we can do that by simply going in the CName array and replacing their entries. 11. Once that is done be sure to save, pack and put the archive in your Mod folder
[PLACEHOLDER FOR A VIDEO]
Guide made by Forsentio with the help of Loomy, PixelRick and Sombra - Team members working on various projects at RED Modding Tools.
We will guide you through the step-by-step process that will allow you to rotate and position differently the duvet above V's bed, so that it flows with how the sleep animation plays out.
Some basic knowledge about modding Cyberpunk 2077.
1. Unbundle and uncook basegame_3_nightcity.archive, basegame_4_gamedata.archive. 2. Find the entity you want to modify (in our case it's located here "basegame_3_nightcity\base\quest\minor_quests\mq000\entities") 3. Once you have the entity open its buffer in the Cyberpunk Save Editor by dragging and dropping it inside. 4. Open the entMeshComponent that has the same name as the mesh you want to modify (in our case is 3 entMeshComponent "bed_duvet_poor"). 5. Open the localTrasnform array, and inside of it Position and Orientation; you're going to see different values. IMPORTANT NOTE: ijkr are to be read as xyzw, **** where z is front/backword, x is left/rigth, y up/down. 6. Edit those values accordingly to how you want the entMeshComponent to appear in game (this is where experimenting is encouraged until you get the result you want ) IMPORTANT: For a better understanding of how your changes may affect the ingame position and rotation use this website (kindly provided by Loomy) 7. Repack, Build and put into the Mod folder
First steps into find quest archives.
Missions or quests are organized into separate files that contain nodes or references to other "files" called Questphases and Scenes.
Apartments provide a good learning opportunity because they consist of a questphase side, which forms the core of the entire game, and a scene file side, which includes choices, animations, buffs obtained from sleeping, timeskips resulting from sleeping, or audio in the shower.
Questphases can be thought of as graphs that may contain a few #noderefs, which are used to load prefabs for the phase. The questphases are connected together using handlerefs, which handle IDs in their socket setups.
In order to visualize the quest on wolvenkit we need to find or locate a Questphase file that represents the progression of quests:
The following graph is a visualization of the Questphase file:
Identify and locate a .questphase file on the Asset browser.
Click on "Add it to the project" or "open without adding to the project" (image A)
When you open the .questphase file you'll see first a "resource" window with all the questphase dependencies/archives and info. (Image B)
Switch to Graph editor on the tabs (image C)
Guide made by Forsentio - Quest Team member working on WolvenKit at RED Modding Tools.
We will demonstrate the step-by-step process which allows you to remove (and potentially change or replace) an animation in game.
CP77Tools (thanks for rfuzzo).
CP77_CR2.bt (thanks to alphaZomega).
Notepad (Recommanded since you need to copy some info)
A basic understanding of Cyberpunk 2077 modding.
1. Unbundle and uncook basegame_3_nightcity.archive, basegame_4_gamedata.archive using CP77Tools 2. Find the animation you want to remove (in our case we want to remove the idle animation that plays when the player is standing in front of a mirror)
The game works by using .scene files for certain interaction; you should take a look into those and search for the sectionNode that plays the animation you want to remove after you opened it in the 010 Editor, by using alphaZomega's template. The scene file we are using is located in "base\quest\minor_quests\mq000\scenes\mq000_01_apartment.scene"
3. Once the sectionNode is found, open Struct Data, then scnSceneResource, then scnSceneEvent array, then scnPlaySkAnimEvent, then scnEventBlendWorkspotSetup; inside of it you will find a workspotId, which you must take note of.
SIDE NOTE: Most of the game relies on Workspots used as interactable points both by the AI and the Player. In this case, the Workspot we are changing is used for the various interactions in V's appartment. The Workspot's location is "base\worksposts\quest\main_quests\prologue\q001\q001_01_wakeup\q001_01_wakeup__look_mirror.workspot"
4. Return to scnSceneResource and open scnWorkspotInstance. Search for the one that has the same number right next to workspotInstanceId; open it and take note of the dataId 5. Return to scnSceneResource and then open the scnWorkspotData and open each of theme until you find the one that has the same dataId. Open it and take note of the path right after the workspotResource 7. Open the .workspot file and then go to Struct Data, then workWorkspotResource, then workWorkspotTree, then handle:worldEntry, then workSequence, then worklEntry: there you will find a different named work[...]Anim; search for the one that has the same name as the animation you want to remove and take note of the number right before the name 8. Go into the CNAME array and zero out the name 9. Save, pack and place in the Mod folder