Unused Arsenal and UpgradesUnused or unreleased weapons, gear, and upgrade features cut from the final game.
Unused or Unobtainable Cosmetic ItemsCosmetic items in the game that are unused or cannot be obtained through normal gameplay.
Unused VideosUnused or scrapped tutorials, and rough animatics for the TV commercials that can be seen throughout the city.
Text Strings#
Downloadable Content#
Unused Gameplay Features#
Unused Apartment Customization Code#
|
|
To do: |
The mq000_02_decorations.scene file in the /mq000/scenes/versions/gold folder contains logic for customizing the colors and materials of the furniture and walls in V's apartment. The strings left in the file imply that the player could buy different color options for some pieces of furniture in V's apartment and in some cases completely replace the item. Furniture that could be modified is the couch, toilet, beanbag, shower, bedding, chair, table, pouf, coffee machine, and the walls. For instance, the coffee machine could have its color changed to a red, black and gold, white and orange, or blue color and in addition be replaced with a tea set, showcasing how some items could be replaced. This feature would have been called Interior decoration mode, as revealed by this text entry:
Story-base-quest-minor_quests-mq000-scenes-mq000_02_decorations-_text |
Exit interior decoration mode |
There is also some code for a tutorial which would have directed the player to each piece of furniture, possibly to show that they could be upgraded.
Patch 1.5 eventually included a form of apartment customization, but it doesn't let you customize individual pieces of furniture but rather the entire apartment at once in Megabuilding H10.
Only the different color options for the table remain in the files, and are displayed below:





Third Person Mode Remnants#
Watch on YouTubeAlthough Cyberpunk is designed to be played almost entirely in first person, the game still contains traces of a more expansive third-person mode that was planned during development. Early footage, such as the 2018 40-minute gameplay demo, showed third-person cutscenes and moments where V's full body was visible. This feature was ultimately scrapped; Despite the game's extensive character customization, only a few third-person segments like driving or using mirrors were kept intact. However, remnants can still be seen in the final game: fully animated sequences that the player can never see during normal gameplay, along with lip-synced dialogue and facial animations for V, even though their face is never shown during conversations.
Unused Minigames#
Redmod includes code for two cut minigames, Quadracer and Panzer.
|
|
This needs some investigation.
|
Quadracer#
In the folder \redmod\scripts\cyberpunk\UI\miniGames\quadRacer, the code for a cut minigame called Quadracer can be found. In this game the player would race a car against the clock while gaining some kind of score. While racing, the player had to avoid obstacles which would slow down the player but could also pick up bonus time and nitrous that would speed up the car. The UI of the game would likely display time left, boost time left, bonus time left, speed, score, laps passed, and if a checkpoint had been passed.
Textures used in the minigame can still be found in game archives, in the folder base\gameplay\gui\world\arcade_games\quadracer, that seem to contain almost all of the in-game textures. This texture sheet is named quadracer_assets.xbm, with a corresponding file named quadracer_assets.inkatlas that slices the texture up into blocks/sprites which contains the name these sprites.
The largest image in this texture sheet, tagged with "env" in the .inkatlas shows the background texture used in the game. Additionally, this image also shows what is likely a very early version of Night City. There are several unfinished elements visible, like the closest freeway floating in the air, the road to North Oak that passes by the Columbarium (which is also missing) abruptly ending and numerous differences seen in the city itself.
The following textures show the graphics used for the player car:




Terrain related textures:



Props:





Vehicles:




