Quests: facts and files
Theory on the quest system
Last updated
Theory on the quest system
Last updated
Written & Published: Dec 9 2023 by Last documented update: Apr 7 2024 by Deceptious
This is the theory page. If you want more hands-on advice, check the Quests section under Modding Guides.
Quest facts are just a value (signed integer) and a name (string).
Quest facts are chosen by the developer/designer/modder.
While you are moving through the world of Cyberpunk, the game will track your progress in your save game via these quest facts and their values.
Quest facts do not exist until they are explicitly set. Until they are set they are assumed to be 0.
Any/all quest facts can be 'read' at any point. They can then be tested against a set value [<, <=, ==, >=, >] and this test can form a Pause or Condition. [If they havent been set/defined yet they will return as 0.]
There is no strict naming convention, but typically quest related facts start with the quest code [Ex: mq055_... sq027_...]
Facts that are used in a similar way will also have a similar naming sceme [Ex: radio_on, tv_on; judy_default_on, panam_default_on]
Editing quest facts might solve your immediate problem, but will almost always cause additional problems much later in the game, which are impossible to predict. E.g., while you can fix the missing phone call right now, this might break an elevator during the final quest. (I am not making this up)
Cyberpunk's quest facts don't actually do anything, they simply store a value that can be checked later - it is this later check, and logic that is set to follow, that actually does something. For an example, check the box below.
Quest facts are most often set and used in .questphase
(and .quest
) and .scene
files. They can also be manipluated in scripts [Ex: Changing cyberware at a Ripperdoc sets certain facts] and also directly in the code.
None of them, they are independent entities. However they can, in some are cases, be compared to each other [<, <=, ==, >=, >]
For a json dump of facts grouped by .quest, .questphase and .scene, follow this Discord Link.