Adding Skills FAQ

Discussion concerning lmarkus' campaign framework for D&D3.x and Pathfinder.

Moderators: dorpond, trevor, Azhrei, giliath, Gamerdude, jay, Mr.Ice, lmarkus001

Forum rules
Discussion regarding lmarkus001's framework only. Other posts deleted without notice! :)
Post Reply
neofax
Great Wyrm
Posts: 1694
Joined: Tue May 26, 2009 8:51 pm
Location: Philadelphia, PA
Contact:

Adding Skills FAQ

Post by neofax »

The skills rework and use these Propertys and structures:

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" : ""
}]
Global Property on Lib:GlobalsSRDPF: SysSkills

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}]
  }
}
Global Property on Lib:GlobalsSRDPF: SkillsIndex

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}}
Table: SysLocale

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:

    Code: Select all

    [resetProperty("SkillsJ")]
    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.
  • 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.
EDIT: Changed structure for SkillsJ. "class" is now "classskill".

madartiste
Kobold
Posts: 5
Joined: Mon Nov 01, 2010 6:04 pm

Re: Adding Skills FAQ

Post by madartiste »

Thank you so much for this. It was a huge help and easy to follow. :D

Post Reply

Return to “D&D 3.5/Pathfinder 1e Campaign Macros”