Passive Skill Tree JSON: Difference between revisions
>OmegaK2 |
>Chuanhsing No edit summary |
||
Line 253: | Line 253: | ||
|- | |- | ||
| o | | o | ||
| | | Radii of orbit (0 to 4, orbitRadii = [0, 82, 162, 335, 493]) | ||
| integer | | integer | ||
|- | |- | ||
| oidx | | oidx | ||
| index on the orbit | | index on the orbit (skillsPerOrbit = [1, 6, 12, 12, 40]) | ||
| integer | | integer | ||
|- | |- | ||
Line 356: | Line 356: | ||
! Type | ! Type | ||
|- | |- | ||
| | | w | ||
| width of the icon | | width of the icon | ||
| integer | | integer | ||
|- | |- | ||
| | | h | ||
| height of the icon | | height of the icon | ||
| integer | | integer | ||
|- | |- | ||
| | | x | ||
| x position | | x position | ||
| integer | | integer |
Revision as of 13:23, 29 February 2016
This page contains development information and is intended for developers and not regular end users.
Passive skill tree JSON is used by the official website and many other community tools to display the skill tree.
JSON
The subsections follow the format of the json.
Key | Value description | Type |
---|---|---|
imageRoot | string | |
imageZoomLevels | array[float] | |
min_x | integer | |
max_x | integer | |
min_y | integer | |
max_y | integer | |
assets | See below | assoc array |
characterData | See below | assoc array |
constants | See below | assoc array |
groups | See below | assoc array |
nodes | See below | array |
root | See below | assoc array |
skillSprites | See below | assoc array |
assets
characterData
Associative array that maps the character attributes to the classid.
Each value for the array contains another associative array for various attributes:
Key | Value description | Type |
---|---|---|
base_dex | character class starting dexterity | integer |
base_int | character class starting intelligence | integer |
base_str | character class starting strength | integer |
This maps to Scion as of this writing for example:
>>> st['characterData']['0']
{'base_int': 20, 'base_dex': 20, 'base_str': 20}
constants
Constants contain various game constants.
Located under the top level:
{
constants: { /* constants */}
}
Key | Value description | Type |
---|---|---|
PSSCentreInnerRadius | Radius | integer |
chracterAttributes | see below | assoc array |
classes | see below | assoc array |
characterAttributes
Associative array of character attributes and their id.
Format:
Key | Value description | Type |
---|---|---|
<Name of the attribute> | Id of attribute | integer |
Example:
>>> json['constants']['characterAttributes']['Strength']
0
classes
Associative array of Character classes and their associated id
Format:
Key | Value description | Type |
---|---|---|
Internal name of the class based on attributes, i.e. <Attribute>Class for example:
|
Id of the class | integer |
Example:
>>> json['constants']['classes']['StrDexIntClass']
0
groups
Groups is an associative array containing groups for the nodes.
Key | Value description | Type |
---|---|---|
oo | Associative array of orbitals (from the nodes and their oidx key). Unknown what the bool is for | assoc array[string, boolean] |
n | Contains a list of the associated nodes by their unique id | array[integer] |
x | x-coordinate | float |
y | y-coordinate | float |
nodes
Nodes is an array containing general information about the passive skill nodes in form of an associative array.
The associative array uses the following key value pairs:
Key | Value description | Type |
---|---|---|
ascendancyName | Name of the associated ascendancy class | string |
da | how much dexterity the node adds | integer |
dn | Name of the node | string |
g | Id of the group the node is in | integer |
ia | how much intelligence the node adds | integer |
icon | Path relative to the root to node icon | string |
id | Unique id of the nodes | integer |
isAscendancyStart | Whether the node is a starting point for ascendancy class | boolean |
isJewelSocket | Whether the node is a socket for jewel | boolean |
isMultipleChoice | Whether the node is a multiple choice node | boolean |
isMultipleChoiceOption | Whether the node is a choice option for a multiple choice node | boolean |
ks | Whether the node is a key stone | boolean |
m | Whether the node is a mastery (i.e. the center of certain circles have images which are technically also passive skill nodes) | boolean |
not | Whether the node is a noteable | boolean |
o | Radii of orbit (0 to 4, orbitRadii = [0, 82, 162, 335, 493]) | integer |
oidx | index on the orbit (skillsPerOrbit = [1, 6, 12, 12, 40]) | integer |
out | Connections to other nodes by their id | array[integer] |
passivePointsGranted | Passive points given | integer |
sa | How much strength the node adds | integer |
sd | Stat descriptions. One Element per line (lines still may contain escaped characters, i.e. \n )
|
array[string] |
spc | class starting node | array |
root
Contains the class starting nodes under the out key.
Example:
>>> st['root']
{'out': [50459, 47175, 50986, 61525, 54447, 44683, 58833], 'oidx': 0, 'ia': 0, 'da': 0, 'g': 0, 'o': 0, 'sa': 0}
>>> st['root']['out']
[50459, 47175, 50986, 61525, 54447, 44683, 58833]
skillSprites
Contains various arrays
Key | Value description | Type |
---|---|---|
keystoneActive | array[assoc array] | |
keystoneInactive | array[assoc array] | |
mastery | array[assoc array] | |
normalActive | array[assoc array] | |
normalInactive | array[assoc array] | |
notableActive | array[assoc array] | |
notableInactive | array[assoc array] |
Each of the array elements contains another associative array with that links the icon path with a specific sprite:
Key | Value description | Type |
---|---|---|
coords | Contains an associate array that maps the icon path (as from the nodes) to coordinates in the sprite file and the size of the icon in the sprite file (see below) | assoc array |
filename | Name of the sprite file | string |
Example:
>>> st['skillSprites']['mastery'][0]['filename']
'skill_sprite-active-0-4ea513d186d9a3e9936128b9e53674b8.png'
The each of the coords values contains another associative array like this:
Key | Value description | Type |
---|---|---|
w | width of the icon | integer |
h | height of the icon | integer |
x | x position | integer |
y | y position | integer |
Examples:
>>> st['skillSprites']['mastery'][0]['coords']['Art/2DArt/SkillIcons/passives/MasteryGroupMana.png']
{'w': 32, 'h': 32, 'y': 96, 'x': 128}
Ascendancy classes JSON
The ascendancy classes json section (i.e. from the json release under var = opts [...] ascClasses: { /* json */}
)
Contains an associative array that maps the character class id to the information about the ascendancy classes.
assoc array for each class
Key | Value description | Type |
---|---|---|
name | Name of the regular class (ex. "Marauder") | string |
classes | ascendancy classes for this class by their id. The key is a class id, the value is another associative array. | assoc array[string, assoc array] |
assoc array for ascendancy classes
Key | Value description | Type |
---|---|---|
displayName | Name of the ascendancy class | string |
name | Name of the ascendancy class | string |
flavourText | The flavour text of the class | string |
flavourTextColour | comma-separated RGB colour | string |
flavourTextRect | comma-separated coordinates | string |
Examples:
>>> asc['1']['classes']['1'].items()
dict_items([('name', 'Juggernaut'), ('flavourTextColour', '175,90,50'), ('flavourText', ' What divides the conqueror \n from the conquered? Perseverance.'), ('displayName', 'Juggernaut'), ('flavourTextRect', '250,150,1063,436')])
>>> asc['1']['classes']['2'].items()
dict_items([('name', 'Berserker'), ('flavourTextColour', '175,90,50'), ('flavourText', 'The savage path is \nalways swift and sure.'), ('displayName', 'Berserker'), ('flavourTextRect', '760,415,976,429')])
>>> asc['1']['classes']['3'].items()
dict_items([('name', 'Chieftain'), ('flavourTextColour', '175,90,50'), ('flavourText', ' The Ancestors speak \nthrough your clenched fists.'), ('displayName', 'Chieftain'), ('flavourTextRect', '250,175,976,429')])