The goal of this repository is to store NetrunnerDB card data in a format that can be easily updated by multiple people and their changes reviewed.
npm install
npm run test
Additionally, the repository supports npm run format to run the Prettier code
formatter and npm run lint to run JSON and code style issues.
Work has begun on a new version of NetrunnerDB and we have learned a lot about the data and formats we need.
The new changes live in the v2 folder. New changes are coming to the files in this repo and this section lists data that is not yet stable. Use at your own risk because we reserve the right to change our minds suddenly. :)
- v2/set_types.json - categorization for sets (nee packs).
Required properties are in bold.
- code - identifier of the cycle. All lowercase and using dashes instead of spaces. Examples:
"core","sansan","order-and-chaos". - name - properly formatted name of the cycle. Examples:
"Core Set","SanSan","Order and Chaos". - position - number of the cycle, counting in chronological order. For packs released outside of normal constructed play cycles (such as draft packs), the special cycle with position
0should be used. Examples:1for Core Set,8for SanSan Cycle. - size - number of packs in the cycle. Examples:
1for big boxes,6for regular datapack cycles. - rotated - indicates if this cycle has been rotated out of the tournament-legal cardpool.
- code - identifier of the pack. All lowercase and using dashes instead of spaces. Examples:
"core"for Core Set,"val"for The Valley,"oac"for Order and Chaos. - cycle_code - identifier of the cycle the pack belongs to. Must refer to one of the values from cycles'
"code". Examples:"core"for Core Set,"sansan"for The Valley,"order-and-chaos"for Order and Chaos. - name - properly formatted name of the pack. Examples:
"Core Set","The Valley","Order and Chaos". - position - number of the pack within the cycle. Examples:
1for Core Set,1for The Valley from SanSan Cycle,5for Old Hollywood from SanSan Cycle. - date_release - date when the pack was officially released by FFG. When in doubt, look at the date of the pack release news on FFG's news page. Format of the date is YYYY-MM-DD. May be
null- this value is used when the date is unknown. Examples:"2012-09-06"for Core Set,"2016-04-28"for Salsette Island,nullfor unreleased previewed packs. - size - number of different cards in the pack. May be
null- this value is used when the pack is just an organizational entity, not a physical pack. Examples:120for Core Set,55for most deluxe expansions,20for most datapacks,nullfor assorted draft cards. - ffg_id - FFG's internal "ADN" product number for this pack. May be
null. Example:49for the Revised Core Set ("ADN49")
- advancement_cost - number of advancement tokens required to score the card. Relevant for agendas. Examples:
5for Priority Requisition,3for AstroScript Pilot Program,2for Domestic Sleepers. - agenda_points - number of agenda points the card gives after scoring. Relevant for agendas. Examples:
3for Priority Requisition,2for AstroScript Pilot Program,0for Domestic Sleepers. - base_link - base link strength number of the card. Relevant for Runner identities. Examples:
0for Noise,2for Sunny Lebeau. - code - 5 digit unique card identifier. When assigning a code for a new card, build it from two zero-padded numbers: first two digits are the cycle position, last three are position of the card within the cycle (printed on the card). Once a code has been assigned, it cannot be changed, and some codes (notably from the Revised Core Set) do not adhere to this scheme. Therefore, you should always treat this as an opaque identifier.
Examples:"01048"for Sacrificial Construct (48th card in cycle) from Core Set (1st cycle),"10100"for The Price of Freedom (100th card in cycle) from Mumbad (10th cycle). - cost - Play/rez cost of the card. Relevant for all cards except identities and agendas. May be
null- this value is used when the card has a special, possibly variable, cost. Examples:5for Hedge Fund,3for Desperado,nullfor Psychographics. - faction_code - Faction this cards belongs to. Possible values:
"adam","anarch","apex","criminal","shaper","sunny-lebeau","neutral-runner","haas-bioroid","jinteki","nbn","weyland-consortium","neutral-corp" - faction_cost - Influence cost of this card. Relevant for all cards except identities. Examples:
0for Sure Gamble,5for Escher. - flavor - Flavor text of the card. May be empty.
- illustrator - Illustrator's name.
- influence_limit - Maximum number of influence points. Relevant for identities.
- keywords - also known as 'Subtypes'. Examples:
"Code Gate - Deflector - Psi"for Bullfrog,"Security"for False Lead. Multiple subtypes are separated by the string" - "(blank, minus, blank). - deck_limit - Maximum number of copies allowed in a deck. Examples:
3for Deep Red,1for Government Takeover,6for NetChip. - memory_cost - MU usage of the card. Relevant for programs.
- minimum_deck_size - Minimum Deck size. Relevant for identities.
- pack_code - Code of the pack this card is in.
- position - Card number within the cycle (i.e. the number printed on the card). Example:
25forKabonesa Wu(25th card in the Kitara cycle). - quantity - How many copies of this card are in the pack.
- side_code - Side the card belongs to. Possible values:
"corp","runner". - strength - Relevant for programs and ICE. May be
null- this value is used when the card has a special, possibly variable, strength. Examples:1for Ice Wall,0for Crypsis,nullfor Darwin. - text - Text of the card.
- title - Name of the card.
- trash_cost - Trash cost of the card. Relevant for assets, upgrades, operations and ICE.
- type_code - Type of the card. Possible values:
"agenda","asset","event","hardware","ice","identity","operation","program","resource","upgrade". - uniqueness - True if the card is unique (black diamond printed next to the title), false otherwise. Possible values:
true,false.
- code
- flavor
- text
- title
Full description of (very simple) JSON format can be found here, below there are a few tips most relevant to editing this repository.
When symbols outside the regular ASCII range are needed, UTF-8 symbols come in play. These can be escaped using \u<4 letter hexcode>, such as \u0101 (ā from Pālanā Foods), but there is no obligation. UTF-8 characters can be present in the values.
To get the 4-letter hexcode of a UTF-8 symbol (or look up what a particular hexcode represents), you can use a UTF-8 converter, such as this online tool.
To have text spanning multiple lines, use \n to separate them. To have quotes as part of the text, use \". For example, "flavor": "\"I'm overpowered.\"\n-Whizzard" results in the following flavor text:
"I'm overpowered."
-Whizzard
These can be used in a card's text section.
[click][credit][link][mu][recurring-credit][subroutine][trash][anarch][criminal][shaper][jinteki][haas-bioroid][nbn][weyland-consortium]
The text and flavor properties of a card may use custom tags. These are:
- Card with errata use the
<errata>tag, e.g.<errata>Errata from FAQ 3.0.1</errata>for Wireless Net Pavillion.