Panzer#
Redmod also includes some very barebones code for a minigame called Panzer under \redmod\scripts\cyberpunk\UI\miniGames\panzer, where the code only really reveals that the game would have had a generic score system.
The executable of the game contains several code text strings related to Panzer, which gives a better idea of the game would have played.
There is also a video of a game named Panzer, normally displayed on Panzer arcade machines in the game, which may be based on some of the code seen in the executable. The video does show a few elements that match the data seen in the strings of the executable of the game, which are unrelated to the HUD. These are the clouds and enemy drones. It’s unclear if the video is either just a faithful recreation of the idea of the minigame as written in an internal design document or a recording of an early version of the game.
In the game, the player would have driven a tank, likely a Panzer, which would have fired bullets at enemies and been fired bullets on by enemies. These enemies are defined as AV’s and drones in the code strings, and the video also shows enemy mechs and wheeled vehicles. The game would have spawned clouds at different intervals, which can be seen both in the code strings and in the video. Panzer was likely an endless runner type of game, so the goal of the game would have been to gain the highest score possible. Score would have been given in 50, 100, 200-point intervals and the player could also gain bonus points as seen in the code strings.
Executable Text Strings:
Strings extracted from version 1.04 PC:
gameuiPanzerBonus
PanzerBonus
m_fallingSpeed
gameuiPanzerBullet
PanzerBullet
gameuiPanzerCloud
PanzerCloud
gameuiPanzerEnemy
PanzerEnemy
m_noBonusChanceCoeff
m_score
m_shootPoint
m_bulletSpeed
m_explosionLibraryName
m_bulletLibraryName
Life bonus
m_lifeBonusLibraryName
m_lifeBonusChanceCoeff
Score bonus
m_scoreBonusLibraryName
m_scoreBonusChanceCoeff
m_score50ChanceCoeff
m_score100ChanceCoeff
m_score200ChanceCoeff
gameuiPanzerEnemyAV
PanzerEnemyAV
m_shotsAmount
m_longShotInterval
m_shortShotInterval
gameuiPanzerEnemyBullet
PanzerEnemyBullet
gameuiPanzerEnemyDrone
PanzerEnemyDrone
m_shootIntervalMinimum
m_shootIntervalMaximum
gameuiPanzerExplosion
PanzerExplosion
gameuiPanzerFriendlyBullet
PanzerFriendlyBullet
gameuiPanzerGameLogicController
PanzerGameLogicController
m_gameOverDelay
Screen panels
m_mainMenuLibraryName
m_scoreboardLibraryName
Layer definitions
m_panelsLayer
m_gameLayer
m_cloudsLayer
Background settings
m_backgroundLibraryName
Clouds settings
m_cloudsLibraryNames
m_minCloudSpawnInterval
m_maxCloudSpawnInterval
m_minCloudSpeed
m_maxCloudSpeed
Display widgets
m_scoreCounter
m_livesCounter
Key bindings
m_moveUpKey
m_moveDownKey
m_moveLeftKey
m_moveRightKey
m_backKey
Axis bindings
m_shootAxis
Enemy drone settings
m_droneLibraryName
m_minDroneSpawnInterval
m_maxDroneSpawnInterval
Enemy av settings
m_avLibraryName
m_minAvSpawnInterval
m_maxAvSpawnInterval
gameuiPanzerGameState
PanzerGameState
gameuiPanzerHUDGameController
PanzerHUDGameController
gameuiPanzerLifeBonus
PanzerLifeBonus
gameuiPanzerMiniGameController
PanzerMiniGameController
gameuiPanzerPlayerController
PanzerPlayerController
m_bulletSpawnOffset
m_bulletLibraryname
m_shootInterval
m_invulnerableAnimationName
gameuiPanzerScoreBoard
PanzerScoreBoard
m_scoreboardList
m_champions
m_recordWidgetLibraryName
gameuiPanzerScoreBonus
PanzerScoreBonus
Score50
Score100
Score200
gameuiPanzerScoreRecordData
PanzerScoreRecordData
gameuiPanzerScoreRecord
PanzerScoreRecord
m_nameWidget
m_scoreWidget
Unused Models#
Jinguji Store#
Various meshes that belong to signs and staircases of a Jinguji store can be found in the files. These files are prefixed with "q000", meaning these models were made for the lifepath intros. However, as the player in the final game doesn't visit a Jinguji store in the prologue it's likely that these models are leftovers from an early iteration of the Corpo and Streetkid lifepaths where you did visit a clothing store that had an upper level.
Unused Textures#
Baby Pacifier Ad#
A slightly unsettling ad for an extreme baby pacifier. Located in the base\surfaces\textures\steinbeck_ad_a\ folder, this ad was somehow related to the Steinbeck Building.
Blockout Textures#
Several texture files belonging to a blockout version of Night City. These textures were used in the old 01_nightcity map.














Debug Textures#
The folder engine\ink\textures contains several debug textures related to Bink videos, missing textures, advertisements system and icons. The icons were likely shown inside an editor for the game.


Icons

