Campaign Property: SkillsJ
SkillsJ
Code: Select all
[{
"name" : "Text Description", (key)
"subcat" : "Text", ( used for Craft, Knowledge, Perform, Profession )
"rank" : 0, ( Integer )
"classskill" : 0, (0=Unavailable, 1=Class skill, 2=Cross-class)
"racialmod" : 0, ( Integer )
"synergy": 0, ( Integer )
"feats" : 0, ( Integer )
"equip" : 0, ( Integer )
"speedmod" : 0, ( Integer )
"misc" : 0, ( Integer )
"notes" : "Text",
"altstat" : "" (StrB, DexB, ConB, IntB, WisB, ChaB or "")
},
{
"name" : "Spot",
"subcat" : "",
"rank" : 2,
"classskill" : 1,
"racialmod" : 0,
"synergy": 0,
"feats" : 2,
"equip" : 0,
"speedmod" : 0,
"misc" : 0,
"notes" : "Alertness",
"altstat" : ""
}]
This stores the core elements of the skills (like relevant stat). It also contains "template" structures for an entry in SkillsJ property and sysSkills object. These templates are used for inserting new skills.
SysSkills
Code: Select all
{"D&D3.5":{
"tokSkillTemplate":{
"name":"",
"subcat":"",
"rank":0,
"classskill":1,
"racialmod":0,
"synergy":0,
"feats":0,
"equip":0,
"misc":0,
"notes":""},
"sysSkillTemplate":{
"locID":153,
"name":"",
"ability":"IntB",
"untrain":0,
"armorpenalty":0,
"sizemod":[0,0,0,0,0,0,0,0],
"type":"Physical",
"desc":""},
"sysSkills":[{
"locID" : 153, (Numeric ID reference into the SysLocale table)
"name" : "Text Description", (key)
"ability" : "WisB", ( Stat mod )
"untrain" : 0, (0=unusable if untrained, 1=usable untrained )
"armorpenalty" : 0, (0=None, 1=1x ACP, 2=2x ACP)
"sizemod" : [0,0,0,0,0,0,0,0], (array of integers, Hide= [16,12,8,4,0,-4,-8,-12,-16])
"type" : "Physical", ( Craft, Creature, Knowledge, Language, Perform, Physical, Profession, Psionic )
"desc" : "Text"
},
{
"locID" : 136,
"name" : "Spot",
"ability" : "WisB",
"untrain" : 1,
"armorpenalty" : 0,
"sizemod" : [0,0,0,0,0,0,0,0],
"type" : "Physical",
"desc" : ""
}]},
"Pathfinder":{
"tokSkillTemplate":{
"name":"",
"subcat":"",
"rank":0,
"classskill":1,
"racialmod":0,
"synergy":0,
"feats":0,
"equip":0,
"misc":0,
"notes":""},
"sysSkillTemplate":{
"locID":153,
"name":"",
"ability":"IntB",
"untrain":0,
"armorpenalty":0,
"sizemod":[0,0,0,0,0,0,0,0],
"type":"Physical",
"desc":""},
"sysSkills":[{
"locID":142,
"name":"Acrobatics",
"ability":"DexB",
"untrain":1,
"armorpenalty":1,
"sizemod":[0,0,0,0,0,0,0,0],
"type":"Physical",
"desc":50},
{
"locID":100,
"name":"Appraise",
"ability":"IntB",
"untrain":1,
"armorpenalty":0,
"sizemod":[0,0,0,0,0,0,0,0],
"type":"Physical",
"desc":51}]
}
}
This provides a reference to find the skill entries in the SysSkills property. The integer value is the array location the skill can be found in the SysSkills property. Remember the skill name is the also the key used to reference the skill.
SkillsIndex
Code: Select all
{"D&D3.5":
{"Appraise":0,
...
"Use Rope":35,
"Use Psionic Device":39},
"Pathfinder":
{"Acrobatics":0,
"Appraise":1,
...
"Use Magic Device":25}}
This table is used for language localization. Any word you change in this table will be changed in any spot that is coded to support it. So if you wish to use French, this is the table where you change entries to French. The row # is the ID that is used in the locID variable inside of the SysSkills property.
Table: SysVars
This table provides the list IDs for the skills that use sub-categories (Craft, Knowledge, Perform, Profession). Row 0 is a JSON that provides a reference to the desired list. Rows 2 through 5 provide the numeric id list to cross reference to the SysLocale table for the related skill sub-categories. Note that the order they are listed here is the order they get listed in the pull-downs on the dialog.
0 -- {"sizeList":1,"knowledgeList":2,"performList":3,"craftList":4,"professionList":5}
2 -- 147,118,119,120,121,122,123,124,125,126
Table: SkillDesc
This table provides the text that is put up in the dialog when the skill is clicked on in chat. It can be in HTML. The row # is the ID that is used in the desc variable inside of the SysSkills property.
Customizing
If you want to add a new skill I have not supplied in the list, then you need to do several changes to your core.
- Change the relevant SkillsJ property. If you want the new skill globally available, you need to change the SkillsJ property of the relevant token type (D&D3.5 or Pathfinder or both). If you have a pre-existing token, you need to reset the SkillsJ property on that token with a macro you create that has this line in it:
The reason is the SkillsJ property on the token will need to contain the new skill you are supplying and I did not create DM skill edit mechanism with the macros. This is a core setup piece.
Code: Select all
[resetProperty("SkillsJ")]
- Add the reader language representation of the skill into the SysLocale table. Make sure you tie the row # back into the SysSkills entry.
- Add the system level data for the new skill into the Global SysSkills property. You will need to edit the JSON data and enter a new skill into the relevant (D&D3.5, Pathfinder) "sysSkills" object.
- Add the skill reference to the Global SkillsIndex property.
- Add the description of using the skill to the SkillDesc table. Be sure to increment row 0 as it is the # of entries in the table and is used to find the skill.