Early Night City Blockout#
nc_mapa40_kwadrat_2k.xbm contains a blockout of the entire Night City map, but in lower resolution and partially in black and white. Major differences in this blockout is an airport south of the city, some kind of town where the Eastern Badlands is in the final map and a tunnel connecting Watson and Pacifica via the Spaceport.
Early Watson Blockout#
The file watson_map_ref.xbm contains a very early blockout map of Night City. The layout of Watson and City Center seems to be quite finished while Westbrook seems to only contain a basic version of North Oak. Some more major differences compared to the final map is an airfield east of Northside and some kind of residential area or corporate campus north of Arasaka Waterfront.
Got Milk All Foods Advert#
An All Foods banner advertising milk. It depicts a farmer drinking a cup of "fresh" milk, next to a cow. The farmer is modeled after Mark Hamill's appearance in Star Wars: The Last Jedi.
|
All Foods, got milk |
Star Wars: Episode VIII - The Last Jedi |
|---|---|
|
|
Socal Flag#
A placeholder Southern California flag, located under base\environment\ld_kit\quests\textures\. ld_kit possibly stands for "level design kit", and is likely a leftover file from the early stages of the production of the game, as other files in the ld_kit folder are in stored in the .w2mesh format, where "w2" means The Witcher 2. A mesh file remains, but is shaped like a cube.
Level Design Leftovers#
The folders base\materials\playstyle_boxes\ and playstyle_boxes_with_text contain empty material files that were likely used to display features and paths for the player to take that were placed by level designers during early work on levels in the development of the game.
These files seem to reveal that there was at one point a larger focus on having the player investigate crimes, with many files suggesting the player could gather clues, DNA, fingerprints and forensics, with netrunners being able to gather some further data. Other cut features that are mentioned is wall running, disguises, different security levels, biometric scans and some references to the cut techie class. The cut quest q111 where V investigated the murder on themselves was likely based on this earlier concept of mission design for the game and some features like disguises and "put_a_mask" which likely refers to putting a facial mask on (as in changing your appearance) eventually made its way into Phantom Liberty. A list of files from both folders with some duplicates removed is listed below:
advanced_interaction.w2mi
blue_print.w2mi
camera.w2mi
charged_jump.w2mi
climbable.w2mi
close.w2mi
collect_clues_dna.w2mi
collect_face.w2mi
collect_fingerprints.w2mi
collect_fingerprints_1.w2mi
collect_fingerprints1.w2mi
combat.w2mi
craft.w2mi
create_dynamic_cover.w2mi
decompresion.w2mi
destructible.w2mi
disguise.w2mi
dismantle.w2mi
dismantle_techie.w2mi
double_jump.w2mi
double_jump_fast_txt.w2mi
drag.w2mi
drag_start.w2mi
drag_stop.w2mi
drop.w2mi
duoble_jump.w2mi
equip.w2mi
explore.w2mi
find_person_fast.w2mi
find_person_satellite.w2mi
find_person_strong.w2mi
find_vehicle.w2mi
find_weakness.w2mi
forge_key.w2mi
gather_clues_chemicals_sample.w2mi
gather_clues_chemicals_txt.w2mi
gather_clues_dna.w2mi
gather_clues_fingerprints_netrunner_txt.w2mi
gather_clues_fingerprints_txt.w2mi
gather_clues_forensics_fast.w2mi
gather_clues_forensics_strong.w2mi
gather_clues_forensics_txt.w2mi
hack.w2mi
hack_node_easy.w2mi
hack_node_hard.w2mi
hack_txt.w2mi
high_security_clearance_txt.w2mi
inspect_generic.w2mi
interaction.w2mi
jury_rig.w2mi
ladder.w2mi
lock.w2mi
lockable.w2mi
loot.w2mi
low_security_clearrance_txt.w2mi
mid_security_clearrance_txt3.w2mi
mount.w2mi
navigate_txt.w2mi
off.w2mi
off_techie.w2mi
off_techie_txt2.w2mi
on.w2mi
on_techie.w2mi
open.w2mi
poison.w2mi
power_off_txt.w2mi
power_on.w2mi
ppower_on_off_txt.w2mi
pull.w2mi
push.w2mi
put_a_mask.w2mi
quest.w2mi
recipe.w2mi
remote_quick_hack.w2mi
remote_use.w2mi
scan_machine.w2mi
security_biometric_scan.w2mi
security_cearance_high.w2mi
security_cearance_medium.w2mi
security_clearance_low.w2mi
simple_interaction.w2mi
slide.w2mi
slow_time.w2mi
super_strenght.w2mi
takedown.w2mi
unlock_txt.w2mi
use.w2mi
use1.w2mi
wall_run.w2mi
winch.w2mi
window_of_opportunity.w2mi
Level Design Models#
|
|
To do: |
The base\environment\ld_kit\ folder contains meshes that were used as placeholders during the level design of the game. The meshes are likely leftovers from an early stage in development, as most meshes are stored in the .w2mesh format which is the same format that is used in The Witcher 3. Some of the meshes show some items and ideas that didn't make it into the final game, like facial scanners and a "holographic menu".
Unused Characters#
The file voicetaglist.voicetags contains a whopping 94 references to characters that were cut from the game. The file is used to connect characters to their vset scene file, which is used to store some generic responses and battlecries. The list of characters is provided below, and are listed in the original order that they are placed in the file:
List:
Entry |
Comment |
|
|---|---|---|
agent_orange |
||
asami |
||
bob_sulberger |
Possibly an alternate name for Josh Kavorin. |
|
british |
||
candy_frakes |
||
db_wayne |
||
dirk_swayze |
||
harry_mccain |
||
haruhiro_oconnel |
A news broadcast remains with this name, which might be unused? Has an after_q103 tag, broadcast is about a shooting in the Badlands. |
|
hira_keito |
||
hoyt_harcrow |
||
jamie_ohara |
||
jeremy_greenski |
||
jim_jarry |
A character that was added in Patch 2.1 with this name does send you a text message in relation to the quest The Distance, but doesn't have a speaking role. This entry was included all the way back in the original release of the game. |
|
jingle |
||
katsu |
||
koharu |
||
lenard_mendeleyev |
||
masaru |
A shard with the name Masaru remains, unknown if related to this name. |
|
meatman_child |
||
mr_hayashi |
A shard with the name Hayashi remains, unknown if related to this name. May also be an old variant of the name of Flavio. |
|
mrx |
From Cyberpunk 2020. |
|
penthouse_siri |
||
president_elizabeth_kress |
||
q001_filipino_old_lady |
||
romana_hernandez |
||
sabrina_miura |
||
scottish |
||
teresa_arranda |
||
tobias_sladek |
||
trevor |
A dead character with this name can be seen in the gig Trevor's Last Ride, but him being in this file implies the character had a speaking role at one point. |
|
yoshi_wakinoto |
This name is mentioned in the file q105_03_dollhouse_mood.scene, which belongs to the quest Automatic Love. He is described as someone who murdered a politician's daughter. |
|
ape |
||
ayumi |
||
blackhand |
||
Bob Ignatieff |
||
bubba_jones |
||
burondo |
||
Clara Kim |
||
contractor |
||
cpo_assassin |
All these cpo_ entries technically do still exist in the game but likely only in development builds, as they are stored in the folder multi\open_world\voicesets\, which isn't accessible on release builds. |
|
cpo_netrunner |
||
cpo_solo |
||
cpo_techie |
||
cross |
||
cybercat |
||
delamain_mean_shodan |
||
delamain_shy |
||
detective |
||
dominic |
||
don_carlos |
||
donnie |
Has the same name as someone who follows you during the I Fought the Law quest. |
|
elevator_voice |
||
eric_adams |
||
evelyn_young |
||
evelyns_daughter |
||
flann |
||
hannah_kranz |
||
harriet |
||
hayashi |
||
hayden_barkley |
||
henry_jake |
||
huxley |
||
jackson |
||
Joss_sitcom |
||
Julia Tseng |
||
kenji_arasaka |
||
kenjis_doctor |
||
kenjis_tutor |
||
lady_mirage |
||
larry_levin |
||
LeLana Gray |
||
Lena_sitcom |
||
liam_smith |
||
locke |
||
maccooper |
||
Marc Terrence |
||
mike_ogaru |
||
mikey_hollins |
||
military_dictator |
||
Miriam |
Name might be related to the CEO of Night Corp. |
|
Monica_sitcom |
||
mutter |
||
Neil Wray |
||
nobu |
||
nobus_daughter |
||
ogawa |
A character with this name exists in the Netrunners Inc. source book. |
|
police_chief |
This character has a physical appearance in Phantom Liberty. |
|
race_announcer |
||
reginald_hermann |
||
Roger Jimenez |
||
stash |
||
tsutomu |
A shard with the name Tsutomu remains, unknown if related to this name. |
|
wikill |
Unseen Details#
Johnny Jumpscare#
There's a very obscure failsafe measure during V's first encounter with Johnny: If V somehow manages to get out of bed without triggering the hallucination sequence and attempts to leave the apartment, Johnny will appear at the door and push V back inside. The rest of the scene then plays out as normal.1
The easiest way to do this is by hugging the apartment walls while crouched and slowly making your way to the door. By doing this, you avoid the cutscene trigger that is present in the middle of the room. You don't need to be facing the door to trigger the cutscene. As long as you're within range for the interact prompt to appear, the game will rubberband you into position and trigger the secret.
This is likely a leftover from how the scene was originally meant to play out before the hallucination sequence was added, or CDPR's way of giving modders attempting to leave the room early a good scare.
Militech Manticore Interior#
The Manticore is an aerial Militech vehicle frequently seen throughout the game. Despite the player never being able to ride or enter one, it has a fully-modeled interior. The windows also react to raindrops like other vehicles in the game, a detail that can't be seen during normal gameplay. Considering the amount of work put into it, it's likely it was originally meant to be used but was ultimately cut and left as set dressing.



Cyberpunk Online Leftovers#
|
|
To do:
|
The executable contains several leftover text strings from Cyberpunk Online (CPO). The text strings show that the multiplayer mode would have featured deathmatch and heist game modes. Playable characters would have included solo, assassin, netrunner and techie characters. The online mode would have also included an AI Director, although it is unclear from the remaining text strings how it would have functioned.
Cyberpunk Online Leftover Text Strings:
Strings extracted from version 1.04 PC:
PoolMultiplayerGameplay
mpClientGameSession
world_id
game_session_started
CacheSystems
mpGameSession
Update/Network
Update/Replication
mpInteractionActivatorComponent
mpLocalPlayer
gamepadID
mpPersistentTestBoxState
m_weakPersistentEntity
m_weakPersistentEntityComponent
m_weakDynamicEntity
m_weakDynamicEntityComponent
mpPersistentTestBox
mpPlayer
mpPlayerManager
GetPlayerNicknameByGameObject
mpServerPlayer
ServerPlayer
LocalClient
mpRemotePlayer
RemoteClient
PrespawnRequest
spawnParams
PrespawnRequestAccepted
PrespawnRequestDenied
SpawnRequest
SpawnRequestAccepted
SpawnRequestDenied
UpdatePlayers
playersInGame
Invalid nickname
mpServerGameSession
ServerGameSession
Server/BeginInputProcessing
Server/EndInputProcessing
MPDebugRemoteClientShutdown
hardExit
MPDebugPlaySound
sound
multiplayerDebug
Restarts game session on server
net.restart_session
Send session-wide chat message
net.chat
MP.RemoteSessionRestart
Remote session restart is supported only in LAN network mode, sorry!
MP.SendChat
Starts profiling network
net.profiler.start
Stops profiling network
net.profiler.stop
Dumps replication session state to a file
net.replication.dump
Second group of strings
questMultiplayerAIDirectorParams
questMultiplayerAIDirectorFunction
questMultiplayerAIDirectorStatus
m_pathRef
m_scheduleEntryName
m_scheduleName
questMultiplayerAIDirectorNodeDefinition
Multiplayer AI Director
Status of AI Director
Current path
Schedule entry name
Schedule name
questMultiplayerChoiceTokenParams
m_compatibleDeviceName
questMultiplayerChoiceTokenNodeDefinition
questMultiplayerGiveChoiceTokenEvent
RandomizePlayer
MultiplayerGiveChoiceTokenEvent
Multiplayer Choice Token
questMultiplayerHeistNodeDefinition
Multiplayer Heist
questMultiplayerHeistState
questIMultiplayerHeistNodeType
questSetMultiplayerHeistState_NodeType
questSetMultiplayerHeistSpawnPointTag_NodeType
m_spawnPointTag
heist
Set Heist State
Set spawn point tag that will be used to spawn new players during the mission
Spawn tag: %s
questMultiplayerJunctionDialogNodeDefinition
Multiplayer Junction Dialog
questMultiplayerTeleportPuppetParams
m_teleportAllPlayers
m_destinationRef
m_destinationOffset
m_areaNodeTriggerRef
questMultiplayerTeleportPuppetNodeDefinition
Multiplayer Teleport
Third group of strings
gsmMenuState_Multiplayer
MultiplayerSelectCharacter
Find servers
Find servers (with character selection)
gsmMenuState_MultiplayerSelectCharacter
Select Default character
Select Solo character
Select Assassin character
Select Techie character
Select Netrunner character
Fourth group of strings
MP.AddChat
senderID
MP.Deathmatch.DebugMessageNameChanged
oldName
newName
MP.Deathmatch.DebugMessageKill
killerID
victimID
MP.Heist.DebugMessageNameChanged
MP.Heist.MessagePlayerReady
peerID
MP.Heist.SetPlayerCharacterClass
GameRules/Tick
>> %hs is now %hs
Start heist in singleplayer mode
GameRules.StartHeist
grsGatherAreaReplicatedInfo
m_enteredPlayerIDs
m_hasActiveQuestListener
grsGatherAreaManager
m_activeGatherAreaRepInfo
grsDeathmatchStatus
AdditionalWaiting
Sumup
grsDeathmatchPlayerGameInfo
m_isInGame
m_spawnTime
m_killCount
m_deathCount
m_lastShooter
grsDeathmatchState
m_playersInfo
grsHeistPlayerGameInfo
m_isReady
m_isRespawning
grsHeistState
playerRecordID
server command line
command line
game rules
ToggleShowInGameStats
++ %s joined the match
>> %s killed %s
You sent yourself directly to hell! Please don't come back
Wow! You killed yourself... Bravo.
Your bullet was stronger than your self-esteem
Your shot destroyed your own body and soul. Duh
You sent %s directly to hell!
Wow! You killed %s without compassion
Your bullet was stronger than %s's head
Your shot destroyed %s's body and soul
%s sent you directly to hell!
Wow! %s killed you without compassion
%s's bullet was stronger than your head
%s's shot destroyed your body and soul
AllowJoinInProgressDM
MP_TEST_Player_Death
MP_TEST_match_start
Change session length
net.change_session_time
Restart current session
Invalid parameter, expecting ( sessionLength in seconds )
%02ld:%02ld:%02ld
[%s] %s: %s
MP_PlayerReady
Set player's character class
heist.set_character_class
Usage:
heist.set_character_class( <character class ID> )
++ %s joined the heist
-- %s left the heist
Character.Cpo_Muppet_Solo
Character.Cpo_Muppet_Assassin
Character.Cpo_Muppet_Netrunner
Character.Cpo_Muppet_Techie
lobby
cpo_heist_started
Character.Cpo_Muppet_Default
Character.
Instant victory
net.victory
heist.set_character_class( <peer ID>, <character class ID> )
Character.Cpo_Default_Player
Waiting for players
Waiting for additional players... %u
> Match starts in %u <
Respawn in %u seconds
> Match ends in %u <
GAME FINISHED
%02d:%02d
Time Left
Time Left
PLAYER NAME | KILLS | DEATHS | STATUS | PING | ID
PLAYER NAME |
LLS |
DEATHS |
STATUS |
PING |
PLAYER NAME
ALIVE
P L A Y E R S
Waiting for players...
> Heist starts in %u <
Waiting for players to get ready...
Duplicate characters detected
Respawning player...
Waiting for other players to get ready...
PRESS D-Pad Down / 'X' WHEN READY
use the debug menu to switch your character
Player is dead
> Heist ends in %u <
VICTORY
players in the Gather Area
Waiting for other players...
Go to the gather area
Player Joined and Death Messages#
The 1.04 executable contains the following player joined and death messages:
++ %s joined the match
>> %s killed %s
You sent yourself directly to hell! Please don't come back
Wow! You killed yourself... Bravo.
Your bullet was stronger than your self-esteem
Your shot destroyed your own body and soul. Duh
You sent %s directly to hell!
Wow! You killed %s without compassion
Your bullet was stronger than %s's head
Your shot destroyed %s's body and soul
%s sent you directly to hell!
Wow! %s killed you without compassion
%s's bullet was stronger than your head
%s's shot destroyed your body and soul
Perforce Changelist And Build Data#
The file clnumber.json in the folder /base/localization contains the Perforce changelist number and date that belongs to the archives of the build. This number and date show the last time the assets and codebase that was used to compile the archives belonging to the build of the game was updated. The executable also contains a changelist number, that is generated a later point compared to the number included with the archives. The stream string is the path of the Perforce depot and stream (code branch) used to compile the executable.
Note that while changelist numbers are generated in sequential order by Perforce they aren't necessarily consecutive, meaning that the changelist number doesn't show that the codebase of the game was updated exactly X amount of times but rather roughly how many times the codebase was updated on the Perforce server.
For instance, this data shows that the last time an update was made to the assets used to build the archives for the unpatched gold PS4 version of Cyberpunk 2077 was on 2020-09-26.
Version |
Archive Changelist |
Archive Timestamp |
Executable Changelist |
Executable Timestamp |
BuildID |
Stream |
Comment |
|---|---|---|---|---|---|---|---|
PS4 Unpatched |
3953171 |
26/09/2020 15:09:23 |
3953367 |
26/09/2020 18:56:15 |
3.0.3017731 |
//R6.Root/R6.Cert |
The executable eboot.bin also contains a few references to the path E:\cdprs-build167R6.Cert\, which contains the username of the machine (cdprs-build167) and stream (R6.Cert) used to compile the build. |
PC Preload |
4148581 |
03/12/2020 21:53:48 |
|||||
PC 1.03 |
4155409 |
08/12/2020 17:44:32 |
4155897 |
09/12/2020 00:35:01 |
3.0.3217599 |
//R6.Root/R6.Patch0Hotfix2 |
|
PC 1.04 |
4157394 |
09/12/2020 21:13:26 |
4158334 |
10/12/2020 14:01:38 |
//R6.Root/R6.Patch0Hotfix2 |
||
PC 1.3 |
4365838 |
01/07/2021 16:27:38 |
4416730 |
11/08/2021 20:11:12 |
3.0.3505501 |
//R6.Root/R6.Release |
The executable seems to have been compiled over a month later than the archives. |
PC 1.31 |
4457769 |
3.0.3551602 |
//R6.Root/R6.Release |
||||
PC 1.5 |
4719299 |
04/02/2022 15:28:03 |
4719897 |
04/02/2022 19:47:54 |
3.0.3836782 |
//R6.Root/R6.Release |
|
PC 1.52 |
4790877 |
3.0.3906793 |
//R6.Root/R6.Release |
||||
PC 1.6 |
5147962 |
3.0.4232417 |
//R6.Root/R6.Release |
||||
Development Build |
5210000 |
26/09/2022 |
//R6.Root/R6.Main.BuildAgent |
Exact changelist ID is uncertain due to video compression and low resolution. Seen in the unused perk_finishers.bk2 video. |
|||
PC 1.61 |
5661751 |
3.0.4506101 |
//R6.Root/R6.Release |
||||
Development Build |
6036390 |
Early April 2023 |
3.0.4640478 |
//R6.Root/R6.Main.BuildAgent |
Exact changelist ID and date is uncertain due to video compression. Seen in this documentary at 13:46. |
||
Development Build |
6130758 |
Around May 2023 |
3.0.4713347 |
//R6.Root/R6.Main.BuildAgent |
Exact date not shown in video. Seen in this documentary at 1:10:20. |
||
PC 1.63 |
6215710 |
3.0.4763645 |
//R6.Root/R6.Release |
||||
PC 2.0 |
6399268 |
12/09/2023 21:22:10 |
6408866 |
20/09/2023 17:14:46 |
3.0.4902785 |
//R6.Root/R6.Release |
|
PC 2.01 |
6422997 |
3.0.4912681 |
//R6.Root/R6.Release |
||||
PC 2.1 |
6524669 |
29/11/2023 20:52:31 |
6525662 |
30/11/2023 13:30:37 |
3.0.4984974 |
//R6.Root/R6.Release |
Oddities#
- River Ward was originally named "Sobchuk" during development, and a large number of internal files still refer to him by this name.
- Every single main, side, and minor quest of the game contains a file named "[questidentifier]_cinematic_bugfixes.questphase", that mostly doesn't do anything but always checks if the value of a quest fact related to the cut travelling merchant named "travelling_merchant_lives" is greater than or equal to 9999.
- Lockey #45338 contains some odd raw JSON data and is the only entry in the game with this kind of data. Lockey #45339 contains the correct value, "OXYGEN".
{
"RootType": "toolsprvSingleElementClipboardHolder",
"Data": {
"value": "OXYGEN"
}
}
References#
|
The Cyberpunk series | |
|---|---|
|
J2ME |
|
|
PlayStation 4, Xbox One, Google Stadia, Windows, PlayStation 5, Xbox Series X and S, Nintendo Switch 2, Mac OS X |
|
